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

AWS OpenSearch Trace Analytics仪表盘无数据问题求助

问题分析与解决方案

你的核心问题是Trace Analytics仪表盘依赖的trace group字段缺失,导致虽然原始span数据已写入OpenSearch,但仪表盘无法正常渲染数据。以下是针对性的修复步骤:

1. 修复Data Prepper的trace group提取配置

在raw-pipeline的otel_trace_raw处理器中,显式配置trace_group_fields,指定从span的哪个属性提取trace group信息(通常用service.name):

修改后的pipelines.yaml中raw-pipeline部分:

raw-pipeline:
  delay: "100"
  source:
    pipeline:
      name: "entry-pipeline"
  processor:
    - otel_trace_raw:
        trace_group_fields:
          - "service.name"  # 指定提取service.name作为trace group
  sink:
    - opensearch:
        hosts: [ "https://opensearch-domain" ]
        username: "admin"
        password: "admin"
        index_type: trace-analytics-raw

这个配置会让Data Prepper从span的service.name属性中提取trace group数据,填充traceGroupFields字段,满足仪表盘的展示要求。

2. 确保OpenTelemetry埋点正确设置service.name属性

手动埋点时,必须为每个span设置service.name属性,否则Data Prepper无法提取到trace group。以Java SDK为例:

import io.opentelemetry.api.trace.Span;
import io.opentelemetry.api.trace.Tracer;

// 创建span时设置service.name属性
Span span = tracer.spanBuilder("your-operation-name")
    .setAttribute("service.name", "your-service-identifier")
    .startSpan();

其他语言的OTel SDK请对应设置service.name属性,这是trace group的核心来源。

3. 验证数据写入与索引映射

  • 重启Data Prepper后,重新发送追踪数据,查询otel-v1-apm-span索引,确认traceGroupFields字段已填充非空值:
    SELECT traceGroupFields FROM otel-v1-apm-span LIMIT 10;
    
  • 检查索引映射是否包含traceGroupFields结构:
    GET otel-v1-apm-span/_mapping
    
    若映射缺失,可删除现有索引(注意备份数据),让Data Prepper重新自动创建正确的索引映射。

4. 检查服务地图流水线状态

查询otel-v1-apm-service-map索引是否有数据:

SELECT * FROM otel-v1-apm-service-map LIMIT 5;

若为空,确认entry-pipeline是否正确将数据转发到service-map-pipeline,且service_map_stateful处理器无配置错误。

5. 仪表盘配置验证

进入OpenSearch Dashboards的Trace Analytics设置,确认仪表盘绑定的索引是otel-v1-apm-span和otel-v1-apm-service-map,无索引名称错误。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.07 16:45:41