OpenTelemetry Collector能否定义多个同类型Exporter?
在OpenTelemetry Collector中定义多个同类型Exporter的方法
可以定义多个同类型的Exporter,你的问题出在配置写法错误,以下是正确的实现方式和错误原因说明:
错误原因分析
第一个错误
error decoding 'exporters': unknown type: "prometheus-B" for id: "prometheus-B"
你混淆了Exporter的自定义名称和类型。Collector会把你写的prometheus-A、prometheus-B当成Exporter类型,但不存在这种类型,正确的类型是prometheus。第二个错误
mapping key "prometheus" already defined
YAML语法不允许同一层级出现重复的键,所以不能同时定义两个名为prometheus的Exporter。
正确配置示例
receivers: otlp: protocols: http: endpoint: 0.0.0.0:4318 exporters: prometheus-A: type: prometheus endpoint: 0.0.0.0:8889 prometheus-B: type: prometheus endpoint: 0.0.0.0:8890 service: pipelines: metrics-A: receivers: [otlp] exporters: [prometheus-A] metrics-B: receivers: [otlp] exporters: [prometheus-B]
配置说明
- 给每个Exporter设置唯一的自定义名称(如
prometheus-A、prometheus-B),避免键重复。 - 通过
type: prometheus显式指定Exporter类型,让Collector识别其类型。 - 在
service.pipelines中分别引用对应的自定义名称,即可将数据分发到不同的Exporter实例。
内容的提问来源于stack exchange,提问作者mjarosie
相关产品推荐
相关产品推荐

