配置多Exporter并设置不同过滤器:仅单个Exporter生效求助
问题排查与修复方案
核心问题分析与修复步骤
YAML文档分隔符错误
你的values.yaml中使用了多个---分隔符,这会将配置拆分为多个独立YAML文档。Helm处理values.yaml时默认仅读取第一个文档,导致service部分的管道配置未生效。
修复:删除多余的---,将所有配置合并为一个完整的YAML文档,示例调整后结构:#values.yaml exporters: saas_1: endpoint: saas_1 saas_2: endpoint: saas_2 processors: attributes/k8s: actions: - key: system.displayname value: ${K8S_NODE_NAME} action: insert filter/bodies: logs: include: match_type: regexp bodies: - ".*\\b(ERROR|CRITICAL)\\b.*" filter/namespaces: logs: include: match_type: strict resource_attributes: - key: "k8s.namespace.name" value: "dummy" service: telemetry: logs: encoding: json metrics: address: ${MY_POD_IP}:8888 pipelines: traces: exporters: processors: receivers: metrics: exporters: processors: receivers: logs/1: exporters: - saas_1 processors: - batch - k8sattributes - filter/bodies - attributes/k8s receivers: - otlp logs/2: exporters: - saas_2 processors: - batch - k8sattributes receivers: - otlpsaas_2 Endpoint配置验证
确认saas_2的endpoint为完整可访问的URL(例如http://saas_2:4318,需匹配接收端的协议与端口),仅填写saas_2可能导致地址解析失败,无法发送日志。Collector日志排查
查看OpenTelemetry Collector的Pod日志,搜索saas_2相关的错误信息(如连接超时、发送失败),直接定位exporter的网络或配置问题。
预期效果验证
修复后:
logs/1管道通过filter/bodies处理器仅筛选包含ERROR/CRITICAL级别的日志,发送至saas_1logs/2管道无过滤逻辑,将所有日志发送至saas_2
内容的提问来源于stack exchange,提问作者Massimiliano Corsi
相关产品推荐
相关产品推荐

