CAT介绍

1.CAT的定位

CAT是点评开源的一个实时监控系统,主要体现在监控报表Transaction、event、problem、heartbeat等,cat系统定制的监控模型以及定制的实时分析报表也是cat系统核心优势。这里强调了CAT相比于其他系统的二开优势。

这也是我选择CAT作为公司正式环境实时监控系统的一个主要原因。相较于其他APM监控系统,大部分使用的是字节码agent技术。公司现在研发对agent以及字节码技术掌握度不高。使用这些技术的链路追踪系统在公司现在的环境下很难进行定制以及维护。

 

2.CAT模型

CAT主要支持以下四种监控模型:

  • Transaction 适合记录跨越系统边界的程序访问行为,比如远程调用,数据库调用,也适合执行时间较长的业务逻辑监控,Transaction用来记录一段代码的执行时间和次数
  • Event 用来记录一件事发生的次数,比如记录系统异常,它和transaction相比缺少了时间的统计,开销比transaction要小
  • Heartbeat 表示程序内定期产生的统计信息, 如CPU利用率, 内存利用率, 连接池状态, 系统负载等
  • Metric 用于记录业务指标、指标可能包含对一个指标记录次数、记录平均值、记录总和,业务指标最低统计粒度为1分钟

 

3.CAT追踪的方式

CAT在跨进程和跨线程的情况需要使用context的方式把调用连接起来。连接需要有3个参数:子节点、父节点、根节点。在cat类定义了这样的接口:

public static interface Context {

   public final String ROOT = "_catRootMessageId";

   public final String PARENT = "_catParentMessageId";

   public final String CHILD = "_catChildMessageId";

   public void addProperty(String key, String value);

   public String getProperty(String key);
}

 

4.CAT如何使用

CAT的客户端使用比较好理解。根据上面模型的介绍。使用方式如下:

Transaction t = Cat.newTransaction("URL", "pageName");

try {
    Cat.logEvent("URL.Server", "serverIp", Event.SUCCESS, "ip=${serverIp}");
    Cat.logMetricForCount("metric.key");
    Cat.logMetricForDuration("metric.key", 5);

    yourBusiness();

    t.setStatus(Transaction.SUCCESS);
} catch (Exception e) {
    t.setStatus(e);
    Cat.logError(e);
} finally {
    t.complete();
}

 

5.总结

  1. 介绍了CAT的定位,是一个实时监控系统,优势在于容易二开和定制。
  2. 介绍了CAT的模型结构,Transaction 、Event 、Heartbeat 、Metric 模型的设计目的
  3. 介绍了使用CAT中context的3个参数来进行调用追踪
  4. 介绍了最简单CAT的使用方式。

后面会基于公司的场景来使用CAT

 

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值