springboot整合prometheus(二)
springboot整合prometheus有两种方式:
通过官方提供的依赖包
simpleclient_spring_boot,但是好像对于springboot2.X不是很给力,对于springboot2.X我们可以使用一个桥接包compile group: 'io.micrometer', name: 'micrometer-registry-prometheus', version: '1.0.6'其实官方给的整合包
simpleclient_spring_boot也是在自己原生方式上作了一个封装,方便大家使用,但是由于更新不即使,带来了使用上的不够灵活,因此下面先体验一下原生的方式
整个过程大致可以分为三个步骤:
①收集Collector → ②注册Register → ③暴露Exporting
1. Exporting
官方提供的暴露方式有三种:http、Bridges、Pushgateway
我们这里使用http的方式暴露,使用官方给我们提供好的servlet,因此需要因为官方的servlet,并且需要把这个servlet注册到springboot应用上下文中
添加依赖
<dependency><!--prometheus的java客户端-->
<groupId>io.prometheus</groupId>
<artifactId>simpleclient</artifactId>
<version>0.5.0</version>
</dependency>
<dependency><!--通过这个servlet通过http的方式暴露出去-->
<groupId>io.prometheus</groupId>
<artifactId>simpleclient_servlet</artifactId>
<version>0.5.0</version>
</dependency>把这个servlet注册到springboot的应用上下文当中
测试
请求地址$ curl http://localhost:8080/metrics,没有报错,说明成功,但是什么也没有返回
接下来开始收集数据并注册数据
2. Registering Metrics
注册
最好的方式注册一个Metrics是通过static final修饰的类成员变量,这样做可以防止同名的Metrics,我们也可以认为注册是定义一个指标的TYPE和HTLP,
验证是否成功
3. Collectors
这里的收集器就是数据收集器
官方提供的Collectors
添加依赖
开启暴露
1. jvm
Java客户端包括用于垃圾收集,内存池,JMX,类加载和线程计数的收集器。这些可以单独添加,也可以使用DefaultExports方便地注册它们。
监控虚拟机相关的指标项:
2. log
支持的log有log4j、log4j2和logback
我们以logback为例
logback-spring.xml
效果如下:
3. 其他
Guava cache
Hibernate SessionFactory
Jetty server metrics
自定义Collectors
有时无法直接检测代码,因为它不在您的控制范围内。这要求您从其他系统代理指标
继承Collector实现collect方法
注册到成员变量上
SummaryMetricFamily的工作方式类似
Last updated
Was this helpful?