2024-08-16 17:52:20

CAT 对接观测云最佳实践

摘要
CAT,一款基于Java开发的实时应用监控平台,由美团点评打造,旨在提供全面的实时监控与告警服务。它不仅支持多种编程语言如Java、C/C++、Node.js、Python和Go,还深度集成了美团点

CAT,一款基于Java开发的实时应用监控平台,由美团点评打造,旨在提供全面的实时监控与告警服务。它不仅支持多种编程语言如Java、C/C++、Node.js、Python和Go,还深度集成了美团点评的基础架构中间件框架,包括MVC、RPC框架、数据库与缓存框架等,确保了业务线的高性能与稳定性。CAT的优势在于其实时性与全量数据统计能力,数据处理延迟在秒级,同时采用客户端预计算与链路数据采样计算,实现高效的数据管理和分析。Datakit对CAT的支持主要体现在native数据传输协议上,能够有效处理交易开始(transaction start)等数据类型,将其映射至观测云中的trace数据类型,进一步提升了监控数据的采集与分析效率。

CAT 对接观测云最佳实践

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 监控视图

声明:文章不代表本站观点及立场,不构成本平台任何投资建议。投资决策需建立在独立思考之上,本文内容仅供参考,风险自担!转载请注明出处!侵权必究!
回顶部