如何用OpenTelemetry Collector实现Statsd-Exporter的指标名转标签映射?
用OpenTelemetry Collector实现Statsd-Exporter的指标映射与标签提取
要实现你在Statsd-Exporter中的指标名重命名和从名称提取字段作为标签的需求,使用OpenTelemetry Collector的transformprocessor即可完成,以下是对应你需求的完整配置:
processors: transform: metric_statements: # 对应第一个Statsd映射规则: test.dispatcher.*.*.* - context: metric statements: - include: ^test\.dispatcher\.(.*)\.(.*)\.(.*)$ rename: dispatcher_events_total add_label: processor = "$1" add_label: action = "$2" add_label: outcome = "$3" add_label: job = "test_dispatcher" # 对应第二个Statsd映射规则: *.signup.*.* - context: metric statements: - include: ^(.*)\.signup\.(.*)\.(.*)$ rename: signup_events_total add_label: provider = "$2" add_label: outcome = "$3" add_label: job = "${1}_server"
配置说明
- 正则匹配:每个
include字段用正则表达式匹配原始指标名,括号()标记需要提取的捕获组,对应Statsd规则中的$1、$2等占位符 - 指标重命名:
rename字段直接指定新的指标名称,和Statsd的name字段功能一致 - 标签添加:
add_label字段通过$n引用正则捕获到的内容,实现从指标名提取字段作为标签;固定值标签直接设置对应字符串即可
使用方式
将上述transform处理器添加到你的Collector pipeline中,放在指标接收组件(如statsd receiver)之后、导出组件(如prometheus exporter)之前,示例pipeline配置:
service: pipelines: metrics: receivers: [statsd] processors: [transform] exporters: [prometheus]
内容的提问来源于stack exchange,提问作者Stuart Buckingham
相关产品推荐
相关产品推荐

