实时应用监控平台-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
    }
  }

服务端

设计架构

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容