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

OpenTelemetry Collector未记录/导出HTTP请求问题求助

OTLP Collector接收请求返回200但无日志输出问题排查

问题场景

使用otel/opentelemetry-collector-contrib:0.68.0镜像,配置OTLP HTTP接收器与logging输出器,调用/v1/metrics接口返回200状态码,但Collector控制台未显示任何日志。

配置文件(collector-config.yaml)

receivers:
  otlp:
    protocols:
      http: http://localhost:4318
      
exporters:
  logging:
    loglevel: debug

service:
  pipelines:
    traces:
      exporters: [logging]
      receivers: [otlp]
    metrics:
      exporters: [logging]
      receivers: [otlp]
    logs:
      exporters: [logging]
      receivers: [otlp]
  telemetry:
    metrics:
      level: detailed

HTTP请求详情

  • 请求方法:POST
  • 请求地址:http://localhost:4318/v1/metrics
  • 请求体:
{"resourceMetrics_": [{"resource_": {"attributes_": [{"key_": "loki.attribute.labels", "value_": {"valueCase_": 1, "value_": "http.status", "memoizedIsInitialized": -1, "unknownFields": {"fields": {}}, "memoizedSize": -1, "memoizedHashCode": 0}, "memoizedIsInitialized": -1, "unknownFields": {"fields": {}}, "memoizedSize": -1, "memoizedHashCode": 0}, {"key_": "loki.resource.labels", "value_": {"valueCase_": 1, "value_": "host.name, pod.name", "memoizedIsInitialized": -1, "unknownFields": {"fields": {}}, "memoizedSize": -1, "memoizedHashCode": 0}, "memoizedIsInitialized": -1, "unknownFields": {"fields": {}}, "memoizedSize": -1, "memoizedHashCode": 0}], "droppedAttributesCount_": 0, "memoizedIsInitialized": -1, "unknownFields": {"fields": {}}, "memoizedSize": -1, "memoizedHashCode": 0}, "scopeMetrics_": [{"scope_": {"name_": "otelcol/hostmetricsreceiver/load", "version_": "0.68.0", "attributes_": [], "droppedAttributesCount_": 0, "memoizedIsInitialized": -1, "unknownFields": {"fields": {}}, "memoizedSize": -1, "memoizedHashCode": 0}, "metrics_": [{"dataCase_": 5, "data_": {"dataPoints_": [{"valueCase_": 4, "value_": 0.94, "attributes_": [{"key_": "loki.attribute.labels", "value_": {"valueCase_": 1, "value_": "http.status_code", "memoizedIsInitialized": -1, "unknownFields": {"fields": {}}, "memoizedSize": -1, "memoizedHashCode": 0}, "memoizedIsInitialized": -1, "unknownFields": {"fields": {}}, "memoizedSize": -1, "memoizedHashCode": 0}], "startTimeUnixNano_": 1673933623000000000, "timeUnixNano_": 1673962743472355755, "exemplars_": [], "flags_": 0, "memoizedIsInitialized": -1, "unknownFields": {"fields": {}}, "memoizedSize": -1, "memoizedHashCode": 0}], "memoizedIsInitialized": -1, "unknownFields": {"fields": {}}, "memoizedSize": -1, "memoizedHashCode": 0}, "name_": "system.cpu.load_average.15m", "description_": "Average CPU Load over 15 minutes.", "unit_": "1", "memoizedIsInitialized": -1, "unknownFields": {"fields": {}}, "memoizedSize": -1, "memoizedHashCode": 0}, {"dataCase_": 5, "data_": {"dataPoints_": [{"valueCase_": 4, "value_": 0.99, "attributes_": [{"key_": "loki.attribute.labels", "value_": {"valueCase_": 1, "value_": "http.status_code", "memoizedIsInitialized": -1, "unknownFields": {"fields": {}}, "memoizedSize": -1, "memoizedHashCode": 0}, "memoizedIsInitialized": -1, "unknownFields": {"fields": {}}, "memoizedSize": -1, "memoizedHashCode": 0}], "startTimeUnixNano_": 1673933623000000000, "timeUnixNano_": 1673962743472355755, "exemplars_": [], "flags_": 0, "memoizedIsInitialized": -1, "unknownFields": {"fields": {}}, "memoizedSize": -1, "memoizedHashCode": 0}], "memoizedIsInitialized": -1, "unknownFields": {"fields": {}}, "memoizedSize": -1, "memoizedHashCode": 0}, "name_": "system.cpu.load_average.1m", "description_": "Average CPU Load over 1 minute.", "unit_": "1", "memoizedIsInitialized": -1, "unknownFields": {"fields": {}}, "memoizedSize": -1, "memoizedHashCode": 0}, {"dataCase_": 5, "data_": {"dataPoints_": [{"valueCase_": 4, "value_": 0.81, "attributes_": [{"key_": "loki.attribute.labels", "value_": {"valueCase_": 1, "value_": "http.status_code", "memoizedIsInitialized": -1, "unknownFields": {"fields": {}}, "memoizedSize": -1, "memoizedHashCode": 0}, "memoizedIsInitialized": -1, "unknownFields": {"fields": {}}, "memoizedSize": -1, "memoizedHashCode": 0}], "startTimeUnixNano_": 1673933623000000000, "timeUnixNano_": 1673962743472355755, "exemplars_": [], "flags_": 0, "memoizedIsInitialized": -1, "unknownFields": {"fields": {}}, "memoizedSize": -1, "memoizedHashCode": 0}], "memoizedIsInitialized": -1, "unknownFields": {"fields": {}}, "memoizedSize": -1, "memoizedHashCode": 0}, "name_": "system.cpu.load_average.5m", "description_": "Average CPU Load over 5 minutes.", "unit_": "1", "memoizedIsInitialized": -1, "unknownFields": {"fields": {}}, "memoizedSize": -1, "memoizedHashCode": 0}], "schemaUrl_": "", "memoizedIsInitialized": -1, "unknownFields": {"fields": {}}, "memoizedSize": -1, "memoizedHashCode": 0}], "schemaUrl_": "https://opentelemetry.io/schemas/1.9.0", "memoizedIsInitialized": -1, "unknownFields": {"fields": {}}, "memoizedSize": -1, "memoizedHashCode": 0}], "memoizedIsInitialized": 1, "unknownFields": {"fields": {}}, "memoizedSize": -1, "memoizedHashCode": 0}

相关截图

  • 请求成功截图:
    请求成功截图
  • Collector控制台日志:
    Collector控制台日志

问题原因及解决方案

1. OTLP HTTP接收器配置错误

原配置中http: http://localhost:4318的写法不符合规范,OTLP HTTP接收器应指定监听端点,且容器内需监听所有网卡以接收外部请求。修正后的配置:

receivers:
  otlp:
    protocols:
      http:
        endpoint: 0.0.0.0:4318

2. 请求体格式不符合标准OTLP JSON规范

请求体中所有字段名带_后缀(如resourceMetrics_、resource_),这是Protobuf生成的内部JSON格式,而非OTLP HTTP接收器要求的标准JSON格式。需将字段名末尾的_移除,例如:

  • resourceMetrics_ → resourceMetrics
  • resource_ → resource
  • attributes_ → attributes

或者直接使用官方OTLP客户端发送请求,避免手动构造错误格式的JSON数据。

3. 验证步骤

修正配置并重启Collector,使用正确格式的请求体重新发送请求,查看控制台是否输出metrics日志。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.04 13:10:28