【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

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

相关推荐
工业甲酰苯胺1 小时前
JVM实战—OOM的定位和解决
服务器·jvm·php
张声录111 小时前
【Prometheus】【Blackbox Exporter】深入解析 ProbeTCP 函数:如何实现 Go 中的 TCP/SSL 协议探测
tcp/ip·golang·prometheus
东阳马生架构12 小时前
G1原理—2.G1是如何提升分配对象效率
jvm
旷野..19 小时前
Java协程的引入会导致GC Root枚举复杂度大大增加,JVM是如何解决的呢?
java·开发语言·jvm
Evaporator Core20 小时前
SQLite 的未来发展与展望
jvm·性能优化·sqlite
蜗牛_snail20 小时前
JVM三JVM虚拟机
jvm
Evaporator Core1 天前
SQLite 调试与性能优化指南
jvm·性能优化·sqlite
工业甲酰苯胺1 天前
JVM实战—OOM的生产案例
jvm
蜗牛_snail1 天前
JVM二运行时数据区
jvm
杨荧1 天前
【开源免费】基于Vue和SpringBoot的贸易行业crm系统(附论文)
前端·javascript·jvm·vue.js·spring boot·spring cloud·开源