You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

OpenTelemetry Collector返回partialSuccess响应问题排查

问题

在OpenShift容器中部署了OpenTelemetry Collector Contrib(0.69.0版本),计划将追踪数据导出至Datadog。已暴露该Collector服务的HTTP端点且可正常ping通,但通过Postman向该端点的URL+/v1/traces路径发送示例追踪数据时,收到200 OK响应,响应内容为:

{"partialSuccess": {}}

发送的请求体如下:

{
  "resourceSpans": [
    {
      "resource": {
        "attributes": [
          {
            "key": "otel.collector",
            "value": {
              "stringValue": "test-with-curl"
            }
          }
        ]
      },
      "instrumentationLibrarySpans": [
        {
          "instrumentationLibrary": {
            "name": "instrumentatron"
          },
          "spans": [
            {
              "traceId": "71699b6fe85982c7c8995ea3d9c95df2",
              "spanId": "3c191d03fa8be065",
              "name": "spanitron",
              "kind": 3,
              "droppedAttributesCount": 0,
              "events": [],
              "droppedEventsCount": 0,
              "status": {
                "code": 1
              }
            }
          ]
        }
      ]
    }
  ]
}

Collector配置文件collector-config.yml内容如下:

kind: ConfigMap
apiVersion: v1
metadata:
  name: collector-config
  namespace: opentelemetry-collector
data:
  collector.yaml: |
    receivers:
      otlp:
        protocols:
          http:
            cors:
              allowed_origins: "*"
          grpc:
      hostmetrics:
        collection_interval: 10s
        scrapers:
          paging:
            metrics:
              system.paging.utilization:
                enabled: true
          cpu:
            metrics:
              system.cpu.utilization:
                enabled: true
          disk:
          filesystem:
            metrics:
              system.filesystem.utilization:
                enabled: true
          load:
          memory:
          network:
          processes:
      prometheus:
        config:
          scrape_configs:
          - job_name: 'otelcol'
            scrape_interval: 10s
            static_configs:
            - targets: ['0.0.0.0:8888']

    processors:
      batch:
        send_batch_max_size: 1000
        send_batch_size: 100
        timeout: 10s

    exporters:
      logging:
        loglevel: debug
      datadog:
        api:
          site: datadoghq.com
          key: ************
          fail_on_invalid_key: true

    service:
      telemetry:
        logs:
          level: "debug"
      pipelines:
        metrics:
          receivers: [hostmetrics, otlp]
          processors: [batch]
          exporters: [datadog]
        traces:
          receivers: [otlp]
          processors: [batch]
          exporters: [datadog]

请问partialSuccess响应代表什么含义?为何我的追踪数据未正常送达Collector?

解答

1. partialSuccess响应的含义

partialSuccess是OTLP HTTP协议定义的标准响应字段,用于标识Collector对接收数据的处理状态。你收到的{"partialSuccess": {}}是空对象,说明Collector完整接收并处理了你的请求数据,没有任何数据被丢弃,这个响应只是协议要求的格式返回,不代表数据处理失败。

2. 追踪数据未出现在Datadog的排查方向

结合你的配置和场景,重点从以下几点排查:

  • 批处理机制延迟:你的batch处理器配置了send_batch_size: 100和timeout: 10s,意味着Collector会攒够100条追踪数据再批量发送,或者等待10秒后发送缓存的数据。你仅发送了1条测试数据,此时数据还在Collector缓存中,需要等待10秒才会导出到Datadog,并非丢失。
  • Datadog API密钥有效性:确认配置中掩码的API密钥是否正确,虽然开启了fail_on_invalid_key: true,但密钥错误会导致Collector在日志中报错,建议查看Collector容器日志确认。
  • 集群网络连通性:检查OpenShift集群是否能正常访问Datadog的API端点(api.datadoghq.com),排查集群出口防火墙、代理配置是否允许该方向的流量。
  • 日志验证数据流向:临时修改traces pipeline的exporters为[logging, datadog],重新发送测试数据后查看Collector日志,如果日志中能看到你的追踪数据,说明Collector已正确接收数据,问题出在导出环节;如果日志中没有数据,再排查接收端配置。

内容的提问来源于stack exchange,提问作者AnyamBorogass

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.05 11:35:21