监控设计步骤
首先,你要分析系统的架构。在知道架构中使用的组件之后,再针对每个组件进行监控。
其次,监控要有层次,要有步骤。先全局,后定向定量分析。
最后,通过分析全局、定向、分层的监控数据做分析,再根据分析的结果决定下一步要收集 什么信息,然后找到完整的证据链。
这才是监控应该有的步骤,才能体现监控的价值。
监控技术图谱

架构图
做性能监控之前,先画一个最简单的架构图,看一下架构中 各有什么组件,各有什么服务,将这些列下来,再找对应的监控手段和方式,

需要监控的有:
1、服务器操作系统
2、nginx
3、redis
4、mysql
5、代码层级
6、测试结果
7、tomcat
监控设计
1. 我们要对整个架构做分层。
2. 在每一个层级上列出要监控的计数器。 寻找相应的监控工具,实现对这些计数器的监控。如果一个工具做不到,在定位过程中 考虑补充工具。
3. 要做到对每层都不遗漏。
识别出每个监控的节点和层级,再对应到架构

最适合的监控方式是什么样的呢?那就是成本最低,监控范围最大,效率最快。
不建议一开始就把代码级的监控给加进来
监控思路

全局监控设计
测试前就要有全局监控。
OS层
看linux架构图
常用的计数器
 DB层(mysql为例)
 DB层(mysql为例)
 

 定向监控
 定向监控
 
出现问题的时候,才用定向监控,定位问题的原因。
OS 层之定向监控细化 1
看到 CPU 消耗得多,那么你就得按照下面这张图细化思路

流程图
 
 
OS 层之定向监控细化 2
当你看到 OS 全局监控图中的 Network 中的 Total 总流量比较大时,就要有这样的分析思 路(从右向左看):

DB 层之定向监控细化 1
 DB 层之定向监控细化 2
 DB 层之定向监控细化 2
 

锁数据,平均时间为 754ms

分析产生锁的 SQL,看 SQL 的 Profiling 信息,再根据信息找下一步原因,最终给出解决 方案。
监控工具

如果要选择的话,肯定是用 Prometheus + Exporter 的思路会好一点。于是我们这样实现 全局的监控。
OS、DB、nginx、REDIS都能用 Prometheus + Exporter方式监控

tomcat
 如果是微服务架构,则需要监控服务状态,cluster,pod,微服务链路。
 如果是微服务架构,则需要监控服务状态,cluster,pod,微服务链路。

不管你的架构有多么复杂,组件有多少,这样的监控逻辑都是一定要有的。适 合的工具要用,并且尽量多用,但工具还远远替代不了分析的思维逻辑。没有判断的能力,再强悍的工具也只是个花架子。
总结
对架构中的组件进行了分析之后,通过全局— 定向的思路列出要看的计数器,再通过相应的监控工具去实现,拿到要分析的数据。 这就完成了要做的监控设计和具体实施。 至于你是用什么工具去实现的,这并不重要,因为拿到监控数据,可供分析证据链最重要
本文来自高楼老师课程笔记。



















