前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【监控利器Prometheus】——Prometheus+Grafana监控SpringBoot项目JVM信息

【监控利器Prometheus】——Prometheus+Grafana监控SpringBoot项目JVM信息

作者头像
DannyHoo
发布2021-12-23 17:19:20
1.1K0
发布2021-12-23 17:19:20
举报
文章被收录于专栏:Danny的专栏

Prometheus+Grafana监控SpringBoot项目JVM信息

1. SpringBoot项目配置JVM采集

(1)maven依赖

代码语言:javascript
复制
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
<dependency>
    <groupId>io.micrometer</groupId>
    <artifactId>micrometer-registry-prometheus</artifactId>
</dependency>

(2)application.properties

代码语言:javascript
复制
spring.application.name=springboot_jvm
server.port=6001
management.endpoints.web.exposure.include=*
management.metrics.tags.application=${spring.application.name}  

(3)SpringBoot主启动类中添加监控JVM的配置类

代码语言:javascript
复制
@Bean
MeterRegistryCustomizer<MeterRegistry> configurer(@Value("${spring.application.name}") String applicationName) {
    return registry -> registry.config().commonTags("application", applicationName);
}

(4)启动springboot项目,访问 http://localhost:6001/actuator/prometheus 可以看到一些统计指标

代码地址:https://github.com/DannyHoo/PrometheusProject/tree/master/SpringBootJVM

2. Prometheus配置

修改宿主机prometheus配置文件prometheus.yml

代码语言:javascript
复制
scrape_configs:
  - job_name: "springboot_jvm"
    # 多久采集一次数据
    scrape_interval: 5s
    # 采集时的超时时间
    scrape_timeout: 5s
    # 采集的路径
    metrics_path: '/actuator/prometheus'
    # 采集Springboot服务的地址
    static_configs:
      - targets: ['10.246.140.63:6001']

主要是在prometheus.yml默认配置中加一个job,job_name为 "springboot_jvm",修改完配置文件,重启Prometheus

代码语言:javascript
复制
docker restart prometheus

然后在Prometheus的targets中(http://127.0.0.1:9090/targets)就可以看到刚才配置的Node Exporter服务了:

3. 配置grafana

添加JVM监控看板(具体添加步骤可参考前面的文章《【监控利器Prometheus】——Prometheus+Grafana监控服务器资源》

导入官网模板4701,DataSource选之前配置好的Prometheus,导入后的效果如下:

4. 扩展-通过JMX Exporter监控JVM信息

上篇写了通过Prometheus+Grafana监控服务器资源时,是通过Node Exporter来采集服务器资源的,如果Java项目不是SpringBoot项目,要采集JVM信息,可以启动Java项目的时候通过JMX Exporter(下载地址:https://repo1.maven.org/maven2/io/prometheus/jmx/jmx_prometheus_javaagent/ )来进行采集。以 jmx_prometheus_javaagent-0.12.0.jar 为例,当启动Java应用时

1、下载 https://repo1.maven.org/maven2/io/prometheus/jmx/jmx_prometheus_javaagent/0.12.0/jmx_prometheus_javaagent-0.12.0.jar

2、新增配置文件 simple-config.yml

代码语言:javascript
复制
---
wercaseOutputLabelNames: true
lowercaseOutputName: true
whitelistObjectNames: ["java.lang:type=OperatingSystem"]
rules:
 - pattern: 'java.lang<type=OperatingSystem><>((?!process_cpu_time)\w+):'
   name: os_$1
   type: GAUGE
   attrNameSnakeCase: true

3、启动Java应用

代码语言:javascript
复制
java -javaagent:/usr/local/jmx/jmx_prometheus_javaagent-0.12.0.jar=3010:/usr/local/jmx/simple-config.yml -jar  要监控的应用.jar
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2021/12/22 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Prometheus+Grafana监控SpringBoot项目JVM信息
  • 1. SpringBoot项目配置JVM采集
  • 2. Prometheus配置
  • 3. 配置grafana
  • 4. 扩展-通过JMX Exporter监控JVM信息
相关产品与服务
Prometheus 监控服务
Prometheus 监控服务(TencentCloud Managed Service for Prometheus,TMP)是基于开源 Prometheus 构建的高可用、全托管的服务,与腾讯云容器服务(TKE)高度集成,兼容开源生态丰富多样的应用组件,结合腾讯云可观测平台-告警管理和 Prometheus Alertmanager 能力,为您提供免搭建的高效运维能力,减少开发及运维成本。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档