18.1k star,cat链路监控系统,部分场景很强

2024-09-26 09:46:20 浏览数 (1)

18.1k star,cat链路监控系统,部分场景很强

记得之前在一家公司,最怕听到的一句话就是,“cat飘红了,快看一下”,cat同样是一款开源的链路监控软件,而且cat的dashboard很直观,一旦链路中有个节点异常,出现问题还是很快可以看到的,尤其是当领导只关注这个大屏的时候。

区别于skywalking和pinpoint,cat接入是需要修改代码的,如果第一次接入的话,需要研发配合去调整。

CAT (Application Performance Monitoring Tool) 简介

CAT(Application Performance Monitoring Tool)是一个基于Java开发的实时应用监控平台,为美团点评提供了全面的实时监控告警服务。CAT的设计目标是帮助企业追踪和分析应用程序的性能,及时发现和解决潜在的问题,从而提高应用程序的可用性和性能。

CAT作为一个服务端项目基础组件,不仅提供了Java客户端,还支持多种编程语言的客户端,包括C/C 、Node.js、Python、Go等,这使得CAT能够深度集成到美团点评的各种业务线中,为其提供了丰富的性能指标、健康状况和实时告警功能。CAT的强大之处在于它的实时性,它能够以秒级的精度监控和报告性能数据,从数据生成到服务端处理仅需数秒,确保企业能够迅速响应和解决性能问题。

CAT的产品价值体现在以下几个方面:

  1. 减少故障发现时间: CAT能够实时监控应用程序的性能,帮助企业迅速发现潜在的故障和问题,减少了故障的发现时间。
  2. 降低故障定位成本: CAT提供了全量数据采集和预计算,为企业提供了深度分析故障案例的能力,从而降低了故障定位的成本。
  3. 辅助应用程序优化: CAT不仅可以监控性能问题,还可以帮助企业优化应用程序,提高其性能和可用性。

CAT的优势在于:

  • 实时处理: CAT的实时性使得企业能够及时响应性能问题,特别是在事故处理过程中,信息的实时性至关重要。
  • 全量数据: CAT采集的是全量指标数据,而不是抽样数据,这使得企业能够进行深度分析和诊断性能问题。
  • 高可用: CAT的高可用性保证了故障还原和问题定位不会影响业务的正常运行,对业务透明。
  • 故障容忍: CAT能够在故障发生时仍然保持对业务的监控,确保业务不受影响。
  • 高吞吐: CAT能够处理海量的监控数据,保证了高吞吐能力,适用于大规模应用。
  • 可扩展: CAT支持分布式和跨IDC部署,可以横向扩展以满足监控系统的需求。

CAT的监控模型支持四种消息模型,包括Transaction(事务)、Event(事件)、Heartbeat(心跳)和Metric(指标)。这些模型设计得非常灵活,可以满足各种应用场景的需求。

CAT的功能模块包括:

  • cat-client: 客户端模块,用于上报监控数据。
  • cat-consumer: 服务端模块,用于收集监控数据进行统计分析,并生成丰富的统计报表。
  • cat-alarm: 实时告警模块,提供报表指标的监控告警功能。
  • cat-hadoop: 数据存储模块,用于将监控数据存储至Hadoop的HDFS中。
  • cat-home: 管理端模块,用于展示报表和管理配置等功能。

cat部署目前支持docker部署,可以快速体验下:

说明

支持本机模式快速部署。

docker/Dockerfile包含CAT依赖的环境,可以作为源码部署的参考。

默认的运行方式是集成了一个mysql镜像,可以修改为自己的mysql的详细配置。默认运行的mysql服务,将mysql数据挂载到了docker/mysql/volume中。

代码语言:bash复制
cd docker
docker-compose up

第一次运行以后,数据库中没有表结构,需要通过下面的命令创建表:

代码语言:bash复制
docker exec <container_id> bash -c "mysql -uroot -Dcat < /init.sql"

说明:<container_id>需要替换为容器的真实id。通过 docker ps 可以查看到mysql容器id

依赖配置说明

  • datasources.xml CAT数据库配置,默认配置是mysql镜像,可以按需替换
  • docker-compose.yml 通过docker-compose启动的编排文件,文件中包含cat和mysql。可以屏蔽掉mysql的部分,并且修改cat的环境变量,改为真实的mysql连接信息。
  • client.xml CAT 初始化默认的路由列表,配置此文件可以将客户端数据上报指向到不同环境。
  • datasources.sh 辅助脚本,脚本作用时修改datasources.xml,使用环境变量中制定的mysql连接信息。(通过sed命令替换)

总之,CAT是一个强大的实时应用监控平台,为企业提供了丰富的性能监控和告警服务,有助于提高应用程序的可用性、性能和稳定性。通过CAT,企业能够更好地监控和管理其应用程序,及时发现并解决性能问题,提供更好的用户体验。·

0 人点赞