介绍
CAT(Central Application Tracking)是一个实时和接近全量的监控系统,它侧重于对Java应用的监控,基本接入了美团点评上海侧所有核心应用。目前在中间件(MVC、RPC、数据库、缓存等)框架中得到广泛应用,为美团点评各业务线提供系统的性能指标、健康状况、监控告警等。自2014年开源以来,除了美团点评之外,CAT还在携程、陆金所、猎聘网、找钢网等多家互联网公司生产环境应用
客户端
设计架构
如上图所示,业务执行业务逻辑的时候,就会把此次请求对应的监控存放于线程上下文中,存于上下文的其实是一个监控树的结构。在最后业务线程执行结束时,将监控对象存入一个异步内存队列中,CAT有个消费线程将队列内的数据异步发送到服务端。
示例代码
public void sample() {
String pageName = "";
String serverIp = "";
Transaction t = Cat.newTransaction("URL", pageName);// 创建一个Transaction
try {
// 记录一个事件
Cat.logEvent("URL.Server", serverIp, Event.SUCCESS, "ip=" + serverIp + "&...");
// 记录一个业务指标,主要衡量单位时间内的次数总和
Cat.logMetricForCount("OrderCount");
// 记录一个timer类的业务指标,主要衡量单位时间内平均值
Cat.logMetricForDuration("KeyForTimer", 5);
yourBusiness():// 自己业务代码
t.setStatus(Event.SUCCESS);// 设置状态
} catch (Exception e) {
t.setStatus(e);// 设置错误状态
} finally {
t.complete();// 结束Transaction
}
}