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

C#集成AWS Lambda与OpenTelemetry时父Span缺失问题排查

AWS Lambda + C# OpenTelemetry 父Span缺失问题

我用C#给AWS Lambda函数集成OpenTelemetry,已经添加了AWS Otel Collector作为层,数据能正常发送到Signoz,但存在一个问题:我的Span始终显示缺失父Span。

应用会创建一个带有自定义服务名的Span,后续生成的其他Span都正常,但第一个Span的父Span实际是Lambda服务本身,这个父Span因未知原因未发送到第三方服务,导致平台显示缺失Span。Honeycomb相关文档中提到过类似问题,但未针对C#场景提供解决方案。

AWS Lambda与XRay原生集成,函数被调用时会传入Lambda服务的XRay信息,因此使用OTEL时,第一个Span会以Lambda服务作为父Span,但该父Span不会发送到Honeycomb等第三方服务,导致平台认为存在缺失Span。我的解决思路是将首个Span标记为根Span,但尝试以下方法后均未解决:

  • 关闭Lambda配置中的XRay追踪:虽然停止向XRay发布Lambda服务Span,但自定义Span仍带有ParentId
  • 参考Honeycomb文档修改环境变量:问题依旧存在

我的OpenTelemetry代码配置如下,首个Span名为lambda.otel.service,其父Span来自AWS Lambda服务:

readonly TracerProvider? _tracerProvider;
public Function()
{
    _tracerProvider = Sdk.CreateTracerProviderBuilder()
    .ConfigureResource(resource =>
        {
            resource   
                .AddService("lambda.otel.service")
                .AddAttributes(new[]
                {
                    new KeyValuePair<string, object>("service.version",
                        Assembly.GetExecutingAssembly().GetName().Version!.ToString())
                });
        })
    .AddAWSLambdaConfigurations()
    .AddAspNetCoreInstrumentation()
    .AddGrpcClientInstrumentation()
    .AddHttpClientInstrumentation()
    .AddSource(DiagnoticsConfig.SourceName)
    .AddOtlpExporter()
    .AddConsoleExporter()
    .Build();
}

内容的提问来源于stack exchange,提问作者Batuhan Aydın

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.19 06:46:10