07、CAT监控界面介绍

本文详细解析CAT应用监控系统的七大核心报表功能,包括Dashboard仪表盘、Transaction事务监控、Event事件统计、Problem问题追踪、Heartbeat心跳报告、Business业务指标及State状态信息,帮助开发者全面掌握系统性能与异常监控。

1 DashBoard

DashBoard仪表盘显示了每分钟出现错误的系统及其错误的次数和时间。

 

  • 点击右上角的时间按钮可以切换不同的展示时间,-7d代表7天前,-1h代表1小时前,now定位到当前时间
  • 上方的时间轴按照分钟进行排布,点击之后可以看到该时间到结束的异常情况
  • 下方标识了出错的系统和出错的时间、次数,点击系统名称可以跳转到Problem报表

2 Transaction

Transaction报表用来监控一段代码运行情况: 运行次数、QPS、错误次数、失败率、响应时间统计(平均影响时间、Tp分位值)等等 。

应用启动后默认会打点的部分:

打点来源组件描述
Systemcat-client上报监控数据的打点信息
URL需要接入cat-filterURL访问的打点信息

小时报表

Type统计界面展示了一个Transaction的第一层分类的视图,可以知道这段时间里面一个分类运行的次数,平均响应时间,延迟,以及分位线。

 

从上而下分析报表:

(1)报表的时间跨度 CAT默认是以一小时为统计时间跨度,点击[切到历史模式],更改查看报表的时间跨度:默认是小时模式;切换为历史模式后,右侧快速导航,变为month(月报表)、week(周报表)、day(天报表),可以点击进行查看,注意报表的时间跨度会有所不同。

(2)时间选择 通过右上角时间导航栏选择时间:点击[+1h]/[-1h]切换时间为下一小时/上一小时;点击[+1d]/[-1d]切换时间为后一天的同一小时/前一天的同一小时;点击右上角[+7d]/[-7d]切换时间为后一周的同一小时/前一周的同一小时;点击[now]回到当前小时。

(3)项目选择 输入项目名,查看项目数据;如果需要切换其他项目数据,输入项目名,回车即可。

(4)机器分组 CAT可以将若干个机器,作为一个分组进行数据统计。默认会有一个All分组,代表所有机器的统计数据,即集群统计数据。

(5)所有Type汇总表格 第一层分类(Type),点击查看第二级分类(称为name)数据:

 

  • Transaction的埋点的Type和Name由业务自己定义,当打点了Cat.newTransaction(type,name)时,第一层分类是type,第二级分类是name。
  • 第二级分类数据叫是统计相同type下的所有name数据,数据均与第一级(type)一样的展示风格

(6)单个Type指标图表 点击show,查看Type所有name分钟级统计,如下图:

 

(7)指标说明 显示的是小时粒度第一级分类(type)的次数、错误数、失败率等数据。

(8)样本logview L代表logview,为一个样例的调用链路。

 

(9)分位线说明 小时粒度的时间第一级分类(type)相关统计

  • 95line表示95%的请求的响应时间比参考值要小,999line表示99.9%的响应时间比参考值要小,95line以及99line,也称之为tp95、tp99。

历史报表

Transaction历史报表支持每天、每周、每月的数据统计以及趋势图,点击导航栏的切换历史模式进行查询。Transaction历史报表以响应时间、访问量、错误量三个维度进行展示,以天报表为例:选取一个type,点击show,即可查看天报表。

3 Event

Event报表监控一段代码运行次数: 例如记录程序中一个事件记录了多少次,错误了多少次 。Event报表的整体结构与Transaction报表几乎一样,只缺少响应时间的统计。

第一级分类(Type)统计界面

Type统计界面展示了一个Event的第一层分类的视图,Event相对于Transaction少了运行时间统计。可以知道这段时间里面一个分类运行的次数,失败次数,失败率,采样logView,QPS。

 

第二级分类(Name)统计界面

第二级分类在Type统计界面中点击具体的Type进入,展示的是相同type下所有的name数据,可以理解为某type下更细化的分类。

 

4 Problem

Problem记录整个项目在运行过程中出现的问题,包括一些异常、错误、访问较长的行为。Problem报表是由logview存在的特征整合而成,方便用户定位问题。 来源:

1、 业务代码显示调用Cat.logError(e)API进行埋点,具体埋点说明可查看埋点文档;
2、 与LOG框架集成,会捕获log日志中有异常堆栈的exception日志;
3、 long-url,表示Transaction打点URL的慢请求;
4、 long-sql,表示Transaction打点SQL的慢请求;
5、 long-service,表示Transaction打点Service或者PigeonService的慢请求;
6、 long-call,表示Transaction打点Call或者PigeonCall的慢请求;
7、 long-cache,表示Transaction打点Cache.开头的慢请求;

所有错误汇总报表 第一层分类(Type),代表错误类型,比如error、long-url等;第二级分类(称为Status),对应具体的错误,比如一个异常类名等。

 

错误数分布 点击type和status的show,分别展示type和status的分钟级错误数分布:

 

5 HeartBeat

Heartbeat报表是CAT客户端,以一分钟为周期,定期向服务端汇报当前运行时候的一些状态。

JVM相关指标

以下所有的指标统计都是1分钟内的值,cat最低统计粒度是一分钟。

JVM GC相关指标描述
NewGc Count / PS Scavenge Count新生代GC次数
NewGc Time / PS Scavenge Time新生代GC耗时
OldGc Count老年代GC次数
PS MarkSweepTime老年代GC耗时
Heap UsageJava虚拟机堆的使用情况
None Heap UsageJava虚拟机Perm的使用情况

 

JVM Thread 相关指标描述
Active Thread系统当前活动线程
Daemon Thread系统后台线程
Total Started Thread系统总共开启线程
Started Thread系统每分钟新启动的线程
CAT Started Thread系统中CAT客户端启动线程

 

可以参考java.lang.management.ThreadInfo的定义

系统指标

System 相关指标描述
System Load Average系统Load详细信息
Memory Free系统memoryFree情况
FreePhysicalMemory物理内存剩余空间
/ Free /根的使用情况
/data Free/data盘的使用情况

 

6 Business

Business报表对应着业务指标,比如订单指标。与Transaction、Event、Problem不同,Business更偏向于宏观上的指标,另外三者偏向于微观代码的执行情况。

场景示例:

  1. 我想监控订单数量。
  2. 我想监控订单耗时。

 

基线

基线是对业务指标的预测值。

基线生成算法:

最近一个月的4个每周几的数据加权求和平均计算得出,秉着更加信任新数据的原则,cat会基于历史数据做异常点的修正,会把一些明显高于以及低于平均值的点剔除。

举例:今天是2018-10-25(周四),今天整天基线数据的算法是最近四个周四(2018-10-18,2018-10-11,2018-10-04,2018-09-27)的每个分钟数据的加权求和或平均,权重值依次为1,2,3,4。

如:当前时间为19:56分设为value,前四周对应的19:56分数据(由远及近)分别为A,B,C,D,则value =(A+2B+3C+4D) / 10。

对于刚上线的应用,第一天没有基线,第二天的基线基线是前一天的数据,以此类推。

如何开启基线

只有配置了基线告警的指标,才会自动计算基线。如需基线功能,请配置基线告警。

注意事项

1、 打点尽量用纯英文,不要带一些特殊符号,例如空格()、分号(:)、竖线(|)、斜线(/)、逗号(,)、与号(&)、星号(*)、左右尖括号(<>)、以及一些奇奇怪怪的字符;
2、 如果有分隔需求,建议用下划线(_)、中划线(-)、英文点号(.)等;
3、 由于数据库不区分大小写,请尽量统一大小写,并且不要对大小写进行改动;
4、 有可能出现小数:趋势图每个点都代表一分钟的值假设监控区间是10分钟,且10分钟内总共上报5次,趋势图中该点的值为5%10=0.5;

7 State

State报表显示了与CAT相关的信息。

 

版权声明:本文不是「本站」原创文章,版权归原作者所有 | 原文地址: