文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

JMX Exporter 介绍与实战操作(Trino)

2024-11-30 09:01

关注

以下是 JMX Exporter 的一些关键特点和用途:

使用 JMX Exporter,你可以将你的 Java 应用程序的关键性能指标导出到 Prometheus,并利用 Prometheus 提供的灵活查询和警报功能来监控和诊断你的应用程序。这有助于及时发现和解决问题,确保你的应用程序在生产环境中保持可靠性和稳定性。

图片

三、下载 JMX Exporter jar包

JMX Exporter GitHub地址:https://github.com/prometheus/jmx_exporter

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

四、JMX Exporter 实战操作(Trino指标采集)

1)安装 Trino

1)安装 Trino

Trino官方文档:https://trino.io/docs/current/

这里为了快速部署就选择docke-compose部署了。

git clone https://gitee.com/hadoop-bigdata/docker-compose-presto.git
cd docker-compose-presto

2)修改配置

#1、下载
mkdir jmx-exporter
wget https://repo1.maven.org/maven2/io/prometheus/jmx/jmx_prometheus_javaagent/0.19.0/jmx_prometheus_javaagent-0.19.0.jar -O jmx-exporter/jmx_prometheus_javaagent-0.19.0.jar
# 需要重新构建镜像,将jar包放在镜像包里。

#2、创建jmx 配置文件,可以设置采集规则,默认是采集所有指标
touch jmx-exporter/jmx_config.yaml
# 内容如下:
rules:
- pattern: ".*"

# 修改配置
vi etc/coordinator/jvm.config
vi etc/worker/jvm.config
# 增加如下内存
-javaagent:/opt/apache/trino/lib/jmx_prometheus_javaagent-0.19.0.jar=3900:/opt/apache/trino/etc/jmx_config.yaml

修改编排文件 docker-compose.yaml

version: '3'
services:
  trino-coordinator:
    image: registry.cn-hangzhou.aliyuncs.com/bigdata_cloudnative/trino-jmx-exporter:416
    user: "hadoop:hadoop"
    container_name: trino-coordinator
    hostname: trino-coordinator
    restart: always
    privileged: true
    env_file:
      - .env
    volumes:
      - ./etc/coordinator/config.properties:${TRINO_HOME}/etc/config.properties
      - ./etc/coordinator/jvm.config:${TRINO_HOME}/etc/jvm.config
      - ./etc/coordinator/log.properties:${TRINO_HOME}/etc/log.properties
      - ./etc/coordinator/node.properties:${TRINO_HOME}/etc/node.properties
      - ./etc/catalog/:${TRINO_HOME}/etc/catalog/
    ports:
      - "30080:${TRINO_SERVER_PORT}"
      - "30980:${JMX_RMIREGISTRY_PORT}"
      - "30981:${JMX_RMISERVER_PORT}"
      - "3900"
    command: ["sh","-c","/opt/apache/bootstrap.sh trino-coordinator"]
    networks:
      - hadoop-network
    healthcheck:
      test: ["CMD-SHELL", "curl --fail http://localhost:${TRINO_SERVER_PORT}/v1/info || exit 1"]
      interval: 10s
      timeout: 20s
      retries: 3
  trino-worker:
    image: registry.cn-hangzhou.aliyuncs.com/bigdata_cloudnative/trino:416
    user: "hadoop:hadoop"
    restart: always
    privileged: true
    deploy:
      replicas: 1
    env_file:
      - .env
    volumes:
      - ./etc/worker/config.properties:${TRINO_HOME}/etc/config.properties
      - ./etc/worker/jvm.config:${TRINO_HOME}/etc/jvm.config
      - ./etc/worker/log.properties:${TRINO_HOME}/etc/log.properties
      - ./etc/worker/node.properties:${TRINO_HOME}/etc/node.properties
      - ./etc/catalog/:${TRINO_HOME}/etc/catalog/
      - ./jmx-exporter/jmx_config.yaml:${TRINO_HOME}/etc/jmx_config.yaml
      - ./jmx-exporter/jmx_prometheus_javaagent-0.19.0.jar:${TRINO_HOME}/lib/jmx_prometheus_javaagent-0.19.0.jar
    ports:
      - "${TRINO_SERVER_PORT}"
    command: ["sh","-c","/opt/apache/bootstrap.sh trino-worker"]
    networks:
      - hadoop-network
    healthcheck:
      test: ["CMD-SHELL", "curl --fail http://localhost:${TRINO_SERVER_PORT}/v1/info || exit 1"]
      interval: 10s
      timeout: 10s
      retries: 3

# 连接外部网络
networks:
  hadoop-network:
    external: true

3)开始执行安装 Trino

docker-compose up -d

# 查看
docker-compose ps

图片

web访问,就可以看到采集的数据了。

图片

4)开始配置 Prometheus 采集 Trino JMX 指标数据

Prometheus 的安装可以参考我这篇文章:Prometheus on k8s 部署与实战操作进阶篇

1、下载 prometheus 安装包

#官方下载地址:https://github.com/prometheus-operator/kube-prometheus
#在官方的基础之上进行了修改和增加内容
git clone https://gitee.com/hadoop-bigdata/kube-prometheus.git
cd kube-prometheus

2、导入镜像

镜像下载日志:

链接:https://pan.baidu.com/s/10ksK1OtKwlvZqbExKmZgLw?pwd=bcu6提取码:bcu6

# 下载完镜像包,批量分发到所有k8s节点,解压进入镜像包目录,直接执行以下命令就可将所有镜像加载
sh load-images.sh

3、开始安装 prometheus

kubectl apply --server-side -f manifests/setup
kubectl wait \
	--for cnotallow=Established \
	--all CustomResourceDefinition \
	--namespace=monitoring
kubectl apply -f manifests/

# 查看
kubectl get all -n monitoring

图片

4、开始配置 Prometheus 采集 Trino JMX 指标数据

jmx/trino.yaml 文件内容如下:

apiVersion: monitoring.coreos.com/v1
kind: ServiceMonitor
metadata:
  name: trino
  namespace: monitoring
  labels:
    app.kubernetes.io/name: trino
spec:
  namespaceSelector:
    matchNames:
    - monitoring
  selector:
    matchLabels:
      app.kubernetes.io/name: trino
  endpoints:
  - port: metrics
    interval: 10s
    path: /

---

apiVersion: v1
kind: Service
metadata:
  name: trino
  namespace: monitoring
  labels:
    app.kubernetes.io/name: trino
spec:
  ports:
    - name: metrics
      port: 3900
      targetPort: 49215
      protocol: TCP
  type: ClusterIP
  clusterIP: None

---

apiVersion: v1
kind: Endpoints
metadata:
  name: trino
  namespace: monitoring
  labels:
    app.kubernetes.io/name: trino
subsets:
  - addresses:
    - ip: 192.168.182.110
    ports:
    - name: metrics
      port: 49215
      protocol: TCP

执行

kubectl apply -f trino.yaml
# 查看
kubectl get ServiceMonitor,Service,Endpoints -n monitoring

检测 Prometheus 上是否已经采集 trino jmx

图片

4、配置 Trino JMX Grafana 监控面板

官方模块下载地址:https://grafana.com/grafana/dashboards/

用的比较多的模板是 https://grafana.com/grafana/dashboards/8563 ,可以直接导入,面板效果图:

图片

这里是根据上面的模板修改了几个指标,小伙伴可以根据自己需要添加面板

图片

这里给一份阿里云常用 Trino 监控指标参考:https://help.aliyun.com/document_detail/474222.html

来源:大数据与云原生技术分享内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯