简述
前两篇文章讲了如何使用 prometheus 监控 linux 服务器和 redis,今天跟大家分享如何将 springboot 应用接入到 prometheus 监控体系
springboot 应用指标暴露
与 redis 监控不同的是,springboot 可以通过 actuator 模块,暴露出自身的监控指标,无需使用 exporter。下面介绍如何引入 actuator 模块,暴露出应用的监控指标
首先,需要在 pom 中引入spring-boot-starter-actuator
和micrometer-registry-prometheus
这两个模块
<dependency>
<groupId>io.micrometer</groupId>
<artifactId>micrometer-registry-prometheus</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
接着需要在application.yml
中,添加以下配置
spring:
application:
name: spring-demo
management:
endpoints:
web:
exposure:
include: "*"
metrics:
tags:
application: ${spring.application.name}
通过上面的配置,我们就可以将 java 进程内部的指标暴露出来,供 prometheus 拉取,默认暴露的端点是/actuator/prometheus
,访问该端点,可以看到具体的指标信息
$ curl localhost:8080/actuator/prometheus
# HELP tomcat_sessions_rejected_sessions_total
# TYPE tomcat_sessions_rejected_sessions_total counter
tomcat_sessions_rejected_sessions_total{application="spring-demo",} 0.0
# HELP jvm_threads_peak_threads The peak live thread count since the Java virtual machine started or peak was reset
# TYPE jvm_threads_peak_threads gauge
jvm_threads_peak_threads{application="spring-demo",} 20.0
# HELP jvm_classes_unloaded_classes_total The total number of classes unloaded since the Java virtual machine has started execution
# TYPE jvm_classes_unloaded_classes_total counter
jvm_classes_unloaded_classes_total{application="spring-demo",} 0.0
# HELP jvm_buffer_total_capacity_bytes An estimate of the total capacity of the buffers in this pool
# TYPE jvm_buffer_total_capacity_bytes gauge
jvm_buffer_total_capacity_bytes{application="spring-demo",id="direct",} 81920.0
jvm_buffer_total_capacity_bytes{application="spring-demo",id="mapped",} 0.0
# HELP jvm_classes_loaded_classes The number of classes that are currently loaded in the Java virtual machine
# TYPE jvm_classes_loaded_classes gauge
jvm_classes_loaded_classes{application="spring-demo",} 7326.0
# HELP process_files_open_files The open file descriptor count
...
对 actuator 不熟悉的,可以看我之前在 csdn 写的一篇文章:https://blog.csdn.net/qq_35787138/article/details/103134589,这里就不细讲了
prometheus 配置
暴露出应用指标信息后,我们就配置 prometheus,对应用的指标进行采集,在 prometheus.yml 配置文件中,插入如下配置
scrape_configs:
# 采集 springboot 应用指标
- job_name: 'springboot-demo'
# 端点路径
metrics_path: '/actuator/prometheus'
static_configs:
- targets: ['localhost:8080']
配置成功后,发送kill -HUP
指令,通知 prometheus 刷新配置
$ kill -HUP `pidof prometheus`
刷新成功就能在 prometheus 控制台页面看到拉取的指标啦
grafana 仪表盘配置
grafana 官网中,有很多制作好的仪表盘,我们直接拿来用即可。比如我们可以在 grafana.com 中,搜索Spring Boot
,找到下载排名靠前的仪表盘
这个仪表盘的 id 是4701
,在 Home > Dashboards > New > Import 中进行导入导入完的仪表盘如下,平时我们关注最多的可能是CPU 使用率
、JVM 对内存
使用情况,都可以在仪表盘中直观的看出来
原文始发于微信公众号(huangxy):使用 prometheus 监控 springboot 进程
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/160026.html