全栈监控需要对三层系统(应用层、中间件层、基础层)全方位进行监控。
- 基础层:监控主机和底层资源。比如:CPU、内存、网络吞吐、硬盘 I/O、硬盘使用等。
- 中间层:就是中间件层的监控。比如:Nginx、Redis、ActiveMQ、Kafka、MySQL、Tomcat 等。
- 应用层:监控应用层的使用。比如:HTTP 访问的吞吐量、响应时间、返回码,调用链路分析,性能瓶颈,还包括用户端的监控。
一个好的监控系统应该实现的功能:
- 服务链调用跟踪
- 服务调用时长分布
- 服务TOP N视图
- 数据库操作关联
- 服务资源跟踪
监控的目的不是数据项越多越好,而是要对指标进行关联性分析聚合,从而可以快速故障定位。既方便“体检”,又方便“急诊”,各个监控系统之间要打通。
此文章为3月Day09学习笔记,内容来源于极客时间《左耳听风》,强烈推荐该课程!