使用 prometheus 监控 springboot 进程

简述

前两篇文章讲了如何使用 prometheus 监控 linux 服务器和 redis,今天跟大家分享如何将 springboot 应用接入到 prometheus 监控体系

springboot 应用指标暴露

与 redis 监控不同的是,springboot 可以通过 actuator 模块,暴露出自身的监控指标,无需使用 exporter。下面介绍如何引入 actuator 模块,暴露出应用的监控指标 

首先,需要在 pom 中引入spring-boot-starter-actuatormicrometer-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 控制台页面看到拉取的指标啦使用 prometheus 监控 springboot 进程

grafana 仪表盘配置

grafana 官网中,有很多制作好的仪表盘,我们直接拿来用即可。比如我们可以在 grafana.com 中,搜索Spring Boot,找到下载排名靠前的仪表盘使用 prometheus 监控 springboot 进程

这个仪表盘的 id 是4701,在 Home > Dashboards > New > Import 中进行导入使用 prometheus 监控 springboot 进程导入完的仪表盘如下,平时我们关注最多的可能是CPU 使用率JVM 对内存使用情况,都可以在仪表盘中直观的看出来使用 prometheus 监控 springboot 进程


原文始发于微信公众号(huangxy):使用 prometheus 监控 springboot 进程

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/160026.html

(0)
小半的头像小半

相关推荐

发表回复

登录后才能评论
极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!