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

Grafana Tempo无法接收.NET服务的OpenTelemetry追踪,仅显示/health和/metrics追踪

问题:Docker Compose下.NET多服务分布式追踪仅捕获健康检查请求,业务请求无追踪数据

症状

  • Tempo运行正常且可访问,但仅能捕获/health和/metrics端点的追踪数据,业务请求无任何追踪记录
  • Tempo容器启动后,仅第一个服务请求会生成追踪数据,但缺少后续跨度,之后无新追踪数据进入Tempo
  • 使用预配置的grafana/otel-lgtm镜像时追踪功能完全正常,问题仅出现在自定义Docker Compose配置中
  • 查询行为异常:多次执行查询时,新生成的追踪会从结果中消失,且Tempo日志未输出任何警告或错误信息

Docker Compose中的Tempo配置

tempo:
  image: grafana/tempo:2.7.2
  container_name: tempo
  restart: unless-stopped
  command: -config.file=/etc/tempo/tempo.yaml
  volumes:
    - tempo_data:/var/tempo
    - ./Infrastructure/Monitoring/tempo.yaml:/etc/tempo/tempo.yaml:ro
  ports:
    - "3200:3200"
    - "4317:4317"
    - "9095:9095"
    - "4318:4318"
  networks:
    - internal_network
  logging:
    driver: "json-file"
    options:
      max-size: "10m"
      max-file: "3"
  labels:
    - "com.haloperia.service=tempo"
    - "com.haloperia.environment=production"

Tempo配置文件

server:
  http_listen_port: 3200
  grpc_listen_port: 9095

distributor:
  receivers:
    otlp:
      protocols:
        http:
          endpoint: 0.0.0.0:4318
        grpc:
          endpoint: 0.0.0.0:4317

storage:
  trace:
    backend: local
    local:
      path: /var/tempo

metrics_generator:
  registry:
    collection_interval: 30s
  storage:
    path: /tmp/tempo/generator/wal
  traces_storage:
    path: /tmp/tempo/generator/traces
  processor:
    span_metrics:
    service_graphs:
      max_items: 10000
    local_blocks:
      flush_to_storage: true
      filter_server_spans: false

overrides:
  metrics_generator_processors:
    - span-metrics
    - service-graphs
    - local-blocks

.NET服务中的追踪配置

var endpoint = config["Tracing:OtlpEndpoint"] ?? "http://tempo:4317";
Console.WriteLine($"Tracing endpoint: {endpoint}");
services.AddOpenTelemetry()
    .ConfigureResource(r => r.AddService(serviceName))
    .WithTracing(b =>
    {
        b.SetSampler(new AlwaysOnSampler());
        b.AddAspNetCoreInstrumentation()
         .AddHttpClientInstrumentation()
         .AddOtlpExporter(opt => opt.Endpoint = new Uri(endpoint));
    });

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.12 19:44:56