CAT,一款基于Java开发的实时应用监控平台,由美团点评打造,旨在提供全面的实时监控与告警服务。它不仅支持多种编程语言如Java、C/C++、Node.js、Python和Go,还深度集成了美团点评的基础架构中间件框架,包括MVC、RPC框架、数据库与缓存框架等,确保了业务线的高性能与稳定性。CAT的优势在于其实时性与全量数据统计能力,数据处理延迟在秒级,同时采用客户端预计算与链路数据采样计算,实现高效的数据管理和分析。Datakit对CAT的支持主要体现在native数据传输协议上,能够有效处理交易开始(transaction start)等数据类型,将其映射至观测云中的trace数据类型,进一步提升了监控数据的采集与分析效率。
- CAT 是基于 Java 开发的实时应用监控平台,为美团点评提供了全面的实时监控告警服务。
- CAT 作为服务端项目基础组件,提供了 Java、C/C++、Node.js、Python、Go 等多语言客户端,已经在美团点评的基础架构中间件框架(MVC 框架,RPC 框架,数据库框架,缓存框架等,消息队列,配置系统等)深度集成,为美团点评各业务线提供系统丰富的性能指标、健康状况、实时告警等。
- CAT 很大的优势是它是一个实时系统,CAT 大部分系统是分钟级统计,但是从数据生成到服务端处理结束是秒级别,秒级定义是 48 分钟 40 秒,基本上看到 48 分钟 38 秒数据,整体报表的统计粒度是分钟级;第二个优势,监控数据是全量统计,客户端预计算;链路数据是采样计算。
- 官方 Github url: https://github.com/dianping/cat
- plaintext : 纯文本模式, Datakit 目前暂时不支持。
- native : 以特定符号为分隔符的文本形式,目前 Datakit 已经支持。
数据类型简写 | 类型 | 说明 | 当前版本的 Datakit 是否接入 | 对应到观测云中的数据类型 |
t | transaction start | 事务开始 | TRUE | trace |
T | transaction end | 事务结束 | TRUE | trace |
E | event | 事件 | FALSE | - |
M | metric | 自定义指标 | FALSE | - |
L | trace | 链路 | FALSE | - |
H | heartbeat | 心跳包 | TRUE | 指标 |
- 采集器:Datakit 安装
- Demo 程序: java demo
- 部署方式:主机部署
登录观测云,点击 集成 -> Cat 集成
采集器配置也可参考 Cat 官方文档:https://github.com/dianping/cat/wiki/readme_server
进入 DataKit 安装目录下的 conf.d/cat 目录,复制 cat.conf.sample 并命名为 cat.conf 。示例如下:
同时可以通过 ConfigMap 方式注入采集器配置来开启采集器
[[inputs.cat]]
## tcp port
tcp_port = "2280"
##native or plaintext, datakit only support native(NT1) !!!
decode = "native"
## This is default cat-client Kvs configs.
startTransactionTypes = "Cache.;Squirrel."
MatchTransactionTypes = "SQL"
block = "false"
routers = "127.0.0.1:2280;"
sample = "1.0"
## global tags.
# [inputs.cat.tags]
# key1 = "value1"
# key2 = "value2"
# ...
配置文件注意的地方:
- startTransactionTypes、 MatchTransactionTypes、 block、 routers、 sample 是返回给 client 端的数据。
- routers 是 Datakit 的 ip 或者域名。
- tcp_port 对应的是 client 端配置 servers ip 地址。
1、创建 /data/appdatas/cat 目录
确保你具有这个目录的读写权限。
2、创建 /data/applogs/cat 目录 (可选)
这个目录是用于存放运行时日志的,这将会对调试提供很大帮助,同样需要读写权限。
3、创建 /data/appdatas/cat/client.xml ,内容如下
<?xml version="1.0" encoding="utf-8"?>
<config mode="client">
<servers>
<!-- datakit ip, cat port , http port -->
<server ip="10.200.6.16" port="2280" http-port="9529"/>
</servers>
</config>
效果展示链路注意:配置中的 9529 端口是 Datakit 的 http 端口。2280 是 cat 采集器开通的 2280 端口。
登录观测云,点击 应用性能检测 -> 链路,查看链路详情。
指标登录观测云,点击 场景 -> 新建 Cat 监控视图