【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

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

相关推荐
电话交换机IPPBX-3CX8 小时前
Grafana图表与电话交换机的结合
数据库·mysql·grafana·ip pbx·电话交换机
神秘人X7078 小时前
Docker监控:cAdvisor+Prometheus+Grafana实战指南
docker·grafana·prometheus
m0_475064509 小时前
jvm中的栈
jvm
有谁看见我的剑了?11 小时前
Prometheus pushgateway学习
学习·prometheus
我有一颗五叶草11 小时前
JVM - 内存泄露与内存溢出
jvm
周杰伦_Jay20 小时前
【Java虚拟机(JVM)全面解析】从原理到面试实战、JVM故障处理、类加载、内存区域、垃圾回收
java·jvm
星梦清河20 小时前
宋红康 JVM 笔记 Day18|class文件结构
jvm
晓风残月淡20 小时前
JVM字节码与类的加载(二):类加载器
jvm·python·php
用手手打人20 小时前
JVM(十)-- 类的加载器
jvm
ANYOLY1 天前
JVM 面试宝典
jvm