当前位置: 首页 > news >正文

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: 5smetrics_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

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

jdk>=17

<dependency><groupId>io.prometheus</groupId><artifactId>simpleclient_pushgateway</artifactId>
</dependency>

修改application.xml

management:endpoints:web:exposure:include: "*"   endpoint:prometheus:enabled: true #激活prometheushealth:show-details: alwaysmetrics:export:prometheus:enabled: true

 

Grafana dashboards | Grafana Labs

在grafna导入模板,建议 12464  14430 

 

 

相关文章:

  • PS怎么编程:深入探索Photoshop的编程奥秘
  • 静态网页实现-人脸识别-案例(web)
  • 代码随想录35期Day60-JavaScript
  • 产品经理的需求善变,利用规则引擎减少80%的需求变更成本
  • Python3 列表
  • 2023年简单易用的透明加密软件--安秉网盾企业数据防泄密方案
  • 选择正确的单位:百分比、视窗单位和像素单位在网页设计中的应用
  • [原创][Delphi多线程]TThreadedQueue的经典使用案例.
  • 双指针解题
  • uniapp uni-popup内容被隐藏问题
  • Python编程学习第一篇——Python零基础快速入门(五)—变量
  • k8s怎么监听资源的变更
  • Linux前端与Windows前端区别:深入剖析两大系统的前端差异
  • python 深浅拷贝
  • 网络编程介绍(二)(端口、通信协议)
  • 【译】React性能工程(下) -- 深入研究React性能调试
  • ABAP的include关键字,Java的import, C的include和C4C ABSL 的import比较
  • C学习-枚举(九)
  • Docker: 容器互访的三种方式
  • linux学习笔记
  • miniui datagrid 的客户端分页解决方案 - CS结合
  • passportjs 源码分析
  • use Google search engine
  • 从零开始在ubuntu上搭建node开发环境
  • 免费小说阅读小程序
  • 区块链将重新定义世界
  • 实现菜单下拉伸展折叠效果demo
  • 容器镜像
  • ​ssh免密码登录设置及问题总结
  • # AI产品经理的自我修养:既懂用户,更懂技术!
  • #14vue3生成表单并跳转到外部地址的方式
  • $nextTick的使用场景介绍
  • (9)STL算法之逆转旋转
  • (AngularJS)Angular 控制器之间通信初探
  • (NO.00004)iOS实现打砖块游戏(九):游戏中小球与反弹棒的碰撞
  • (二)linux使用docker容器运行mysql
  • (六)库存超卖案例实战——使用mysql分布式锁解决“超卖”问题
  • (转)h264中avc和flv数据的解析
  • .Net Web窗口页属性
  • .NET 跨平台图形库 SkiaSharp 基础应用
  • .NET 使用 ILMerge 合并多个程序集,避免引入额外的依赖
  • /etc/sudoers (root权限管理)
  • @column注解_MyBatis注解开发 -MyBatis(15)
  • @ResponseBody
  • [《百万宝贝》观后]To be or not to be?
  • [240527] 谷歌 CEO 承认 AI 编造虚假信息问题难解(此文使用 @gemini 命令二次创作)| ICQ 停止运作
  • [Android]Tool-Systrace
  • [android]-如何在向服务器发送request时附加已保存的cookie数据
  • [Android学习笔记]ScrollView的使用
  • [ARM]ldr 和 adr 伪指令的区别
  • [C++]C++入门--引用
  • [C语言]——内存函数
  • [hdu 3065] 病毒侵袭持续中 [AC自动机] [病毒特征码匹配]
  • [iOS]如何删除工程里面用cocoapods导入的第三方库
  • [Java] 图说 注解