一、主要指标
1、CPM 每分钟请求数
cpm 全称 call per minutes,是吞吐量(Throughput)指标。下图是拼接的全局、服务、实例和接口的吞吐量及平均吞吐量。
第一条185cpm=185/60=3.08个请求/秒。
2、SLA 服务等级协议
SLA 全称 Service-Level Agreement,直译为 “服务等级协议”,用来表示提供服务的水平。
在IT中,SLA可以衡量平台的可用性,下面是N个9的计算:
1年 = 365天 = 8760小时
99 = 8760 * 1% => 3.65天
99.9 = 8760 * 0.1% => 8.76小时
99.99 = 8760 * 0.01% => 52.6分钟
99.999 = 8760 * 0.001% => 5.26分钟
因此,全年只要发生一次较大规模宕机事故,4个9肯定没戏,一般平台3个9差不多。
但2个9就基本不可用了,相当于全年有87.6小时不可用,每周(一个月按4周算)有1.825小时不可用。
下图是服务、实例、接口的SLA,一般看年度、月度即可。
3、RESPONSE TIME 响应时间
表示请求响应时间,对于人来说,响应时间最好不要超过2秒,超过就会觉得卡顿。对于系统接口交互来说,时间自然越短越好,500ms以内是比较好的。
4、RESPONSE TIME PERCENTILE
表示采集样本中某些值的占比,Skywalking 有 “p50、p75、p90、p95、p99” 一些列值。
途中的 “p99:37960” 表示 99% 请求的响应时间在390ms以内。
而99%一般用于抛掉一些极端值,表示绝大多数请求。
5、SLOW ENDPOINT 慢端点
Endpoint 表示具体的服务,例如一个接口。下面是全局Top N的数据,通过这个可以观测平台性能情况。
二、监控视角
1、HEATMAP 热力图
Heapmap 可译为热力图、热度图都可以,途中颜色越深,表示请求数越多,这和GitHub Contributions很像,commit越多,颜色越深。
横坐标是响应时间,鼠标放上去,可以看到具体的数量。
通过热力图,一方面可以直观感受平台的整体流量,另一方面也可以感受整体性能。
2、TOPOLOGY 拓扑图
拓扑图用来描述平台各服务之间的依赖关系,也可以理解为平台服务的整体结构。
下图是整体的依赖关系,正方体上面的小图标表示应用的类型,如:Spring MVC、H2、Kafka
当点中某个服务时,会展示该服务的依赖关系。左右也会有该服务的一些指标信息。
3、TRACE 追踪
利用Trace功能进行链路追踪,可以跟着请求穿透整个系统。
下面是检索到的一个ERROR请求,耗时 8326ms,跨度14表示14次依赖调用,例如:SpringRestTemplate、H2、Feign、Httpclient、Kafka等。
下图右侧可以了解每个跨度(Spans)的耗时情况,可以一眼看出哪些耗时长。
而树形结构的图可以看清层次关系。
而点到具体的跨度上,可以看到明细信息,如点到DB上可以看到具体执行的SQL。
4、ALARM告警信息
5、JVM 信息
实例中有JVM的堆、GC、CPU、CLR等信息,不过对于监控,Promethus 是个更好的选择。