监控java程序启动时的CPU使用情况

news/2024/10/15 22:23:12

监控java程序启动时的CPU使用情况


背景

想关注一下 java 程序启动过程中的CPU整体使用
以及启动过程中GC的次数和GC的好是等情况之前使用actuator的方式这里行不通
因为还没有最终暴露服务使用agent的方式虽然那可以暴露启动过程
但是也存在一些其他的问题
比如无法健康hikari,redis等的情况这里简单总结一些使用,不做展开

启动脚本的处理

在java 的启动脚本里面添加内容:-javaagent:./jmx_prometheus_javaagent-0.17.2.jar=8080:simple-config.yml需要注意 agent 可以从github 上面下载配置文件一般可以为:=lowercaseOutputLabelNames: true
lowercaseOutputName: true
whitelistObjectNames: ["java.lang:type=OperatingSystem"]
blacklistObjectNames: []
rules:- pattern: 'java.lang<type=OperatingSystem><>(committed_virtual_memory|free_physical_memory|free_swap_space|total_physical_memory|total_swap_space)_size:'name: os_$1_bytestype: GAUGEattrNameSnakeCase: true- pattern: 'java.lang<type=OperatingSystem><>((?!process_cpu_time)\w+):'name: os_$1type: GAUGEattrNameSnakeCase: true

数据查看

启动服务后可以通过 8080 端口查看暴露出来的数据
注意这里没有使用https等方式,比较简单

prometheus & grafana

直接二进制部署就可以
也可以使用docker的方式. 部署之后需要增加prometheus的配置.

prometheus的配置

  - job_name: "JVM exporter"static_configs:- targets: ["172.24.110.207:8080","172.24.110.209:8080"]重启服务:
nohup ./prometheus --storage.tsdb.retention.time=90d 
--storage.tsdb.path="/grafana/data/"  --storage.tsdb.retention.size=100GB \
--web.listen-address="0.0.0.0:9095" 2>&1 >/dev/null &

grafana的设置

1. 添加数据源
2. 添加图表
可以添加一个 time serial 的图表内容
3. 数据源选择 prometheus,然后code 输入
process_cpu_seconds_total{job="JVM exporter"}
这个数值就是 JVM 启动时的CPU消耗量 总时间
4. 数据源选择: prometheus
计算公式: 
jvm_gc_collection_seconds_sum
然后在options 里面选择 legend
输入 {{instance}}/{{gc}} 
会降不同GC时间都展示出来.

image

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.ryyt.cn/news/26422.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈,一经查实,立即删除!

相关文章

2024年4月总结及随笔之多事之月

2024年4月总结及随笔之多事之月1. 回头看 日更坚持了486天。读《所罗门的密码》更新完成 读《天才与算法:人脑与AI的数学思维》开更并持续更新中2023年至2024年3月底累计码字1081378字,累计日均码字2225字。 2024年4月码字87695字,同比增长52.5%,环比下降7.5%,日均码字数2…

华夏芯产品技术概述

华夏芯产品技术概述GPTX1 CPU 概述: GPTX1 CPU是华夏芯完全自主知识产权、自主架构的面向嵌入式的高能效CPU核。此CPU核依托Unity指令集,针对先进半导体工艺对微架构和流水线进行了深度优化,能够在相同工艺下达到更高的主频和更高的能效,应用于网络、通讯、数字电视、存储等…

基于gitee WebHook完成代码提交就触发Jenkins自动构建

基于gitee WebHook完成代码提交就触发Jenkins自动构建 1 在Jenkins安装 gitee插件。2:关联gitee的私有令牌跟Jenkins的关系。3: 配置全局gitee全局token4 配置gitee令牌:5:新建项目,配置gitee地址,账号密码。关联webHook,自动构建代码。** ​ 新建项目:6 配置gitee…

树的递归遍历

数据结构 树--递归遍历/****************************************************************************** function name :BinaryTree_CountNode* function : 计算一颗二叉树的所有节点的数量,可以采用递归实现* parameter :* @root…

二叉树(数据结构)——利用“递归”思想实现相关算法问题

题目一//计算一颗二叉树的所有节点的数量,可以采用递归实现 int BinaryTree_CountNode(Tnode_t *root) {int n1,n2; //n1用于记录左子树的节点,n2用于记录右子树的节点//递归函数先提前写好终止条件if (NULL == root){return 0;}//假设采用后序遍历来计算二叉树的节点数量n1 =…

sqlilabs通关04-挑战篇:less54-

通过 SQL 注入工具 sqlilabs 的挑战 54 到 57,使用不同的闭合符号进行注入尝试,并成功获取数据库版本、表名、列名和数据记录。less54 ​​提示的大致意思是:如果你不能在十次内注入成功,那么,表名、列名、数据就会刷新。需要先在url中传递id参数进行注入尝试,然后获得密…

关于tomcat在idea上的中文编码问题

关于tomcat在idea上的中文编码问题;在国内,无论是新手还是有一定码龄的开发人员,汉字编码问题一直都是绕不开的魔咒,本文主要对tomcat在jetbrain系列产品idea上的乱码问题提供解决经验。一、问题引入 在国内,无论是新手还是有一定码龄的开发人员,汉字编码问题一直都是绕不…

Python批处理:文件操作

一、为什么要使用python处理文件 文件处理管理可分为两种,一种是可视化、手动化,学习成本低,处理数量有限。另一种是编程化、自动化,有一定学习成本,可以基于逻辑处理。计算机的常项是对既定规则的发挥,这个发挥作用于"批量"这个层面。 二、相对路径与绝对路径…