Jvm jmx_exporter Prometheus dubbo Grafana 重点看端口要对应上 单独进程和程序进程内jmx_exporter

news/2024/5/18 5:56:22 标签: jvm, prometheus, dubbo

目录

JMX Exporter 的两种用法

prometheus_httpserver-0.18.0.jar%20%E6%96%B9%E5%BC%8F-toc" style="margin-left:40px;">启动独立进程 jmx_prometheus_httpserver-0.18.0.jar 方式

下载 jmx_exporter

找地方随便一放

创建配置文件 config_jmx_exporter.yaml

jvm%20%E9%85%8D%E7%BD%AE%20%E4%B8%80%E5%AE%9A%E8%A6%81%E6%98%AFjvm%E5%8F%82%E6%95%B0%20%E5%8F%AF%E5%88%AB%E6%84%8F%E5%A4%96%E5%86%99%E6%88%90%E7%A8%8B%E5%BA%8F%E5%8F%82%E6%95%B0-toc" style="margin-left:80px;">增加 启动 jvm 配置 一定要是jvm参数 可别意外写成程序参数

启动jmx_exporter

Prometheus yml 配置

启动就出来了metrics

随便配个指标看下效果

Grafana 使用模板是 8563

prometheus_javaagent-0.18.0.jar%20%E6%96%B9%E5%BC%8F%20-%E6%8E%A8%E8%8D%90%E6%96%B9%E5%BC%8F-toc" style="margin-left:40px;">进程内启动 jmx_prometheus_javaagent-0.18.0.jar 方式 -推荐方式

先把jar下载下来

创建个配置文件 config_jmx_exporter.yaml

Prometheus.yml 配置一下心的job

启动自己的项目命令

linux 带上如下内容即可

Grafana 导入 8563   模板 or  8878 模板也可以 配完就出来了


JMX Exporter 的两种用法

 JMX-Exporter 提供了两种用法:

  1. 启动独立进程。JVM 启动时指定参数,暴露 JMX 的 RMI 接口,JMX-Exporter 调用 RMI 获取 JVM 运行时状态数据,转换为 Prometheus metrics 格式,并暴露端口让 Prometheus 采集。
  2. JVM 进程内启动(in-process)。JVM 启动时指定参数,通过 javaagent 的形式运行 JMX-Exporter 的 jar 包,进程内读取 JVM 运行时状态数据,转换为 Prometheus metrics 格式,并暴露端口让 Prometheus 采集。

 官方不推荐使用第一种方式,一方面配置复杂,另一方面因为它需要一个单独的进程,而这个进程本身的监控又成了新的问题,所以本文重点围绕第二种用法讲如何使用 JMX Exporter 暴露 JVM 监控指标给Prometheus并展示在Grafana上。

prometheus_httpserver-0.18.0.jar%20%E6%96%B9%E5%BC%8F" style="margin-left:0;">启动独立进程 jmx_prometheus_httpserver-0.18.0.jar 方式

下载 jmx_exporter

Releases · prometheus/jmx_exporter · GitHub

找地方随便一放

创建配置文件 config_jmx_exporter.yaml

hostPort: localhost:8084

rules:

- pattern: ".*"

jvm%20%E9%85%8D%E7%BD%AE%20%E4%B8%80%E5%AE%9A%E8%A6%81%E6%98%AFjvm%E5%8F%82%E6%95%B0%20%E5%8F%AF%E5%88%AB%E6%84%8F%E5%A4%96%E5%86%99%E6%88%90%E7%A8%8B%E5%BA%8F%E5%8F%82%E6%95%B0" style="margin-left:0;">增加 启动 jvm 配置 一定要是jvm参数 可别意外写成程序参数


-Dcom.sun.management.jmxremote.port=8084

-Dcom.sun.management.jmxremote.ssl=false

-Dcom.sun.management.jmxremote.authenticate=false

启动jmx_exporter

>java -jar jmx_prometheus_httpserver-0.18.0.jar 12345 config_jmx_exporter.yaml

Prometheus yml 配置

  - job_name: "jmx-exporter"

    static_configs:

      - targets: ["localhost:12345"]

启动就出来了metrics

随便配个指标看下效果

Grafana 使用模板是 8563

  JVM dashboard | Grafana Labs

prometheus_javaagent-0.18.0.jar%20%E6%96%B9%E5%BC%8F%20-%E6%8E%A8%E8%8D%90%E6%96%B9%E5%BC%8F" style="margin-left:0;">进程内启动 jmx_prometheus_javaagent-0.18.0.jar 方式 -推荐方式

先把jar下载下来

 地址一样 点击下载即可

https://github.com/prometheus/jmx_exporter/releases  

创建个配置文件 config_jmx_exporter.yaml

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_bytes

    type: GAUGE

    attrNameSnakeCase: true

  - pattern: 'java.lang<type=OperatingSystem><>((?!process_cpu_time)\w+):'

    name: os_$1

    type: GAUGE

    attrNameSnakeCase: true

Prometheus.yml 配置一下心的job


  - job_name: "jmx-exporter"

    static_configs:

      - targets: ["localhost:12345"]

启动自己的项目命令

#-javaagent:D:\kf\prometheus\jmx_prometheus_javaagent-0.18.0.jar=12345:d:\kf\prometheus\config_jmx_exporter.yaml 

java -javaagent:D:\kf\prometheus\jmx_prometheus_javaagent-0.18.0.jar=12345:d:\kf\prometheus\config_jmx_exporter.yaml -jar .\demo-provider-0.0.1-SNAPSHOT.jar

linux 带上如下内容即可

nuhup … &

我是为方便放到prometheus 下边了大家根据需要随便放没限制

Jmx_exporter 开启需要的端口 如12345=12345

Grafana 导入 8563   模板 or  8878 模板也可以 配完就出来了

很方便内存线程啥的都可以快速看 切换节点就可以看其他机器的了

ok

持续更新


http://www.niftyadmin.cn/n/698160.html

相关文章

pod,docker启动使用宿主机网络的方案

Docker docker run --nethost -d --name identity -p 18092:18092 1ee54a184f9c这是一个Docker命令&#xff0c;用于在主机网络模式下运行一个名为"identity"的容器&#xff0c;并将容器内部的端口18092映射到主机上的端口18092。 解析该命令的各个部分&#xff1a;…

虚幻引擎(UE5)-大世界分区WorldPartition教程(一)

文章目录 WC与WP的区别一、如何开启WP1.默认创建WP2.手动创建WP3.转换创建WP 二、设置World Partition参数三、启动流送总结 提示&#xff1a;以下是本篇文章正文内容&#xff0c;下面案例可供参考 WC与WP的区别 WorldCompostion&#xff08;WC&#xff09; 是UE4中制作大世界…

Mybatis【核心配置文件说明】

配置解析 1、核心配置文件 mybatis-config.xml 注意&#xff1a; 在配置 mybatis-config.xml 时&#xff0c;要注意标签的顺序&#xff1a; 2、环境变量&#xff08;environments&#xff09; MyBatis 可以配置成适应多种环境 不过要记住&#xff1a;尽管可以配置多个环境…

【浮力图像】通过图像进行双段浮力大小分析

标题&#xff1a;物体从水面浸没到水中的图像 物体下表面距离水面距离0cm&#xff0c;弹簧测力计的示数20N&#xff0c; 当物体下表面距离水面距离为10cm时&#xff0c;弹簧测力计减小为15N&#xff0c;当物体继续下沉&#xff0c; 下表面距离水面20cm时&#xff0c;弹簧测力计…

基于Django 的 多摄像头实时显示系统优化 -- 全局配置项

文章大纲 全局配置项后端写法前端写法参考文献与学习路径关于django 配置文件内容传递给 template 的提问全局配置项 后端写法 首将 IP 地址存储在 settings.py 中: # settings.py import jsonconfig_file_path = r.\config.json with open(config_file_path, r, encoding=…

新手入门深度学习 | 6-1:LeNet-5(1998年)详解

🔗 运行环境:python3🚩 作者:K同学啊🥇 精选专栏:《深度学习100例》🔥 推荐专栏:《新手入门深度学习》📚 选自专栏:《Matplotlib教程》🧿 优秀专栏:《Python入门100题》传统的LeNet-5网络最初是为手写数字识别而设计的,由两个卷积层、两个池化层和三个全连接…

npm报错(npm ERR! Unexpected token ‘.‘)

使用 nvm 将 node 切换到高版本后&#xff0c;运行 npm 相关的命令报的这个错 解决办法&#xff1a; 1、通过nvm list 命令查看当前都安装的node版本列表&#xff0c;依次通过 nvm uninstall [version] 命令将已经安装的 node 版本依次删除。 [version] 代表 node 版本号。 2…

Linux与Windows:操作系统之争及个人体验比较

在当今数码化的世界中&#xff0c;操作系统扮演着关键的角色。Linux和Windows作为最受欢迎和广泛使用的操作系统之一&#xff0c;具有不同的特点和优势。作为一个AI模型&#xff0c;我虽然没有真正的使用经验&#xff0c;但我可以就这两个操作系统进行比较&#xff0c;并提供一…