分布式链路追踪 skywalking 指南

什么是skywalking?

SkyWalking是一个开源的可观察性平台,用于收集,分析,聚合和可视化来自本地或者云服务中的数据。即使在整个云环境中,SkyWalking也能提供一种简便的方法来维护您的分布式系统的清晰视图。它是一个现代的APM(Application Performance Monitor 应用性能监测软件),专门为基于云、容器的分布式系统而设计。

SkyWalking提供了用于在许多不同情况下观察和监视分布式系统的解决方案,并通过agent方式,做到高性能、低损耗、无侵入性,与类似的功能组件如:Zipkin、Pinpoint、CAT相比,skywalking无论是从性能还是社区活跃度方面考虑,都具有一定的优势。

skywalking监控维度

skywalking从三个维度提供可观察项功能,分别是:服务,服务实例,端点

服务:表示一组/一组工作负载,这些工作负载为传入请求提供相同的行为。

服务实例:服务组中的每个单独工作负载都称为实例。像pods在Kubernetes中一样,它不必是单个OS进程,但是,如果您使用agent代理,则实例实际上是一个真正的OS进程。

端点:服务中用于传入请求的路径,例如HTTP URI路径或gRPC服务类+方法签名。

skywalking架构

从逻辑上看,skywalking分为四个部分:探针,平台后端,存储和UI。

  • 探针:收集数据并重新格式化以符合SkyWalking的要求(不同的探针支持不同的来源)。
    • 平台后端:支持数据聚合,分析和流处理,涵盖跟踪,指标和日志。
    • 存储:设备通过开放/可插入的界面存储SkyWalking数据。您可以选择现有的实现,例如ElasticSearch,H2,MySQL,TiDB,InfluxDB,或者实现自己的实现。
    • UI:是一个高度可定制的基于Web的界面,允许SkyWalking最终用户可视化和管理SkyWalking数据

 

UI 界面

登陆后展示所有已接入服务

服务

拓扑图

链路追踪

JVM

单击服务名 admin-center-server -> instance -> JVM

 

点击对应服务即可查看对应服务所有信息

服务实例(Service Instance) :上述的一组工作负载中的每一个工作负载称为一个实例。就像 Kubernetes 中的 pods 一样, 服务实例未必就是操作系统上的一个进程。但当你在使用 Agent 的时候, 一个服务实例实际就是操作系统上的一个真实进程。

端点(Endpoint) :对于特定服务所接收的请求路径, 如 HTTP 的 URI 路径和 gRPC 服务的类名 + 方法签名。

这里,我们可以看到 Spring Boot 应用的一个端点,为 API 接口 /demo/echo

数据库

 

名词解释

提供筛选功能。每块都包含一些指标。若打开时没有数据选择右上角时间范围查看,

Apdex(Application Performance Index,应用性能指数)

服务吞吐量,单位为CPM(calls per minute,每分钟的调用次数)

端点百分位,包括 p99, p95, p90, p75, p50,单位为毫秒

Overview(全局)

Service(服务)

Instance(实例)

Endpoint(端点)

Topology(拓扑)

Trace(追踪)

 

Overview 指标

Service Apdex 数字:当前服务的Apdex分数;

 

Successful Rate(%):当前服务的请求成功率;

Service Load (CPM / PPM)数字:每分钟调用次数(CPM),如果是TCP,表示每分钟的数据包数(PPM);

Service Avg Response Time(ms):当前服务平均响应时间;

Service Apdex 折线图:当前服务一段时间内的Apdex分数;

Service Response Time Percentile(ms):当前服务的百分比响应延时;

Successful Rate(%)折线图:当前服务一段时间内的请求成功率;

Service Load (CPM / PPM)折线图:当前服务一段时间内的每分钟调用次数;

Service Throughput(Bytes):服务吞吐量,只适用于TCP服务;

Message Queue Consuming Count:消息队列消费数;

Message Queue Avg Consuming Latency(ms):消息队列平均延迟时间;

Service Instances Load(CPM / PPM):每个实例每分钟请求数;

Slow Service Instance(ms):每个服务实例平均延时;

Service Instance Successful Rate(%):服务实例的请求成功率。

Instance 指标

Service Instance Load(CPM / PPM):当前实例每分钟调用数;

 

Service Instance Throughput(Bytes):当前实例的吞吐流量;

Service Instance Successful Rate(%):当前实例调用成功比率;

Service Instance Latency(ms):当前实例响应延时;

JVM CPU(Java Service)%:当前实例JVM的CPU占用百分比(相对于主机);

JVM Memory (Java Service)(MB):当前实例的内存占用大小;

共四个指标instance_jvm_memory_heap(堆内存使用)、instance_jvm_memory_heap_max(最大堆内存)、instance_jvm_memory_noheap(直接内存使用)、- instance_jvm_memory_noheap_max(最大直接内存)

 

JVM GC Time(ms):JVM 垃圾回收时间,包含young gc和old gc;

JVM GC Count:JVM垃圾回收次数,包含young gc count和old gc count;

JVM Thread Count(java service):当前实例的线程数;

JVM Thread State Count (Java Service):当前实例的各状态线程数;

JVM Class Count (Java Service):当前实例类的计数。

Endpoint指标

Endpoint Load in Current Service(CPM / PPM):当前服务每个端点的每分钟请求数;

 

Slow Endpoints in Current Service(ms):当前服务每个端点的平均响应时间;

Successful Rate in Current Service(%):当前服务每个端点的请求成功率;

Endpoint Load:当前端点每个时间段的请求量;

Endpoint Avg Response Time(ms):当前端点每个时间段的平均请求响应时间;

Endpoint Response Time Percentile(ms):当前端点每个时间段的响应时间占比;

Endpoint Successful Rate(%):当前端点每个时间段的请求成功率;

 

posted @   木易-故事里的人  阅读(171)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· AI与.NET技术实操系列(六):基于图像分类模型对图像进行分类
点击右上角即可分享
微信分享提示