Springboot JVM监控 通过Promethus

Springboot内置了对Prometheus得支持,可以监测得点有:

  • JVM各指标参数(GC,堆,非堆等)
  • 接口调用次数,延时
  • 系统内存,IO,CPU使用率

部署Prometheus和Grafana

准备一台2核4G或以上配置得linux系统(centos7.9、ubuntu18.04或更高版本),按下面得方式部署Prometheus和Grafana

复制代码
#下载镜像
docker pull prom/prometheus
docker pull grafana/grafana

#将docker里的配置拷出来
docker run --name=grafana -d  -p 3000:3000 -itd grafana/grafana
mkdir -p /docker/prometheus/grafana/data
mkdir -p /docker/prometheus/grafana
docker cp grafana:/etc/grafana/grafana.ini /docker/prometheus/grafana/

#写Prometheus配置文件
vim prometheus.yml
global:
  scrape_interval:     15s 
  evaluation_interval: 15s 

scrape_configs:
  - job_name: 'prometheus'
    static_configs:
      - targets: ['localhost:9090']
  - job_name: "ProvideAPIServices"
    scrape_interval: 5s
    metrics_path: "/actuator/prometheus"
    static_configs:
            - targets: ["172.16.0.88:8789","172.16.0.69:8789"]


#启动Prometheus
docker run -d --name prometheus -p 9090:9090 -v /root/prometheus.yml:/etc/prometheus/prometheus.yml prom/prometheus

#启动grafana
docker run -d -p 3000:3000 --name grafana  --restart=always -v /docker/prometheus/grafana/grafana.ini:/etc/grafana/grafana.ini -v /docker/prometheus/grafana/data:/var/lib/grafana -e "GF_SECURITY_ADMIN_PASSWORD=admin" grafana/grafana

注意两个地方

metrics_path: "/actuator/prometheus" #这里填java服务得请求路径+/actuator/prometheus,如果加了前缀,如 context-path: /abc,则为/abc/actuator/prometheus

"172.16.0.88:8789","172.16.0.69:8789"\] #172.16.0.88:8789 为java服务ip+断开 ### 修改pom.xml 加入下面依赖 jdk\<=11 io.micrometer micrometer-registry-prometheus runtime jdk\>=17 io.prometheus simpleclient_pushgateway ### 修改application.xml management: endpoints: web: exposure: include: "*" endpoint: prometheus: enabled: true #激活prometheus health: show-details: always metrics: export: prometheus: enabled: true [Grafana dashboards \| Grafana Labs](https://grafana.com/grafana/dashboards/?search=tomcat "Grafana dashboards | Grafana Labs") 在grafna导入模板,建议 12464 14430 ![](https://file.jishuzhan.net/article/1796717132566761473/325fec6ff8ba0926329d4f93952df95c.webp) ![](https://file.jishuzhan.net/article/1796717132566761473/da4264510f33d321e6e225d5780839bb.webp) ![](https://file.jishuzhan.net/article/1796717132566761473/f0682ce1dd3348c9817435dda5f61855.webp) ![](https://file.jishuzhan.net/article/1796717132566761473/ba41d5e303218ee6eeddc3ef306e12d0.webp)

相关推荐
行百里er6 小时前
WebSocket 在 Spring Boot 中的实战解析:实时通信的技术利器
spring boot·后端·websocket
皮皮林5517 小时前
SpringBoot 集成 Hera,让日志查看从 “找罪证” 变 “查答案”!
spring boot
num_killer7 小时前
小白的Langchain学习
java·python·学习·langchain
期待のcode8 小时前
Java虚拟机的运行模式
java·开发语言·jvm
程序员老徐8 小时前
Tomcat源码分析三(Tomcat请求源码分析)
java·tomcat
a程序小傲8 小时前
京东Java面试被问:动态规划的状态压缩和优化技巧
java·开发语言·mysql·算法·adb·postgresql·深度优先
仙俊红8 小时前
spring的IoC(控制反转)面试题
java·后端·spring
阿湯哥8 小时前
AgentScope Java 集成 Spring AI Alibaba Workflow 完整指南
java·人工智能·spring
小楼v8 小时前
说说常见的限流算法及如何使用Redisson实现多机限流
java·后端·redisson·限流算法
与遨游于天地8 小时前
NIO的三个组件解决三个问题
java·后端·nio