Prometheus JMX Exporter 中字符串属性转标签的配置实践
2025-06-26 08:35:15作者:袁立春Spencer
背景介绍
Prometheus JMX Exporter 是一个用于将 Java 应用程序的 JMX 指标导出为 Prometheus 格式的工具。在实际使用中,我们经常需要将 JMX 中的字符串属性转换为 Prometheus 指标的标签,以便更好地组织和查询监控数据。
问题现象
在使用 JMX Exporter 监控 YouTrack 应用时,发现配置文件中虽然指定了多个字符串属性作为标签(如 HubIntegrationStatus、PermissionCacheStatus 等),但这些属性并没有如预期那样出现在导出的指标标签中。
问题排查
经过深入分析,发现问题的根源在于 Docker 容器中同时挂载了两个不同版本的 JMX Exporter 代理:
- 一个是较新的开发版本(main 分支)
- 另一个是旧版发布版本(1.1.0)
由于旧版本不支持将字符串属性转换为标签的功能,导致配置看似正确但实际未生效。
解决方案
正确配置方法
要确保字符串属性能够正确转换为标签,需要:
- 使用支持该功能的最新版本 JMX Exporter
- 正确配置 metricCustomizers 和 attributesAsLabels 部分
示例配置:
metricCustomizers:
- mbeanFilter:
domain: jetbrains.youtrack
properties:
type: Hub
name: HubIntegration
attributesAsLabels:
- HubIntegrationStatus
- PermissionCacheStatus
- RunningJob
- EventSyncStatusStatus
最佳实践
为了避免版本冲突问题,建议采用以下部署方式:
- 使用多阶段构建确保只包含一个版本的代理
- 直接从源码构建最新版本
示例 Dockerfile:
FROM maven:3.9.9-eclipse-temurin-21-jammy AS builder
RUN git clone https://github.com/prometheus/jmx_exporter.git /tmp/jmx_exporter
WORKDIR /tmp/jmx_exporter
RUN mvn -DskipTests=true package
FROM jetbrains/youtrack:2025.1.62967
COPY --from=builder /tmp/jmx_exporter/jmx_prometheus_javaagent/target/jmx_prometheus_javaagent-*-post.jar /opt/app/jmx_prometheus_javaagent.jar
效果验证
正确配置后,导出的指标将包含所有指定的字符串属性作为标签,例如:
jetbrains_youtrack_Hub_HubEventsFailed{
EventSyncStatusStatus="Active, syncing everything",
HubIntegrationStatus="Active and working",
PermissionCacheStatus="Hub permission management",
RunningJob="None",
name="HubIntegration"
} 0.0
总结
在使用 Prometheus JMX Exporter 时,要特别注意:
- 确保使用支持所需功能的最新版本
- 避免同时加载多个版本的代理
- 正确配置 attributesAsLabels 以实现字符串属性到标签的转换
- 采用容器化部署时,推荐使用多阶段构建确保环境一致性
通过以上实践,可以充分利用 JMX Exporter 的功能,实现更灵活、更强大的 Java 应用监控方案。
登录后查看全文
热门项目推荐
- Ggpt-oss-20bgpt-oss-20b —— 适用于低延迟和本地或特定用途的场景(210 亿参数,其中 36 亿活跃参数)Jinja00
- Ggpt-oss-120bgpt-oss-120b是OpenAI开源的高性能大模型,专为复杂推理任务和智能代理场景设计。这款拥有1170亿参数的混合专家模型采用原生MXFP4量化技术,可单卡部署在H100 GPU上运行。它支持可调节的推理强度(低/中/高),完整思维链追溯,并内置函数调用、网页浏览等智能体能力。模型遵循Apache 2.0许可,允许自由商用和微调,特别适合需要生产级推理能力的开发者。通过Transformers、vLLM等主流框架即可快速调用,还能在消费级硬件通过Ollama运行,为AI应用开发提供强大而灵活的基础设施。【此简介由AI生成】Jinja00
- QQwen3-Coder-480B-A35B-InstructQwen3-Coder-480B-A35B-Instruct是当前最强大的开源代码模型之一,专为智能编程与工具调用设计。它拥有4800亿参数,支持256K长上下文,并可扩展至1M,特别擅长处理复杂代码库任务。模型在智能编码、浏览器操作等任务上表现卓越,性能媲美Claude Sonnet。支持多种平台工具调用,内置优化的函数调用格式,能高效完成代码生成与逻辑推理。推荐搭配温度0.7、top_p 0.8等参数使用,单次输出最高支持65536个token。无论是快速排序算法实现,还是数学工具链集成,都能流畅执行,为开发者提供接近人类水平的编程辅助体验。【此简介由AI生成】Python00
- GGLM-4.5-AirGLM-4.5 系列模型是专为智能体设计的基础模型。GLM-4.5拥有 3550 亿总参数量,其中 320 亿活跃参数;GLM-4.5-Air采用更紧凑的设计,拥有 1060 亿总参数量,其中 120 亿活跃参数。GLM-4.5模型统一了推理、编码和智能体能力,以满足智能体应用的复杂需求Jinja00
hello-uniapp
uni-app 是一个使用 Vue.js 开发所有前端应用的框架,开发者编写一套代码,可发布到iOS、Android、鸿蒙Next、Web(响应式)、以及各种小程序(微信/支付宝/百度/抖音/飞书/QQ/快手/钉钉/淘宝/京东/小红书)、快应用、鸿蒙元服务等多个平台Vue00GitCode百大开源项目
GitCode百大计划旨在表彰GitCode平台上积极推动项目社区化,拥有广泛影响力的G-Star项目,入选项目不仅代表了GitCode开源生态的蓬勃发展,也反映了当下开源行业的发展趋势。05GOT-OCR-2.0-hf
阶跃星辰StepFun推出的GOT-OCR-2.0-hf是一款强大的多语言OCR开源模型,支持从普通文档到复杂场景的文字识别。它能精准处理表格、图表、数学公式、几何图形甚至乐谱等特殊内容,输出结果可通过第三方工具渲染成多种格式。模型支持1024×1024高分辨率输入,具备多页批量处理、动态分块识别和交互式区域选择等创新功能,用户可通过坐标或颜色指定识别区域。基于Apache 2.0协议开源,提供Hugging Face演示和完整代码,适用于学术研究到工业应用的广泛场景,为OCR领域带来突破性解决方案。00openHiTLS
旨在打造算法先进、性能卓越、高效敏捷、安全可靠的密码套件,通过轻量级、可剪裁的软件技术架构满足各行业不同场景的多样化要求,让密码技术应用更简单,同时探索后量子等先进算法创新实践,构建密码前沿技术底座!C0255Yi-Coder
Yi Coder 编程模型,小而强大的编程助手HTML013RuoYi-Cloud-Plus
微服务管理系统 重写RuoYi-Cloud所有功能 整合 SpringCloudAlibaba、Dubbo3.0、Sa-Token、Mybatis-Plus、MQ、Warm-Flow工作流、ES、Docker 全方位升级 定期同步Java014
热门内容推荐
最新内容推荐
项目优选
收起

React Native鸿蒙化仓库
C++
150
243

🎉 (RuoYi)官方仓库 基于SpringBoot,Spring Security,JWT,Vue3 & Vite、Element Plus 的前后端分离权限管理系统
Vue
765
476

openGauss kernel ~ openGauss is an open source relational database management system
C++
116
171

旨在打造算法先进、性能卓越、高效敏捷、安全可靠的密码套件,通过轻量级、可剪裁的软件技术架构满足各行业不同场景的多样化要求,让密码技术应用更简单,同时探索后量子等先进算法创新实践,构建密码前沿技术底座!
C
128
255

本仓将收集和展示仓颉鸿蒙应用示例代码,欢迎大家投稿,在仓颉鸿蒙社区展现你的妙趣设计!
Cangjie
377
362

为仓颉编程语言开发者打造活跃、开放、高质量的社区环境
Markdown
1.04 K
0

一款跨平台的 Markdown AI 笔记软件,致力于使用 AI 建立记录和写作的桥梁。
TSX
79
2

用于管理和运行HarmonyOS Issue解决方案Demo集锦。
ArkTS
13
10

基于全新 DevUI Design 设计体系的 Vue3 组件库,面向研发工具的开源前端解决方案。
TypeScript
570
69

本仓将收集和展示高质量的仓颉示例代码,欢迎大家投稿,让全世界看到您的妙趣设计,也让更多人通过您的编码理解和喜爱仓颉语言。
Cangjie
319
1.05 K