diff --git a/src/OpenTelemetry.Api/.publicApi/Experimental/net462/PublicAPI.Unshipped.txt b/src/OpenTelemetry.Api/.publicApi/Experimental/net462/PublicAPI.Unshipped.txt index 29b616ee92c..2c2dcbb59e2 100644 --- a/src/OpenTelemetry.Api/.publicApi/Experimental/net462/PublicAPI.Unshipped.txt +++ b/src/OpenTelemetry.Api/.publicApi/Experimental/net462/PublicAPI.Unshipped.txt @@ -1,5 +1,5 @@ abstract OpenTelemetry.Logs.Logger.EmitLog(in OpenTelemetry.Logs.LogRecordData data, in OpenTelemetry.Logs.LogRecordAttributeList attributes) -> void -abstract OpenTelemetry.Logs.LoggerProviderBuilder.AddInstrumentation(System.Func! instrumentationFactory) -> OpenTelemetry.Logs.LoggerProviderBuilder! +abstract OpenTelemetry.Logs.LoggerProviderBuilder.AddInstrumentation(System.Func! instrumentationFactory) -> OpenTelemetry.Logs.LoggerProviderBuilder! OpenTelemetry.Logs.IDeferredLoggerProviderBuilder OpenTelemetry.Logs.IDeferredLoggerProviderBuilder.Configure(System.Action! configure) -> OpenTelemetry.Logs.LoggerProviderBuilder! OpenTelemetry.Logs.Logger diff --git a/src/OpenTelemetry.Api/.publicApi/Experimental/net6.0/PublicAPI.Unshipped.txt b/src/OpenTelemetry.Api/.publicApi/Experimental/net6.0/PublicAPI.Unshipped.txt index 29b616ee92c..2c2dcbb59e2 100644 --- a/src/OpenTelemetry.Api/.publicApi/Experimental/net6.0/PublicAPI.Unshipped.txt +++ b/src/OpenTelemetry.Api/.publicApi/Experimental/net6.0/PublicAPI.Unshipped.txt @@ -1,5 +1,5 @@ abstract OpenTelemetry.Logs.Logger.EmitLog(in OpenTelemetry.Logs.LogRecordData data, in OpenTelemetry.Logs.LogRecordAttributeList attributes) -> void -abstract OpenTelemetry.Logs.LoggerProviderBuilder.AddInstrumentation(System.Func! instrumentationFactory) -> OpenTelemetry.Logs.LoggerProviderBuilder! +abstract OpenTelemetry.Logs.LoggerProviderBuilder.AddInstrumentation(System.Func! instrumentationFactory) -> OpenTelemetry.Logs.LoggerProviderBuilder! OpenTelemetry.Logs.IDeferredLoggerProviderBuilder OpenTelemetry.Logs.IDeferredLoggerProviderBuilder.Configure(System.Action! configure) -> OpenTelemetry.Logs.LoggerProviderBuilder! OpenTelemetry.Logs.Logger diff --git a/src/OpenTelemetry.Api/.publicApi/Experimental/netstandard2.0/PublicAPI.Unshipped.txt b/src/OpenTelemetry.Api/.publicApi/Experimental/netstandard2.0/PublicAPI.Unshipped.txt index 29b616ee92c..2c2dcbb59e2 100644 --- a/src/OpenTelemetry.Api/.publicApi/Experimental/netstandard2.0/PublicAPI.Unshipped.txt +++ b/src/OpenTelemetry.Api/.publicApi/Experimental/netstandard2.0/PublicAPI.Unshipped.txt @@ -1,5 +1,5 @@ abstract OpenTelemetry.Logs.Logger.EmitLog(in OpenTelemetry.Logs.LogRecordData data, in OpenTelemetry.Logs.LogRecordAttributeList attributes) -> void -abstract OpenTelemetry.Logs.LoggerProviderBuilder.AddInstrumentation(System.Func! instrumentationFactory) -> OpenTelemetry.Logs.LoggerProviderBuilder! +abstract OpenTelemetry.Logs.LoggerProviderBuilder.AddInstrumentation(System.Func! instrumentationFactory) -> OpenTelemetry.Logs.LoggerProviderBuilder! OpenTelemetry.Logs.IDeferredLoggerProviderBuilder OpenTelemetry.Logs.IDeferredLoggerProviderBuilder.Configure(System.Action! configure) -> OpenTelemetry.Logs.LoggerProviderBuilder! OpenTelemetry.Logs.Logger diff --git a/src/OpenTelemetry.Api/.publicApi/Stable/net462/PublicAPI.Shipped.txt b/src/OpenTelemetry.Api/.publicApi/Stable/net462/PublicAPI.Shipped.txt index 15d0fffd707..3e799f099f6 100644 --- a/src/OpenTelemetry.Api/.publicApi/Stable/net462/PublicAPI.Shipped.txt +++ b/src/OpenTelemetry.Api/.publicApi/Stable/net462/PublicAPI.Shipped.txt @@ -2,11 +2,11 @@ ~abstract OpenTelemetry.Context.Propagation.TextMapPropagator.Extract(OpenTelemetry.Context.Propagation.PropagationContext context, T carrier, System.Func> getter) -> OpenTelemetry.Context.Propagation.PropagationContext ~abstract OpenTelemetry.Context.Propagation.TextMapPropagator.Fields.get -> System.Collections.Generic.ISet ~abstract OpenTelemetry.Context.Propagation.TextMapPropagator.Inject(OpenTelemetry.Context.Propagation.PropagationContext context, T carrier, System.Action setter) -> void -~abstract OpenTelemetry.Metrics.MeterProviderBuilder.AddInstrumentation(System.Func instrumentationFactory) -> OpenTelemetry.Metrics.MeterProviderBuilder -~abstract OpenTelemetry.Metrics.MeterProviderBuilder.AddMeter(params string[] names) -> OpenTelemetry.Metrics.MeterProviderBuilder -~abstract OpenTelemetry.Trace.TracerProviderBuilder.AddInstrumentation(System.Func instrumentationFactory) -> OpenTelemetry.Trace.TracerProviderBuilder -~abstract OpenTelemetry.Trace.TracerProviderBuilder.AddLegacySource(string operationName) -> OpenTelemetry.Trace.TracerProviderBuilder -~abstract OpenTelemetry.Trace.TracerProviderBuilder.AddSource(params string[] names) -> OpenTelemetry.Trace.TracerProviderBuilder +abstract OpenTelemetry.Metrics.MeterProviderBuilder.AddInstrumentation(System.Func! instrumentationFactory) -> OpenTelemetry.Metrics.MeterProviderBuilder! +abstract OpenTelemetry.Metrics.MeterProviderBuilder.AddMeter(params string![]! names) -> OpenTelemetry.Metrics.MeterProviderBuilder! +abstract OpenTelemetry.Trace.TracerProviderBuilder.AddInstrumentation(System.Func! instrumentationFactory) -> OpenTelemetry.Trace.TracerProviderBuilder! +abstract OpenTelemetry.Trace.TracerProviderBuilder.AddLegacySource(string! operationName) -> OpenTelemetry.Trace.TracerProviderBuilder! +abstract OpenTelemetry.Trace.TracerProviderBuilder.AddSource(params string![]! names) -> OpenTelemetry.Trace.TracerProviderBuilder! ~OpenTelemetry.Baggage.GetBaggage() -> System.Collections.Generic.IReadOnlyDictionary ~OpenTelemetry.Baggage.GetBaggage(string name) -> string ~OpenTelemetry.Baggage.GetEnumerator() -> System.Collections.Generic.Dictionary.Enumerator @@ -28,44 +28,44 @@ ~OpenTelemetry.Context.ThreadLocalRuntimeContextSlot.ThreadLocalRuntimeContextSlot(string name) -> void ~OpenTelemetry.Context.ThreadLocalRuntimeContextSlot.Value.get -> object ~OpenTelemetry.Context.ThreadLocalRuntimeContextSlot.Value.set -> void -~OpenTelemetry.Metrics.IDeferredMeterProviderBuilder.Configure(System.Action configure) -> OpenTelemetry.Metrics.MeterProviderBuilder -~OpenTelemetry.Trace.IDeferredTracerProviderBuilder.Configure(System.Action configure) -> OpenTelemetry.Trace.TracerProviderBuilder -~OpenTelemetry.Trace.Link.Attributes.get -> System.Collections.Generic.IEnumerable> -~OpenTelemetry.Trace.Link.Link(in OpenTelemetry.Trace.SpanContext spanContext, OpenTelemetry.Trace.SpanAttributes attributes) -> void -~OpenTelemetry.Trace.SpanAttributes.Add(string key, bool value) -> void -~OpenTelemetry.Trace.SpanAttributes.Add(string key, bool[] values) -> void -~OpenTelemetry.Trace.SpanAttributes.Add(string key, double value) -> void -~OpenTelemetry.Trace.SpanAttributes.Add(string key, double[] values) -> void -~OpenTelemetry.Trace.SpanAttributes.Add(string key, long value) -> void -~OpenTelemetry.Trace.SpanAttributes.Add(string key, long[] values) -> void -~OpenTelemetry.Trace.SpanAttributes.Add(string key, string value) -> void -~OpenTelemetry.Trace.SpanAttributes.Add(string key, string[] values) -> void -~OpenTelemetry.Trace.SpanAttributes.SpanAttributes(System.Collections.Generic.IEnumerable> attributes) -> void -~OpenTelemetry.Trace.SpanContext.SpanContext(in System.Diagnostics.ActivityTraceId traceId, in System.Diagnostics.ActivitySpanId spanId, System.Diagnostics.ActivityTraceFlags traceFlags, bool isRemote = false, System.Collections.Generic.IEnumerable> traceState = null) -> void -~OpenTelemetry.Trace.SpanContext.TraceState.get -> System.Collections.Generic.IEnumerable> -~OpenTelemetry.Trace.Status.Description.get -> string -~OpenTelemetry.Trace.Status.WithDescription(string description) -> OpenTelemetry.Trace.Status -~OpenTelemetry.Trace.TelemetrySpan.AddEvent(string name) -> OpenTelemetry.Trace.TelemetrySpan -~OpenTelemetry.Trace.TelemetrySpan.AddEvent(string name, OpenTelemetry.Trace.SpanAttributes attributes) -> OpenTelemetry.Trace.TelemetrySpan -~OpenTelemetry.Trace.TelemetrySpan.AddEvent(string name, System.DateTimeOffset timestamp) -> OpenTelemetry.Trace.TelemetrySpan -~OpenTelemetry.Trace.TelemetrySpan.AddEvent(string name, System.DateTimeOffset timestamp, OpenTelemetry.Trace.SpanAttributes attributes) -> OpenTelemetry.Trace.TelemetrySpan -~OpenTelemetry.Trace.TelemetrySpan.RecordException(string type, string message, string stacktrace) -> OpenTelemetry.Trace.TelemetrySpan -~OpenTelemetry.Trace.TelemetrySpan.RecordException(System.Exception ex) -> OpenTelemetry.Trace.TelemetrySpan -~OpenTelemetry.Trace.TelemetrySpan.SetAttribute(string key, bool value) -> OpenTelemetry.Trace.TelemetrySpan -~OpenTelemetry.Trace.TelemetrySpan.SetAttribute(string key, bool[] values) -> OpenTelemetry.Trace.TelemetrySpan -~OpenTelemetry.Trace.TelemetrySpan.SetAttribute(string key, double value) -> OpenTelemetry.Trace.TelemetrySpan -~OpenTelemetry.Trace.TelemetrySpan.SetAttribute(string key, double[] values) -> OpenTelemetry.Trace.TelemetrySpan -~OpenTelemetry.Trace.TelemetrySpan.SetAttribute(string key, int value) -> OpenTelemetry.Trace.TelemetrySpan -~OpenTelemetry.Trace.TelemetrySpan.SetAttribute(string key, int[] values) -> OpenTelemetry.Trace.TelemetrySpan -~OpenTelemetry.Trace.TelemetrySpan.SetAttribute(string key, string value) -> OpenTelemetry.Trace.TelemetrySpan -~OpenTelemetry.Trace.TelemetrySpan.SetAttribute(string key, string[] values) -> OpenTelemetry.Trace.TelemetrySpan -~OpenTelemetry.Trace.TelemetrySpan.UpdateName(string name) -> OpenTelemetry.Trace.TelemetrySpan -~OpenTelemetry.Trace.Tracer.StartActiveSpan(string name, OpenTelemetry.Trace.SpanKind kind = OpenTelemetry.Trace.SpanKind.Internal, in OpenTelemetry.Trace.SpanContext parentContext = default(OpenTelemetry.Trace.SpanContext), OpenTelemetry.Trace.SpanAttributes initialAttributes = null, System.Collections.Generic.IEnumerable links = null, System.DateTimeOffset startTime = default(System.DateTimeOffset)) -> OpenTelemetry.Trace.TelemetrySpan -~OpenTelemetry.Trace.Tracer.StartActiveSpan(string name, OpenTelemetry.Trace.SpanKind kind, in OpenTelemetry.Trace.TelemetrySpan parentSpan, OpenTelemetry.Trace.SpanAttributes initialAttributes = null, System.Collections.Generic.IEnumerable links = null, System.DateTimeOffset startTime = default(System.DateTimeOffset)) -> OpenTelemetry.Trace.TelemetrySpan -~OpenTelemetry.Trace.Tracer.StartRootSpan(string name, OpenTelemetry.Trace.SpanKind kind = OpenTelemetry.Trace.SpanKind.Internal, OpenTelemetry.Trace.SpanAttributes initialAttributes = null, System.Collections.Generic.IEnumerable links = null, System.DateTimeOffset startTime = default(System.DateTimeOffset)) -> OpenTelemetry.Trace.TelemetrySpan -~OpenTelemetry.Trace.Tracer.StartSpan(string name, OpenTelemetry.Trace.SpanKind kind = OpenTelemetry.Trace.SpanKind.Internal, in OpenTelemetry.Trace.SpanContext parentContext = default(OpenTelemetry.Trace.SpanContext), OpenTelemetry.Trace.SpanAttributes initialAttributes = null, System.Collections.Generic.IEnumerable links = null, System.DateTimeOffset startTime = default(System.DateTimeOffset)) -> OpenTelemetry.Trace.TelemetrySpan -~OpenTelemetry.Trace.Tracer.StartSpan(string name, OpenTelemetry.Trace.SpanKind kind, in OpenTelemetry.Trace.TelemetrySpan parentSpan, OpenTelemetry.Trace.SpanAttributes initialAttributes = null, System.Collections.Generic.IEnumerable links = null, System.DateTimeOffset startTime = default(System.DateTimeOffset)) -> OpenTelemetry.Trace.TelemetrySpan -~OpenTelemetry.Trace.TracerProvider.GetTracer(string name, string version = null) -> OpenTelemetry.Trace.Tracer +OpenTelemetry.Metrics.IDeferredMeterProviderBuilder.Configure(System.Action! configure) -> OpenTelemetry.Metrics.MeterProviderBuilder! +OpenTelemetry.Trace.IDeferredTracerProviderBuilder.Configure(System.Action! configure) -> OpenTelemetry.Trace.TracerProviderBuilder! +OpenTelemetry.Trace.Link.Attributes.get -> System.Collections.Generic.IEnumerable>? +OpenTelemetry.Trace.Link.Link(in OpenTelemetry.Trace.SpanContext spanContext, OpenTelemetry.Trace.SpanAttributes? attributes) -> void +OpenTelemetry.Trace.SpanAttributes.Add(string! key, bool value) -> void +OpenTelemetry.Trace.SpanAttributes.Add(string! key, bool[]? values) -> void +OpenTelemetry.Trace.SpanAttributes.Add(string! key, double value) -> void +OpenTelemetry.Trace.SpanAttributes.Add(string! key, double[]? values) -> void +OpenTelemetry.Trace.SpanAttributes.Add(string! key, long value) -> void +OpenTelemetry.Trace.SpanAttributes.Add(string! key, long[]? values) -> void +OpenTelemetry.Trace.SpanAttributes.Add(string! key, string? value) -> void +OpenTelemetry.Trace.SpanAttributes.Add(string! key, string?[]? values) -> void +OpenTelemetry.Trace.SpanAttributes.SpanAttributes(System.Collections.Generic.IEnumerable>! attributes) -> void +OpenTelemetry.Trace.SpanContext.SpanContext(in System.Diagnostics.ActivityTraceId traceId, in System.Diagnostics.ActivitySpanId spanId, System.Diagnostics.ActivityTraceFlags traceFlags, bool isRemote = false, System.Collections.Generic.IEnumerable>? traceState = null) -> void +OpenTelemetry.Trace.SpanContext.TraceState.get -> System.Collections.Generic.IEnumerable>! +OpenTelemetry.Trace.Status.Description.get -> string? +OpenTelemetry.Trace.Status.WithDescription(string? description) -> OpenTelemetry.Trace.Status +OpenTelemetry.Trace.TelemetrySpan.AddEvent(string! name) -> OpenTelemetry.Trace.TelemetrySpan! +OpenTelemetry.Trace.TelemetrySpan.AddEvent(string! name, OpenTelemetry.Trace.SpanAttributes? attributes) -> OpenTelemetry.Trace.TelemetrySpan! +OpenTelemetry.Trace.TelemetrySpan.AddEvent(string! name, System.DateTimeOffset timestamp) -> OpenTelemetry.Trace.TelemetrySpan! +OpenTelemetry.Trace.TelemetrySpan.AddEvent(string! name, System.DateTimeOffset timestamp, OpenTelemetry.Trace.SpanAttributes? attributes) -> OpenTelemetry.Trace.TelemetrySpan! +OpenTelemetry.Trace.TelemetrySpan.RecordException(string? type, string? message, string? stacktrace) -> OpenTelemetry.Trace.TelemetrySpan! +OpenTelemetry.Trace.TelemetrySpan.RecordException(System.Exception? ex) -> OpenTelemetry.Trace.TelemetrySpan! +OpenTelemetry.Trace.TelemetrySpan.SetAttribute(string! key, bool value) -> OpenTelemetry.Trace.TelemetrySpan! +OpenTelemetry.Trace.TelemetrySpan.SetAttribute(string! key, bool[]? values) -> OpenTelemetry.Trace.TelemetrySpan! +OpenTelemetry.Trace.TelemetrySpan.SetAttribute(string! key, double value) -> OpenTelemetry.Trace.TelemetrySpan! +OpenTelemetry.Trace.TelemetrySpan.SetAttribute(string! key, double[]? values) -> OpenTelemetry.Trace.TelemetrySpan! +OpenTelemetry.Trace.TelemetrySpan.SetAttribute(string! key, int value) -> OpenTelemetry.Trace.TelemetrySpan! +OpenTelemetry.Trace.TelemetrySpan.SetAttribute(string! key, int[]? values) -> OpenTelemetry.Trace.TelemetrySpan! +OpenTelemetry.Trace.TelemetrySpan.SetAttribute(string! key, string? value) -> OpenTelemetry.Trace.TelemetrySpan! +OpenTelemetry.Trace.TelemetrySpan.SetAttribute(string! key, string?[]? values) -> OpenTelemetry.Trace.TelemetrySpan! +OpenTelemetry.Trace.TelemetrySpan.UpdateName(string! name) -> OpenTelemetry.Trace.TelemetrySpan! +OpenTelemetry.Trace.Tracer.StartActiveSpan(string! name, OpenTelemetry.Trace.SpanKind kind = OpenTelemetry.Trace.SpanKind.Internal, in OpenTelemetry.Trace.SpanContext parentContext = default(OpenTelemetry.Trace.SpanContext), OpenTelemetry.Trace.SpanAttributes? initialAttributes = null, System.Collections.Generic.IEnumerable? links = null, System.DateTimeOffset startTime = default(System.DateTimeOffset)) -> OpenTelemetry.Trace.TelemetrySpan! +OpenTelemetry.Trace.Tracer.StartActiveSpan(string! name, OpenTelemetry.Trace.SpanKind kind, in OpenTelemetry.Trace.TelemetrySpan? parentSpan, OpenTelemetry.Trace.SpanAttributes? initialAttributes = null, System.Collections.Generic.IEnumerable? links = null, System.DateTimeOffset startTime = default(System.DateTimeOffset)) -> OpenTelemetry.Trace.TelemetrySpan! +OpenTelemetry.Trace.Tracer.StartRootSpan(string! name, OpenTelemetry.Trace.SpanKind kind = OpenTelemetry.Trace.SpanKind.Internal, OpenTelemetry.Trace.SpanAttributes? initialAttributes = null, System.Collections.Generic.IEnumerable? links = null, System.DateTimeOffset startTime = default(System.DateTimeOffset)) -> OpenTelemetry.Trace.TelemetrySpan! +OpenTelemetry.Trace.Tracer.StartSpan(string! name, OpenTelemetry.Trace.SpanKind kind = OpenTelemetry.Trace.SpanKind.Internal, in OpenTelemetry.Trace.SpanContext parentContext = default(OpenTelemetry.Trace.SpanContext), OpenTelemetry.Trace.SpanAttributes? initialAttributes = null, System.Collections.Generic.IEnumerable? links = null, System.DateTimeOffset startTime = default(System.DateTimeOffset)) -> OpenTelemetry.Trace.TelemetrySpan! +OpenTelemetry.Trace.Tracer.StartSpan(string! name, OpenTelemetry.Trace.SpanKind kind, in OpenTelemetry.Trace.TelemetrySpan? parentSpan, OpenTelemetry.Trace.SpanAttributes? initialAttributes = null, System.Collections.Generic.IEnumerable? links = null, System.DateTimeOffset startTime = default(System.DateTimeOffset)) -> OpenTelemetry.Trace.TelemetrySpan! +OpenTelemetry.Trace.TracerProvider.GetTracer(string! name, string? version = null) -> OpenTelemetry.Trace.Tracer! ~override OpenTelemetry.Baggage.Equals(object obj) -> bool ~override OpenTelemetry.Context.Propagation.B3Propagator.Extract(OpenTelemetry.Context.Propagation.PropagationContext context, T carrier, System.Func> getter) -> OpenTelemetry.Context.Propagation.PropagationContext ~override OpenTelemetry.Context.Propagation.B3Propagator.Fields.get -> System.Collections.Generic.ISet @@ -80,10 +80,10 @@ ~override OpenTelemetry.Context.Propagation.TraceContextPropagator.Extract(OpenTelemetry.Context.Propagation.PropagationContext context, T carrier, System.Func> getter) -> OpenTelemetry.Context.Propagation.PropagationContext ~override OpenTelemetry.Context.Propagation.TraceContextPropagator.Fields.get -> System.Collections.Generic.ISet ~override OpenTelemetry.Context.Propagation.TraceContextPropagator.Inject(OpenTelemetry.Context.Propagation.PropagationContext context, T carrier, System.Action setter) -> void -~override OpenTelemetry.Trace.Link.Equals(object obj) -> bool -~override OpenTelemetry.Trace.SpanContext.Equals(object obj) -> bool -~override OpenTelemetry.Trace.Status.Equals(object obj) -> bool -~override OpenTelemetry.Trace.Status.ToString() -> string +override OpenTelemetry.Trace.Link.Equals(object? obj) -> bool +override OpenTelemetry.Trace.SpanContext.Equals(object? obj) -> bool +override OpenTelemetry.Trace.Status.Equals(object? obj) -> bool +override OpenTelemetry.Trace.Status.ToString() -> string! ~static OpenTelemetry.Baggage.Create(System.Collections.Generic.Dictionary baggageItems = null) -> OpenTelemetry.Baggage ~static OpenTelemetry.Baggage.GetBaggage(OpenTelemetry.Baggage baggage = default(OpenTelemetry.Baggage)) -> System.Collections.Generic.IReadOnlyDictionary ~static OpenTelemetry.Baggage.GetBaggage(string name, OpenTelemetry.Baggage baggage = default(OpenTelemetry.Baggage)) -> string @@ -100,13 +100,13 @@ ~static OpenTelemetry.Context.RuntimeContext.RegisterSlot(string slotName) -> OpenTelemetry.Context.RuntimeContextSlot ~static OpenTelemetry.Context.RuntimeContext.SetValue(string slotName, object value) -> void ~static OpenTelemetry.Context.RuntimeContext.SetValue(string slotName, T value) -> void -~static OpenTelemetry.Trace.ActivityExtensions.GetStatus(this System.Diagnostics.Activity activity) -> OpenTelemetry.Trace.Status -~static OpenTelemetry.Trace.ActivityExtensions.RecordException(this System.Diagnostics.Activity activity, System.Exception ex) -> void -~static OpenTelemetry.Trace.ActivityExtensions.RecordException(this System.Diagnostics.Activity activity, System.Exception ex, in System.Diagnostics.TagList tags) -> void -~static OpenTelemetry.Trace.ActivityExtensions.SetStatus(this System.Diagnostics.Activity activity, OpenTelemetry.Trace.Status status) -> void -~static OpenTelemetry.Trace.Tracer.CurrentSpan.get -> OpenTelemetry.Trace.TelemetrySpan -~static OpenTelemetry.Trace.Tracer.WithSpan(OpenTelemetry.Trace.TelemetrySpan span) -> OpenTelemetry.Trace.TelemetrySpan -~static OpenTelemetry.Trace.TracerProvider.Default.get -> OpenTelemetry.Trace.TracerProvider +static OpenTelemetry.Trace.ActivityExtensions.GetStatus(this System.Diagnostics.Activity! activity) -> OpenTelemetry.Trace.Status +static OpenTelemetry.Trace.ActivityExtensions.RecordException(this System.Diagnostics.Activity! activity, System.Exception? ex) -> void +static OpenTelemetry.Trace.ActivityExtensions.RecordException(this System.Diagnostics.Activity! activity, System.Exception? ex, in System.Diagnostics.TagList tags) -> void +static OpenTelemetry.Trace.ActivityExtensions.SetStatus(this System.Diagnostics.Activity! activity, OpenTelemetry.Trace.Status status) -> void +static OpenTelemetry.Trace.Tracer.CurrentSpan.get -> OpenTelemetry.Trace.TelemetrySpan! +static OpenTelemetry.Trace.Tracer.WithSpan(OpenTelemetry.Trace.TelemetrySpan? span) -> OpenTelemetry.Trace.TelemetrySpan? +static OpenTelemetry.Trace.TracerProvider.Default.get -> OpenTelemetry.Trace.TracerProvider! abstract OpenTelemetry.Context.RuntimeContextSlot.Get() -> T abstract OpenTelemetry.Context.RuntimeContextSlot.Set(T value) -> void OpenTelemetry.ActivityContextExtensions diff --git a/src/OpenTelemetry.Api/.publicApi/Stable/net6.0/PublicAPI.Shipped.txt b/src/OpenTelemetry.Api/.publicApi/Stable/net6.0/PublicAPI.Shipped.txt index 62bcfd1fe02..6599b613303 100644 --- a/src/OpenTelemetry.Api/.publicApi/Stable/net6.0/PublicAPI.Shipped.txt +++ b/src/OpenTelemetry.Api/.publicApi/Stable/net6.0/PublicAPI.Shipped.txt @@ -2,11 +2,11 @@ ~abstract OpenTelemetry.Context.Propagation.TextMapPropagator.Extract(OpenTelemetry.Context.Propagation.PropagationContext context, T carrier, System.Func> getter) -> OpenTelemetry.Context.Propagation.PropagationContext ~abstract OpenTelemetry.Context.Propagation.TextMapPropagator.Fields.get -> System.Collections.Generic.ISet ~abstract OpenTelemetry.Context.Propagation.TextMapPropagator.Inject(OpenTelemetry.Context.Propagation.PropagationContext context, T carrier, System.Action setter) -> void -~abstract OpenTelemetry.Metrics.MeterProviderBuilder.AddInstrumentation(System.Func instrumentationFactory) -> OpenTelemetry.Metrics.MeterProviderBuilder -~abstract OpenTelemetry.Metrics.MeterProviderBuilder.AddMeter(params string[] names) -> OpenTelemetry.Metrics.MeterProviderBuilder -~abstract OpenTelemetry.Trace.TracerProviderBuilder.AddInstrumentation(System.Func instrumentationFactory) -> OpenTelemetry.Trace.TracerProviderBuilder -~abstract OpenTelemetry.Trace.TracerProviderBuilder.AddLegacySource(string operationName) -> OpenTelemetry.Trace.TracerProviderBuilder -~abstract OpenTelemetry.Trace.TracerProviderBuilder.AddSource(params string[] names) -> OpenTelemetry.Trace.TracerProviderBuilder +abstract OpenTelemetry.Metrics.MeterProviderBuilder.AddInstrumentation(System.Func! instrumentationFactory) -> OpenTelemetry.Metrics.MeterProviderBuilder! +abstract OpenTelemetry.Metrics.MeterProviderBuilder.AddMeter(params string![]! names) -> OpenTelemetry.Metrics.MeterProviderBuilder! +abstract OpenTelemetry.Trace.TracerProviderBuilder.AddInstrumentation(System.Func! instrumentationFactory) -> OpenTelemetry.Trace.TracerProviderBuilder! +abstract OpenTelemetry.Trace.TracerProviderBuilder.AddLegacySource(string! operationName) -> OpenTelemetry.Trace.TracerProviderBuilder! +abstract OpenTelemetry.Trace.TracerProviderBuilder.AddSource(params string![]! names) -> OpenTelemetry.Trace.TracerProviderBuilder! ~OpenTelemetry.Baggage.GetBaggage() -> System.Collections.Generic.IReadOnlyDictionary ~OpenTelemetry.Baggage.GetBaggage(string name) -> string ~OpenTelemetry.Baggage.GetEnumerator() -> System.Collections.Generic.Dictionary.Enumerator @@ -25,44 +25,44 @@ ~OpenTelemetry.Context.ThreadLocalRuntimeContextSlot.ThreadLocalRuntimeContextSlot(string name) -> void ~OpenTelemetry.Context.ThreadLocalRuntimeContextSlot.Value.get -> object ~OpenTelemetry.Context.ThreadLocalRuntimeContextSlot.Value.set -> void -~OpenTelemetry.Metrics.IDeferredMeterProviderBuilder.Configure(System.Action configure) -> OpenTelemetry.Metrics.MeterProviderBuilder -~OpenTelemetry.Trace.IDeferredTracerProviderBuilder.Configure(System.Action configure) -> OpenTelemetry.Trace.TracerProviderBuilder -~OpenTelemetry.Trace.Link.Attributes.get -> System.Collections.Generic.IEnumerable> -~OpenTelemetry.Trace.Link.Link(in OpenTelemetry.Trace.SpanContext spanContext, OpenTelemetry.Trace.SpanAttributes attributes) -> void -~OpenTelemetry.Trace.SpanAttributes.Add(string key, bool value) -> void -~OpenTelemetry.Trace.SpanAttributes.Add(string key, bool[] values) -> void -~OpenTelemetry.Trace.SpanAttributes.Add(string key, double value) -> void -~OpenTelemetry.Trace.SpanAttributes.Add(string key, double[] values) -> void -~OpenTelemetry.Trace.SpanAttributes.Add(string key, long value) -> void -~OpenTelemetry.Trace.SpanAttributes.Add(string key, long[] values) -> void -~OpenTelemetry.Trace.SpanAttributes.Add(string key, string value) -> void -~OpenTelemetry.Trace.SpanAttributes.Add(string key, string[] values) -> void -~OpenTelemetry.Trace.SpanAttributes.SpanAttributes(System.Collections.Generic.IEnumerable> attributes) -> void -~OpenTelemetry.Trace.SpanContext.SpanContext(in System.Diagnostics.ActivityTraceId traceId, in System.Diagnostics.ActivitySpanId spanId, System.Diagnostics.ActivityTraceFlags traceFlags, bool isRemote = false, System.Collections.Generic.IEnumerable> traceState = null) -> void -~OpenTelemetry.Trace.SpanContext.TraceState.get -> System.Collections.Generic.IEnumerable> -~OpenTelemetry.Trace.Status.Description.get -> string -~OpenTelemetry.Trace.Status.WithDescription(string description) -> OpenTelemetry.Trace.Status -~OpenTelemetry.Trace.TelemetrySpan.AddEvent(string name) -> OpenTelemetry.Trace.TelemetrySpan -~OpenTelemetry.Trace.TelemetrySpan.AddEvent(string name, OpenTelemetry.Trace.SpanAttributes attributes) -> OpenTelemetry.Trace.TelemetrySpan -~OpenTelemetry.Trace.TelemetrySpan.AddEvent(string name, System.DateTimeOffset timestamp) -> OpenTelemetry.Trace.TelemetrySpan -~OpenTelemetry.Trace.TelemetrySpan.AddEvent(string name, System.DateTimeOffset timestamp, OpenTelemetry.Trace.SpanAttributes attributes) -> OpenTelemetry.Trace.TelemetrySpan -~OpenTelemetry.Trace.TelemetrySpan.RecordException(string type, string message, string stacktrace) -> OpenTelemetry.Trace.TelemetrySpan -~OpenTelemetry.Trace.TelemetrySpan.RecordException(System.Exception ex) -> OpenTelemetry.Trace.TelemetrySpan -~OpenTelemetry.Trace.TelemetrySpan.SetAttribute(string key, bool value) -> OpenTelemetry.Trace.TelemetrySpan -~OpenTelemetry.Trace.TelemetrySpan.SetAttribute(string key, bool[] values) -> OpenTelemetry.Trace.TelemetrySpan -~OpenTelemetry.Trace.TelemetrySpan.SetAttribute(string key, double value) -> OpenTelemetry.Trace.TelemetrySpan -~OpenTelemetry.Trace.TelemetrySpan.SetAttribute(string key, double[] values) -> OpenTelemetry.Trace.TelemetrySpan -~OpenTelemetry.Trace.TelemetrySpan.SetAttribute(string key, int value) -> OpenTelemetry.Trace.TelemetrySpan -~OpenTelemetry.Trace.TelemetrySpan.SetAttribute(string key, int[] values) -> OpenTelemetry.Trace.TelemetrySpan -~OpenTelemetry.Trace.TelemetrySpan.SetAttribute(string key, string value) -> OpenTelemetry.Trace.TelemetrySpan -~OpenTelemetry.Trace.TelemetrySpan.SetAttribute(string key, string[] values) -> OpenTelemetry.Trace.TelemetrySpan -~OpenTelemetry.Trace.TelemetrySpan.UpdateName(string name) -> OpenTelemetry.Trace.TelemetrySpan -~OpenTelemetry.Trace.Tracer.StartActiveSpan(string name, OpenTelemetry.Trace.SpanKind kind = OpenTelemetry.Trace.SpanKind.Internal, in OpenTelemetry.Trace.SpanContext parentContext = default(OpenTelemetry.Trace.SpanContext), OpenTelemetry.Trace.SpanAttributes initialAttributes = null, System.Collections.Generic.IEnumerable links = null, System.DateTimeOffset startTime = default(System.DateTimeOffset)) -> OpenTelemetry.Trace.TelemetrySpan -~OpenTelemetry.Trace.Tracer.StartActiveSpan(string name, OpenTelemetry.Trace.SpanKind kind, in OpenTelemetry.Trace.TelemetrySpan parentSpan, OpenTelemetry.Trace.SpanAttributes initialAttributes = null, System.Collections.Generic.IEnumerable links = null, System.DateTimeOffset startTime = default(System.DateTimeOffset)) -> OpenTelemetry.Trace.TelemetrySpan -~OpenTelemetry.Trace.Tracer.StartRootSpan(string name, OpenTelemetry.Trace.SpanKind kind = OpenTelemetry.Trace.SpanKind.Internal, OpenTelemetry.Trace.SpanAttributes initialAttributes = null, System.Collections.Generic.IEnumerable links = null, System.DateTimeOffset startTime = default(System.DateTimeOffset)) -> OpenTelemetry.Trace.TelemetrySpan -~OpenTelemetry.Trace.Tracer.StartSpan(string name, OpenTelemetry.Trace.SpanKind kind = OpenTelemetry.Trace.SpanKind.Internal, in OpenTelemetry.Trace.SpanContext parentContext = default(OpenTelemetry.Trace.SpanContext), OpenTelemetry.Trace.SpanAttributes initialAttributes = null, System.Collections.Generic.IEnumerable links = null, System.DateTimeOffset startTime = default(System.DateTimeOffset)) -> OpenTelemetry.Trace.TelemetrySpan -~OpenTelemetry.Trace.Tracer.StartSpan(string name, OpenTelemetry.Trace.SpanKind kind, in OpenTelemetry.Trace.TelemetrySpan parentSpan, OpenTelemetry.Trace.SpanAttributes initialAttributes = null, System.Collections.Generic.IEnumerable links = null, System.DateTimeOffset startTime = default(System.DateTimeOffset)) -> OpenTelemetry.Trace.TelemetrySpan -~OpenTelemetry.Trace.TracerProvider.GetTracer(string name, string version = null) -> OpenTelemetry.Trace.Tracer +OpenTelemetry.Metrics.IDeferredMeterProviderBuilder.Configure(System.Action! configure) -> OpenTelemetry.Metrics.MeterProviderBuilder! +OpenTelemetry.Trace.IDeferredTracerProviderBuilder.Configure(System.Action! configure) -> OpenTelemetry.Trace.TracerProviderBuilder! +OpenTelemetry.Trace.Link.Attributes.get -> System.Collections.Generic.IEnumerable>? +OpenTelemetry.Trace.Link.Link(in OpenTelemetry.Trace.SpanContext spanContext, OpenTelemetry.Trace.SpanAttributes? attributes) -> void +OpenTelemetry.Trace.SpanAttributes.Add(string! key, bool value) -> void +OpenTelemetry.Trace.SpanAttributes.Add(string! key, bool[]? values) -> void +OpenTelemetry.Trace.SpanAttributes.Add(string! key, double value) -> void +OpenTelemetry.Trace.SpanAttributes.Add(string! key, double[]? values) -> void +OpenTelemetry.Trace.SpanAttributes.Add(string! key, long value) -> void +OpenTelemetry.Trace.SpanAttributes.Add(string! key, long[]? values) -> void +OpenTelemetry.Trace.SpanAttributes.Add(string! key, string? value) -> void +OpenTelemetry.Trace.SpanAttributes.Add(string! key, string?[]? values) -> void +OpenTelemetry.Trace.SpanAttributes.SpanAttributes(System.Collections.Generic.IEnumerable>! attributes) -> void +OpenTelemetry.Trace.SpanContext.SpanContext(in System.Diagnostics.ActivityTraceId traceId, in System.Diagnostics.ActivitySpanId spanId, System.Diagnostics.ActivityTraceFlags traceFlags, bool isRemote = false, System.Collections.Generic.IEnumerable>? traceState = null) -> void +OpenTelemetry.Trace.SpanContext.TraceState.get -> System.Collections.Generic.IEnumerable>! +OpenTelemetry.Trace.Status.Description.get -> string? +OpenTelemetry.Trace.Status.WithDescription(string? description) -> OpenTelemetry.Trace.Status +OpenTelemetry.Trace.TelemetrySpan.AddEvent(string! name) -> OpenTelemetry.Trace.TelemetrySpan! +OpenTelemetry.Trace.TelemetrySpan.AddEvent(string! name, OpenTelemetry.Trace.SpanAttributes? attributes) -> OpenTelemetry.Trace.TelemetrySpan! +OpenTelemetry.Trace.TelemetrySpan.AddEvent(string! name, System.DateTimeOffset timestamp) -> OpenTelemetry.Trace.TelemetrySpan! +OpenTelemetry.Trace.TelemetrySpan.AddEvent(string! name, System.DateTimeOffset timestamp, OpenTelemetry.Trace.SpanAttributes? attributes) -> OpenTelemetry.Trace.TelemetrySpan! +OpenTelemetry.Trace.TelemetrySpan.RecordException(string? type, string? message, string? stacktrace) -> OpenTelemetry.Trace.TelemetrySpan! +OpenTelemetry.Trace.TelemetrySpan.RecordException(System.Exception? ex) -> OpenTelemetry.Trace.TelemetrySpan! +OpenTelemetry.Trace.TelemetrySpan.SetAttribute(string! key, bool value) -> OpenTelemetry.Trace.TelemetrySpan! +OpenTelemetry.Trace.TelemetrySpan.SetAttribute(string! key, bool[]? values) -> OpenTelemetry.Trace.TelemetrySpan! +OpenTelemetry.Trace.TelemetrySpan.SetAttribute(string! key, double value) -> OpenTelemetry.Trace.TelemetrySpan! +OpenTelemetry.Trace.TelemetrySpan.SetAttribute(string! key, double[]? values) -> OpenTelemetry.Trace.TelemetrySpan! +OpenTelemetry.Trace.TelemetrySpan.SetAttribute(string! key, int value) -> OpenTelemetry.Trace.TelemetrySpan! +OpenTelemetry.Trace.TelemetrySpan.SetAttribute(string! key, int[]? values) -> OpenTelemetry.Trace.TelemetrySpan! +OpenTelemetry.Trace.TelemetrySpan.SetAttribute(string! key, string? value) -> OpenTelemetry.Trace.TelemetrySpan! +OpenTelemetry.Trace.TelemetrySpan.SetAttribute(string! key, string?[]? values) -> OpenTelemetry.Trace.TelemetrySpan! +OpenTelemetry.Trace.TelemetrySpan.UpdateName(string! name) -> OpenTelemetry.Trace.TelemetrySpan! +OpenTelemetry.Trace.Tracer.StartActiveSpan(string! name, OpenTelemetry.Trace.SpanKind kind = OpenTelemetry.Trace.SpanKind.Internal, in OpenTelemetry.Trace.SpanContext parentContext = default(OpenTelemetry.Trace.SpanContext), OpenTelemetry.Trace.SpanAttributes? initialAttributes = null, System.Collections.Generic.IEnumerable? links = null, System.DateTimeOffset startTime = default(System.DateTimeOffset)) -> OpenTelemetry.Trace.TelemetrySpan! +OpenTelemetry.Trace.Tracer.StartActiveSpan(string! name, OpenTelemetry.Trace.SpanKind kind, in OpenTelemetry.Trace.TelemetrySpan? parentSpan, OpenTelemetry.Trace.SpanAttributes? initialAttributes = null, System.Collections.Generic.IEnumerable? links = null, System.DateTimeOffset startTime = default(System.DateTimeOffset)) -> OpenTelemetry.Trace.TelemetrySpan! +OpenTelemetry.Trace.Tracer.StartRootSpan(string! name, OpenTelemetry.Trace.SpanKind kind = OpenTelemetry.Trace.SpanKind.Internal, OpenTelemetry.Trace.SpanAttributes? initialAttributes = null, System.Collections.Generic.IEnumerable? links = null, System.DateTimeOffset startTime = default(System.DateTimeOffset)) -> OpenTelemetry.Trace.TelemetrySpan! +OpenTelemetry.Trace.Tracer.StartSpan(string! name, OpenTelemetry.Trace.SpanKind kind = OpenTelemetry.Trace.SpanKind.Internal, in OpenTelemetry.Trace.SpanContext parentContext = default(OpenTelemetry.Trace.SpanContext), OpenTelemetry.Trace.SpanAttributes? initialAttributes = null, System.Collections.Generic.IEnumerable? links = null, System.DateTimeOffset startTime = default(System.DateTimeOffset)) -> OpenTelemetry.Trace.TelemetrySpan! +OpenTelemetry.Trace.Tracer.StartSpan(string! name, OpenTelemetry.Trace.SpanKind kind, in OpenTelemetry.Trace.TelemetrySpan? parentSpan, OpenTelemetry.Trace.SpanAttributes? initialAttributes = null, System.Collections.Generic.IEnumerable? links = null, System.DateTimeOffset startTime = default(System.DateTimeOffset)) -> OpenTelemetry.Trace.TelemetrySpan! +OpenTelemetry.Trace.TracerProvider.GetTracer(string! name, string? version = null) -> OpenTelemetry.Trace.Tracer! ~override OpenTelemetry.Baggage.Equals(object obj) -> bool ~override OpenTelemetry.Context.Propagation.B3Propagator.Extract(OpenTelemetry.Context.Propagation.PropagationContext context, T carrier, System.Func> getter) -> OpenTelemetry.Context.Propagation.PropagationContext ~override OpenTelemetry.Context.Propagation.B3Propagator.Fields.get -> System.Collections.Generic.ISet @@ -77,10 +77,10 @@ ~override OpenTelemetry.Context.Propagation.TraceContextPropagator.Extract(OpenTelemetry.Context.Propagation.PropagationContext context, T carrier, System.Func> getter) -> OpenTelemetry.Context.Propagation.PropagationContext ~override OpenTelemetry.Context.Propagation.TraceContextPropagator.Fields.get -> System.Collections.Generic.ISet ~override OpenTelemetry.Context.Propagation.TraceContextPropagator.Inject(OpenTelemetry.Context.Propagation.PropagationContext context, T carrier, System.Action setter) -> void -~override OpenTelemetry.Trace.Link.Equals(object obj) -> bool -~override OpenTelemetry.Trace.SpanContext.Equals(object obj) -> bool -~override OpenTelemetry.Trace.Status.Equals(object obj) -> bool -~override OpenTelemetry.Trace.Status.ToString() -> string +override OpenTelemetry.Trace.Link.Equals(object? obj) -> bool +override OpenTelemetry.Trace.SpanContext.Equals(object? obj) -> bool +override OpenTelemetry.Trace.Status.Equals(object? obj) -> bool +override OpenTelemetry.Trace.Status.ToString() -> string! ~static OpenTelemetry.Baggage.Create(System.Collections.Generic.Dictionary baggageItems = null) -> OpenTelemetry.Baggage ~static OpenTelemetry.Baggage.GetBaggage(OpenTelemetry.Baggage baggage = default(OpenTelemetry.Baggage)) -> System.Collections.Generic.IReadOnlyDictionary ~static OpenTelemetry.Baggage.GetBaggage(string name, OpenTelemetry.Baggage baggage = default(OpenTelemetry.Baggage)) -> string @@ -97,13 +97,13 @@ ~static OpenTelemetry.Context.RuntimeContext.RegisterSlot(string slotName) -> OpenTelemetry.Context.RuntimeContextSlot ~static OpenTelemetry.Context.RuntimeContext.SetValue(string slotName, object value) -> void ~static OpenTelemetry.Context.RuntimeContext.SetValue(string slotName, T value) -> void -~static OpenTelemetry.Trace.ActivityExtensions.GetStatus(this System.Diagnostics.Activity activity) -> OpenTelemetry.Trace.Status -~static OpenTelemetry.Trace.ActivityExtensions.RecordException(this System.Diagnostics.Activity activity, System.Exception ex) -> void -~static OpenTelemetry.Trace.ActivityExtensions.RecordException(this System.Diagnostics.Activity activity, System.Exception ex, in System.Diagnostics.TagList tags) -> void -~static OpenTelemetry.Trace.ActivityExtensions.SetStatus(this System.Diagnostics.Activity activity, OpenTelemetry.Trace.Status status) -> void -~static OpenTelemetry.Trace.Tracer.CurrentSpan.get -> OpenTelemetry.Trace.TelemetrySpan -~static OpenTelemetry.Trace.Tracer.WithSpan(OpenTelemetry.Trace.TelemetrySpan span) -> OpenTelemetry.Trace.TelemetrySpan -~static OpenTelemetry.Trace.TracerProvider.Default.get -> OpenTelemetry.Trace.TracerProvider +static OpenTelemetry.Trace.ActivityExtensions.GetStatus(this System.Diagnostics.Activity! activity) -> OpenTelemetry.Trace.Status +static OpenTelemetry.Trace.ActivityExtensions.RecordException(this System.Diagnostics.Activity! activity, System.Exception? ex) -> void +static OpenTelemetry.Trace.ActivityExtensions.RecordException(this System.Diagnostics.Activity! activity, System.Exception? ex, in System.Diagnostics.TagList tags) -> void +static OpenTelemetry.Trace.ActivityExtensions.SetStatus(this System.Diagnostics.Activity! activity, OpenTelemetry.Trace.Status status) -> void +static OpenTelemetry.Trace.Tracer.CurrentSpan.get -> OpenTelemetry.Trace.TelemetrySpan! +static OpenTelemetry.Trace.Tracer.WithSpan(OpenTelemetry.Trace.TelemetrySpan? span) -> OpenTelemetry.Trace.TelemetrySpan? +static OpenTelemetry.Trace.TracerProvider.Default.get -> OpenTelemetry.Trace.TracerProvider! abstract OpenTelemetry.Context.RuntimeContextSlot.Get() -> T abstract OpenTelemetry.Context.RuntimeContextSlot.Set(T value) -> void OpenTelemetry.ActivityContextExtensions diff --git a/src/OpenTelemetry.Api/.publicApi/Stable/netstandard2.0/PublicAPI.Shipped.txt b/src/OpenTelemetry.Api/.publicApi/Stable/netstandard2.0/PublicAPI.Shipped.txt index 62bcfd1fe02..6599b613303 100644 --- a/src/OpenTelemetry.Api/.publicApi/Stable/netstandard2.0/PublicAPI.Shipped.txt +++ b/src/OpenTelemetry.Api/.publicApi/Stable/netstandard2.0/PublicAPI.Shipped.txt @@ -2,11 +2,11 @@ ~abstract OpenTelemetry.Context.Propagation.TextMapPropagator.Extract(OpenTelemetry.Context.Propagation.PropagationContext context, T carrier, System.Func> getter) -> OpenTelemetry.Context.Propagation.PropagationContext ~abstract OpenTelemetry.Context.Propagation.TextMapPropagator.Fields.get -> System.Collections.Generic.ISet ~abstract OpenTelemetry.Context.Propagation.TextMapPropagator.Inject(OpenTelemetry.Context.Propagation.PropagationContext context, T carrier, System.Action setter) -> void -~abstract OpenTelemetry.Metrics.MeterProviderBuilder.AddInstrumentation(System.Func instrumentationFactory) -> OpenTelemetry.Metrics.MeterProviderBuilder -~abstract OpenTelemetry.Metrics.MeterProviderBuilder.AddMeter(params string[] names) -> OpenTelemetry.Metrics.MeterProviderBuilder -~abstract OpenTelemetry.Trace.TracerProviderBuilder.AddInstrumentation(System.Func instrumentationFactory) -> OpenTelemetry.Trace.TracerProviderBuilder -~abstract OpenTelemetry.Trace.TracerProviderBuilder.AddLegacySource(string operationName) -> OpenTelemetry.Trace.TracerProviderBuilder -~abstract OpenTelemetry.Trace.TracerProviderBuilder.AddSource(params string[] names) -> OpenTelemetry.Trace.TracerProviderBuilder +abstract OpenTelemetry.Metrics.MeterProviderBuilder.AddInstrumentation(System.Func! instrumentationFactory) -> OpenTelemetry.Metrics.MeterProviderBuilder! +abstract OpenTelemetry.Metrics.MeterProviderBuilder.AddMeter(params string![]! names) -> OpenTelemetry.Metrics.MeterProviderBuilder! +abstract OpenTelemetry.Trace.TracerProviderBuilder.AddInstrumentation(System.Func! instrumentationFactory) -> OpenTelemetry.Trace.TracerProviderBuilder! +abstract OpenTelemetry.Trace.TracerProviderBuilder.AddLegacySource(string! operationName) -> OpenTelemetry.Trace.TracerProviderBuilder! +abstract OpenTelemetry.Trace.TracerProviderBuilder.AddSource(params string![]! names) -> OpenTelemetry.Trace.TracerProviderBuilder! ~OpenTelemetry.Baggage.GetBaggage() -> System.Collections.Generic.IReadOnlyDictionary ~OpenTelemetry.Baggage.GetBaggage(string name) -> string ~OpenTelemetry.Baggage.GetEnumerator() -> System.Collections.Generic.Dictionary.Enumerator @@ -25,44 +25,44 @@ ~OpenTelemetry.Context.ThreadLocalRuntimeContextSlot.ThreadLocalRuntimeContextSlot(string name) -> void ~OpenTelemetry.Context.ThreadLocalRuntimeContextSlot.Value.get -> object ~OpenTelemetry.Context.ThreadLocalRuntimeContextSlot.Value.set -> void -~OpenTelemetry.Metrics.IDeferredMeterProviderBuilder.Configure(System.Action configure) -> OpenTelemetry.Metrics.MeterProviderBuilder -~OpenTelemetry.Trace.IDeferredTracerProviderBuilder.Configure(System.Action configure) -> OpenTelemetry.Trace.TracerProviderBuilder -~OpenTelemetry.Trace.Link.Attributes.get -> System.Collections.Generic.IEnumerable> -~OpenTelemetry.Trace.Link.Link(in OpenTelemetry.Trace.SpanContext spanContext, OpenTelemetry.Trace.SpanAttributes attributes) -> void -~OpenTelemetry.Trace.SpanAttributes.Add(string key, bool value) -> void -~OpenTelemetry.Trace.SpanAttributes.Add(string key, bool[] values) -> void -~OpenTelemetry.Trace.SpanAttributes.Add(string key, double value) -> void -~OpenTelemetry.Trace.SpanAttributes.Add(string key, double[] values) -> void -~OpenTelemetry.Trace.SpanAttributes.Add(string key, long value) -> void -~OpenTelemetry.Trace.SpanAttributes.Add(string key, long[] values) -> void -~OpenTelemetry.Trace.SpanAttributes.Add(string key, string value) -> void -~OpenTelemetry.Trace.SpanAttributes.Add(string key, string[] values) -> void -~OpenTelemetry.Trace.SpanAttributes.SpanAttributes(System.Collections.Generic.IEnumerable> attributes) -> void -~OpenTelemetry.Trace.SpanContext.SpanContext(in System.Diagnostics.ActivityTraceId traceId, in System.Diagnostics.ActivitySpanId spanId, System.Diagnostics.ActivityTraceFlags traceFlags, bool isRemote = false, System.Collections.Generic.IEnumerable> traceState = null) -> void -~OpenTelemetry.Trace.SpanContext.TraceState.get -> System.Collections.Generic.IEnumerable> -~OpenTelemetry.Trace.Status.Description.get -> string -~OpenTelemetry.Trace.Status.WithDescription(string description) -> OpenTelemetry.Trace.Status -~OpenTelemetry.Trace.TelemetrySpan.AddEvent(string name) -> OpenTelemetry.Trace.TelemetrySpan -~OpenTelemetry.Trace.TelemetrySpan.AddEvent(string name, OpenTelemetry.Trace.SpanAttributes attributes) -> OpenTelemetry.Trace.TelemetrySpan -~OpenTelemetry.Trace.TelemetrySpan.AddEvent(string name, System.DateTimeOffset timestamp) -> OpenTelemetry.Trace.TelemetrySpan -~OpenTelemetry.Trace.TelemetrySpan.AddEvent(string name, System.DateTimeOffset timestamp, OpenTelemetry.Trace.SpanAttributes attributes) -> OpenTelemetry.Trace.TelemetrySpan -~OpenTelemetry.Trace.TelemetrySpan.RecordException(string type, string message, string stacktrace) -> OpenTelemetry.Trace.TelemetrySpan -~OpenTelemetry.Trace.TelemetrySpan.RecordException(System.Exception ex) -> OpenTelemetry.Trace.TelemetrySpan -~OpenTelemetry.Trace.TelemetrySpan.SetAttribute(string key, bool value) -> OpenTelemetry.Trace.TelemetrySpan -~OpenTelemetry.Trace.TelemetrySpan.SetAttribute(string key, bool[] values) -> OpenTelemetry.Trace.TelemetrySpan -~OpenTelemetry.Trace.TelemetrySpan.SetAttribute(string key, double value) -> OpenTelemetry.Trace.TelemetrySpan -~OpenTelemetry.Trace.TelemetrySpan.SetAttribute(string key, double[] values) -> OpenTelemetry.Trace.TelemetrySpan -~OpenTelemetry.Trace.TelemetrySpan.SetAttribute(string key, int value) -> OpenTelemetry.Trace.TelemetrySpan -~OpenTelemetry.Trace.TelemetrySpan.SetAttribute(string key, int[] values) -> OpenTelemetry.Trace.TelemetrySpan -~OpenTelemetry.Trace.TelemetrySpan.SetAttribute(string key, string value) -> OpenTelemetry.Trace.TelemetrySpan -~OpenTelemetry.Trace.TelemetrySpan.SetAttribute(string key, string[] values) -> OpenTelemetry.Trace.TelemetrySpan -~OpenTelemetry.Trace.TelemetrySpan.UpdateName(string name) -> OpenTelemetry.Trace.TelemetrySpan -~OpenTelemetry.Trace.Tracer.StartActiveSpan(string name, OpenTelemetry.Trace.SpanKind kind = OpenTelemetry.Trace.SpanKind.Internal, in OpenTelemetry.Trace.SpanContext parentContext = default(OpenTelemetry.Trace.SpanContext), OpenTelemetry.Trace.SpanAttributes initialAttributes = null, System.Collections.Generic.IEnumerable links = null, System.DateTimeOffset startTime = default(System.DateTimeOffset)) -> OpenTelemetry.Trace.TelemetrySpan -~OpenTelemetry.Trace.Tracer.StartActiveSpan(string name, OpenTelemetry.Trace.SpanKind kind, in OpenTelemetry.Trace.TelemetrySpan parentSpan, OpenTelemetry.Trace.SpanAttributes initialAttributes = null, System.Collections.Generic.IEnumerable links = null, System.DateTimeOffset startTime = default(System.DateTimeOffset)) -> OpenTelemetry.Trace.TelemetrySpan -~OpenTelemetry.Trace.Tracer.StartRootSpan(string name, OpenTelemetry.Trace.SpanKind kind = OpenTelemetry.Trace.SpanKind.Internal, OpenTelemetry.Trace.SpanAttributes initialAttributes = null, System.Collections.Generic.IEnumerable links = null, System.DateTimeOffset startTime = default(System.DateTimeOffset)) -> OpenTelemetry.Trace.TelemetrySpan -~OpenTelemetry.Trace.Tracer.StartSpan(string name, OpenTelemetry.Trace.SpanKind kind = OpenTelemetry.Trace.SpanKind.Internal, in OpenTelemetry.Trace.SpanContext parentContext = default(OpenTelemetry.Trace.SpanContext), OpenTelemetry.Trace.SpanAttributes initialAttributes = null, System.Collections.Generic.IEnumerable links = null, System.DateTimeOffset startTime = default(System.DateTimeOffset)) -> OpenTelemetry.Trace.TelemetrySpan -~OpenTelemetry.Trace.Tracer.StartSpan(string name, OpenTelemetry.Trace.SpanKind kind, in OpenTelemetry.Trace.TelemetrySpan parentSpan, OpenTelemetry.Trace.SpanAttributes initialAttributes = null, System.Collections.Generic.IEnumerable links = null, System.DateTimeOffset startTime = default(System.DateTimeOffset)) -> OpenTelemetry.Trace.TelemetrySpan -~OpenTelemetry.Trace.TracerProvider.GetTracer(string name, string version = null) -> OpenTelemetry.Trace.Tracer +OpenTelemetry.Metrics.IDeferredMeterProviderBuilder.Configure(System.Action! configure) -> OpenTelemetry.Metrics.MeterProviderBuilder! +OpenTelemetry.Trace.IDeferredTracerProviderBuilder.Configure(System.Action! configure) -> OpenTelemetry.Trace.TracerProviderBuilder! +OpenTelemetry.Trace.Link.Attributes.get -> System.Collections.Generic.IEnumerable>? +OpenTelemetry.Trace.Link.Link(in OpenTelemetry.Trace.SpanContext spanContext, OpenTelemetry.Trace.SpanAttributes? attributes) -> void +OpenTelemetry.Trace.SpanAttributes.Add(string! key, bool value) -> void +OpenTelemetry.Trace.SpanAttributes.Add(string! key, bool[]? values) -> void +OpenTelemetry.Trace.SpanAttributes.Add(string! key, double value) -> void +OpenTelemetry.Trace.SpanAttributes.Add(string! key, double[]? values) -> void +OpenTelemetry.Trace.SpanAttributes.Add(string! key, long value) -> void +OpenTelemetry.Trace.SpanAttributes.Add(string! key, long[]? values) -> void +OpenTelemetry.Trace.SpanAttributes.Add(string! key, string? value) -> void +OpenTelemetry.Trace.SpanAttributes.Add(string! key, string?[]? values) -> void +OpenTelemetry.Trace.SpanAttributes.SpanAttributes(System.Collections.Generic.IEnumerable>! attributes) -> void +OpenTelemetry.Trace.SpanContext.SpanContext(in System.Diagnostics.ActivityTraceId traceId, in System.Diagnostics.ActivitySpanId spanId, System.Diagnostics.ActivityTraceFlags traceFlags, bool isRemote = false, System.Collections.Generic.IEnumerable>? traceState = null) -> void +OpenTelemetry.Trace.SpanContext.TraceState.get -> System.Collections.Generic.IEnumerable>! +OpenTelemetry.Trace.Status.Description.get -> string? +OpenTelemetry.Trace.Status.WithDescription(string? description) -> OpenTelemetry.Trace.Status +OpenTelemetry.Trace.TelemetrySpan.AddEvent(string! name) -> OpenTelemetry.Trace.TelemetrySpan! +OpenTelemetry.Trace.TelemetrySpan.AddEvent(string! name, OpenTelemetry.Trace.SpanAttributes? attributes) -> OpenTelemetry.Trace.TelemetrySpan! +OpenTelemetry.Trace.TelemetrySpan.AddEvent(string! name, System.DateTimeOffset timestamp) -> OpenTelemetry.Trace.TelemetrySpan! +OpenTelemetry.Trace.TelemetrySpan.AddEvent(string! name, System.DateTimeOffset timestamp, OpenTelemetry.Trace.SpanAttributes? attributes) -> OpenTelemetry.Trace.TelemetrySpan! +OpenTelemetry.Trace.TelemetrySpan.RecordException(string? type, string? message, string? stacktrace) -> OpenTelemetry.Trace.TelemetrySpan! +OpenTelemetry.Trace.TelemetrySpan.RecordException(System.Exception? ex) -> OpenTelemetry.Trace.TelemetrySpan! +OpenTelemetry.Trace.TelemetrySpan.SetAttribute(string! key, bool value) -> OpenTelemetry.Trace.TelemetrySpan! +OpenTelemetry.Trace.TelemetrySpan.SetAttribute(string! key, bool[]? values) -> OpenTelemetry.Trace.TelemetrySpan! +OpenTelemetry.Trace.TelemetrySpan.SetAttribute(string! key, double value) -> OpenTelemetry.Trace.TelemetrySpan! +OpenTelemetry.Trace.TelemetrySpan.SetAttribute(string! key, double[]? values) -> OpenTelemetry.Trace.TelemetrySpan! +OpenTelemetry.Trace.TelemetrySpan.SetAttribute(string! key, int value) -> OpenTelemetry.Trace.TelemetrySpan! +OpenTelemetry.Trace.TelemetrySpan.SetAttribute(string! key, int[]? values) -> OpenTelemetry.Trace.TelemetrySpan! +OpenTelemetry.Trace.TelemetrySpan.SetAttribute(string! key, string? value) -> OpenTelemetry.Trace.TelemetrySpan! +OpenTelemetry.Trace.TelemetrySpan.SetAttribute(string! key, string?[]? values) -> OpenTelemetry.Trace.TelemetrySpan! +OpenTelemetry.Trace.TelemetrySpan.UpdateName(string! name) -> OpenTelemetry.Trace.TelemetrySpan! +OpenTelemetry.Trace.Tracer.StartActiveSpan(string! name, OpenTelemetry.Trace.SpanKind kind = OpenTelemetry.Trace.SpanKind.Internal, in OpenTelemetry.Trace.SpanContext parentContext = default(OpenTelemetry.Trace.SpanContext), OpenTelemetry.Trace.SpanAttributes? initialAttributes = null, System.Collections.Generic.IEnumerable? links = null, System.DateTimeOffset startTime = default(System.DateTimeOffset)) -> OpenTelemetry.Trace.TelemetrySpan! +OpenTelemetry.Trace.Tracer.StartActiveSpan(string! name, OpenTelemetry.Trace.SpanKind kind, in OpenTelemetry.Trace.TelemetrySpan? parentSpan, OpenTelemetry.Trace.SpanAttributes? initialAttributes = null, System.Collections.Generic.IEnumerable? links = null, System.DateTimeOffset startTime = default(System.DateTimeOffset)) -> OpenTelemetry.Trace.TelemetrySpan! +OpenTelemetry.Trace.Tracer.StartRootSpan(string! name, OpenTelemetry.Trace.SpanKind kind = OpenTelemetry.Trace.SpanKind.Internal, OpenTelemetry.Trace.SpanAttributes? initialAttributes = null, System.Collections.Generic.IEnumerable? links = null, System.DateTimeOffset startTime = default(System.DateTimeOffset)) -> OpenTelemetry.Trace.TelemetrySpan! +OpenTelemetry.Trace.Tracer.StartSpan(string! name, OpenTelemetry.Trace.SpanKind kind = OpenTelemetry.Trace.SpanKind.Internal, in OpenTelemetry.Trace.SpanContext parentContext = default(OpenTelemetry.Trace.SpanContext), OpenTelemetry.Trace.SpanAttributes? initialAttributes = null, System.Collections.Generic.IEnumerable? links = null, System.DateTimeOffset startTime = default(System.DateTimeOffset)) -> OpenTelemetry.Trace.TelemetrySpan! +OpenTelemetry.Trace.Tracer.StartSpan(string! name, OpenTelemetry.Trace.SpanKind kind, in OpenTelemetry.Trace.TelemetrySpan? parentSpan, OpenTelemetry.Trace.SpanAttributes? initialAttributes = null, System.Collections.Generic.IEnumerable? links = null, System.DateTimeOffset startTime = default(System.DateTimeOffset)) -> OpenTelemetry.Trace.TelemetrySpan! +OpenTelemetry.Trace.TracerProvider.GetTracer(string! name, string? version = null) -> OpenTelemetry.Trace.Tracer! ~override OpenTelemetry.Baggage.Equals(object obj) -> bool ~override OpenTelemetry.Context.Propagation.B3Propagator.Extract(OpenTelemetry.Context.Propagation.PropagationContext context, T carrier, System.Func> getter) -> OpenTelemetry.Context.Propagation.PropagationContext ~override OpenTelemetry.Context.Propagation.B3Propagator.Fields.get -> System.Collections.Generic.ISet @@ -77,10 +77,10 @@ ~override OpenTelemetry.Context.Propagation.TraceContextPropagator.Extract(OpenTelemetry.Context.Propagation.PropagationContext context, T carrier, System.Func> getter) -> OpenTelemetry.Context.Propagation.PropagationContext ~override OpenTelemetry.Context.Propagation.TraceContextPropagator.Fields.get -> System.Collections.Generic.ISet ~override OpenTelemetry.Context.Propagation.TraceContextPropagator.Inject(OpenTelemetry.Context.Propagation.PropagationContext context, T carrier, System.Action setter) -> void -~override OpenTelemetry.Trace.Link.Equals(object obj) -> bool -~override OpenTelemetry.Trace.SpanContext.Equals(object obj) -> bool -~override OpenTelemetry.Trace.Status.Equals(object obj) -> bool -~override OpenTelemetry.Trace.Status.ToString() -> string +override OpenTelemetry.Trace.Link.Equals(object? obj) -> bool +override OpenTelemetry.Trace.SpanContext.Equals(object? obj) -> bool +override OpenTelemetry.Trace.Status.Equals(object? obj) -> bool +override OpenTelemetry.Trace.Status.ToString() -> string! ~static OpenTelemetry.Baggage.Create(System.Collections.Generic.Dictionary baggageItems = null) -> OpenTelemetry.Baggage ~static OpenTelemetry.Baggage.GetBaggage(OpenTelemetry.Baggage baggage = default(OpenTelemetry.Baggage)) -> System.Collections.Generic.IReadOnlyDictionary ~static OpenTelemetry.Baggage.GetBaggage(string name, OpenTelemetry.Baggage baggage = default(OpenTelemetry.Baggage)) -> string @@ -97,13 +97,13 @@ ~static OpenTelemetry.Context.RuntimeContext.RegisterSlot(string slotName) -> OpenTelemetry.Context.RuntimeContextSlot ~static OpenTelemetry.Context.RuntimeContext.SetValue(string slotName, object value) -> void ~static OpenTelemetry.Context.RuntimeContext.SetValue(string slotName, T value) -> void -~static OpenTelemetry.Trace.ActivityExtensions.GetStatus(this System.Diagnostics.Activity activity) -> OpenTelemetry.Trace.Status -~static OpenTelemetry.Trace.ActivityExtensions.RecordException(this System.Diagnostics.Activity activity, System.Exception ex) -> void -~static OpenTelemetry.Trace.ActivityExtensions.RecordException(this System.Diagnostics.Activity activity, System.Exception ex, in System.Diagnostics.TagList tags) -> void -~static OpenTelemetry.Trace.ActivityExtensions.SetStatus(this System.Diagnostics.Activity activity, OpenTelemetry.Trace.Status status) -> void -~static OpenTelemetry.Trace.Tracer.CurrentSpan.get -> OpenTelemetry.Trace.TelemetrySpan -~static OpenTelemetry.Trace.Tracer.WithSpan(OpenTelemetry.Trace.TelemetrySpan span) -> OpenTelemetry.Trace.TelemetrySpan -~static OpenTelemetry.Trace.TracerProvider.Default.get -> OpenTelemetry.Trace.TracerProvider +static OpenTelemetry.Trace.ActivityExtensions.GetStatus(this System.Diagnostics.Activity! activity) -> OpenTelemetry.Trace.Status +static OpenTelemetry.Trace.ActivityExtensions.RecordException(this System.Diagnostics.Activity! activity, System.Exception? ex) -> void +static OpenTelemetry.Trace.ActivityExtensions.RecordException(this System.Diagnostics.Activity! activity, System.Exception? ex, in System.Diagnostics.TagList tags) -> void +static OpenTelemetry.Trace.ActivityExtensions.SetStatus(this System.Diagnostics.Activity! activity, OpenTelemetry.Trace.Status status) -> void +static OpenTelemetry.Trace.Tracer.CurrentSpan.get -> OpenTelemetry.Trace.TelemetrySpan! +static OpenTelemetry.Trace.Tracer.WithSpan(OpenTelemetry.Trace.TelemetrySpan? span) -> OpenTelemetry.Trace.TelemetrySpan? +static OpenTelemetry.Trace.TracerProvider.Default.get -> OpenTelemetry.Trace.TracerProvider! abstract OpenTelemetry.Context.RuntimeContextSlot.Get() -> T abstract OpenTelemetry.Context.RuntimeContextSlot.Set(T value) -> void OpenTelemetry.ActivityContextExtensions diff --git a/src/OpenTelemetry.Api/ActivityContextExtensions.cs b/src/OpenTelemetry.Api/ActivityContextExtensions.cs index 47570613b3d..8d21c95a31c 100644 --- a/src/OpenTelemetry.Api/ActivityContextExtensions.cs +++ b/src/OpenTelemetry.Api/ActivityContextExtensions.cs @@ -14,6 +14,8 @@ // limitations under the License. // +#nullable enable + using System.Diagnostics; // The ActivityContext class is in the System.Diagnostics namespace. diff --git a/src/OpenTelemetry.Api/BaseProvider.cs b/src/OpenTelemetry.Api/BaseProvider.cs index 54df0bf5d15..1ccca7e13b4 100644 --- a/src/OpenTelemetry.Api/BaseProvider.cs +++ b/src/OpenTelemetry.Api/BaseProvider.cs @@ -14,6 +14,8 @@ // limitations under the License. // +#nullable enable + namespace OpenTelemetry; /// diff --git a/src/OpenTelemetry.Api/Internal/OpenTelemetryApiEventSource.cs b/src/OpenTelemetry.Api/Internal/OpenTelemetryApiEventSource.cs index fb13eb02dc0..dda27277d2b 100644 --- a/src/OpenTelemetry.Api/Internal/OpenTelemetryApiEventSource.cs +++ b/src/OpenTelemetry.Api/Internal/OpenTelemetryApiEventSource.cs @@ -14,6 +14,8 @@ // limitations under the License. // +#nullable enable + using System.Diagnostics.Tracing; namespace OpenTelemetry.Internal; diff --git a/src/OpenTelemetry.Api/Logs/LoggerProviderBuilder.cs b/src/OpenTelemetry.Api/Logs/LoggerProviderBuilder.cs index 76e7ad33ecc..a460e6e2598 100644 --- a/src/OpenTelemetry.Api/Logs/LoggerProviderBuilder.cs +++ b/src/OpenTelemetry.Api/Logs/LoggerProviderBuilder.cs @@ -47,5 +47,5 @@ protected LoggerProviderBuilder() /// Returns for chaining. public abstract LoggerProviderBuilder AddInstrumentation( Func instrumentationFactory) - where TInstrumentation : class; + where TInstrumentation : class?; } diff --git a/src/OpenTelemetry.Api/Metrics/IDeferredMeterProviderBuilder.cs b/src/OpenTelemetry.Api/Metrics/IDeferredMeterProviderBuilder.cs index ca263d19d59..dded0bf1271 100644 --- a/src/OpenTelemetry.Api/Metrics/IDeferredMeterProviderBuilder.cs +++ b/src/OpenTelemetry.Api/Metrics/IDeferredMeterProviderBuilder.cs @@ -14,6 +14,8 @@ // limitations under the License. // +#nullable enable + namespace OpenTelemetry.Metrics; /// diff --git a/src/OpenTelemetry.Api/Metrics/MeterProvider.cs b/src/OpenTelemetry.Api/Metrics/MeterProvider.cs index 14cf4e3d714..ab66f629bc4 100644 --- a/src/OpenTelemetry.Api/Metrics/MeterProvider.cs +++ b/src/OpenTelemetry.Api/Metrics/MeterProvider.cs @@ -14,6 +14,8 @@ // limitations under the License. // +#nullable enable + namespace OpenTelemetry.Metrics; /// diff --git a/src/OpenTelemetry.Api/Metrics/MeterProviderBuilder.cs b/src/OpenTelemetry.Api/Metrics/MeterProviderBuilder.cs index 44e22a2c7f3..7ba999e91f7 100644 --- a/src/OpenTelemetry.Api/Metrics/MeterProviderBuilder.cs +++ b/src/OpenTelemetry.Api/Metrics/MeterProviderBuilder.cs @@ -14,6 +14,8 @@ // limitations under the License. // +#nullable enable + namespace OpenTelemetry.Metrics; /// @@ -36,7 +38,7 @@ protected MeterProviderBuilder() /// Returns for chaining. public abstract MeterProviderBuilder AddInstrumentation( Func instrumentationFactory) - where TInstrumentation : class; + where TInstrumentation : class?; /// /// Adds given Meter names to the list of subscribed meters. diff --git a/src/OpenTelemetry.Api/Trace/ActivityExtensions.cs b/src/OpenTelemetry.Api/Trace/ActivityExtensions.cs index db23da16520..62419b821ad 100644 --- a/src/OpenTelemetry.Api/Trace/ActivityExtensions.cs +++ b/src/OpenTelemetry.Api/Trace/ActivityExtensions.cs @@ -14,6 +14,8 @@ // limitations under the License. // +#nullable enable + using System.Diagnostics; using System.Runtime.CompilerServices; using OpenTelemetry.Internal; @@ -41,10 +43,11 @@ public static class ActivityExtensions [MethodImpl(MethodImplOptions.AggressiveInlining)] public static void SetStatus(this Activity activity, Status status) { - Debug.Assert(activity != null, "Activity should not be null"); - - activity.SetTag(SpanAttributeConstants.StatusCodeKey, StatusHelper.GetTagValueForStatusCode(status.StatusCode)); - activity.SetTag(SpanAttributeConstants.StatusDescriptionKey, status.Description); + if (activity != null) + { + activity.SetTag(SpanAttributeConstants.StatusCodeKey, StatusHelper.GetTagValueForStatusCode(status.StatusCode)); + activity.SetTag(SpanAttributeConstants.StatusDescriptionKey, status.Description); + } } /// @@ -57,7 +60,8 @@ public static void SetStatus(this Activity activity, Status status) [MethodImpl(MethodImplOptions.AggressiveInlining)] public static Status GetStatus(this Activity activity) { - if (!activity.TryGetStatus(out StatusCode statusCode, out string statusDescription)) + if (activity == null + || !activity.TryGetStatus(out var statusCode, out var statusDescription)) { return Status.Unset; } @@ -71,10 +75,8 @@ public static Status GetStatus(this Activity activity) /// Activity instance. /// Exception to be recorded. [MethodImpl(MethodImplOptions.AggressiveInlining)] - public static void RecordException(this Activity activity, Exception ex) - { - activity?.RecordException(ex, default); - } + public static void RecordException(this Activity activity, Exception? ex) + => RecordException(activity, ex, default); /// /// Adds an activity event containing information from the specified exception and additional tags. @@ -83,7 +85,7 @@ public static void RecordException(this Activity activity, Exception ex) /// Exception to be recorded. /// Additional tags to record on the event. [MethodImpl(MethodImplOptions.AggressiveInlining)] - public static void RecordException(this Activity activity, Exception ex, in TagList tags) + public static void RecordException(this Activity activity, Exception? ex, in TagList tags) { if (ex == null || activity == null) { diff --git a/src/OpenTelemetry.Api/Trace/IDeferredTracerProviderBuilder.cs b/src/OpenTelemetry.Api/Trace/IDeferredTracerProviderBuilder.cs index bd54a427888..ec9aab9fd45 100644 --- a/src/OpenTelemetry.Api/Trace/IDeferredTracerProviderBuilder.cs +++ b/src/OpenTelemetry.Api/Trace/IDeferredTracerProviderBuilder.cs @@ -14,6 +14,8 @@ // limitations under the License. // +#nullable enable + namespace OpenTelemetry.Trace; /// diff --git a/src/OpenTelemetry.Api/Trace/Link.cs b/src/OpenTelemetry.Api/Trace/Link.cs index e329c5915b8..28ac1013065 100644 --- a/src/OpenTelemetry.Api/Trace/Link.cs +++ b/src/OpenTelemetry.Api/Trace/Link.cs @@ -14,6 +14,8 @@ // limitations under the License. // +#nullable enable + using System.Diagnostics; namespace OpenTelemetry.Trace; @@ -30,8 +32,8 @@ namespace OpenTelemetry.Trace; /// /// Span context of a linked span. public Link(in SpanContext spanContext) + : this(in spanContext, attributes: null) { - this.ActivityLink = new ActivityLink(spanContext.ActivityContext); } /// @@ -39,7 +41,7 @@ public Link(in SpanContext spanContext) /// /// Span context of a linked span. /// Link attributes. - public Link(in SpanContext spanContext, SpanAttributes attributes) + public Link(in SpanContext spanContext, SpanAttributes? attributes) { this.ActivityLink = new ActivityLink(spanContext.ActivityContext, attributes?.Attributes); } @@ -48,53 +50,39 @@ public Link(in SpanContext spanContext, SpanAttributes attributes) /// Gets the span context of a linked span. /// public SpanContext Context - { - get - { - return new SpanContext(this.ActivityLink.Context); - } - } + => new(this.ActivityLink.Context); /// /// Gets the collection of attributes associated with the link. /// - public IEnumerable> Attributes - { - get - { - return this.ActivityLink.Tags; - } - } + public IEnumerable>? Attributes + => this.ActivityLink.Tags; /// /// Compare two for equality. /// /// First link to compare. /// Second link to compare. - public static bool operator ==(Link link1, Link link2) => link1.Equals(link2); + public static bool operator ==(Link link1, Link link2) + => link1.Equals(link2); /// /// Compare two for not equality. /// /// First link to compare. /// Second link to compare. - public static bool operator !=(Link link1, Link link2) => !link1.Equals(link2); + public static bool operator !=(Link link1, Link link2) + => !link1.Equals(link2); /// - public override bool Equals(object obj) - { - return (obj is Link link) && this.ActivityLink.Equals(link.ActivityLink); - } + public override bool Equals(object? obj) + => obj is Link link && this.ActivityLink.Equals(link.ActivityLink); /// public override int GetHashCode() - { - return this.ActivityLink.GetHashCode(); - } + => this.ActivityLink.GetHashCode(); /// public bool Equals(Link other) - { - return this.ActivityLink.Equals(other.ActivityLink); - } + => this.ActivityLink.Equals(other.ActivityLink); } diff --git a/src/OpenTelemetry.Api/Trace/SpanAttributes.cs b/src/OpenTelemetry.Api/Trace/SpanAttributes.cs index a0da0b5a18e..07bf9f23c23 100644 --- a/src/OpenTelemetry.Api/Trace/SpanAttributes.cs +++ b/src/OpenTelemetry.Api/Trace/SpanAttributes.cs @@ -14,6 +14,8 @@ // limitations under the License. // +#nullable enable + using System.Diagnostics; using OpenTelemetry.Internal; @@ -37,12 +39,12 @@ public SpanAttributes() /// Initializes a new instance of the class. /// /// Initial attributes to store in the collection. - public SpanAttributes(IEnumerable> attributes) + public SpanAttributes(IEnumerable> attributes) : this() { Guard.ThrowIfNull(attributes); - foreach (KeyValuePair kvp in attributes) + foreach (KeyValuePair kvp in attributes) { this.AddInternal(kvp.Key, kvp.Value); } @@ -65,7 +67,7 @@ public void Add(string key, long value) /// /// Entry key. /// Entry value. - public void Add(string key, string value) + public void Add(string key, string? value) { this.AddInternal(key, value); } @@ -95,7 +97,7 @@ public void Add(string key, double value) /// /// Entry key. /// Entry value. - public void Add(string key, long[] values) + public void Add(string key, long[]? values) { this.AddInternal(key, values); } @@ -105,7 +107,7 @@ public void Add(string key, long[] values) /// /// Entry key. /// Entry value. - public void Add(string key, string[] values) + public void Add(string key, string?[]? values) { this.AddInternal(key, values); } @@ -115,7 +117,7 @@ public void Add(string key, string[] values) /// /// Entry key. /// Entry value. - public void Add(string key, bool[] values) + public void Add(string key, bool[]? values) { this.AddInternal(key, values); } @@ -125,12 +127,12 @@ public void Add(string key, bool[] values) /// /// Entry key. /// Entry value. - public void Add(string key, double[] values) + public void Add(string key, double[]? values) { this.AddInternal(key, values); } - private void AddInternal(string key, object value) + private void AddInternal(string key, object? value) { Guard.ThrowIfNull(key); diff --git a/src/OpenTelemetry.Api/Trace/SpanContext.cs b/src/OpenTelemetry.Api/Trace/SpanContext.cs index e0028db6a6e..2b01e33b9f7 100644 --- a/src/OpenTelemetry.Api/Trace/SpanContext.cs +++ b/src/OpenTelemetry.Api/Trace/SpanContext.cs @@ -13,6 +13,9 @@ // See the License for the specific language governing permissions and // limitations under the License. // + +#nullable enable + using System.Diagnostics; using OpenTelemetry.Context.Propagation; @@ -39,7 +42,12 @@ namespace OpenTelemetry.Trace; /// associate with the . /// The value indicating whether this was propagated from the remote parent. /// The traceState to associate with the . - public SpanContext(in ActivityTraceId traceId, in ActivitySpanId spanId, ActivityTraceFlags traceFlags, bool isRemote = false, IEnumerable> traceState = null) + public SpanContext( + in ActivityTraceId traceId, + in ActivitySpanId spanId, + ActivityTraceFlags traceFlags, + bool isRemote = false, + IEnumerable>? traceState = null) { this.ActivityContext = new ActivityContext(traceId, spanId, traceFlags, TraceStateUtilsNew.GetString(traceState), isRemote); } @@ -57,46 +65,26 @@ public SpanContext(in ActivityContext activityContext) /// Gets the associated with this . /// public ActivityTraceId TraceId - { - get - { - return this.ActivityContext.TraceId; - } - } + => this.ActivityContext.TraceId; /// /// Gets the associated with this . /// public ActivitySpanId SpanId - { - get - { - return this.ActivityContext.SpanId; - } - } + => this.ActivityContext.SpanId; /// /// Gets the associated with this . /// public ActivityTraceFlags TraceFlags - { - get - { - return this.ActivityContext.TraceFlags; - } - } + => this.ActivityContext.TraceFlags; /// /// Gets a value indicating whether this /// was propagated from a remote parent. /// public bool IsRemote - { - get - { - return this.ActivityContext.IsRemote; - } - } + => this.ActivityContext.IsRemote; /// /// Gets a value indicating whether this is valid. @@ -125,47 +113,40 @@ public IEnumerable> TraceState /// Converts a into an . /// /// source. - public static implicit operator ActivityContext(SpanContext spanContext) => spanContext.ActivityContext; + public static implicit operator ActivityContext(SpanContext spanContext) + => spanContext.ActivityContext; /// /// Compare two for equality. /// /// First SpanContext to compare. /// Second SpanContext to compare. - public static bool operator ==(SpanContext spanContext1, SpanContext spanContext2) => spanContext1.Equals(spanContext2); + public static bool operator ==(SpanContext spanContext1, SpanContext spanContext2) + => spanContext1.Equals(spanContext2); /// /// Compare two for not equality. /// /// First SpanContext to compare. /// Second SpanContext to compare. - public static bool operator !=(SpanContext spanContext1, SpanContext spanContext2) => !spanContext1.Equals(spanContext2); + public static bool operator !=(SpanContext spanContext1, SpanContext spanContext2) + => !spanContext1.Equals(spanContext2); /// public override int GetHashCode() - { - return this.ActivityContext.GetHashCode(); - } + => this.ActivityContext.GetHashCode(); /// - public override bool Equals(object obj) - { - return (obj is SpanContext ctx) && this.ActivityContext.Equals(ctx.ActivityContext); - } + public override bool Equals(object? obj) + => obj is SpanContext ctx && this.Equals(ctx); /// public bool Equals(SpanContext other) - { - return this.ActivityContext.Equals(other.ActivityContext); - } + => this.ActivityContext.Equals(other.ActivityContext); private static bool IsTraceIdValid(ActivityTraceId traceId) - { - return traceId != default; - } + => traceId != default; private static bool IsSpanIdValid(ActivitySpanId spanId) - { - return spanId != default; - } + => spanId != default; } diff --git a/src/OpenTelemetry.Api/Trace/SpanKind.cs b/src/OpenTelemetry.Api/Trace/SpanKind.cs index 12889623fa2..a8d55dcc7eb 100644 --- a/src/OpenTelemetry.Api/Trace/SpanKind.cs +++ b/src/OpenTelemetry.Api/Trace/SpanKind.cs @@ -14,6 +14,8 @@ // limitations under the License. // +#nullable enable + namespace OpenTelemetry.Trace; /// diff --git a/src/OpenTelemetry.Api/Trace/Status.cs b/src/OpenTelemetry.Api/Trace/Status.cs index 3904123a0e9..3eb4cb9e6b2 100644 --- a/src/OpenTelemetry.Api/Trace/Status.cs +++ b/src/OpenTelemetry.Api/Trace/Status.cs @@ -14,6 +14,8 @@ // limitations under the License. // +#nullable enable + namespace OpenTelemetry.Trace; /// @@ -36,7 +38,7 @@ namespace OpenTelemetry.Trace; /// public static readonly Status Error = new(StatusCode.Error); - internal Status(StatusCode statusCode, string description = null) + internal Status(StatusCode statusCode, string? description = null) { this.StatusCode = statusCode; this.Description = description; @@ -50,7 +52,7 @@ internal Status(StatusCode statusCode, string description = null) /// /// Gets the status description. /// - public string Description { get; } + public string? Description { get; } /// /// Compare two for equality. @@ -78,7 +80,7 @@ internal Status(StatusCode statusCode, string description = null) /// /// Description of the status. /// New instance of the status class with the description populated. - public Status WithDescription(string description) + public Status WithDescription(string? description) { if (this.StatusCode != StatusCode.Error || this.Description == description) { @@ -89,16 +91,8 @@ public Status WithDescription(string description) } /// - public override bool Equals(object obj) - { - if (obj is not Status) - { - return false; - } - - var that = (Status)obj; - return this.StatusCode == that.StatusCode && this.Description == that.Description; - } + public override bool Equals(object? obj) + => obj is Status status && this.Equals(status); /// public override int GetHashCode() @@ -125,7 +119,5 @@ public override string ToString() /// public bool Equals(Status other) - { - return this.StatusCode == other.StatusCode && this.Description == other.Description; - } + => this.StatusCode == other.StatusCode && this.Description == other.Description; } diff --git a/src/OpenTelemetry.Api/Trace/StatusCode.cs b/src/OpenTelemetry.Api/Trace/StatusCode.cs index 339a8f043de..c749d570d93 100644 --- a/src/OpenTelemetry.Api/Trace/StatusCode.cs +++ b/src/OpenTelemetry.Api/Trace/StatusCode.cs @@ -14,6 +14,8 @@ // limitations under the License. // +#nullable enable + namespace OpenTelemetry.Trace; /// diff --git a/src/OpenTelemetry.Api/Trace/TelemetrySpan.cs b/src/OpenTelemetry.Api/Trace/TelemetrySpan.cs index 6b8fe4e61db..ef5b5240737 100644 --- a/src/OpenTelemetry.Api/Trace/TelemetrySpan.cs +++ b/src/OpenTelemetry.Api/Trace/TelemetrySpan.cs @@ -14,6 +14,8 @@ // limitations under the License. // +#nullable enable + using System.Diagnostics; using System.Runtime.CompilerServices; using OpenTelemetry.Internal; @@ -23,13 +25,13 @@ namespace OpenTelemetry.Trace; /// /// Span represents a single operation within a trace. /// -/// TelemetrySpan is a wrapper around class. +/// TelemetrySpan is a wrapper around class. public class TelemetrySpan : IDisposable { internal static readonly TelemetrySpan NoopInstance = new(null); - internal readonly Activity Activity; + internal readonly Activity? Activity; - internal TelemetrySpan(Activity activity) + internal TelemetrySpan(Activity? activity) { this.Activity = activity; } @@ -38,48 +40,19 @@ internal TelemetrySpan(Activity activity) /// Gets the span context. /// public SpanContext Context - { - get - { - if (this.Activity == null) - { - return default; - } - else - { - return new SpanContext(this.Activity.Context); - } - } - } + => this.Activity == null ? default : new SpanContext(this.Activity.Context); /// /// Gets a value indicating whether this span will be recorded. /// public bool IsRecording - { - get - { - return this.Activity != null && this.Activity.IsAllDataRequested; - } - } + => this.Activity?.IsAllDataRequested == true; /// /// Gets the identity of the parent span id, if any. /// public ActivitySpanId ParentSpanId - { - get - { - if (this.Activity == null) - { - return default; - } - else - { - return this.Activity.ParentSpanId; - } - } - } + => this.Activity?.ParentSpanId ?? default; /// /// Sets the status of the span execution. @@ -117,7 +90,7 @@ public TelemetrySpan UpdateName(string name) /// Attribute value. /// The instance for chaining. [MethodImpl(MethodImplOptions.AggressiveInlining)] - public TelemetrySpan SetAttribute(string key, string value) + public TelemetrySpan SetAttribute(string key, string? value) { this.SetAttributeInternal(key, value); return this; @@ -169,7 +142,7 @@ public TelemetrySpan SetAttribute(string key, double value) /// Attribute values. /// The instance for chaining. [MethodImpl(MethodImplOptions.AggressiveInlining)] - public TelemetrySpan SetAttribute(string key, string[] values) + public TelemetrySpan SetAttribute(string key, string?[]? values) { this.SetAttributeInternal(key, values); return this; @@ -182,7 +155,7 @@ public TelemetrySpan SetAttribute(string key, string[] values) /// Attribute values. /// The instance for chaining. [MethodImpl(MethodImplOptions.AggressiveInlining)] - public TelemetrySpan SetAttribute(string key, int[] values) + public TelemetrySpan SetAttribute(string key, int[]? values) { this.SetAttributeInternal(key, values); return this; @@ -195,7 +168,7 @@ public TelemetrySpan SetAttribute(string key, int[] values) /// Attribute values. /// The instance for chaining. [MethodImpl(MethodImplOptions.AggressiveInlining)] - public TelemetrySpan SetAttribute(string key, bool[] values) + public TelemetrySpan SetAttribute(string key, bool[]? values) { this.SetAttributeInternal(key, values); return this; @@ -208,7 +181,7 @@ public TelemetrySpan SetAttribute(string key, bool[] values) /// Attribute values. /// The instance for chaining. [MethodImpl(MethodImplOptions.AggressiveInlining)] - public TelemetrySpan SetAttribute(string key, double[] values) + public TelemetrySpan SetAttribute(string key, double[]? values) { this.SetAttributeInternal(key, values); return this; @@ -246,7 +219,7 @@ public TelemetrySpan AddEvent(string name, DateTimeOffset timestamp) /// Attributes for the event. /// The instance for chaining. [MethodImpl(MethodImplOptions.AggressiveInlining)] - public TelemetrySpan AddEvent(string name, SpanAttributes attributes) + public TelemetrySpan AddEvent(string name, SpanAttributes? attributes) { this.AddEventInternal(name, default, attributes?.Attributes); return this; @@ -260,7 +233,7 @@ public TelemetrySpan AddEvent(string name, SpanAttributes attributes) /// Attributes for the event. /// The instance for chaining. [MethodImpl(MethodImplOptions.AggressiveInlining)] - public TelemetrySpan AddEvent(string name, DateTimeOffset timestamp, SpanAttributes attributes) + public TelemetrySpan AddEvent(string name, DateTimeOffset timestamp, SpanAttributes? attributes) { this.AddEventInternal(name, timestamp, attributes?.Attributes); return this; @@ -282,8 +255,12 @@ public void End() [MethodImpl(MethodImplOptions.AggressiveInlining)] public void End(DateTimeOffset endTimestamp) { - this.Activity?.SetEndTime(endTimestamp.UtcDateTime); - this.Activity?.Stop(); + var activity = this.Activity; + if (activity != null) + { + activity.SetEndTime(endTimestamp.UtcDateTime); + activity.Stop(); + } } /// @@ -292,7 +269,7 @@ public void End(DateTimeOffset endTimestamp) /// Exception to be recorded. /// The instance for chaining. [MethodImpl(MethodImplOptions.AggressiveInlining)] - public TelemetrySpan RecordException(Exception ex) + public TelemetrySpan RecordException(Exception? ex) { if (ex == null) { @@ -309,9 +286,10 @@ public TelemetrySpan RecordException(Exception ex) /// Message of the exception to be recorded. /// Stacktrace of the exception to be recorded. /// The instance for chaining. - public TelemetrySpan RecordException(string type, string message, string stacktrace) + public TelemetrySpan RecordException(string? type, string? message, string? stacktrace) { SpanAttributes attributes = new SpanAttributes(); + if (!string.IsNullOrWhiteSpace(type)) { attributes.Add(SemanticConventions.AttributeExceptionType, type); @@ -348,9 +326,7 @@ public void Dispose() /// [MethodImpl(MethodImplOptions.AggressiveInlining)] internal void Activate() - { - Activity.Current = this.Activity; - } + => Activity.Current = this.Activity; /// /// Releases the unmanaged resources used by this class and optionally releases the managed resources. @@ -358,22 +334,25 @@ internal void Activate() /// to release both managed and unmanaged resources; to release only unmanaged resources. protected virtual void Dispose(bool disposing) { - this.Activity?.Dispose(); + if (disposing) + { + this.Activity?.Dispose(); + } } - private void SetAttributeInternal(string key, object value) + private void SetAttributeInternal(string key, object? value) { if (this.IsRecording) { - this.Activity.SetTag(key, value); + this.Activity!.SetTag(key, value); } } - private void AddEventInternal(string name, DateTimeOffset timestamp = default, ActivityTagsCollection tags = null) + private void AddEventInternal(string name, DateTimeOffset timestamp = default, ActivityTagsCollection? tags = null) { if (this.IsRecording) { - this.Activity.AddEvent(new ActivityEvent(name, timestamp, tags)); + this.Activity!.AddEvent(new ActivityEvent(name, timestamp, tags)); } } } diff --git a/src/OpenTelemetry.Api/Trace/Tracer.cs b/src/OpenTelemetry.Api/Trace/Tracer.cs index 62c430c3bce..a7a0e2ba34e 100644 --- a/src/OpenTelemetry.Api/Trace/Tracer.cs +++ b/src/OpenTelemetry.Api/Trace/Tracer.cs @@ -14,6 +14,8 @@ // limitations under the License. // +#nullable enable + using System.Diagnostics; using System.Diagnostics.CodeAnalysis; using System.Runtime.CompilerServices; @@ -23,7 +25,7 @@ namespace OpenTelemetry.Trace; /// /// Tracer is the class responsible for creating . /// -/// Tracer is a wrapper around class. +/// Tracer is a wrapper around class. public class Tracer { internal readonly ActivitySource ActivitySource; @@ -53,12 +55,15 @@ public static TelemetrySpan CurrentSpan } /// - /// Makes the given span as the current one. + /// Sets the given span as the current one in the context. /// /// The span to be made current. - /// The current span. + /// The supplied span for call chaining. +#if NET6_0_OR_GREATER + [return: NotNullIfNotNull(nameof(span))] +#endif [MethodImpl(MethodImplOptions.AggressiveInlining)] - public static TelemetrySpan WithSpan(TelemetrySpan span) + public static TelemetrySpan? WithSpan(TelemetrySpan? span) { span?.Activate(); return span; @@ -74,7 +79,12 @@ public static TelemetrySpan WithSpan(TelemetrySpan span) /// Start time for the span. /// Span instance. [MethodImpl(MethodImplOptions.AggressiveInlining)] - public TelemetrySpan StartRootSpan(string name, SpanKind kind = SpanKind.Internal, SpanAttributes initialAttributes = null, IEnumerable links = null, DateTimeOffset startTime = default) + public TelemetrySpan StartRootSpan( + string name, + SpanKind kind = SpanKind.Internal, + SpanAttributes? initialAttributes = null, + IEnumerable? links = null, + DateTimeOffset startTime = default) { return this.StartSpanHelper(false, name, kind, default, initialAttributes, links, startTime); } @@ -91,7 +101,13 @@ public TelemetrySpan StartRootSpan(string name, SpanKind kind = SpanKind.Interna /// Span instance. [MethodImpl(MethodImplOptions.AggressiveInlining)] [SuppressMessage("roslyn", "RS0026", Justification = "TODO: fix APIs that violate the backcompt requirement - multiple overloads with optional parameters: https://github.com/dotnet/roslyn/blob/main/docs/Adding%20Optional%20Parameters%20in%20Public%20API.md.")] - public TelemetrySpan StartSpan(string name, SpanKind kind, in TelemetrySpan parentSpan, SpanAttributes initialAttributes = null, IEnumerable links = null, DateTimeOffset startTime = default) + public TelemetrySpan StartSpan( + string name, + SpanKind kind, + in TelemetrySpan? parentSpan, // <- TODO: Clean this up if we ever do a major release w/ breaking changes. The "in" here was probably a copy/paste mistake. Removing would be source compatible but binary breaking. + SpanAttributes? initialAttributes = null, + IEnumerable? links = null, + DateTimeOffset startTime = default) { return this.StartSpan(name, kind, parentSpan?.Context ?? default, initialAttributes, links, startTime); } @@ -108,9 +124,15 @@ public TelemetrySpan StartSpan(string name, SpanKind kind, in TelemetrySpan pare /// Span instance. [MethodImpl(MethodImplOptions.AggressiveInlining)] [SuppressMessage("roslyn", "RS0026", Justification = "TODO: fix APIs that violate the backcompt requirement - multiple overloads with optional parameters: https://github.com/dotnet/roslyn/blob/main/docs/Adding%20Optional%20Parameters%20in%20Public%20API.md.")] - public TelemetrySpan StartSpan(string name, SpanKind kind = SpanKind.Internal, in SpanContext parentContext = default, SpanAttributes initialAttributes = null, IEnumerable links = null, DateTimeOffset startTime = default) + public TelemetrySpan StartSpan( + string name, + SpanKind kind = SpanKind.Internal, + in SpanContext parentContext = default, + SpanAttributes? initialAttributes = null, + IEnumerable? links = null, + DateTimeOffset startTime = default) { - return this.StartSpanHelper(false, name, kind, parentContext, initialAttributes, links, startTime); + return this.StartSpanHelper(false, name, kind, in parentContext, initialAttributes, links, startTime); } /// @@ -125,7 +147,13 @@ public TelemetrySpan StartSpan(string name, SpanKind kind = SpanKind.Internal, i /// Span instance. [MethodImpl(MethodImplOptions.AggressiveInlining)] [SuppressMessage("roslyn", "RS0026", Justification = "TODO: fix APIs that violate the backcompt requirement - multiple overloads with optional parameters: https://github.com/dotnet/roslyn/blob/main/docs/Adding%20Optional%20Parameters%20in%20Public%20API.md.")] - public TelemetrySpan StartActiveSpan(string name, SpanKind kind, in TelemetrySpan parentSpan, SpanAttributes initialAttributes = null, IEnumerable links = null, DateTimeOffset startTime = default) + public TelemetrySpan StartActiveSpan( + string name, + SpanKind kind, + in TelemetrySpan? parentSpan, // <- TODO: Clean this up if we ever do a major release w/ breaking changes. The "in" here was probably a copy/paste mistake. Removing would be source compatible but binary breaking. + SpanAttributes? initialAttributes = null, + IEnumerable? links = null, + DateTimeOffset startTime = default) { return this.StartActiveSpan(name, kind, parentSpan?.Context ?? default, initialAttributes, links, startTime); } @@ -142,9 +170,15 @@ public TelemetrySpan StartActiveSpan(string name, SpanKind kind, in TelemetrySpa /// Span instance. [MethodImpl(MethodImplOptions.AggressiveInlining)] [SuppressMessage("roslyn", "RS0026", Justification = "TODO: fix APIs that violate the backcompt requirement - multiple overloads with optional parameters: https://github.com/dotnet/roslyn/blob/main/docs/Adding%20Optional%20Parameters%20in%20Public%20API.md.")] - public TelemetrySpan StartActiveSpan(string name, SpanKind kind = SpanKind.Internal, in SpanContext parentContext = default, SpanAttributes initialAttributes = null, IEnumerable links = null, DateTimeOffset startTime = default) + public TelemetrySpan StartActiveSpan( + string name, + SpanKind kind = SpanKind.Internal, + in SpanContext parentContext = default, + SpanAttributes? initialAttributes = null, + IEnumerable? links = null, + DateTimeOffset startTime = default) { - return this.StartSpanHelper(true, name, kind, parentContext, initialAttributes, links, startTime); + return this.StartSpanHelper(true, name, kind, in parentContext, initialAttributes, links, startTime); } [MethodImpl(MethodImplOptions.AggressiveInlining)] @@ -162,7 +196,14 @@ private static ActivityKind ConvertToActivityKind(SpanKind kind) } [MethodImpl(MethodImplOptions.AggressiveInlining)] - private TelemetrySpan StartSpanHelper(bool isActiveSpan, string name, SpanKind kind, in SpanContext parentContext = default, SpanAttributes initialAttributes = null, IEnumerable links = null, DateTimeOffset startTime = default) + private TelemetrySpan StartSpanHelper( + bool isActiveSpan, + string name, + SpanKind kind, + in SpanContext parentContext = default, + SpanAttributes? initialAttributes = null, + IEnumerable? links = null, + DateTimeOffset startTime = default) { if (!this.ActivitySource.HasListeners()) { @@ -171,12 +212,7 @@ private TelemetrySpan StartSpanHelper(bool isActiveSpan, string name, SpanKind k var activityKind = ConvertToActivityKind(kind); var activityLinks = links?.Select(l => l.ActivityLink); - - Activity previousActivity = null; - if (!isActiveSpan) - { - previousActivity = Activity.Current; - } + var previousActivity = !isActiveSpan ? Activity.Current : null; var activity = this.ActivitySource.StartActivity(name, activityKind, parentContext.ActivityContext, initialAttributes?.Attributes ?? null, activityLinks, startTime); if (activity == null) diff --git a/src/OpenTelemetry.Api/Trace/TracerProvider.cs b/src/OpenTelemetry.Api/Trace/TracerProvider.cs index ba60970d7ec..c7611bff428 100644 --- a/src/OpenTelemetry.Api/Trace/TracerProvider.cs +++ b/src/OpenTelemetry.Api/Trace/TracerProvider.cs @@ -14,6 +14,8 @@ // limitations under the License. // +#nullable enable + using System.Diagnostics; namespace OpenTelemetry.Trace; @@ -41,13 +43,6 @@ protected TracerProvider() /// Name identifying the instrumentation library. /// Version of the instrumentation library. /// Tracer instance. - public Tracer GetTracer(string name, string version = null) - { - if (name == null) - { - name = string.Empty; - } - - return new Tracer(new ActivitySource(name, version)); - } + public Tracer GetTracer(string name, string? version = null) + => new(new ActivitySource(name ?? string.Empty, version)); } diff --git a/src/OpenTelemetry.Api/Trace/TracerProviderBuilder.cs b/src/OpenTelemetry.Api/Trace/TracerProviderBuilder.cs index 1f57c20f4b1..1b1058ef81f 100644 --- a/src/OpenTelemetry.Api/Trace/TracerProviderBuilder.cs +++ b/src/OpenTelemetry.Api/Trace/TracerProviderBuilder.cs @@ -13,6 +13,9 @@ // See the License for the specific language governing permissions and // limitations under the License. // + +#nullable enable + using System.Diagnostics; namespace OpenTelemetry.Trace; @@ -37,10 +40,10 @@ protected TracerProviderBuilder() /// Returns for chaining. public abstract TracerProviderBuilder AddInstrumentation( Func instrumentationFactory) - where TInstrumentation : class; + where TInstrumentation : class?; /// - /// Adds given activitysource names to the list of subscribed sources. + /// Adds the given names to the list of subscribed sources. /// /// Activity source names. /// Returns for chaining. diff --git a/src/OpenTelemetry/.publicApi/Stable/net462/PublicAPI.Shipped.txt b/src/OpenTelemetry/.publicApi/Stable/net462/PublicAPI.Shipped.txt index 210314bea9b..96178a813ed 100644 --- a/src/OpenTelemetry/.publicApi/Stable/net462/PublicAPI.Shipped.txt +++ b/src/OpenTelemetry/.publicApi/Stable/net462/PublicAPI.Shipped.txt @@ -17,8 +17,8 @@ OpenTelemetry.Metrics.MetricStreamConfiguration.Name.set -> void OpenTelemetry.Metrics.MetricStreamConfiguration.TagKeys.get -> string![]? OpenTelemetry.Metrics.MetricStreamConfiguration.TagKeys.set -> void OpenTelemetry.Metrics.PeriodicExportingMetricReader.PeriodicExportingMetricReader(OpenTelemetry.BaseExporter! exporter, int exportIntervalMilliseconds = 60000, int exportTimeoutMilliseconds = 30000) -> void -~override OpenTelemetry.Metrics.MeterProviderBuilderBase.AddInstrumentation(System.Func! instrumentationFactory) -> OpenTelemetry.Metrics.MeterProviderBuilder! -~override OpenTelemetry.Trace.TracerProviderBuilderBase.AddInstrumentation(System.Func! instrumentationFactory) -> OpenTelemetry.Trace.TracerProviderBuilder! +override OpenTelemetry.Metrics.MeterProviderBuilderBase.AddInstrumentation(System.Func! instrumentationFactory) -> OpenTelemetry.Metrics.MeterProviderBuilder! +override OpenTelemetry.Trace.TracerProviderBuilderBase.AddInstrumentation(System.Func! instrumentationFactory) -> OpenTelemetry.Trace.TracerProviderBuilder! readonly OpenTelemetry.Metrics.BaseExportingMetricReader.exporter -> OpenTelemetry.BaseExporter! static OpenTelemetry.Metrics.MeterProviderExtensions.ForceFlush(this OpenTelemetry.Metrics.MeterProvider! provider, int timeoutMilliseconds = -1) -> bool static OpenTelemetry.Metrics.MeterProviderExtensions.Shutdown(this OpenTelemetry.Metrics.MeterProvider! provider, int timeoutMilliseconds = -1) -> bool @@ -319,7 +319,7 @@ OpenTelemetry.Trace.SamplingResult.TraceStateString.get -> string? OpenTelemetry.Trace.TraceIdRatioBasedSampler OpenTelemetry.Trace.TraceIdRatioBasedSampler.TraceIdRatioBasedSampler(double probability) -> void OpenTelemetry.Trace.TracerProviderBuilderBase -OpenTelemetry.Trace.TracerProviderBuilderBase.AddInstrumentation(string! instrumentationName, string! instrumentationVersion, System.Func! instrumentationFactory) -> OpenTelemetry.Trace.TracerProviderBuilder! +OpenTelemetry.Trace.TracerProviderBuilderBase.AddInstrumentation(string! instrumentationName, string! instrumentationVersion, System.Func! instrumentationFactory) -> OpenTelemetry.Trace.TracerProviderBuilder! OpenTelemetry.Trace.TracerProviderBuilderBase.Build() -> OpenTelemetry.Trace.TracerProvider! OpenTelemetry.Trace.TracerProviderBuilderBase.TracerProviderBuilderBase() -> void OpenTelemetry.Trace.TracerProviderBuilderExtensions diff --git a/src/OpenTelemetry/.publicApi/Stable/net6.0/PublicAPI.Shipped.txt b/src/OpenTelemetry/.publicApi/Stable/net6.0/PublicAPI.Shipped.txt index 210314bea9b..96178a813ed 100644 --- a/src/OpenTelemetry/.publicApi/Stable/net6.0/PublicAPI.Shipped.txt +++ b/src/OpenTelemetry/.publicApi/Stable/net6.0/PublicAPI.Shipped.txt @@ -17,8 +17,8 @@ OpenTelemetry.Metrics.MetricStreamConfiguration.Name.set -> void OpenTelemetry.Metrics.MetricStreamConfiguration.TagKeys.get -> string![]? OpenTelemetry.Metrics.MetricStreamConfiguration.TagKeys.set -> void OpenTelemetry.Metrics.PeriodicExportingMetricReader.PeriodicExportingMetricReader(OpenTelemetry.BaseExporter! exporter, int exportIntervalMilliseconds = 60000, int exportTimeoutMilliseconds = 30000) -> void -~override OpenTelemetry.Metrics.MeterProviderBuilderBase.AddInstrumentation(System.Func! instrumentationFactory) -> OpenTelemetry.Metrics.MeterProviderBuilder! -~override OpenTelemetry.Trace.TracerProviderBuilderBase.AddInstrumentation(System.Func! instrumentationFactory) -> OpenTelemetry.Trace.TracerProviderBuilder! +override OpenTelemetry.Metrics.MeterProviderBuilderBase.AddInstrumentation(System.Func! instrumentationFactory) -> OpenTelemetry.Metrics.MeterProviderBuilder! +override OpenTelemetry.Trace.TracerProviderBuilderBase.AddInstrumentation(System.Func! instrumentationFactory) -> OpenTelemetry.Trace.TracerProviderBuilder! readonly OpenTelemetry.Metrics.BaseExportingMetricReader.exporter -> OpenTelemetry.BaseExporter! static OpenTelemetry.Metrics.MeterProviderExtensions.ForceFlush(this OpenTelemetry.Metrics.MeterProvider! provider, int timeoutMilliseconds = -1) -> bool static OpenTelemetry.Metrics.MeterProviderExtensions.Shutdown(this OpenTelemetry.Metrics.MeterProvider! provider, int timeoutMilliseconds = -1) -> bool @@ -319,7 +319,7 @@ OpenTelemetry.Trace.SamplingResult.TraceStateString.get -> string? OpenTelemetry.Trace.TraceIdRatioBasedSampler OpenTelemetry.Trace.TraceIdRatioBasedSampler.TraceIdRatioBasedSampler(double probability) -> void OpenTelemetry.Trace.TracerProviderBuilderBase -OpenTelemetry.Trace.TracerProviderBuilderBase.AddInstrumentation(string! instrumentationName, string! instrumentationVersion, System.Func! instrumentationFactory) -> OpenTelemetry.Trace.TracerProviderBuilder! +OpenTelemetry.Trace.TracerProviderBuilderBase.AddInstrumentation(string! instrumentationName, string! instrumentationVersion, System.Func! instrumentationFactory) -> OpenTelemetry.Trace.TracerProviderBuilder! OpenTelemetry.Trace.TracerProviderBuilderBase.Build() -> OpenTelemetry.Trace.TracerProvider! OpenTelemetry.Trace.TracerProviderBuilderBase.TracerProviderBuilderBase() -> void OpenTelemetry.Trace.TracerProviderBuilderExtensions diff --git a/src/OpenTelemetry/.publicApi/Stable/netstandard2.0/PublicAPI.Shipped.txt b/src/OpenTelemetry/.publicApi/Stable/netstandard2.0/PublicAPI.Shipped.txt index 210314bea9b..96178a813ed 100644 --- a/src/OpenTelemetry/.publicApi/Stable/netstandard2.0/PublicAPI.Shipped.txt +++ b/src/OpenTelemetry/.publicApi/Stable/netstandard2.0/PublicAPI.Shipped.txt @@ -17,8 +17,8 @@ OpenTelemetry.Metrics.MetricStreamConfiguration.Name.set -> void OpenTelemetry.Metrics.MetricStreamConfiguration.TagKeys.get -> string![]? OpenTelemetry.Metrics.MetricStreamConfiguration.TagKeys.set -> void OpenTelemetry.Metrics.PeriodicExportingMetricReader.PeriodicExportingMetricReader(OpenTelemetry.BaseExporter! exporter, int exportIntervalMilliseconds = 60000, int exportTimeoutMilliseconds = 30000) -> void -~override OpenTelemetry.Metrics.MeterProviderBuilderBase.AddInstrumentation(System.Func! instrumentationFactory) -> OpenTelemetry.Metrics.MeterProviderBuilder! -~override OpenTelemetry.Trace.TracerProviderBuilderBase.AddInstrumentation(System.Func! instrumentationFactory) -> OpenTelemetry.Trace.TracerProviderBuilder! +override OpenTelemetry.Metrics.MeterProviderBuilderBase.AddInstrumentation(System.Func! instrumentationFactory) -> OpenTelemetry.Metrics.MeterProviderBuilder! +override OpenTelemetry.Trace.TracerProviderBuilderBase.AddInstrumentation(System.Func! instrumentationFactory) -> OpenTelemetry.Trace.TracerProviderBuilder! readonly OpenTelemetry.Metrics.BaseExportingMetricReader.exporter -> OpenTelemetry.BaseExporter! static OpenTelemetry.Metrics.MeterProviderExtensions.ForceFlush(this OpenTelemetry.Metrics.MeterProvider! provider, int timeoutMilliseconds = -1) -> bool static OpenTelemetry.Metrics.MeterProviderExtensions.Shutdown(this OpenTelemetry.Metrics.MeterProvider! provider, int timeoutMilliseconds = -1) -> bool @@ -319,7 +319,7 @@ OpenTelemetry.Trace.SamplingResult.TraceStateString.get -> string? OpenTelemetry.Trace.TraceIdRatioBasedSampler OpenTelemetry.Trace.TraceIdRatioBasedSampler.TraceIdRatioBasedSampler(double probability) -> void OpenTelemetry.Trace.TracerProviderBuilderBase -OpenTelemetry.Trace.TracerProviderBuilderBase.AddInstrumentation(string! instrumentationName, string! instrumentationVersion, System.Func! instrumentationFactory) -> OpenTelemetry.Trace.TracerProviderBuilder! +OpenTelemetry.Trace.TracerProviderBuilderBase.AddInstrumentation(string! instrumentationName, string! instrumentationVersion, System.Func! instrumentationFactory) -> OpenTelemetry.Trace.TracerProviderBuilder! OpenTelemetry.Trace.TracerProviderBuilderBase.Build() -> OpenTelemetry.Trace.TracerProvider! OpenTelemetry.Trace.TracerProviderBuilderBase.TracerProviderBuilderBase() -> void OpenTelemetry.Trace.TracerProviderBuilderExtensions diff --git a/src/OpenTelemetry/.publicApi/Stable/netstandard2.1/PublicAPI.Shipped.txt b/src/OpenTelemetry/.publicApi/Stable/netstandard2.1/PublicAPI.Shipped.txt index 210314bea9b..96178a813ed 100644 --- a/src/OpenTelemetry/.publicApi/Stable/netstandard2.1/PublicAPI.Shipped.txt +++ b/src/OpenTelemetry/.publicApi/Stable/netstandard2.1/PublicAPI.Shipped.txt @@ -17,8 +17,8 @@ OpenTelemetry.Metrics.MetricStreamConfiguration.Name.set -> void OpenTelemetry.Metrics.MetricStreamConfiguration.TagKeys.get -> string![]? OpenTelemetry.Metrics.MetricStreamConfiguration.TagKeys.set -> void OpenTelemetry.Metrics.PeriodicExportingMetricReader.PeriodicExportingMetricReader(OpenTelemetry.BaseExporter! exporter, int exportIntervalMilliseconds = 60000, int exportTimeoutMilliseconds = 30000) -> void -~override OpenTelemetry.Metrics.MeterProviderBuilderBase.AddInstrumentation(System.Func! instrumentationFactory) -> OpenTelemetry.Metrics.MeterProviderBuilder! -~override OpenTelemetry.Trace.TracerProviderBuilderBase.AddInstrumentation(System.Func! instrumentationFactory) -> OpenTelemetry.Trace.TracerProviderBuilder! +override OpenTelemetry.Metrics.MeterProviderBuilderBase.AddInstrumentation(System.Func! instrumentationFactory) -> OpenTelemetry.Metrics.MeterProviderBuilder! +override OpenTelemetry.Trace.TracerProviderBuilderBase.AddInstrumentation(System.Func! instrumentationFactory) -> OpenTelemetry.Trace.TracerProviderBuilder! readonly OpenTelemetry.Metrics.BaseExportingMetricReader.exporter -> OpenTelemetry.BaseExporter! static OpenTelemetry.Metrics.MeterProviderExtensions.ForceFlush(this OpenTelemetry.Metrics.MeterProvider! provider, int timeoutMilliseconds = -1) -> bool static OpenTelemetry.Metrics.MeterProviderExtensions.Shutdown(this OpenTelemetry.Metrics.MeterProvider! provider, int timeoutMilliseconds = -1) -> bool @@ -319,7 +319,7 @@ OpenTelemetry.Trace.SamplingResult.TraceStateString.get -> string? OpenTelemetry.Trace.TraceIdRatioBasedSampler OpenTelemetry.Trace.TraceIdRatioBasedSampler.TraceIdRatioBasedSampler(double probability) -> void OpenTelemetry.Trace.TracerProviderBuilderBase -OpenTelemetry.Trace.TracerProviderBuilderBase.AddInstrumentation(string! instrumentationName, string! instrumentationVersion, System.Func! instrumentationFactory) -> OpenTelemetry.Trace.TracerProviderBuilder! +OpenTelemetry.Trace.TracerProviderBuilderBase.AddInstrumentation(string! instrumentationName, string! instrumentationVersion, System.Func! instrumentationFactory) -> OpenTelemetry.Trace.TracerProviderBuilder! OpenTelemetry.Trace.TracerProviderBuilderBase.Build() -> OpenTelemetry.Trace.TracerProvider! OpenTelemetry.Trace.TracerProviderBuilderBase.TracerProviderBuilderBase() -> void OpenTelemetry.Trace.TracerProviderBuilderExtensions diff --git a/src/OpenTelemetry/ApiCompatBaseline.txt b/src/OpenTelemetry/ApiCompatBaseline.txt new file mode 100644 index 00000000000..f6962355594 --- /dev/null +++ b/src/OpenTelemetry/ApiCompatBaseline.txt @@ -0,0 +1,4 @@ +Compat issues with assembly OpenTelemetry: +CannotChangeAttribute : Attribute 'System.Runtime.CompilerServices.NullableAttribute' on generic param 'TInstrumentation' on member 'OpenTelemetry.Metrics.MeterProviderBuilderBase.AddInstrumentation(System.Func)' changed from '[NullableAttribute((byte)0)]' in the contract to '[NullableAttribute((byte)2)]' in the implementation. +CannotChangeAttribute : Attribute 'System.Runtime.CompilerServices.NullableAttribute' on generic param 'TInstrumentation' on member 'OpenTelemetry.Trace.TracerProviderBuilderBase.AddInstrumentation(System.Func)' changed from '[NullableAttribute((byte)0)]' in the contract to '[NullableAttribute((byte)2)]' in the implementation. +Total Issues: 2 diff --git a/src/OpenTelemetry/CHANGELOG.md b/src/OpenTelemetry/CHANGELOG.md index eb91c8b79ec..78891b4e3a2 100644 --- a/src/OpenTelemetry/CHANGELOG.md +++ b/src/OpenTelemetry/CHANGELOG.md @@ -4,17 +4,22 @@ * Update `AggregatorStore` to reclaim unused MetricPoints for Delta aggregation temporality. - ([#4486](https://github.com/open-telemetry/opentelemetry-dotnet/issues/4486)) + ([#4486](https://github.com/open-telemetry/opentelemetry-dotnet/pull/4486)) + +* Fixed a bug where `TracerProviderBuilderBase` was not invoking the + `instrumentationFactory` delegate passed to the `protected` + `AddInstrumentation` method. + ([#4873](https://github.com/open-telemetry/opentelemetry-dotnet/pull/4873)) ## 1.6.0 Released 2023-Sep-05 * Increased the character limit of the Meter instrument name from 63 to 255. - ([#4774](https://github.com/open-telemetry/opentelemetry-dotnet/issues/4774)) + ([#4798](https://github.com/open-telemetry/opentelemetry-dotnet/pull/4798)) * Update default size for `SimpleExemplarReservoir` to `1`. - ([#4803](https://github.com/open-telemetry/opentelemetry-dotnet/issues/4803)) + ([#4803](https://github.com/open-telemetry/opentelemetry-dotnet/pull/4803)) * Update Metrics SDK to override the default histogram buckets for a set of well-known histogram metrics from ASP.NET Core and HttpClient runtime. These diff --git a/src/OpenTelemetry/Logs/Builder/LoggerProviderBuilderSdk.cs b/src/OpenTelemetry/Logs/Builder/LoggerProviderBuilderSdk.cs index 2de58eccb59..626a744fea3 100644 --- a/src/OpenTelemetry/Logs/Builder/LoggerProviderBuilderSdk.cs +++ b/src/OpenTelemetry/Logs/Builder/LoggerProviderBuilderSdk.cs @@ -55,8 +55,7 @@ public void RegisterProvider(LoggerProviderSdk loggerProvider) this.loggerProvider = loggerProvider; } - public override LoggerProviderBuilder AddInstrumentation( - Func instrumentationFactory) + public override LoggerProviderBuilder AddInstrumentation(Func instrumentationFactory) { Debug.Assert(instrumentationFactory != null, "instrumentationFactory was null"); @@ -64,7 +63,7 @@ public override LoggerProviderBuilder AddInstrumentation( new InstrumentationRegistration( typeof(TInstrumentation).Name, typeof(TInstrumentation).Assembly.GetName().Version?.ToString() ?? DefaultInstrumentationVersion, - instrumentationFactory!()!)); + instrumentationFactory!())); return this; } @@ -119,9 +118,9 @@ internal readonly struct InstrumentationRegistration { public readonly string Name; public readonly string Version; - public readonly object Instance; + public readonly object? Instance; - internal InstrumentationRegistration(string name, string version, object instance) + internal InstrumentationRegistration(string name, string version, object? instance) { this.Name = name; this.Version = version; diff --git a/src/OpenTelemetry/Logs/LoggerProviderSdk.cs b/src/OpenTelemetry/Logs/LoggerProviderSdk.cs index a4440d1e8e0..6d4ae3ce946 100644 --- a/src/OpenTelemetry/Logs/LoggerProviderSdk.cs +++ b/src/OpenTelemetry/Logs/LoggerProviderSdk.cs @@ -76,7 +76,11 @@ public LoggerProviderSdk( foreach (var instrumentation in state.Instrumentation) { - this.instrumentations.Add(instrumentation.Instance); + if (instrumentation.Instance is not null) + { + this.instrumentations.Add(instrumentation.Instance); + } + instrumentationFactoriesAdded.Append(instrumentation.Name); instrumentationFactoriesAdded.Append(';'); } diff --git a/src/OpenTelemetry/Metrics/Builder/MeterProviderBuilderSdk.cs b/src/OpenTelemetry/Metrics/Builder/MeterProviderBuilderSdk.cs index ea94ef6579a..bcca0a16456 100644 --- a/src/OpenTelemetry/Metrics/Builder/MeterProviderBuilderSdk.cs +++ b/src/OpenTelemetry/Metrics/Builder/MeterProviderBuilderSdk.cs @@ -111,8 +111,7 @@ public void RegisterProvider(MeterProviderSdk meterProvider) this.meterProvider = meterProvider; } - public override MeterProviderBuilder AddInstrumentation( - Func instrumentationFactory) + public override MeterProviderBuilder AddInstrumentation(Func instrumentationFactory) { Debug.Assert(instrumentationFactory != null, "instrumentationFactory was null"); @@ -125,17 +124,16 @@ public override MeterProviderBuilder AddInstrumentation( public MeterProviderBuilder AddInstrumentation( string instrumentationName, string instrumentationVersion, - object instrumentation) + object? instrumentation) { Debug.Assert(!string.IsNullOrWhiteSpace(instrumentationName), "instrumentationName was null or whitespace"); Debug.Assert(!string.IsNullOrWhiteSpace(instrumentationVersion), "instrumentationVersion was null or whitespace"); - Debug.Assert(instrumentation != null, "instrumentation was null"); this.Instrumentation.Add( new InstrumentationRegistration( instrumentationName, instrumentationVersion, - instrumentation!)); + instrumentation)); return this; } @@ -236,9 +234,9 @@ internal readonly struct InstrumentationRegistration { public readonly string Name; public readonly string Version; - public readonly object Instance; + public readonly object? Instance; - internal InstrumentationRegistration(string name, string version, object instance) + internal InstrumentationRegistration(string name, string version, object? instance) { this.Name = name; this.Version = version; diff --git a/src/OpenTelemetry/Metrics/MeterProviderSdk.cs b/src/OpenTelemetry/Metrics/MeterProviderSdk.cs index 78c49aa613e..917bb0b35f8 100644 --- a/src/OpenTelemetry/Metrics/MeterProviderSdk.cs +++ b/src/OpenTelemetry/Metrics/MeterProviderSdk.cs @@ -129,7 +129,11 @@ internal MeterProviderSdk( { foreach (var instrumentation in state.Instrumentation) { - this.instrumentations.Add(instrumentation.Instance); + if (instrumentation.Instance is not null) + { + this.instrumentations.Add(instrumentation.Instance); + } + instrumentationFactoriesAdded.Append(instrumentation.Name); instrumentationFactoriesAdded.Append(';'); } diff --git a/src/OpenTelemetry/Trace/Builder/TracerProviderBuilderBase.cs b/src/OpenTelemetry/Trace/Builder/TracerProviderBuilderBase.cs index 285b299cfb5..a2dc221e644 100644 --- a/src/OpenTelemetry/Trace/Builder/TracerProviderBuilderBase.cs +++ b/src/OpenTelemetry/Trace/Builder/TracerProviderBuilderBase.cs @@ -115,7 +115,7 @@ internal TracerProvider InvokeBuild() protected TracerProviderBuilder AddInstrumentation( string instrumentationName, string instrumentationVersion, - Func instrumentationFactory) + Func instrumentationFactory) { Guard.ThrowIfNullOrWhitespace(instrumentationName); Guard.ThrowIfNullOrWhitespace(instrumentationVersion); @@ -128,7 +128,7 @@ protected TracerProviderBuilder AddInstrumentation( tracerProviderBuilderState.AddInstrumentation( instrumentationName, instrumentationVersion, - instrumentationFactory); + instrumentationFactory()); } }); diff --git a/src/OpenTelemetry/Trace/Builder/TracerProviderBuilderSdk.cs b/src/OpenTelemetry/Trace/Builder/TracerProviderBuilderSdk.cs index 58b8c2b779d..384b8ae989d 100644 --- a/src/OpenTelemetry/Trace/Builder/TracerProviderBuilderSdk.cs +++ b/src/OpenTelemetry/Trace/Builder/TracerProviderBuilderSdk.cs @@ -64,8 +64,7 @@ public void RegisterProvider(TracerProviderSdk tracerProvider) this.tracerProvider = tracerProvider; } - public override TracerProviderBuilder AddInstrumentation( - Func instrumentationFactory) + public override TracerProviderBuilder AddInstrumentation(Func instrumentationFactory) { Debug.Assert(instrumentationFactory != null, "instrumentationFactory was null"); @@ -78,17 +77,16 @@ public override TracerProviderBuilder AddInstrumentation( public TracerProviderBuilder AddInstrumentation( string instrumentationName, string instrumentationVersion, - object instrumentation) + object? instrumentation) { Debug.Assert(!string.IsNullOrWhiteSpace(instrumentationName), "instrumentationName was null or whitespace"); Debug.Assert(!string.IsNullOrWhiteSpace(instrumentationVersion), "instrumentationVersion was null or whitespace"); - Debug.Assert(instrumentation != null, "instrumentation was null"); this.Instrumentation.Add( new InstrumentationRegistration( instrumentationName, instrumentationVersion, - instrumentation!)); + instrumentation)); return this; } @@ -199,9 +197,9 @@ internal readonly struct InstrumentationRegistration { public readonly string Name; public readonly string Version; - public readonly object Instance; + public readonly object? Instance; - internal InstrumentationRegistration(string name, string version, object instance) + internal InstrumentationRegistration(string name, string version, object? instance) { this.Name = name; this.Version = version; diff --git a/src/OpenTelemetry/Trace/TracerProviderSdk.cs b/src/OpenTelemetry/Trace/TracerProviderSdk.cs index 5cfffc1d697..fd5a8b37427 100644 --- a/src/OpenTelemetry/Trace/TracerProviderSdk.cs +++ b/src/OpenTelemetry/Trace/TracerProviderSdk.cs @@ -96,7 +96,11 @@ internal TracerProviderSdk( foreach (var instrumentation in state.Instrumentation) { - this.instrumentations.Add(instrumentation.Instance); + if (instrumentation.Instance is not null) + { + this.instrumentations.Add(instrumentation.Instance); + } + instrumentationFactoriesAdded.Append(instrumentation.Name); instrumentationFactoriesAdded.Append(';'); } diff --git a/src/Shared/ActivityHelperExtensions.cs b/src/Shared/ActivityHelperExtensions.cs index 023895dade1..935df229194 100644 --- a/src/Shared/ActivityHelperExtensions.cs +++ b/src/Shared/ActivityHelperExtensions.cs @@ -14,6 +14,8 @@ // limitations under the License. // +#nullable enable + using System.Diagnostics; using System.Runtime.CompilerServices; using OpenTelemetry.Internal; @@ -35,7 +37,7 @@ internal static class ActivityHelperExtensions /// Status description. /// if was found on the supplied Activity. [MethodImpl(MethodImplOptions.AggressiveInlining)] - public static bool TryGetStatus(this Activity activity, out StatusCode statusCode, out string statusDescription) + public static bool TryGetStatus(this Activity activity, out StatusCode statusCode, out string? statusDescription) { Debug.Assert(activity != null, "Activity should not be null"); @@ -43,7 +45,7 @@ public static bool TryGetStatus(this Activity activity, out StatusCode statusCod statusCode = default; statusDescription = null; - foreach (ref readonly var tag in activity.EnumerateTagObjects()) + foreach (ref readonly var tag in activity!.EnumerateTagObjects()) { switch (tag.Key) { @@ -80,11 +82,11 @@ public static bool TryGetStatus(this Activity activity, out StatusCode statusCod /// Case-sensitive tag name to retrieve. /// Tag value or null if a match was not found. [MethodImpl(MethodImplOptions.AggressiveInlining)] - public static object GetTagValue(this Activity activity, string tagName) + public static object? GetTagValue(this Activity activity, string? tagName) { Debug.Assert(activity != null, "Activity should not be null"); - foreach (ref readonly var tag in activity.EnumerateTagObjects()) + foreach (ref readonly var tag in activity!.EnumerateTagObjects()) { if (tag.Key == tagName) { @@ -103,11 +105,11 @@ public static object GetTagValue(this Activity activity, string tagName) /// Tag value. /// if the first tag of the supplied Activity matches the user provide tag name. [MethodImpl(MethodImplOptions.AggressiveInlining)] - public static bool TryCheckFirstTag(this Activity activity, string tagName, out object tagValue) + public static bool TryCheckFirstTag(this Activity activity, string tagName, out object? tagValue) { Debug.Assert(activity != null, "Activity should not be null"); - var enumerator = activity.EnumerateTagObjects(); + var enumerator = activity!.EnumerateTagObjects(); if (enumerator.MoveNext()) { diff --git a/test/OpenTelemetry.Api.ProviderBuilderExtensions.Tests/Logs/TestLoggerProviderBuilder.cs b/test/OpenTelemetry.Api.ProviderBuilderExtensions.Tests/Logs/TestLoggerProviderBuilder.cs index 61b0c411e11..fec4069a968 100644 --- a/test/OpenTelemetry.Api.ProviderBuilderExtensions.Tests/Logs/TestLoggerProviderBuilder.cs +++ b/test/OpenTelemetry.Api.ProviderBuilderExtensions.Tests/Logs/TestLoggerProviderBuilder.cs @@ -42,7 +42,11 @@ public override LoggerProviderBuilder AddInstrumentation(Func< } else { - this.Instrumentation.Add(instrumentationFactory()); + var instrumentation = instrumentationFactory(); + if (instrumentation is not null) + { + this.Instrumentation.Add(instrumentation); + } } return this; diff --git a/test/OpenTelemetry.Api.ProviderBuilderExtensions.Tests/Metrics/TestMeterProviderBuilder.cs b/test/OpenTelemetry.Api.ProviderBuilderExtensions.Tests/Metrics/TestMeterProviderBuilder.cs index 362dc70e40e..d6f4249f238 100644 --- a/test/OpenTelemetry.Api.ProviderBuilderExtensions.Tests/Metrics/TestMeterProviderBuilder.cs +++ b/test/OpenTelemetry.Api.ProviderBuilderExtensions.Tests/Metrics/TestMeterProviderBuilder.cs @@ -44,7 +44,11 @@ public override MeterProviderBuilder AddInstrumentation(Func(Func< } else { - this.Instrumentation.Add(instrumentationFactory()); + var instrumentation = instrumentationFactory(); + if (instrumentation is not null) + { + this.Instrumentation.Add(instrumentation); + } } return this; diff --git a/test/OpenTelemetry.Tests/Logs/LoggerProviderBuilderExtensionsTests.cs b/test/OpenTelemetry.Tests/Logs/LoggerProviderBuilderExtensionsTests.cs index 022f0c5bc01..3d3e276ec56 100644 --- a/test/OpenTelemetry.Tests/Logs/LoggerProviderBuilderExtensionsTests.cs +++ b/test/OpenTelemetry.Tests/Logs/LoggerProviderBuilderExtensionsTests.cs @@ -33,6 +33,7 @@ public void LoggerProviderBuilderAddInstrumentationTest() .AddInstrumentation() .AddInstrumentation((sp, provider) => new CustomInstrumentation() { Provider = provider }) .AddInstrumentation(new CustomInstrumentation()) + .AddInstrumentation(() => (object?)null) .Build() as LoggerProviderSdk) { Assert.NotNull(provider); diff --git a/test/OpenTelemetry.Tests/Metrics/MeterProviderBuilderExtensionsTests.cs b/test/OpenTelemetry.Tests/Metrics/MeterProviderBuilderExtensionsTests.cs index 38beb452133..2f19e37cf85 100644 --- a/test/OpenTelemetry.Tests/Metrics/MeterProviderBuilderExtensionsTests.cs +++ b/test/OpenTelemetry.Tests/Metrics/MeterProviderBuilderExtensionsTests.cs @@ -91,6 +91,7 @@ public void AddInstrumentationTest() .AddInstrumentation() .AddInstrumentation((sp, provider) => new MyInstrumentation() { Provider = provider }) .AddInstrumentation(new MyInstrumentation()) + .AddInstrumentation(() => (object)null) .Build() as MeterProviderSdk) { Assert.NotNull(provider); diff --git a/test/OpenTelemetry.Tests/Trace/TracerProviderBuilderBaseTests.cs b/test/OpenTelemetry.Tests/Trace/TracerProviderBuilderBaseTests.cs new file mode 100644 index 00000000000..d895d5cb386 --- /dev/null +++ b/test/OpenTelemetry.Tests/Trace/TracerProviderBuilderBaseTests.cs @@ -0,0 +1,83 @@ +// +// Copyright The OpenTelemetry Authors +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// + +#nullable enable + +using Xunit; + +namespace OpenTelemetry.Trace.Tests; + +public class TracerProviderBuilderBaseTests +{ + [Fact] + public void AddInstrumentationInvokesFactoryTest() + { + bool factoryInvoked = false; + + var instrumentation = new TestTracerProviderBuilder(); + instrumentation.AddInstrumentationViaProtectedMethod(() => + { + factoryInvoked = true; + + return null; + }); + + using var provider = instrumentation.Build(); + + Assert.True(factoryInvoked); + } + + [Fact] + public void AddInstrumentationValidatesInputTest() + { + Assert.Throws(() => + { + new TestTracerProviderBuilder().AddInstrumentationViaProtectedMethod( + name: null, + version: "1.0.0", + factory: () => null); + }); + + Assert.Throws(() => + { + new TestTracerProviderBuilder().AddInstrumentationViaProtectedMethod( + name: "name", + version: null, + factory: () => null); + }); + + Assert.Throws(() => + { + new TestTracerProviderBuilder().AddInstrumentationViaProtectedMethod( + name: "name", + version: "1.0.0", + factory: null); + }); + } + + private sealed class TestTracerProviderBuilder : TracerProviderBuilderBase + { + public void AddInstrumentationViaProtectedMethod(Func factory) + { + this.AddInstrumentation("MyName", "MyVersion", factory); + } + + public void AddInstrumentationViaProtectedMethod(string? name, string? version, Func? factory) + { + this.AddInstrumentation(name!, version!, factory!); + } + } +} diff --git a/test/OpenTelemetry.Tests/Trace/TracerProviderBuilderExtensionsTest.cs b/test/OpenTelemetry.Tests/Trace/TracerProviderBuilderExtensionsTest.cs index a5ad07e7507..6ed2fb7c821 100644 --- a/test/OpenTelemetry.Tests/Trace/TracerProviderBuilderExtensionsTest.cs +++ b/test/OpenTelemetry.Tests/Trace/TracerProviderBuilderExtensionsTest.cs @@ -181,6 +181,7 @@ public void AddInstrumentationTest() .AddInstrumentation() .AddInstrumentation((sp, provider) => new MyInstrumentation() { Provider = provider }) .AddInstrumentation(new MyInstrumentation()) + .AddInstrumentation(() => (object)null) .Build() as TracerProviderSdk) { Assert.NotNull(provider);