0%

Springboot集成prometheus

Springboot集成prometheus

1、添加依赖

在项目中添加如下依赖。

1
2
3
4
5
6
7
8
9
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>

<dependency>
<groupId>io.micrometer</groupId>
<artifactId>micrometer-registry-prometheus</artifactId>
</dependency>

具体依赖的版本,根据springboot的版本适配。如果随便选择版本号,可能会出现问题

spring-boot-starter-actuator的版本:选择跟springboot的版本一致

micrometer-registry-prometheus的版本: 跟actuator下引用的依赖io.micrometer:micrometer-core 版本保持一致

2、添加配置

在服务的配置文件中添加如下配置

1
2
3
4
5
6
7
8
9
10
11
management:
endpoints:
web:
exposure:
include: "*"
endpoint:
health:
show-details: ALWAYS
metrics:
tags:
application: ${spring.application.name}

添加完配置之后,重启服务。可以通过 http://<service_host>:<service_port>/actuator/prometheus获取监控指标信息。如下图所示

3、调整prometheus的配置

调整prometheus的配置文件prometheus.yml. 添加如下内容

1
2
3
4
5
6
scrape_configs:
- job_name: springboot_service
scrape_interval: 5s
metrics_path: '/actuator/prometheus'
static_configs:
- targets: ['10.10.183.214:19001','10.10.183.213:7810']

调整完配置后,重启prometheus使配置生效。`systemctl restart prometheus

4、查看prometheus状态

在prometheus的web页面,点击菜单栏的Status->Targets, 查看监控服务的状态

在Grafana中导入模版

导入对应的监控 JVM 的 Dashboard 模板,模板编号为 4701

导入模板之后,就可以查看对应的dashboard

Micrometer

Micrometer 为 Java 平台上的性能数据收集提供了一个通用的 API,它提供了多种度量指标类型(Timers、Guauges、Counters等),同时支持接入不同的监控系统,例如 Influxdb、Graphite、Prometheus 等。我们可以通过 Micrometer 收集 Java 性能数据,配合 Prometheus 监控系统实时获取数据,并最终在 Grafana 上展示出来,从而很容易实现应用的监控。

Micrometer 中有两个最核心的概念,分别是计量器(Meter)计量器注册表(MeterRegistry)。计量器用来收集不同类型的性能指标信息,Micrometer 提供了如下几种不同类型的计量器:

计数器(Counter): 表示收集的数据是按照某个趋势(增加/减少)一直变化的,也是最常用的一种计量器,例如接口请求总数、请求错误总数、队列数量变化等。

计量仪(Gauge): 表示搜集的瞬时的数据,可以任意变化的,例如常用的 CPU Load、Mem 使用量、Network 使用量、实时在线人数统计等,

计时器(Timer): 用来记录事件的持续时间,这个用的比较少。

分布概要(Distribution summary): 用来记录事件的分布情况,表示一段时间范围内对数据进行采样,可以用于统计网络请求平均延迟、请求延迟占比等。

参考链接

-------- 本文结束 感谢阅读 --------