Skip to content

Commit cc35efd

Browse files
committed
update docs
1 parent 691aeb5 commit cc35efd

File tree

14 files changed

+10373
-27
lines changed

14 files changed

+10373
-27
lines changed

.travis.yml

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
# 持续集成 CI
2+
# @see https://docs.travis-ci.com/user/tutorial/
3+
4+
language: node_js
5+
6+
sudo: required
7+
8+
node_js: stable
9+
10+
branches:
11+
only:
12+
- master
13+
14+
before_install:
15+
- export TZ=Asia/Shanghai
16+
17+
script: bash ./scripts/deploy.sh
18+
19+
notifications:
20+
email:
21+
recipients:
22+
23+
on_success: change
24+
on_failure: always

README.md

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -66,10 +66,15 @@
6666
- [Eclipse](docs/javatool/ide/eclipse.md)
6767
- [vscode](docs/javatool/ide/vscode.md)
6868

69-
### 监控
69+
### 监控/诊断
7070

71-
- [Arthas](docs/javatool/monitor/arthas.md)
71+
> [监控/诊断](docs/javatool/monitor) 工具主要用于 Java 应用的运维。通过采集、分析、存储、可视化应用的有效数据,帮助开发者、使用者快速定位问题,找到性能瓶颈。
72+
73+
- [监控工具对比](docs/javatool/monitor/monitor-summary.md)
74+
- [CAT](docs/javatool/monitor/cat.md)
75+
- [Zipkin](docs/javatool/monitor/zipkin.md)
7276
- [SkyWalking](docs/javatool/monitor/skywalking.md)
77+
- [Arthas](docs/javatool/monitor/arthas.md)
7378

7479
---
7580

38.7 KB
Binary file not shown.
15.2 KB
Binary file not shown.

docs/.vuepress/config.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ module.exports = {
4141
},
4242
{
4343
text: "监控",
44-
link: "/monitor/"
44+
link: "/javatool/monitor/"
4545
}
4646
]
4747
},

docs/README.md

Lines changed: 11 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -21,10 +21,10 @@ footer: CC-BY-SA-4.0 Licensed | Copyright © 2018-Now Dunwu
2121
> [☕ JavaEE](javaee/README.md) 技术是 Java Web 的基石
2222
2323
- [JavaEE 面经](javaee/javaee-interview.md)
24-
- [Servlet](javaee/javaee-servlet.md)
25-
- [Jsp](javaee/javaee-jsp.md)
26-
- [Filter 和 Listener](javaee/javaee-filter-listener.md)
27-
- [Cookie 和 Session](javaee/javaee-cookie-sesion.md)
24+
- [JavaEE 之 Servlet 指南](javaee/javaee-servlet.md)
25+
- [JavaEE 之 Jsp 指南](javaee/javaee-jsp.md)
26+
- [JavaEE 之 Filter 和 Listener](javaee/javaee-filter-listener.md)
27+
- [JavaEE 之 Cookie 和 Session](javaee/javaee-cookie-sesion.md)
2828

2929
## javatech
3030

@@ -63,10 +63,15 @@ footer: CC-BY-SA-4.0 Licensed | Copyright © 2018-Now Dunwu
6363
- [Eclipse](javatool/ide/eclipse.md)
6464
- [vscode](javatool/ide/vscode.md)
6565

66-
### 监控
66+
### 监控/诊断
6767

68-
- [Arthas](javatool/monitor/arthas.md)
68+
> [监控/诊断](javatool/monitor) 工具主要用于 Java 应用的运维。通过采集、分析、存储、可视化应用的有效数据,帮助开发者、使用者快速定位问题,找到性能瓶颈。
69+
70+
- [监控工具对比](javatool/monitor/monitor-summary.md)
71+
- [CAT](javatool/monitor/cat.md)
72+
- [Zipkin](javatool/monitor/zipkin.md)
6973
- [SkyWalking](javatool/monitor/skywalking.md)
74+
- [Arthas](javatool/monitor/arthas.md)
7075

7176
---
7277

docs/javatool/README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66

77
> [构建工具](build/README.md)
88
9-
- [Maven 快速指南](build/maven/maven-quickstart.md)
9+
- [Maven 入门指南](build/maven/maven-quickstart.md)
1010
- [Maven 教程之 pom.xml 详解](build/maven/maven-pom.md)
1111
- [Maven 教程之 settings.xml 详解](build/maven/maven-settings.md)
1212
- [Maven 实战问题和最佳实践](build/maven/maven-action.md)

docs/javatool/monitor/README.md

Lines changed: 15 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,17 @@
1-
# Java 监控、诊断
1+
# 微服务调用链监控
22

3-
- [Arthas](arthas.md)
3+
## 内容
4+
5+
- [CAT](cat.md)
6+
- [Zipkin](zipkin.md)
47
- [SkyWalking](skywalking.md)
8+
- PinPoint
9+
- [Arthas](arthas.md)
10+
11+
## 资料
12+
13+
- [CAT Github](https://github.com/dianping/cat)
14+
- [Zipkin Github](https://github.com/openzipkin/zipkin)
15+
- [SkyWalking Github](https://github.com/apache/skywalking)
16+
- [PinPoint Github](https://github.com/naver/pinpoint)
17+
- [Arthas Github](https://github.com/alibaba/arthas)

docs/javatool/monitor/cat.md

Lines changed: 71 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,71 @@
1+
# Cat
2+
3+
## CAT 简介
4+
5+
CAT(Central Application Tracking),是基于 Java 开发的分布式实时监控系统。CAT 在基础存储、高性能通信、大规模在线访问、服务治理、实时监控、容器化及集群智能调度等领域提供业界领先的、统一的解决方案。CAT 目前在美团的产品定位是应用层的统一监控组件,基本接入了美团所有核心应用,在中间件(RPC、数据库、缓存、MQ 等)框架中得到广泛应用,为各业务线提供系统的性能指标、健康状况、实时告警等。
6+
7+
### CAT 的优势
8+
9+
- 实时处理:信息的价值会随时间锐减,尤其是事故处理过程中
10+
- 全量数据:最开始的设计目标就是全量采集,全量的好处有很多
11+
- 高可用:所有应用都倒下了,需要监控还站着,并告诉工程师发生了什么,做到故障还原和问题定位
12+
- 故障容忍:CAT 本身故障不应该影响业务正常运转,CAT 挂了,应用不该受影响,只是监控能力暂时减弱
13+
- 高吞吐:要想还原真相,需要全方位地监控和度量,必须要有超强的处理吞吐能力
14+
- 可扩展:支持分布式、跨 IDC 部署,横向扩展的监控系统
15+
16+
### 支持的消息类型
17+
18+
CAT监控系统将每次URL、Service的请求内部执行情况都封装为一个完整的消息树、消息树可能包括Transaction、Event、Heartbeat、Metric等信息。
19+
20+
- **Transaction** 适合记录跨越系统边界的程序访问行为,比如远程调用,数据库调用,也适合执行时间较长的业务逻辑监控,Transaction 用来记录一段代码的执行时间和次数
21+
- **Event** 用来记录一件事发生的次数,比如记录系统异常,它和 transaction 相比缺少了时间的统计,开销比 transaction 要小
22+
- **Heartbeat** 表示程序内定期产生的统计信息, 如 CPU 利用率, 内存利用率, 连接池状态, 系统负载等
23+
- **Metric** 用于记录业务指标、指标可能包含对一个指标记录次数、记录平均值、记录总和,业务指标最低统计粒度为 1 分钟
24+
25+
![](https://raw.githubusercontent.com/dunwu/images/master/snap/20200211174235.png)
26+
27+
## CAT 部署
28+
29+
Cat 部署可以参考 [官方 Wiki - 服务端部署](https://github.com/dianping/cat/wiki/readme_server) ,非常详细,不赘述。
30+
31+
## CAT 报表
32+
33+
与其他监控工具(如 Zipkin、SkyWalking)相比,CAT 的报表功能最丰富。支持以下报表类型:
34+
35+
- **[Transaction 报表](https://github.com/dianping/cat/wiki/transaction)** - 一段代码运行时间、次数,比如 URL、Cache、SQL 执行次数和响应时间
36+
- **[Event 报表](https://github.com/dianping/cat/wiki/event)** - 一行代码运行次数,比如出现一个异常
37+
- **[Problem 报表](https://github.com/dianping/cat/wiki/problem)** - 根据 Transaction/Event 数据分析出来系统可能出现的异常,包括访问较慢的程序等
38+
- **[Heartbeat 报表](https://github.com/dianping/cat/wiki/heartbeat)** - JVM 内部一些状态信息,比如 Memory,Thread 等
39+
- **[Business 报表](https://github.com/dianping/cat/wiki/business)** - 业务监控报表,比如订单指标,支付等业务指标
40+
41+
## CAT 配置
42+
43+
CAT 提供了以下配置:
44+
45+
- **[项目配置](https://github.com/dianping/cat/wiki/project)** 包括项目基本信息、机器分组配置
46+
- **[告警配置](https://github.com/dianping/cat/wiki/alarm)** 包括基本告警配置、告警规则、以及具体告警配置
47+
- **[全局配置](https://github.com/dianping/cat/wiki/global)** 包括服务端配置、消息采样配置、客户端路由
48+
- **[业务指标](https://github.com/dianping/cat/wiki/business)** 包括业务监控配置、业务标签配置
49+
50+
## CAT 架构
51+
52+
CAT 主要分为三个模块:
53+
54+
- **cat-client** - 提供给业务以及中间层埋点的底层 SDK。
55+
- **cat-consumer** - 用于实时分析从客户端的提供的数据。
56+
- **cat-home** - 作为用户提供给用户的展示的控制端。
57+
58+
在实际开发和部署中,cat-consumer 和 cat-home 是部署在一个 jvm 内部,每个 CAT 服务端都可以作为 consumer 也可以作为 home,这样既能减少整个 CAT 层级结构,也可以增加整个系统稳定性。
59+
60+
![](https://raw.githubusercontent.com/dunwu/images/master/snap/20200211174001.png)
61+
62+
上图是 CAT 目前多机房的整体结构图:
63+
64+
- 路由中心是根据应用所在机房信息来决定客户端上报的 CAT 服务端地址
65+
- 每个机房内部都有的独立的原始信息存储集群 HDFS
66+
- cat-home 可以部署在一个机房也可以部署在多个机房,在做报表展示的时候,cat-home 会从 cat-consumer 中进行跨机房的调用,将所有的数据合并展示给用户
67+
- 实际过程中,cat-consumer、cat-home 以及路由中心都是部署在一起,每个服务端节点都可以充当任何一个角色
68+
69+
## 参考资料
70+
71+
- [CAT Github](https://github.com/dianping/cat)
Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
# 监控工具对比
2+
3+
## 监控工具发展史
4+
5+
![img](https://raw.githubusercontent.com/dunwu/images/master/snap/20200211165813.png)
6+
7+
## 监控工具比对
8+
9+
### 特性对比
10+
11+
![img](https://raw.githubusercontent.com/dunwu/images/master/snap/20200211171551.png)
12+
13+
### 生态对比
14+
15+
![img](https://raw.githubusercontent.com/dunwu/images/master/snap/20200211172631.png)
16+
17+
## 技术选型
18+
19+
- Zipkin 欠缺 APM 报表能力,不推荐。
20+
- 企业级,推荐 CAT
21+
- 关注和试点 SkyWalking。
22+
23+
用好调用链监控,需要订制化、自研能力。
24+
25+
## 参考资料
26+
27+
[CAT、Zipkin 和 SkyWalking 该如何选型?](https://time.geekbang.org/dailylesson/detail/100028416)

0 commit comments

Comments
 (0)