diff --git a/NuGet.config b/NuGet.config
index c06be7ea25..f2d7a04a3b 100644
--- a/NuGet.config
+++ b/NuGet.config
@@ -6,6 +6,7 @@
+
diff --git a/build/Common.props b/build/Common.props
index 2cfe954a8d..2c8e9f49e4 100644
--- a/build/Common.props
+++ b/build/Common.props
@@ -38,7 +38,7 @@
[2.1.58,3.0)
[1.1.118,2.0)
[1.4.0,2.0)
- [5.0.0-preview.8.20407.11]
+ [5.0.0-rc.1.20428.3]
[4.7.0,5.0)
[4.7.0,5.0)
[4.5.3,5.0)
diff --git a/examples/AspNet/Examples.AspNet.csproj b/examples/AspNet/Examples.AspNet.csproj
index 2d043cd530..651319fdc6 100644
--- a/examples/AspNet/Examples.AspNet.csproj
+++ b/examples/AspNet/Examples.AspNet.csproj
@@ -79,7 +79,7 @@
- 5.0.0-preview.8.20407.11
+ 5.0.0-rc.1.20428.3
diff --git a/src/OpenTelemetry.Api/CHANGELOG.md b/src/OpenTelemetry.Api/CHANGELOG.md
index d998e161bf..3f8dec5db0 100644
--- a/src/OpenTelemetry.Api/CHANGELOG.md
+++ b/src/OpenTelemetry.Api/CHANGELOG.md
@@ -2,6 +2,8 @@
## Unreleased
+* Updated System.Diagnostics.DiagnosticSource to version 5.0.0-rc.1.20428.3
+
## 0.5.0-beta.2
Released 2020-08-28
diff --git a/src/OpenTelemetry/CHANGELOG.md b/src/OpenTelemetry/CHANGELOG.md
index bb6fb61a64..7a60aace8a 100644
--- a/src/OpenTelemetry/CHANGELOG.md
+++ b/src/OpenTelemetry/CHANGELOG.md
@@ -2,6 +2,9 @@
## Unreleased
+* Fixes [953](https://github.com/open-telemetry/opentelemetry-dotnet/issues/953)
+* Changes arising from DiagnosticSource changes ([#1203](https://github.com/open-telemetry/opentelemetry-dotnet/pull/1203/files))
+
## 0.5.0-beta.2
Released 2020-08-28
diff --git a/src/OpenTelemetry/Trace/TracerProviderSdk.cs b/src/OpenTelemetry/Trace/TracerProviderSdk.cs
index 45a9c0c245..2e9bb9b4a5 100644
--- a/src/OpenTelemetry/Trace/TracerProviderSdk.cs
+++ b/src/OpenTelemetry/Trace/TracerProviderSdk.cs
@@ -93,30 +93,23 @@ static TracerProviderSdk()
this.processor?.OnEnd(activity);
}
},
-
- // Setting this to true means TraceId will be always
- // available in sampling callbacks and will be the actual
- // traceid used, if activity ends up getting created.
- AutoGenerateRootContextTraceId = true,
};
if (sampler is AlwaysOnSampler)
{
- listener.GetRequestedDataUsingContext = (ref ActivityCreationOptions options) =>
- !Sdk.SuppressInstrumentation ? ActivityDataRequest.AllDataAndRecorded : ActivityDataRequest.None;
+ listener.Sample = (ref ActivityCreationOptions options) =>
+ !Sdk.SuppressInstrumentation ? ActivitySamplingResult.AllDataAndRecorded : ActivitySamplingResult.None;
}
else if (sampler is AlwaysOffSampler)
{
- /*TODO: Change options.Parent.SpanId to options.Parent.TraceId
- once AutoGenerateRootContextTraceId is removed.*/
- listener.GetRequestedDataUsingContext = (ref ActivityCreationOptions options) =>
- !Sdk.SuppressInstrumentation ? PropagateOrIgnoreData(options.Parent.SpanId) : ActivityDataRequest.None;
+ listener.Sample = (ref ActivityCreationOptions options) =>
+ !Sdk.SuppressInstrumentation ? PropagateOrIgnoreData(options.Parent.TraceId) : ActivitySamplingResult.None;
}
else
{
// This delegate informs ActivitySource about sampling decision when the parent context is an ActivityContext.
- listener.GetRequestedDataUsingContext = (ref ActivityCreationOptions options) =>
- !Sdk.SuppressInstrumentation ? ComputeActivityDataRequest(options, sampler) : ActivityDataRequest.None;
+ listener.Sample = (ref ActivityCreationOptions options) =>
+ !Sdk.SuppressInstrumentation ? ComputeActivitySamplingResult(options, sampler) : ActivitySamplingResult.None;
}
if (sources.Any())
@@ -219,18 +212,13 @@ protected override void Dispose(bool disposing)
base.Dispose(disposing);
}
- private static ActivityDataRequest ComputeActivityDataRequest(
+ private static ActivitySamplingResult ComputeActivitySamplingResult(
in ActivityCreationOptions options,
Sampler sampler)
{
- // As we set ActivityListener.AutoGenerateRootContextTraceId = true,
- // Parent.TraceId will always be the TraceId of the to-be-created Activity,
- // if it get created.
- ActivityTraceId traceId = options.Parent.TraceId;
-
var samplingParameters = new SamplingParameters(
options.Parent,
- traceId,
+ options.TraceId,
options.Name,
options.Kind,
options.Tags,
@@ -238,33 +226,36 @@ protected override void Dispose(bool disposing)
var shouldSample = sampler.ShouldSample(samplingParameters);
- var activityDataRequest = shouldSample.Decision switch
+ var activitySamplingResult = shouldSample.Decision switch
{
- SamplingDecision.RecordAndSampled => ActivityDataRequest.AllDataAndRecorded,
- SamplingDecision.Record => ActivityDataRequest.AllData,
- _ => ActivityDataRequest.PropagationData
+ SamplingDecision.RecordAndSampled => ActivitySamplingResult.AllDataAndRecorded,
+ SamplingDecision.Record => ActivitySamplingResult.AllData,
+ _ => ActivitySamplingResult.PropagationData
};
- if (activityDataRequest != ActivityDataRequest.PropagationData)
+ if (activitySamplingResult != ActivitySamplingResult.PropagationData)
{
- return activityDataRequest;
+ foreach (var att in shouldSample.Attributes)
+ {
+ options.SamplingTags.Add(att.Key, att.Value);
+ }
+
+ return activitySamplingResult;
}
- /*TODO: Change options.Parent.SpanId to options.Parent.TraceId
- once AutoGenerateRootContextTraceId is removed.*/
- return PropagateOrIgnoreData(options.Parent.SpanId);
+ return PropagateOrIgnoreData(options.Parent.TraceId);
}
[MethodImpl(MethodImplOptions.AggressiveInlining)]
- private static ActivityDataRequest PropagateOrIgnoreData(ActivitySpanId spanId)
+ private static ActivitySamplingResult PropagateOrIgnoreData(ActivityTraceId traceId)
{
- var isRootSpan = spanId == default;
+ var isRootSpan = traceId == default;
// If it is the root span select PropagationData so the trace ID is preserved
// even if no activity of the trace is recorded (sampled per OpenTelemetry parlance).
return isRootSpan
- ? ActivityDataRequest.PropagationData
- : ActivityDataRequest.None;
+ ? ActivitySamplingResult.PropagationData
+ : ActivitySamplingResult.None;
}
}
}
diff --git a/test/Benchmarks/Tracing/TraceBenchmarks.cs b/test/Benchmarks/Tracing/TraceBenchmarks.cs
index 977c21316e..a5e50d33ea 100644
--- a/test/Benchmarks/Tracing/TraceBenchmarks.cs
+++ b/test/Benchmarks/Tracing/TraceBenchmarks.cs
@@ -39,8 +39,7 @@ public TraceBenchmarks()
ActivityStarted = null,
ActivityStopped = null,
ShouldListenTo = (activitySource) => activitySource.Name == this.sourceWithPropagationDataListner.Name,
- GetRequestedDataUsingParentId = (ref ActivityCreationOptions options) => ActivityDataRequest.PropagationData,
- GetRequestedDataUsingContext = (ref ActivityCreationOptions options) => ActivityDataRequest.PropagationData,
+ Sample = (ref ActivityCreationOptions options) => ActivitySamplingResult.PropagationData,
});
ActivitySource.AddActivityListener(new ActivityListener
@@ -48,8 +47,7 @@ public TraceBenchmarks()
ActivityStarted = null,
ActivityStopped = null,
ShouldListenTo = (activitySource) => activitySource.Name == this.sourceWithAllDataListner.Name,
- GetRequestedDataUsingParentId = (ref ActivityCreationOptions options) => ActivityDataRequest.AllData,
- GetRequestedDataUsingContext = (ref ActivityCreationOptions options) => ActivityDataRequest.AllData,
+ Sample = (ref ActivityCreationOptions options) => ActivitySamplingResult.AllData,
});
ActivitySource.AddActivityListener(new ActivityListener
@@ -57,8 +55,7 @@ public TraceBenchmarks()
ActivityStarted = null,
ActivityStopped = null,
ShouldListenTo = (activitySource) => activitySource.Name == this.sourceWithAllDataAndRecordedListner.Name,
- GetRequestedDataUsingParentId = (ref ActivityCreationOptions options) => ActivityDataRequest.AllDataAndRecorded,
- GetRequestedDataUsingContext = (ref ActivityCreationOptions options) => ActivityDataRequest.AllDataAndRecorded,
+ Sample = (ref ActivityCreationOptions options) => ActivitySamplingResult.AllDataAndRecorded,
});
Sdk.CreateTracerProviderBuilder()
diff --git a/test/OpenTelemetry.Exporter.Jaeger.Tests/Implementation/JaegerActivityConversionTest.cs b/test/OpenTelemetry.Exporter.Jaeger.Tests/Implementation/JaegerActivityConversionTest.cs
index e5b1476ca9..bfb4cff534 100644
--- a/test/OpenTelemetry.Exporter.Jaeger.Tests/Implementation/JaegerActivityConversionTest.cs
+++ b/test/OpenTelemetry.Exporter.Jaeger.Tests/Implementation/JaegerActivityConversionTest.cs
@@ -35,8 +35,7 @@ static JaegerActivityConversionTest()
var listener = new ActivityListener
{
ShouldListenTo = _ => true,
- GetRequestedDataUsingParentId = (ref ActivityCreationOptions options) => ActivityDataRequest.AllData,
- GetRequestedDataUsingContext = (ref ActivityCreationOptions options) => ActivityDataRequest.AllData,
+ Sample = (ref ActivityCreationOptions options) => ActivitySamplingResult.AllData,
};
ActivitySource.AddActivityListener(listener);
diff --git a/test/OpenTelemetry.Exporter.Jaeger.Tests/Implementation/JaegerUdpBatcherTests.cs b/test/OpenTelemetry.Exporter.Jaeger.Tests/Implementation/JaegerUdpBatcherTests.cs
index 43894441f2..7a6635fe99 100644
--- a/test/OpenTelemetry.Exporter.Jaeger.Tests/Implementation/JaegerUdpBatcherTests.cs
+++ b/test/OpenTelemetry.Exporter.Jaeger.Tests/Implementation/JaegerUdpBatcherTests.cs
@@ -41,8 +41,7 @@ static JaegerUdpBatcherTests()
var listener = new ActivityListener
{
ShouldListenTo = _ => true,
- GetRequestedDataUsingParentId = (ref ActivityCreationOptions options) => ActivityDataRequest.AllData,
- GetRequestedDataUsingContext = (ref ActivityCreationOptions options) => ActivityDataRequest.AllData,
+ Sample = (ref ActivityCreationOptions options) => ActivitySamplingResult.AllData,
};
ActivitySource.AddActivityListener(listener);
diff --git a/test/OpenTelemetry.Exporter.OpenTelemetryProtocol.Tests/OtlpExporterTest.cs b/test/OpenTelemetry.Exporter.OpenTelemetryProtocol.Tests/OtlpExporterTest.cs
index ad571c8862..db2a2eb413 100644
--- a/test/OpenTelemetry.Exporter.OpenTelemetryProtocol.Tests/OtlpExporterTest.cs
+++ b/test/OpenTelemetry.Exporter.OpenTelemetryProtocol.Tests/OtlpExporterTest.cs
@@ -42,8 +42,7 @@ static OtlpExporterTest()
var listener = new ActivityListener
{
ShouldListenTo = _ => true,
- GetRequestedDataUsingParentId = (ref ActivityCreationOptions options) => ActivityDataRequest.AllData,
- GetRequestedDataUsingContext = (ref ActivityCreationOptions options) => ActivityDataRequest.AllData,
+ Sample = (ref ActivityCreationOptions options) => ActivitySamplingResult.AllData,
};
ActivitySource.AddActivityListener(listener);
diff --git a/test/OpenTelemetry.Exporter.ZPages.Tests/ZPagesExporterTests.cs b/test/OpenTelemetry.Exporter.ZPages.Tests/ZPagesExporterTests.cs
index e0229692f4..675bb8da2f 100644
--- a/test/OpenTelemetry.Exporter.ZPages.Tests/ZPagesExporterTests.cs
+++ b/test/OpenTelemetry.Exporter.ZPages.Tests/ZPagesExporterTests.cs
@@ -40,8 +40,7 @@ static ZPagesExporterTests()
var listener = new ActivityListener
{
ShouldListenTo = _ => true,
- GetRequestedDataUsingParentId = (ref ActivityCreationOptions options) => ActivityDataRequest.AllData,
- GetRequestedDataUsingContext = (ref ActivityCreationOptions options) => ActivityDataRequest.AllData,
+ Sample = (ref ActivityCreationOptions options) => ActivitySamplingResult.AllData,
};
ActivitySource.AddActivityListener(listener);
diff --git a/test/OpenTelemetry.Exporter.Zipkin.Tests/ZipkinExporterTests.cs b/test/OpenTelemetry.Exporter.Zipkin.Tests/ZipkinExporterTests.cs
index bdd2d97c2f..e8c5caa5f7 100644
--- a/test/OpenTelemetry.Exporter.Zipkin.Tests/ZipkinExporterTests.cs
+++ b/test/OpenTelemetry.Exporter.Zipkin.Tests/ZipkinExporterTests.cs
@@ -48,8 +48,7 @@ static ZipkinExporterTests()
var listener = new ActivityListener
{
ShouldListenTo = _ => true,
- GetRequestedDataUsingParentId = (ref ActivityCreationOptions options) => ActivityDataRequest.AllData,
- GetRequestedDataUsingContext = (ref ActivityCreationOptions options) => ActivityDataRequest.AllData,
+ Sample = (ref ActivityCreationOptions options) => ActivitySamplingResult.AllData,
};
ActivitySource.AddActivityListener(listener);
diff --git a/test/OpenTelemetry.Instrumentation.Http.Tests/HttpWebRequestActivitySourceTests.netfx.cs b/test/OpenTelemetry.Instrumentation.Http.Tests/HttpWebRequestActivitySourceTests.netfx.cs
index 1ab063d4d3..90e5069ec3 100644
--- a/test/OpenTelemetry.Instrumentation.Http.Tests/HttpWebRequestActivitySourceTests.netfx.cs
+++ b/test/OpenTelemetry.Instrumentation.Http.Tests/HttpWebRequestActivitySourceTests.netfx.cs
@@ -197,7 +197,7 @@ public async Task TestBasicReceiveAndResponseEvents(string method, string queryS
[InlineData("POST")]
public async Task TestBasicReceiveAndResponseEventsWithoutSampling(string method)
{
- using var eventRecords = new ActivitySourceRecorder(activityDataRequest: ActivityDataRequest.None);
+ using var eventRecords = new ActivitySourceRecorder(activitySamplingResult: ActivitySamplingResult.None);
// Send a random Http request to generate some events
using (var client = new HttpClient())
@@ -889,14 +889,14 @@ private class ActivitySourceRecorder : IDisposable
private readonly Action> onEvent;
private readonly ActivityListener activityListener;
- public ActivitySourceRecorder(Action> onEvent = null, ActivityDataRequest activityDataRequest = ActivityDataRequest.AllDataAndRecorded)
+ public ActivitySourceRecorder(Action> onEvent = null, ActivitySamplingResult activitySamplingResult = ActivitySamplingResult.AllDataAndRecorded)
{
this.activityListener = new ActivityListener
{
ShouldListenTo = (activitySource) => activitySource.Name == HttpWebRequestActivitySource.ActivitySourceName,
ActivityStarted = this.ActivityStarted,
ActivityStopped = this.ActivityStopped,
- GetRequestedDataUsingContext = (ref ActivityCreationOptions options) => activityDataRequest,
+ Sample = (ref ActivityCreationOptions options) => activitySamplingResult,
};
ActivitySource.AddActivityListener(this.activityListener);
diff --git a/test/OpenTelemetry.Instrumentation.SqlClient.Tests/SqlClientInstrumentationOptionsTests.cs b/test/OpenTelemetry.Instrumentation.SqlClient.Tests/SqlClientInstrumentationOptionsTests.cs
index e96cb6c319..8034d30d48 100644
--- a/test/OpenTelemetry.Instrumentation.SqlClient.Tests/SqlClientInstrumentationOptionsTests.cs
+++ b/test/OpenTelemetry.Instrumentation.SqlClient.Tests/SqlClientInstrumentationOptionsTests.cs
@@ -31,8 +31,7 @@ static SqlClientInstrumentationOptionsTests()
var listener = new ActivityListener
{
ShouldListenTo = _ => true,
- GetRequestedDataUsingParentId = (ref ActivityCreationOptions options) => ActivityDataRequest.AllData,
- GetRequestedDataUsingContext = (ref ActivityCreationOptions options) => ActivityDataRequest.AllData,
+ Sample = (ref ActivityCreationOptions options) => ActivitySamplingResult.AllData,
};
ActivitySource.AddActivityListener(listener);
diff --git a/test/OpenTelemetry.Shims.OpenTracing.Tests/ScopeManagerShimTests.cs b/test/OpenTelemetry.Shims.OpenTracing.Tests/ScopeManagerShimTests.cs
index a199124852..29e561e4e3 100644
--- a/test/OpenTelemetry.Shims.OpenTracing.Tests/ScopeManagerShimTests.cs
+++ b/test/OpenTelemetry.Shims.OpenTracing.Tests/ScopeManagerShimTests.cs
@@ -35,8 +35,7 @@ static ScopeManagerShimTests()
var listener = new ActivityListener
{
ShouldListenTo = _ => true,
- GetRequestedDataUsingParentId = (ref ActivityCreationOptions options) => ActivityDataRequest.AllData,
- GetRequestedDataUsingContext = (ref ActivityCreationOptions options) => ActivityDataRequest.AllData,
+ Sample = (ref ActivityCreationOptions options) => ActivitySamplingResult.AllData,
};
ActivitySource.AddActivityListener(listener);
diff --git a/test/OpenTelemetry.Shims.OpenTracing.Tests/SpanBuilderShimTests.cs b/test/OpenTelemetry.Shims.OpenTracing.Tests/SpanBuilderShimTests.cs
index 7a97e12b32..de92bb2522 100644
--- a/test/OpenTelemetry.Shims.OpenTracing.Tests/SpanBuilderShimTests.cs
+++ b/test/OpenTelemetry.Shims.OpenTracing.Tests/SpanBuilderShimTests.cs
@@ -37,8 +37,7 @@ static SpanBuilderShimTests()
var listener = new ActivityListener
{
ShouldListenTo = _ => true,
- GetRequestedDataUsingParentId = (ref ActivityCreationOptions options) => ActivityDataRequest.AllData,
- GetRequestedDataUsingContext = (ref ActivityCreationOptions options) => ActivityDataRequest.AllData,
+ Sample = (ref ActivityCreationOptions options) => ActivitySamplingResult.AllData,
};
ActivitySource.AddActivityListener(listener);
diff --git a/test/OpenTelemetry.Shims.OpenTracing.Tests/SpanShimTests.cs b/test/OpenTelemetry.Shims.OpenTracing.Tests/SpanShimTests.cs
index 96690af59f..4db7d2b8f8 100644
--- a/test/OpenTelemetry.Shims.OpenTracing.Tests/SpanShimTests.cs
+++ b/test/OpenTelemetry.Shims.OpenTracing.Tests/SpanShimTests.cs
@@ -37,8 +37,7 @@ static SpanShimTests()
var listener = new ActivityListener
{
ShouldListenTo = _ => true,
- GetRequestedDataUsingParentId = (ref ActivityCreationOptions options) => ActivityDataRequest.AllData,
- GetRequestedDataUsingContext = (ref ActivityCreationOptions options) => ActivityDataRequest.AllData,
+ Sample = (ref ActivityCreationOptions options) => ActivitySamplingResult.AllData,
};
ActivitySource.AddActivityListener(listener);
diff --git a/test/OpenTelemetry.Tests/Trace/Propagation/B3PropagatorTest.cs b/test/OpenTelemetry.Tests/Trace/Propagation/B3PropagatorTest.cs
index f7d818d21c..5db438e142 100644
--- a/test/OpenTelemetry.Tests/Trace/Propagation/B3PropagatorTest.cs
+++ b/test/OpenTelemetry.Tests/Trace/Propagation/B3PropagatorTest.cs
@@ -77,7 +77,7 @@ public void ParseMissingSampledAndMissingFlag()
{
{ B3Propagator.XB3TraceId, TraceIdBase16 }, { B3Propagator.XB3SpanId, SpanIdBase16 },
};
- var spanContext = new ActivityContext(TraceId, SpanId, ActivityTraceFlags.None);
+ var spanContext = new ActivityContext(TraceId, SpanId, ActivityTraceFlags.None, isRemote: true);
Assert.Equal(new PropagationContext(spanContext, default), this.b3propagator.Extract(default, headersNotSampled, Getter));
}
@@ -88,7 +88,7 @@ public void ParseSampled()
{
{ B3Propagator.XB3TraceId, TraceIdBase16 }, { B3Propagator.XB3SpanId, SpanIdBase16 }, { B3Propagator.XB3Sampled, "1" },
};
- var activityContext = new ActivityContext(TraceId, SpanId, TraceOptions);
+ var activityContext = new ActivityContext(TraceId, SpanId, TraceOptions, isRemote: true);
Assert.Equal(new PropagationContext(activityContext, default), this.b3propagator.Extract(default, headersSampled, Getter));
}
@@ -99,7 +99,7 @@ public void ParseZeroSampled()
{
{ B3Propagator.XB3TraceId, TraceIdBase16 }, { B3Propagator.XB3SpanId, SpanIdBase16 }, { B3Propagator.XB3Sampled, "0" },
};
- var activityContext = new ActivityContext(TraceId, SpanId, ActivityTraceFlags.None);
+ var activityContext = new ActivityContext(TraceId, SpanId, ActivityTraceFlags.None, isRemote: true);
Assert.Equal(new PropagationContext(activityContext, default), this.b3propagator.Extract(default, headersNotSampled, Getter));
}
@@ -110,7 +110,7 @@ public void ParseFlag()
{
{ B3Propagator.XB3TraceId, TraceIdBase16 }, { B3Propagator.XB3SpanId, SpanIdBase16 }, { B3Propagator.XB3Flags, "1" },
};
- var activityContext = new ActivityContext(TraceId, SpanId, TraceOptions);
+ var activityContext = new ActivityContext(TraceId, SpanId, TraceOptions, isRemote: true);
Assert.Equal(new PropagationContext(activityContext, default), this.b3propagator.Extract(default, headersFlagSampled, Getter));
}
@@ -121,7 +121,7 @@ public void ParseZeroFlag()
{
{ B3Propagator.XB3TraceId, TraceIdBase16 }, { B3Propagator.XB3SpanId, SpanIdBase16 }, { B3Propagator.XB3Flags, "0" },
};
- var activityContext = new ActivityContext(TraceId, SpanId, ActivityTraceFlags.None);
+ var activityContext = new ActivityContext(TraceId, SpanId, ActivityTraceFlags.None, isRemote: true);
Assert.Equal(new PropagationContext(activityContext, default), this.b3propagator.Extract(default, headersFlagNotSampled, Getter));
}
@@ -134,7 +134,7 @@ public void ParseEightBytesTraceId()
{ B3Propagator.XB3SpanId, SpanIdBase16 },
{ B3Propagator.XB3Sampled, "1" },
};
- var activityContext = new ActivityContext(TraceIdEightBytes, SpanId, TraceOptions);
+ var activityContext = new ActivityContext(TraceIdEightBytes, SpanId, TraceOptions, isRemote: true);
Assert.Equal(new PropagationContext(activityContext, default), this.b3propagator.Extract(default, headersEightBytes, Getter));
}
@@ -145,7 +145,7 @@ public void ParseEightBytesTraceId_NotSampledSpanContext()
{
{ B3Propagator.XB3TraceId, TraceIdBase16EightBytes }, { B3Propagator.XB3SpanId, SpanIdBase16 },
};
- var activityContext = new ActivityContext(TraceIdEightBytes, SpanId, ActivityTraceFlags.None);
+ var activityContext = new ActivityContext(TraceIdEightBytes, SpanId, ActivityTraceFlags.None, isRemote: true);
Assert.Equal(new PropagationContext(activityContext, default), this.b3propagator.Extract(default, headersEightBytes, Getter));
}
@@ -230,7 +230,7 @@ public void ParseMissingSampledAndMissingFlag_SingleHeader()
{
{ B3Propagator.XB3Combined, $"{TraceIdBase16}-{SpanIdBase16}" },
};
- var activityContext = new ActivityContext(TraceId, SpanId, ActivityTraceFlags.None);
+ var activityContext = new ActivityContext(TraceId, SpanId, ActivityTraceFlags.None, isRemote: true);
Assert.Equal(new PropagationContext(activityContext, default), this.b3PropagatorSingleHeader.Extract(default, headersNotSampled, Getter));
}
@@ -243,7 +243,7 @@ public void ParseSampled_SingleHeader()
};
Assert.Equal(
- new PropagationContext(new ActivityContext(TraceId, SpanId, TraceOptions), default),
+ new PropagationContext(new ActivityContext(TraceId, SpanId, TraceOptions, isRemote: true), default),
this.b3PropagatorSingleHeader.Extract(default, headersSampled, Getter));
}
@@ -256,7 +256,7 @@ public void ParseZeroSampled_SingleHeader()
};
Assert.Equal(
- new PropagationContext(new ActivityContext(TraceId, SpanId, ActivityTraceFlags.None), default),
+ new PropagationContext(new ActivityContext(TraceId, SpanId, ActivityTraceFlags.None, isRemote: true), default),
this.b3PropagatorSingleHeader.Extract(default, headersNotSampled, Getter));
}
@@ -267,7 +267,7 @@ public void ParseFlag_SingleHeader()
{
{ B3Propagator.XB3Combined, $"{TraceIdBase16}-{SpanIdBase16}-1" },
};
- var activityContext = new ActivityContext(TraceId, SpanId, TraceOptions);
+ var activityContext = new ActivityContext(TraceId, SpanId, TraceOptions, isRemote: true);
Assert.Equal(new PropagationContext(activityContext, default), this.b3PropagatorSingleHeader.Extract(default, headersFlagSampled, Getter));
}
@@ -278,7 +278,7 @@ public void ParseZeroFlag_SingleHeader()
{
{ B3Propagator.XB3Combined, $"{TraceIdBase16}-{SpanIdBase16}-0" },
};
- var activityContext = new ActivityContext(TraceId, SpanId, ActivityTraceFlags.None);
+ var activityContext = new ActivityContext(TraceId, SpanId, ActivityTraceFlags.None, isRemote: true);
Assert.Equal(new PropagationContext(activityContext, default), this.b3PropagatorSingleHeader.Extract(default, headersFlagNotSampled, Getter));
}
@@ -289,7 +289,7 @@ public void ParseEightBytesTraceId_SingleHeader()
{
{ B3Propagator.XB3Combined, $"{TraceIdBase16EightBytes}-{SpanIdBase16}-1" },
};
- var activityContext = new ActivityContext(TraceIdEightBytes, SpanId, TraceOptions);
+ var activityContext = new ActivityContext(TraceIdEightBytes, SpanId, TraceOptions, isRemote: true);
Assert.Equal(new PropagationContext(activityContext, default), this.b3PropagatorSingleHeader.Extract(default, headersEightBytes, Getter));
}
@@ -300,7 +300,7 @@ public void ParseEightBytesTraceId_NotSampledSpanContext_SingleHeader()
{
{ B3Propagator.XB3Combined, $"{TraceIdBase16EightBytes}-{SpanIdBase16}" },
};
- var activityContext = new ActivityContext(TraceIdEightBytes, SpanId, ActivityTraceFlags.None);
+ var activityContext = new ActivityContext(TraceIdEightBytes, SpanId, ActivityTraceFlags.None, isRemote: true);
Assert.Equal(new PropagationContext(activityContext, default), this.b3PropagatorSingleHeader.Extract(default, headersEightBytes, Getter));
}
diff --git a/test/OpenTelemetry.Tests/Trace/SpanContextTest.cs b/test/OpenTelemetry.Tests/Trace/SpanContextTest.cs
index 64544dad10..d9d384846f 100644
--- a/test/OpenTelemetry.Tests/Trace/SpanContextTest.cs
+++ b/test/OpenTelemetry.Tests/Trace/SpanContextTest.cs
@@ -169,7 +169,7 @@ public void Not_Equality_DifferentTraceFlags()
Assert.True(context1 != context2);
}
- [Fact(Skip = "Skip until ActivityContext support IsRemote")]
+ [Fact]
public void Not_Equality_DifferentIsRemote()
{
var traceId = ActivityTraceId.CreateRandom();
diff --git a/test/OpenTelemetry.Tests/Trace/TracerProviderSdkTest.cs b/test/OpenTelemetry.Tests/Trace/TracerProviderSdkTest.cs
index dac72fbed0..52be5383bc 100644
--- a/test/OpenTelemetry.Tests/Trace/TracerProviderSdkTest.cs
+++ b/test/OpenTelemetry.Tests/Trace/TracerProviderSdkTest.cs
@@ -15,6 +15,7 @@
//
using System;
+using System.Collections.Generic;
using System.Diagnostics;
using OpenTelemetry.Tests;
using Xunit;
@@ -101,8 +102,39 @@ public void TracerProviderSdkInvokesSamplingWithCorrectParameters()
}
}
+ [Theory]
+ [InlineData(SamplingDecision.NotRecord)]
+ [InlineData(SamplingDecision.Record)]
+ [InlineData(SamplingDecision.RecordAndSampled)]
+ public void TracerProviderSdkSamplerAttributesAreAppliedToActivity(SamplingDecision sampling)
+ {
+ var testSampler = new TestSampler();
+ testSampler.SamplingAction = (samplingParams) =>
+ {
+ var attributes = new Dictionary();
+ attributes.Add("tagkeybysampler", "tagvalueaddedbysampler");
+ return new SamplingResult(sampling, attributes);
+ };
+
+ using var activitySource = new ActivitySource(ActivitySourceName);
+ using var sdk = Sdk.CreateTracerProviderBuilder()
+ .AddSource(ActivitySourceName)
+ .SetSampler(testSampler)
+ .Build();
+
+ using (var rootActivity = activitySource.StartActivity("root"))
+ {
+ Assert.NotNull(rootActivity);
+ Assert.Equal(rootActivity.TraceId, testSampler.LatestSamplingParameters.TraceId);
+ if (sampling != SamplingDecision.NotRecord)
+ {
+ Assert.Contains(new KeyValuePair("tagkeybysampler", "tagvalueaddedbysampler"), rootActivity.TagObjects);
+ }
+ }
+ }
+
[Fact]
- public void TracerSdkSetsActivityDataRequestBasedOnSamplingDecision()
+ public void TracerSdkSetsActivitySamplingResultBasedOnSamplingDecision()
{
var testSampler = new TestSampler();
using var activitySource = new ActivitySource(ActivitySourceName);
@@ -160,7 +192,7 @@ public void TracerSdkSetsActivityDataRequestBasedOnSamplingDecision()
}
[Fact]
- public void TracerSdkSetsActivityDataRequestToNoneWhenSuppressInstrumentationIsTrue()
+ public void TracerSdkSetsActivitySamplingResultToNoneWhenSuppressInstrumentationIsTrue()
{
using var scope = SuppressInstrumentationScope.Begin();