Prometheus怎么用来帮助解决性能问题?
问题分析:
解决性能问题,首先你得知道问题什么时候发生的,发生的时候具体发生了什么?
Prometheus里的TSDB已经记录了问题发生的时间和数据,这些数据从哪儿来,我们要给prometheus提供哪些数据呢?
我们一般就是监控各个节点的CPU, MEMORY, NETWORK,JVM。
这些指数可以告诉你执行效率,内存使用情况,网络吞吐量,JVM垃圾回收的情况。有了这些我们就可以开始判断这个服务器是否有病,哦不,是否有性能问题。
准备工作:
首先我们要监控的就是app,一般有问题的就是它,其次是系统硬件问题,所以我们先写一个基于springboot的app,其中包含了正常的和非正常的(慢的,占资源多的)接口。监控肯定是靠spring boot actuator和micrometer集成到prometheus,获得jvm的情况。
JVM使用spring boot actuator自带的JVM metrics就够了,不过要和prometheus一起使用还要带上它的好基友micrometer,它就像log里slf4j,不干实事,就是一个统一接口的facade,把两者连接起来了,代码里在方法上@Timed下就好了。具体依赖如下
<dependency>
<groupId>org.springframe