如何为mysql-exporter暴露的监控指标添加自定义标签
mysqld_exporter 添加自定义全局标签的可行方案
以下是不同场景下的可落地方案:
- 方案1:exporter 侧直接配置全局标签(推荐,标签在指标暴露阶段就会生效)
0.14.0 及以上版本的 mysqld_exporter 支持直接通过启动参数批量添加自定义标签,示例启动命令:
多个标签之间用英文逗号分隔即可,所有暴露的监控指标会自动携带配置的标签。./mysqld_exporter --exporter.metric-labels=env=生产环境,cluster=订单库集群,hostname=mysql-01 <其余原有启动参数>
如果你偏好配置文件管理,也可以创建web_config.yml配置静态标签,启动时添加--web.config.file=./web_config.yml参数加载配置即可,配置示例:static_configs: - labels: env: 生产环境 cluster: 订单库集群 hostname: mysql-01 - 方案2:Prometheus 抓取侧批量添加标签(适合无需修改 exporter 配置、批量给多实例加统一标签的场景)
直接修改 Prometheus 配置文件中对应 mysqld_exporter 的抓取任务配置,在 static_configs 下添加自定义标签即可,示例配置:
如果是用服务发现批量抓取的实例,可以通过scrape_configs: - job_name: "mysql-monitor" static_configs: - targets: ["10.0.0.1:9104"] labels: env: 生产环境 cluster: 订单库集群 hostname: mysql-01metric_relabel_configs统一注入标签,无需逐个实例配置。 - 方案3:容器化部署场景快捷配置
若使用 Docker 启动 mysqld_exporter,直接将标签参数添加到启动命令末尾即可:
若通过 Prometheus Operator 的 ServiceMonitor 管理抓取规则,直接在 ServiceMonitor 的docker run -d -p 9104:9104 prom/mysqld-exporter --exporter.metric-labels=env=生产环境,cluster=订单库集群,hostname=mysql-01 <其余参数>spec.additionalLabels或对应 endpoint 的 labels 字段配置自定义标签即可。
注意:自定义标签名不要和 Prometheus 保留标签、mysqld_exporter 原生自带标签重名,避免出现标签覆盖的异常问题。
内容的提问来源于stack exchange,提问作者JDev
相关产品推荐
相关产品推荐

