skywalking-ui使用指南
1. 概述
整个skyWalking 分为三个区域(如下图):
- 功能选项卡选择区:这里列出了主要特性,下面会介绍细节
- 重载区:控制重新加载机制,包括定期重新加载或手动重新加载
- 时间选择器:控制时区和时间范围、语言切换
2. 详细介绍
2.1 功能选型卡选择区
2.1.1 仪表盘
仪表盘是我们进入skywalking的首页。他提供多个指示板来可视化指标,例如:服务(APM)
、数据库(Database)、istio等等。接下来,会着重介绍APM和Database面板。
如图
2.1.1.1 APM
APM面板总体分为四块:global(全局)、service(服务)、instance(实例)、endpoint(端点),提供筛选功能。每块都包含一些指标。
global(全局)指标:
- Services Load(CPM - calls per minute):服务每分钟请求数
- Slow Services(ms):慢响应服务(响应时间排序top n)
- Un-Health Services (Apdex):Apdex分数(本文附录1有详细介绍,也可直接查看Apdex in WIKI)
Apdex是根据设定的阈值和响应时间结合考虑的衡量标准。它是满意响应时间和不满意响应时间相对于总响应时间的比率。它衡量的是用户对你的服务的满意程度,因为传统的指标(如平均响应时间)可能很快就会容易形成偏差。
- Slow Endpoints (ms):endpoint的平均响应耗时排序,单位ms
- Global Response Latency(percentile in ms):响应时间百分比,不同百分比的延时时间,单位ms
percentile标签含义(p99、p95、pxx等):例如p99为3500ms, 这意味着 99% 的请求应该比3500ms更快
参考:https://stackoverflow.com/questions/12808934/what-is-p99-latency
- Global Heatmap(ms):服务响应时间热力分布图,根据时间段内不同响应时间的数量显示颜色深度, 颜色越深,请求越多。
Service 指标
- Service Apdex 数字:Apdex分数(请参考上一章golbal的解释)
- Service Apdex 折线图:一段时间的Apdex分数
- Service Avg Response Time(ms):服务平均响应时间
- Service Response Time Percentile(ms):百分比响应延时(参考上一章golbal的解释)
- Successful Rate(%)数字:请求成功率
- Successful Rate(%)折线图:一段时间的请求成功率
- Service Load(CPM - calls per minute):每分钟调用数
- Service Load(CPM - calls per minute):一段时间的每分钟调用数
- Service Instances Load(CPM - calls per minute):每个实例每分钟请求数
- Slow Service Instance(ms):每个服务实例平均延时topN
- Service Instance Successful Rate(%):服务实例的请求成功率 topN
Instance 指标
- Service Instance Load(CPM - calls per minute):实例每分钟调用数
- Service Instance Successful Rate(%):实例调用成功比率
- Service Instance Latency(ms):实例响应延时
- JVM CPU(java service)%:jvm占用cpu百分比
- JVM Memory (java service)(MB):jvm内存占用大小,包含四个指标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)线程数
另外还有四个.net的指标,不涉及,暂不描述
Endpoint指标
- Endpoint Load in Current Service(CPM / PPM):每个端点(API)每分钟请求数
- Slow Endpoints in Current Service(ms):每个端点(API)的平均响应时间最慢top n,单位ms
- Successful Rate in Current Service(%):每个端点(API)的请求成功率
- Endpoint Load:当前端点每个时间段的请求数据
- Endpoint Avg Response Time:当前端点每个时间段的平均请求响应时间
- Endpoint Response Time Percentile(ms):当前端点每个时间段的响应时间占比
- Endpoint Successful Rate(%):当前端点每个时间段的请求成功率
2.1.1.2 Database
- Database Avg Response Time(ms):当前数据库平均响应时间,单位ms
- Database Access Successful Rate(%):当前数据库访问成功率
- Database Traffic(CPM: Calls Per Minute):当前数据库每分钟请求数
- Database Access Latency Percentile(ms):数据库不同比例的响应时间,单位ms
- Slow Statements(ms):前N个慢查询,单位ms
- All Database Loads(CPM: Calls Per Minute):所有数据库中请求量排序
- Un-Health Databases:所有数据库不健康排名,请求成功率排名,失败最多的请求在最上。
2.1.2 拓扑图
可以描述服务与服务直接的联系,例如下图,我们可以清晰的看到有服务依赖了redis、服务依赖了飞书开放平台等。
2.2.3 追踪
查看每个接口的调用链,每个链路耗时、状态。如果为失败,还会展示错误信息,如果是数据库,会展示查询语句。另外可以根据追踪id(trace id)和标记(tag)筛选(这里trace id和tag 涉及到日志上报skywalking,下一篇文章介绍)。
如下图:
点击查看详情:
2.2.4 性能剖析
性能剖析通过新建任务,对不同端点进行采样,提供更详细的报告。目前看起来,比追踪多了线程栈的信息、慢方法提示
新建任务
查看详细分析
2.2.5 日志
界面只提供查看日志功能,如何配置下篇文章介绍
2.2.6 告警
界面只提供查看告警记录功能,如何配置告警之后的文章介绍
2.2 重载区
提供页面自动刷新配置和手动刷新按钮
2.3 时间选择器
选择时间、语言、时区
附:
1. Apdex介绍
介绍:
本部分摘自:skywalking官方文档
Apdex是根据设定的阈值和响应时间结合考虑的衡量标准。它是满意响应时间和不满意响应时间相对于总响应时间的比率。
Apdex是根据应用和服务的响应时间来衡量使用者满意程度的行业标准。它衡量的是用户对你的服务的满意程度,因为传统的指标(如平均响应时间)可能很快就会容易形成偏差。
基于满意度的响应时间,表示特定服务的往返响应时间小于设定的阈值的次数。不满意响应时间虽然意思相反,但又进一步分为容忍型和失望型。容忍型包括了了任何响应时间不超过四倍阈值的表现,而任何超过四倍阈值或遇到了错误的表现都被认为是失望型。这里提到的阈值是我们对任意服务所期望的理想响应表现。我们可以设置一个全局范围的阈值,如,500ms。
Apdex得分是满意型请求和容忍型请求与做出的总请求的比率。
每个_满意的请求_算作一个请求,而每个_容忍的请求_算作半个_满意_的请求。
一个Apdex得分从0到1的范围内取值。0是最差的分数,表示用户总是感到失望;而’1’是最好的分数(100%的响应时间是令人满意的)。
这个分数的百分比表示也可以用作服务的健康指标。
数学表示:
Apdex得分的实际计算是通过以下公式实现的:
满意请求数 + ( 容忍请求数 / 2 )
Apdex 得分 = ------------------------------------------------------
总请求数
此公示得到的百分率,即可视为服务的健康度。
样例计算:
在两分钟的采样时间内,主机处理200个请求。
Apdex阈值T设置为0.5秒(500ms)。
*. 170个请求在500ms内被处理完成,它们被分类为满意型。 *. 20个请求在500ms和2秒间被处理,它们被分类为容忍型。 *. 剩余的10个请求没有被正确处理或者处理时间超过了2秒,所以它们被分类为失望型。
最终的Apdex得分是0.9,即(170 + (20 / 2))/ 200。
Q&A
- 进来没数据怎么办?
检查首页右上角自动刷新是否开启
https://skyapm.github.io/document-cn-translation-of-skywalking/zh/8.0.0/ui/
https://skywalking.apache.org/docs/main/v8.5.0/en/ui/readme/
skywalking-ui介绍视频:
https://www.youtube.com/watch?v=mfKaToAKl7k