实时应用监控平台-CAT

介绍

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
    }
  }

服务端

设计架构

你可能感兴趣的:(实时应用监控平台-CAT)