【JMX JVM监控】Prometheus读取Trino的JMX数据到Grafana展示

trino运行拥有自己的UI来监控资源使用率,但领导需要更好的展示做些图表出来放到PPT里面,选择了用prometheus收集数据和grafana来展示图表。本文就trino的数据采集和展示做记录,对于prometheus和grafana的安装不做介绍。

首先要采集trino的数据,trino本身是一个java程序,因为可以使用java的工具来收集数据,那么首推的就是jvm的监控工具jmx,这里介绍prometheus开发的jmx工具JMX Exporter。

什么是 JMX Exporter ?

JMX Exporter 利用 Java 的 JMX 机制来读取 JVM 运行时的一些监控数据,然后将其转换为 Prometheus 所认知的 metrics 格式,以便让 Prometheus 对其进行监控采集。

配置步骤

一.配置trino的jmx

  1. 首先下载Prometheus的jmx jar包
bash 复制代码
cd /seadoop/data1/trino/trino-server-426/jmx-exporter

wget https://repo1.maven.org/maven2/io/prometheus/jmx/jmx_prometheus_javaagent/0.19.0/jmx_prometheus_javaagent-0.19.0.jar ./
  1. 配置jmx的采集规则

创建一个jmx_config.yaml配置文件,录入规则,这里匹配全部规则,全部采集

bash 复制代码
rules:
- pattern: ".*"
  1. 配置trino的jvm.config文件
bash 复制代码
-server
-Xmx50G
-XX:+UseG1GC
-XX:G1HeapRegionSize=32M
-XX:+ExplicitGCInvokesConcurrent
-XX:+UnlockDiagnosticVMOptions
-XX:-OmitStackTraceInFastThrow
-XX:ReservedCodeCacheSize=512M
-XX:PerMethodRecompilationCutoff=10000
-XX:PerBytecodeRecompilationCutoff=10000
-Djdk.attach.allowAttachSelf=true
-Djdk.nio.maxCachedBufferSize=2000000
# 添加下面这行,设置端口号随意,这里设置的3900
-javaagent:/seadoop/data1/trino/trino-server-426/jmx-exporter/jmx_prometheus_javaagent-0.19.0.jar=3900:/seadoop/data1/trino/trino-server-426/jmx-exporter/jmx_config.yaml
  1. 启动trino
bash 复制代码
./bin/launcher start
  1. 查看采集参数

访问主节点的3900端口,可以看到很多参数

二.配置prometheus

prometheus的安装部署略,把上面的jmx采集的信息导入到prometheus里面,修改prometheus的配置文件prometheus.yml,添加上面的地址10.8.131.123:3900,起一个名字为trino

bash 复制代码
global:

  scrape_interval: 15s

scrape_configs:

  - job_name: 'prometheus'

    static_configs:

      - targets: ['localhost:9090']

  - job_name: 'trino'

    static_configs:

      - targets: ['10.8.131.123:3900']

  - job_name: 'Iceber_Optimize'

    static_configs:

      - targets: ['10.38.149.106:31631']

打开prometheus的UI,选择点击target,可以看到新的job及endpoint已经添加了

三.配置grafana

grafana的安装部署略,按照如下步骤添加grafana的data source和trino的监控UI

1.配置prometheus的data source

点击菜单栏Connections

添加prometheus数据源

填入监控的job名称,及prometheus的server地址,保存返回可以看到新添加了一个trino的data source

2.下载grafana的trino监控模板

有了数据源,我们可以自定义模板,然后写sql语句去创建自己想要的监控UI,但是这又耗时又耗精力,为此grafana提供了模板上传的功能,就是有其他人做好的相关模板上传到grafana的官网,我们直接去下载这些模板导入到自己的grafana中,修修改改,这样就省去了大部分时间。

来到grafana的dashborad官网

Grafana dashboards | Grafana Labs

这里输入trino,可以找到两个网友上传的模板,点进去download json文件,这样模板就下载好了

3.导入trino模板,查看UI

点击自己的grafana的dashboard,NEW > Import,导入刚才下载的json文件,可以看到genaral下面添加了这个模板

import时选在上面定义好的数据源trino

点击模板查看监控,成功!

相关推荐
人道领域6 分钟前
【零基础学java】(等待唤醒机制,线程池补充)
java·开发语言·jvm
小突突突11 分钟前
浅谈JVM
jvm
饺子大魔王的男人2 小时前
远程调试总碰壁?局域网成 “绊脚石”?Remote JVM Debug与cpolar的合作让效率飙升
网络·jvm
天“码”行空12 小时前
java面向对象的三大特性之一多态
java·开发语言·jvm
独自破碎E17 小时前
JVM的内存区域是怎么划分的?
jvm
期待のcode18 小时前
认识Java虚拟机
java·开发语言·jvm
leaves falling21 小时前
一篇文章深入理解指针
jvm
linweidong1 天前
C++ 中避免悬挂引用的企业策略有哪些?
java·jvm·c++
曹轲恒1 天前
JVM中的直接内存
jvm
BHXDML1 天前
JVM 深度理解 —— 程序的底层运行逻辑
java·开发语言·jvm