什么是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(%):当前端点每个时间段的请求成功率;
标签:服务,端点,Service,实例,JVM,链路,skywalking,当前,分布式 From: https://www.cnblogs.com/muyi-yang/p/18369486