目录
4. SpringCloud(使用Eureka作为注册中心)集成Prometheus
1. 集成actuator监控工具
使用spring-actuator做指标统计收集,在SpringBoot2.X中,spring-boot-starter-actuator中集成Micrometer
来采集监控指标,micrometer提供了丰富的指标类型,可以轻松的实现自定义指标;并且io.micrometer也提供了prometheus插件包来暴露Meter给prometheus使用。
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
引入 io.micrometer
的 micrometer-registry-prometheus
依赖即可生成支持Prometheus的指标数据格式。
<dependency>
<groupId>io.micrometer</groupId>
<artifactId>micrometer-registry-prometheus</artifactId>
</dependency>
Prometheus服务端增加监控目标配置即可实现指标采集
static_configs:
- targets: ["localhost:9090"]
2. Micrometer中指标类型
Micrometer提供一系列原生的Meter,不同的meter类型有不同的时间序列指标值。每一项指标需要通过名字和Tag
(这里指的是Micrometer提供的Tag接口)作为它的唯一标识,这样做的好处是可以使用名字进行标记,通过不同的Tag
去区分多种维度进行数据统计。
timers(计时器):记录耗时比较短的事件的执行时间
gauges(量规):可以任意上下浮动的单数值度量
counters(计数器):增量为正数的单值计数器
distribution summaries(分布式摘要):跟踪分布式的事件
long task timers(长任务定时器):记录长时间执行的任务的持续时间
3. 定义监控目标配置的方式
- 使用static_configs的方式静态的定义监控目标配置(配置结点IP)
- 基于服务发现的模式通过服务注册中心动态获取需要监控的实例。(常用的如下)
4. SpringCloud(使用Eureka作为注册中心)集成Prometheus
Prometheus提供了Consul的服务发现机制,没有Eureka的服务发现机制,如果Eureka想要使用的话可以通过引入eureka-consul-adapter适配器,使用consul_sd_config配置的方式使用Prometheus服务发现。
<dependency>
<groupId>at.twinformatics</groupId>
<artifactId>eureka-consul-adapter</artifactId>
</dependency>
Prometheus服务端配置Eureka地址以及服务名称
consul_sd_configs:
- server: "127.0.0.1:8080"
scheme: "http"
services: ["ADMIN-END","LEARNER-END"]
5. 实现自定义指标监控
基于注解+AOP实现自定义监控指标的监控上报