Skip to content

Commit a2b0309

Browse files
authored
Send sampling priority to lambda extension (#6719)
1 parent 1bf0744 commit a2b0309

File tree

4 files changed

+12
-9
lines changed

4 files changed

+12
-9
lines changed

tracer/src/Datadog.Trace/ClrProfiler/AutoInstrumentation/AWS/Lambda/LambdaRequestBuilder.cs

+5-2
Original file line numberDiff line numberDiff line change
@@ -47,8 +47,11 @@ WebRequest ILambdaExtensionRequest.GetEndInvocationRequest(Scope scope, bool isE
4747
request.Headers.Set(HttpHeaderNames.TraceId, span.TraceId128.Lower.ToString(CultureInfo.InvariantCulture));
4848
request.Headers.Set(HttpHeaderNames.SpanId, span.SpanId.ToString(CultureInfo.InvariantCulture));
4949

50-
var samplingPriority = span.Context.TraceContext?.GetOrMakeSamplingDecision();
51-
request.Headers.Set(HttpHeaderNames.SamplingPriority, SamplingPriorityValues.ToString(samplingPriority));
50+
if (span.Context.TraceContext is { } traceContext)
51+
{
52+
var samplingPriority = traceContext.GetOrMakeSamplingDecision(span);
53+
request.Headers.Set(HttpHeaderNames.SamplingPriority, SamplingPriorityValues.ToString(samplingPriority));
54+
}
5255

5356
var errorMessage = span.GetTag("error.msg");
5457
if (errorMessage != null)

tracer/src/Datadog.Trace/SpanContext.cs

+1-1
Original file line numberDiff line numberDiff line change
@@ -430,7 +430,7 @@ private static TraceId GetTraceId(ISpanContext context, TraceId fallback)
430430
}
431431

432432
/// <summary>
433-
/// If <see cref="TraceContext"/> is not null, returns <see cref="Trace.TraceContext.GetOrMakeSamplingDecision"/>.
433+
/// If <see cref="TraceContext"/> is not null, returns <see cref="Trace.TraceContext.GetOrMakeSamplingDecision()"/>.
434434
/// Otherwise, returns <see cref="SamplingPriority"/>.
435435
/// </summary>
436436
internal int? GetOrMakeSamplingDecision() =>

tracer/src/Datadog.Trace/TraceContext.cs

+4-4
Original file line numberDiff line numberDiff line change
@@ -257,12 +257,12 @@ public int GetOrMakeSamplingDecision()
257257
return samplingPriority;
258258
}
259259

260-
return GetOrMakeSamplingDecisionSlow();
260+
return GetOrMakeSamplingDecision(_rootSpan);
261261
}
262262

263-
private int GetOrMakeSamplingDecisionSlow()
263+
public int GetOrMakeSamplingDecision(Span? span)
264264
{
265-
if (_rootSpan is null)
265+
if (span is null)
266266
{
267267
// we can't make a sampling decision without a root span because:
268268
// - we need a trace id, and for now trace id lives in SpanContext, not in TraceContext
@@ -274,7 +274,7 @@ private int GetOrMakeSamplingDecisionSlow()
274274
}
275275

276276
var samplingDecision = CurrentTraceSettings?.TraceSampler is { } sampler
277-
? sampler.MakeSamplingDecision(_rootSpan)
277+
? sampler.MakeSamplingDecision(span)
278278
: SamplingDecision.Default;
279279

280280
SetSamplingPriority(samplingDecision.Priority, samplingDecision.Mechanism);

tracer/test/Datadog.Trace.Tests/LambdaRequestBuilderTests.cs

+2-2
Original file line numberDiff line numberDiff line change
@@ -55,14 +55,14 @@ public async Task TestGetEndInvocationRequestWithoutError()
5555
public async Task TestGetEndInvocationRequestWithScope()
5656
{
5757
await using var tracer = TracerHelper.CreateWithFakeAgent();
58-
var headers = new WebHeaderCollection { { HttpHeaderNames.TraceId, "1234" }, { HttpHeaderNames.SamplingPriority, "-1" } }.Wrap();
58+
var headers = new WebHeaderCollection { { HttpHeaderNames.TraceId, "1234" } }.Wrap();
5959
var scope = LambdaCommon.CreatePlaceholderScope(tracer, headers);
6060

6161
ILambdaExtensionRequest requestBuilder = new LambdaRequestBuilder();
6262
var request = requestBuilder.GetEndInvocationRequest(scope, isError: false);
6363
request.Headers.Get("x-datadog-invocation-error").Should().BeNull();
6464
request.Headers.Get("x-datadog-tracing-enabled").Should().Be("false");
65-
request.Headers.Get("x-datadog-sampling-priority").Should().Be("-1");
65+
request.Headers.Get("x-datadog-sampling-priority").Should().Be("1");
6666
request.Headers.Get("x-datadog-trace-id").Should().Be("1234");
6767
request.Headers.Get("x-datadog-span-id").Should().NotBeNull();
6868
}

0 commit comments

Comments
 (0)