CAT 简介
- 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 监控视图
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。