MCPcopy
hub / github.com/dianping/cat

github.com/dianping/cat @3.1.0 sqlite

repository ↗ · DeepWiki ↗ · release 3.1.0 ↗
16,518 symbols 57,271 edges 1,969 files 524 documented · 3%
README

CAT

GitHub stars GitHub forks Maven Central License Build

CAT 简介

  • CAT 是基于 Java 开发的实时应用监控平台,为美团点评提供了全面的实时监控告警服务。
  • CAT 作为服务端项目基础组件,提供了 Java, C/C++, Node.js, Python, Go 等多语言客户端,已经在美团点评的基础架构中间件框架(MVC框架,RPC框架,数据库框架,缓存框架等,消息队列,配置系统等)深度集成,为美团点评各业务线提供系统丰富的性能指标、健康状况、实时告警等。
  • CAT 很大的优势是它是一个实时系统,CAT 大部分系统是分钟级统计,但是从数据生成到服务端处理结束是秒级别,秒级定义是48分钟40秒,基本上看到48分钟38秒数据,整体报表的统计粒度是分钟级;第二个优势,监控数据是全量统计,客户端预计算;链路数据是采样计算。

Cat 产品价值

  • 减少故障发现时间
  • 降低故障定位成本
  • 辅助应用程序优化

Cat 优势

  • 实时处理:信息的价值会随时间锐减,尤其是事故处理过程中
  • 全量数据:全量采集指标数据,便于深度分析故障案例
  • 高可用:故障的还原与问题定位,需要高可用监控来支撑
  • 故障容忍:故障不影响业务正常运转、对业务透明
  • 高吞吐:海量监控数据的收集,需要高吞吐能力做保证
  • 可扩展:支持分布式、跨 IDC 部署,横向扩展的监控系统

由于仓库的git历史记录众多,对于不关注历史,只关注最新版本或者基于最新版本贡献的新用户,可以在第一次克隆代码时增加--depth=1参数以加快下载速度,如

git clone --depth=1 https://github.com/dianping/cat.git

更新日志

  • 最新版本特性一览

    • 注意cat的3.0代码分支更新都发布在master上,包括最新文档也都是这个分支
    • 注意文档请用最新master里面的代码文档作为标准,一些开源网站上面一些老版本的一些配置包括数据库等可能遇到不兼容情况,请以master代码为准,这份文档都是美团点评内部同学为这个版本统一整理汇总。内部同学已经核对,包括也验证过,如果遇到一些看不懂,或者模糊的地方,欢迎提交PR。
    • 多语言客户端:Java、C/C++、Node.js、Python、Go 传送门

    • 消息采样聚合

    • 序列化协议升级
    • 全新文件存储引擎

监控模型:

支持 Transaction、Event、Heartbeat、Metric 四种消息模型。 模型设计

模块简介

功能模块

  • cat-client: 客户端,上报监控数据
  • cat-consumer: 服务端,收集监控数据进行统计分析,构建丰富的统计报表
  • cat-alarm: 实时告警,提供报表指标的监控告警
  • cat-hadoop: 数据存储,logview 存储至 Hdfs
  • cat-home: 管理端,报表展示、配置管理等
  1. 根目录下 cat-client 模块以后不再维护,下个大版本更新计划移除。新版Java客户端参考:lib/java
  2. 管理端、服务端、告警服务均使用 cat-home 模块部署即可

其他模块

  • integration:cat和一些第三方工具集成的内容(此部分一部分是由社区贡献,一部分官方贡献)
  • lib:CAT 的客户端,包括 Java、C/C++、Python、Node.js、Go
  • script:CAT 数据库脚本

Quick Start

服务端

项目设计

Copyright and License

Apache 2.0 License.

CAT 接入公司

Alt text

更多接入公司,欢迎在 https://github.com/dianping/cat/issues/753 登记

联系我们

我们需要知道你对Cat的一些看法以及建议:

Extension points exported contracts — how you extend this code

CatPropertyProvider (Interface)
应用属性配置SPI 此为配置的接口和扩展点,如具体应用要扩展,请实现此接口并在应用如下文件中指定实现类 META-INF\services\com.dianping.cat.CatPropertyProvider @author qxo [14 …
cat-client/src/main/java/com/dianping/cat/CatPropertyProvider.java
ClassPathPreSetProcessor (Interface)
@author andersen [4 implementers]
integration/javaagent-client-agent/cat-client-agent/src/main/java/com/qbao/catagent/ClassPathPreSetProcessor.java
Handler (Interface)
(no doc) [24 implementers]
integration/URL/CatFilter.java
Spliter (Interface)
(no doc) [8 implementers]
cat-alarm/src/main/java/com/dianping/cat/alarm/spi/spliter/Spliter.java
Context (Interface)
(no doc) [6 implementers]
lib/java/src/main/java/com/dianping/cat/Cat.java
IToken (Interface)
(no doc) [91 implementers]
cat-home/src/main/java/com/dianping/cat/system/page/login/spi/IToken.java
SyncHandler (Interface)
(no doc) [15 implementers]
cat-core/src/main/java/com/dianping/cat/task/TimerSyncTask.java
StorageBuilder (Interface)
(no doc) [6 implementers]
cat-consumer/src/main/java/com/dianping/cat/consumer/storage/builder/StorageBuilder.java

Core symbols most depended-on inside this repo

require
called by 3373
cat-home/src/main/webapp/assets/js/editor/ace.js
lookahead1W
called by 2192
cat-home/src/main/webapp/assets/js/editor/worker-xquery.js
shift
called by 1968
cat-home/src/main/webapp/assets/js/editor/worker-xquery.js
find
called by 1844
cat-hadoop/src/main/java/org/unidal/cat/message/storage/Block.java
shiftT
called by 1795
cat-home/src/main/webapp/assets/js/editor/worker-xquery.js
get
called by 1684
cat-hadoop/src/main/java/org/unidal/cat/message/storage/Bucket.java
getLine
called by 1646
cat-core/src/main/java/com/dianping/cat/message/codec/WaterfallMessageCodec.java
append
called by 1643
cat-client/src/main/java/com/dianping/cat/log4j/CatAppender.java

Shape

Method 9,274
Function 5,612
Class 1,383
Interface 133
Enum 109
Struct 6
FuncType 1

Languages

Java65%
TypeScript34%
Python1%
Go1%

Modules by API surface

cat-home/src/main/webapp/assets/js/editor/worker-xquery.js626 symbols
cat-home/src/main/webapp/assets/js/uncompressed/fullcalendar.js252 symbols
cat-home/src/main/webapp/assets/js/editor/worker-javascript.js174 symbols
cat-home/src/main/webapp/assets/js/editor/worker-html.js171 symbols
cat-home/src/main/webapp/assets/js/editor/keybinding-vim.js157 symbols
cat-home/src/main/webapp/assets/js/editor/ace.js151 symbols
cat-home/src/main/webapp/assets/js/uncompressed/jquery.dataTables.js146 symbols
cat-home/src/main/webapp/js/datatable/datatables.min.js127 symbols
cat-home/src/main/webapp/assets/js/jquery.dataTables.min.js121 symbols
cat-home/src/main/webapp/assets/js/uncompressed/jqGrid/jquery.jqGrid.src.js96 symbols
cat-home/src/main/webapp/assets/js/editor/worker-lua.js91 symbols
cat-home/src/main/webapp/js/jquery.dataTables.min.js90 symbols

Dependencies from manifests, versioned

ch.qos.logback:logback-classic1.1.7 · 1×
com.alibaba:dubbo2.5.3 · 1×
com.alibaba:fastjson1.2.47 · 1×
com.dianping.cat:cat-alarm
com.dianping.cat:cat-client2.0.0 · 1×
com.dianping.cat:cat-consumer
com.dianping.cat:cat-core
com.dianping.cat:cat-hadoop
com.google.code.javaparser:javaparser1.0.8 · 1×
com.mchange.v2:c3p00.9.5.1 · 1×

Datastores touched

(mysql)Database · 1 repos
mydbDatabase · 1 repos

For agents

$ claude mcp add cat \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact