链路追踪工具skywalking

1,标题什么是链路追踪
链路追踪是分布式系统下的一个概念,它的目的就是将一次分布式请求还原成调用链路,将一次分布式请求的调用情况集中展示,比如,各个服务节点上的耗时、请求具体到达哪台机器上、每个服务节点的请求状态等等
基础原理就是在调用开始阶段,生成一个全局唯一的traceId,通过服务,或者中间件直接的传递最后统计生成调用链路记录

OpenTracing
它是一个中立的(厂商无关、平台无关)分布式追踪的 API 规范,提供统一接口,可方便开发者在自己的服务中集成一种或多种分布式追踪的实现
链路追踪工具skywalking_第1张图片

名词释义:
traceId:
用于标识某一次具体的请求ID。当用户的请求进入系统后,会在RPC调用网络的第一层生成一个全局唯一的traceId,并且会随着每一层的RPC调用,不断往后传递,这样的话通过traceId就可以把一次用户请求在系统中调用的路径串联起来。

spanId:
用于标识一次RPC调用在分布式请求中的位置。当用户的请求进入系统后,处在RPC调用网络的第一层A时spanId初始值是0,进入下一层RPC调用B的时候spanId是0.1,继续进入下一层RPC调用C时spanId是0.1.1,而与B处在同一层的RPC调用E的spanId是0.2,这样的话通过spanId就可以定位某一次RPC请求在系统调用中所处的位置,以及它的上下游依赖分别是谁

OpenTracing Specification https://github.com/opentracing/specification/blob/master/specification.md

2, 什么是skywalking

Skywalking是一个可观测性分析平台(Observability Analysis Platform简称OAP)
和应用性能管理系统(Application Performance Management简称APM)。

提供分布式链路追踪、服务网格(Service Mesh)遥测分析、度量(Metric)聚合和可视化一体化解决方案。
下面是Skywalking的几大特点:

多语言自动探针,Java,.NET Core和Node.JS。
多种监控手段,语言探针和service mesh。
轻量高效。不需要额外搭建大数据平台。
模块化架构。UI、存储、集群管理多种机制可选。
支持告警。
优秀的可视化效果。
3, 为什么要使用skywallking
·随着分布式系统和微服务架构的出现,一次用户的请求会经过多个系统,不同服务之间的调用关系十分复杂,任何一个系统出错都可能影响整个请求的处理结果。以往的监控系统往往只能知道单个系统的健康状况、一次请求的成功失败,无法快速定位失败的根本原因。
链路追踪工具skywalking_第2张图片

4, 如何使用skywallking监控我们的服务
1).安装测试Skywallking
(1).下载服务端
下载地址: https://skywalking.apache.org/downloads/
选择下载压缩包
链路追踪工具skywalking_第3张图片

解压压缩包得到以下目录
链路追踪工具skywalking_第4张图片

(2).启动
进入bin 点击startup.bat (linux下使用.sh)
浏览器访问地址http://localhost:8080/
链路追踪工具skywalking_第5张图片

2).Skywallking监控JVM
(1),下载
从skywallking的官网网站上下载(https://skywalking.apache.org/downloads/)
Java代理官方文档
(https://skywalking.apache.org/docs/skywalking-java/latest/readme/)
java agent包,解压得以下目录
链路追踪工具skywalking_第6张图片

(2),运行
在我们的服务的启动参数添加注入代理参数
java -javaagent:/path/to/skywalking-agent/skywalking-agent.jar -DSW_AGENT_NAME=web-client -DSW_AGENT_COLLECTOR_BACKEND_SERVICES=127.0.0.1:11800 -jar yourApp.jar

-javaagent skywalking-agent 代理jar包路径
-DSW_AGENT_NAME 当前服务名称
-DSW_AGENT_COLLECTOR_BACKEND_SERVICES skywalking服务地址

traceId在日志文件中打印
https://skywalking.apache.org/docs/skywalking-java/latest/en/setup/service-agent/java-agent/application-toolkit-log4j-2.x/
链路追踪工具skywalking_第7张图片

项目引入依赖

org.apache.skywalking
apm-toolkit-log4j-2.x


org.apache.skywalking
apm-toolkit-trace


org.apache.skywalking
apm-toolkit-opentracing

日志就会输出我们的traceId

(3),调用演示

不配置DSW_AGENT_COLLECTOR_BACKEND_SERVICES 的情况下默认值就是127.0.0.1:11800

A消费服务添加代理并启动
链路追踪工具skywalking_第8张图片

B生产者服务
链路追踪工具skywalking_第9张图片

在webMangeServer发起登录接口调用,登录接口的调用链路已知
webMangeServer -> center-user-provider
链路追踪工具skywalking_第10张图片

登录skywalking管理端http://localhost:8080/
查看服务列表,可以看到我们注册了两个服务
链路追踪工具skywalking_第11张图片

进入web-manger服务 点击trace, 可以看到我们调用的登录接口的记录,以及调用center-user的过程,接口的总耗时和每个过程的耗时情况,紫色的代表web-manger,蓝色的代表center-user
链路追踪工具skywalking_第12张图片

点击查看日志可以看到本次调用链路相关服务的聚合id
链路追踪工具skywalking_第13张图片

(4),Skywalking基本页面释义
Overview 概述
Service Apdex 服务性能指数
Success Rate 响应成功率
Service Load (calls / min) 服务每分钟负载次数
Service Avg Response Time (ms) 服务平均响应耗时
Service Apdex 服务性能指数统计
Service Response Time Percentile (ms) 服务响应耗时百分比
p99:单个请求响应耗时从小到大排列,顺序处于90%位置的值即为P99 值。
P95: 单个请求响应耗时从小到大排列,顺序处于95%位置的值即为P95 值
Success Rate (%) 响应成功率统计
Service Load (calls / min) 服务每分钟负载次数统计
Message Queue Consuming Count 队列消费者消费条数统计
Message Queue Avg Consuming Latency (ms) 队列消费者消费平均延迟统计
Service Instances Load (calls / min) 服务实例负载地址
Slow Service Instance (ms) 慢服务实例负载地址
Service Instance Success Rate (%) 服务实例成功率
链路追踪工具skywalking_第14张图片

服务实例列表
点击实例名称,可以看到实例的概览和jvm监控,日志等数据
链路追踪工具skywalking_第15张图片

服务端点列表
服务端点,指埋点位置
链路追踪工具skywalking_第16张图片

服务拓扑图
链路追踪工具skywalking_第17张图片

指定端点统计分析
我们可以指定某一个端点,获取改端点一段时间之内的采样统计分析
链路追踪工具skywalking_第18张图片

你可能感兴趣的:(skywalking,skywalking,网络,java)