使用prometheus监控java服务

news2024/11/25 11:45:09

在prometheus官方下载页面没有看到jvm_exproter的下载地址但是官方页面是有推荐下载地址的  访问    Prometheus - Monitoring system & time series database   prometheus官方网址

官方推荐地址下载是在github网络访问不方便的可以用下面的网址

 wget https://repo1.maven.org/maven2/io/prometheus/jmx/jmx_prometheus_javaagent/0.19.0/jmx_prometheus_javaagent-0.19.0.jar

国内JMX_exporter下载地址

 Central Repository: io/prometheus/jmx/jmx_prometheus_javaagent

根据需求选择版本这里我使用的是19.0版本

 wget https://repo1.maven.org/maven2/io/prometheus/jmx/jmx_prometheus_javaagent/0.19.0/jmx_prometheus_javaagent-0.19.0.jar

页面的提示中可以看到启动jmx exporter的时候需要有一个config.yaml的文件,config.yaml配置文件的示例在example_configs目录中

mkdir /data/jmx_exporter   创建存储目录

cd /data/jmx_exporter/

wget https://repo1.maven.org/maven2/io/prometheus/jmx/jmx_prometheus_javaagent/0.19.0/jmx_prometheus_javaagent-0.19.0.jar

创建配置文件

vim config.yaml

rules:

- pattern: ".*"

Jmx_exporter启动命令

java -javaagent:jmx_prometheus_javaagent-0.19.0.jar=12345:config.yaml -jar OKMInstaller.jar   

这个OKMInstaller.jar是我从网上随便下载了一个javaweb包运行起来测试监控的

Download | OpenKM   测试运行的可以自行下载

启动运行到这一步可以不用管了,到这就可以监控到数据了。

启动命令格式

java -javaagent: + jmx-exporter.jar的路径=启动端口 : config.yamll文件路径 + -jar + xxx.jar(被监控的项目jar包路径)

启动成功后可以来的浏览器访问192.168.197.137:12345/metrics 查看采集的数据

启动以后来的prometheus来配置

  - job_name: "jvm"

    static_configs:

      - targets: ["192.168.197.137:12345"]

重启prometheus

systemctl restart prometheus

重启完成后来到grafana导入模板我这里推荐模板id10519 有些模块没有数据是因为表达式不匹配,有些我修改过后贴在下面了,还有几个没写可以吧模块删掉就行。

cpu load 模块表达式需要换成

sum(rate(java_lang_OperatingSystem_SystemCpuLoad[5m])) * 100

System load average  模块表达式需要换成

java_lang_OperatingSystem_SystemLoadAverage{job="$job", instance="$instance"}

Available CPUs  模块表达式需要换成

java_lang_OperatingSystem_AvailableProcessors{instance="$instance"}

Open file descriptors  模块表达式换成

process_open_fds{instance="$instance"}

Class loading 模块表达式换成

jvm_classes_loaded_total{job="$job", instance="$instance"}

下面是grafana模块标签的含义

Memory area [heap]:堆内存区域,用于存储对象实例。

Memory area [noheap]:非堆内存区域,用于存储其他数据结构和元数据。

Memory pool [Code Cache]:代码缓存池,存储编译后的机器代码。

Memory pool [Compressed Class Space]:压缩类空间池,存储压缩的类和元数据。

Memory pool [Metaspace]:元空间池,存储类元数据。

Memory pool [PS Eden Space]:新生代(Eden)内存池,用于存放新创建的对象。

Memory pool [PS Old Gen]:老年代内存池,用于存放长时间存活的对象。

Memory pool [PS Survivor Space]:幸存者空间内存池,用于存放幸存的新生代对象。

GC count increase:垃圾回收次数的增量。

GC time:垃圾回收所消耗的时间。

Threads used:使用的线程数量。

Class loading:类加载情况的指标,包括已加载的类数量、加载失败的类数量等。

Physical memory:物理内存的使用情况。

下面是关于gc总时长告警模板

#gc总时长告警规则

groups:

  - name: jvm_gc_time

    rules:

      - alert: GC总时长

        expr: jvm_gc_collection_seconds_sum > 1.0

        for: 30s

        labels:

          severity: warning

        annotations:

          summary: "{{ $labels.instance }} 当前服务gc总时长超过10秒 "

        resolved: "{{ $labels.instance }} 当前主机服务gc时长恢复正常"

#gc总次数告警规则

    rules:

      - alert: GC总次数

        expr: jvm_gc_collection_seconds_count{gc="PS Scavenge",} > 200

        for: 30s

        labels:

          severity: warning

        annotations:

          description: "{{ $labels.instance }} 当前服务gc总次数超过200次 "

        resolved: "{{ $labels.instance }} 当前主机服务gc总次数恢复正常"

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

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

相关文章

【小程序 - 基础】页面导航、页面事件、生命周期、WXS脚本_04

目录 一、页面导航 1. 什么是页面导航 2. 小程序中实现页面导航的两种方式 2.1 声明式导航 2.1.1 导航到 tabBar 页面 2.1.2 导航到非 tabBar 页面 2.1.3 后退导航 2.2 编程式导航 2.2.1 导航到 tabBar 页面 2.2.2 导航到非 tabBar 页面 2.2.3 后退导航 2.3. 导航…

Proxyer实现内网穿透云服务器

Proxyer Proxyer是一个网络代理工具,它可以将本地计算机的网络流量(如HTTP、HTTPS、TCP等)转发到远程服务器。使用Proxyer可以在本地计算机上建立一个代理服务器,通过代理服务器来访问互联网上的资源。 yum仓库设置 rm -f /etc…

在Ubuntu上通过Portainer部署微服务项目

这篇文章主要记录自己在ubuntu上部署自己的微服务应用的过程,文章中使用了docker、docker-compose和portainer,在部署过程中遇到了不少问题,因为博主也是初学docker-compose,通过这次部署实战确实有所收获,在这篇文章一…

LeetCode【121. 买卖股票的最佳时机】

你才不是什么小人物,你在我这里,是所有的天气和心情。 给定一个数组 prices ,它的第 i 个元素 prices[i] 表示一支给定股票第 i 天的价格。 你只能选择 某一天 买入这只股票,并选择在 未来的某一个不同的日子 卖出该股票。设计一…

idea Springboot 校园助学贷款系统VS开发mysql数据库web结构java编程计算机网页源码maven项目

一、源码特点 springboot 校园助学贷款系统是一套完善的信息系统,结合springboot框架和bootstrap完成本系统,对理解JSP java编程开发语言有帮助系统采用springboot框架(MVC模式开发),系统 具有完整的源代码和数据库&…

小谈设计模式(8)—代理模式

小谈设计模式(8)—代理模式 专栏介绍专栏地址专栏介绍 代理模式代理模式角色分析抽象主题(Subject)真实主题(Real Subject)代理(Proxy) 应用场景远程代理虚拟代理安全代理智能引用代…

ubuntu22.04 x11窗口环境手势控制

ubuntu22.04 x11窗口环境手势控制 ubuntu x11窗口环境的手势控制并不优秀,我们可以使用touchegg去代替 这个配置过程非常简单,并且可以很容易在一定范围内达到你想到的效果,类比mac的手势控制 关于安装 首先添加源,并安装 sud…

数据结构-----二叉排序树

目录 前言 1.什么是二叉排序树 2.如何构建二叉排序树 3.二叉排序树的操作 3.1定义节点储存方式 3.2插入节点操作 3.2创建二叉排序树 3.4遍历输出(中序遍历) 3.5数据查找操作 3.6获取最大值和最小值 3.7删除节点操作 3.8销毁二叉排序树 4.完…

漏斗分析模型

从业务流程起点开始到最后日标完成的每个环节都会有用户流失,因此需要一种分析方法来衡量业务流程每一步的转化效率,漏斗分析方法就是这样的分析方法。 例如,在淘宝上一款商品的浏览量是 300、点击量是 100、订单量是 20、支付量是 10&#…

centos 部署nginx 并配置https

centos版本:centos 7.8 (最好不要用8,8的很多用法和7相差很大) 一.安装nginx 1。下载Nginx安装包:首先,访问Nginx的官方网站(https://nginx.org/)或您选择的镜像站点,找…

Linux知识点+命令

1. 简介 Linux 是一套免费使用和自由传播的类 Unix 操作系统,是一个基于 POSIX 和 UNIX 的多用户、多任务、支持多线程和多 CPU 的操作系统。 Linux 能运行主要的 UNIX 工具软件、应用程序和网络协议。它支持 32 位和 64 位硬件。Linux 继承了 Unix 以网络为核心的…

BUUCTF reverse wp 81 - 85

[SCTF2019]babyre 反编译失败, 有花指令 有一个无用字节, 阻止反编译, patch成0x90 所有标红的地方nop掉之后按p重申函数main和loc_C22, F5成功 int __cdecl main(int argc, const char **argv, const char **envp) {char v4; // [rspFh] [rbp-151h]int v5; // [rsp10h] [rb…

谷歌扩展下载

Chrome 扩展下载安装网站推荐 # 1. 极简插件优质crx应用 ●地址:https://chrome.zzzmh.cn ●推荐:★★★★★ 一个非常良心 & 干净 & 简洁的 Chrome 扩展下载网站,体验非常不错! 侧边栏可以通过类型对扩展进行筛选和排序&…

亲测可用国产GPT人工智能

分享一些靠谱、可用、可以白嫖的GPT大模型。配合大模型,工作效率都会极大提升。 清华大学ChatGLM 官网: 智谱清言中国版对话语言模型,与GLM大模型进行对话。https://chatglm.cn/开源的、支持中英双语的1300亿参数的对话语言模型&#xff0…

1688商品详情 API(测试实例)

1688.item_get 测试实例 API测试页 点此进入 公共参数 名称类型必须描述keyString是调用key(必须以GET方式拼接在URL中)secretString是调用密钥api_nameString是API接口名称(包括在请求地址中)[item_search,item_get,item_searc…

【箱子之字形摆放】python实现-附ChatGPT解析

1.题目 箱子之形摆放 知识点:数组 时间限制:1s 空间限制:128MB 限定语言:不限 题目描述: 有一批箱子(形式为宁符串,设为str) ,要求将这批箱子按从上到下 以 之形 的顺序摆放在宽度为n的空地,请输出箱子的摆放结果。 例如:箱子为ABCDEFG,空地宽度为3,摆放结果如图: 则输…

【C++11】右值引用和移动语义 {左值引用和右值引用;移动语义;解决函数传值返回的深拷贝问题;完美转发}

一、左值引用和右值引用 传统的C语法中就有引用的语法,而C11中新增了的右值引用语法特性,所以从现在开始我们之前学习的引用就叫做左值引用。无论左值引用还是右值引用,都是给对象取别名。 什么是左值?什么是左值引用&#xff1…

《数据结构、算法与应用C++语言描述》-栈的应用-开关盒布线问题

开关盒布线问题 问题描述 在开关盒布线问题中,给定一个矩形布线区域,其外围有若干管脚。两个管脚之间通过布设一条金属线路来连接。这条金属线路称为电线,它被限制在矩形区域内。两条电线交叉会发生电流短路。因此,电线不许交叉…

乐鑫 ESP-Mesh-Lite在windows下的开发环境搭建

ESP-Mesh-Lite的开发环境由于没有官方教程,折腾了好几天。环境搭建主要还是参考ESP-MDF环境搭建,特别注意的是必须要在CMD环境下操作,不能用POWER SHELL。 ESP-Mesh-Lite目前支持到5.1的SDK,当然4.4也是可以用的。首先上Gitee或G…