Opentelemetry Dotnet Versions Save

The OpenTelemetry .NET Client

core-1.8.1

3 weeks ago

OpenTelemetry

  • Fixed an issue in Logging where unwanted objects (processors, exporters, etc.) could be created inside delegates automatically executed by the Options API during configuration reload. (#5514)

OpenTelemetry.Exporter.OpenTelemetryProtocol

  • Fix native AoT warnings in OpenTelemetry.Exporter.OpenTelemetryProtocol. (#5520)

Instrumentation.Http-1.8.1

3 weeks ago

OpenTelemetry.Instrumentation.Http

  • Breaking Change: Fixed tracing instrumentation so that by default any values detected in the query string component of requests are replaced with the text Redacted when building the url.full tag. For example, ?key1=value1&key2=value2 becomes ?key1=Redacted&key2=Redacted. You can disable this redaction by setting the environment variable OTEL_DOTNET_EXPERIMENTAL_HTTPCLIENT_DISABLE_URL_QUERY_REDACTION to true. (#5532)

Instrumentation.AspNetCore-1.8.1

3 weeks ago

OpenTelemetry.Instrumentation.AspNetCore

  • Breaking Change: Fixed tracing instrumentation so that by default any values detected in the query string component of requests are replaced with the text Redacted when building the url.query tag. For example, ?key1=value1&key2=value2 becomes ?key1=Redacted&key2=Redacted. You can disable this redaction by setting the environment variable OTEL_DOTNET_EXPERIMENTAL_ASPNETCORE_DISABLE_URL_QUERY_REDACTION to true. (#5532)

Instrumentation.SqlClient-1.8.0-beta.1

1 month ago

Instrumentation.Http-1.8.0

1 month ago

OpenTelemetry.Instrumentation.Http

  • Fixed an issue for spans when server.port attribute was not set with server.address when it has default values (80 for HTTP and 443 for HTTPS protocol). (#5419)

  • Fixed an issue where the http.request.method_original attribute was not set on activity. Now, when http.request.method is set and the original method is converted to its canonical form (e.g., Get is converted to GET), the original value Get will be stored in http.request.method_original. The attribute is not set on .NET Framework for non canonical form of CONNECT, GET, HEAD, PUT, and POST. HTTP Client is converting these values to canonical form. (#5471)

Instrumentation.GrpcNetClient-1.8.0-beta.1

1 month ago

Instrumentation.AspNetCore-1.8.0

1 month ago

OpenTelemetry.Instrumentation.AspNetCore

  • Fixed an issue for spans when server.port attribute was not set with server.address when it has default values (80 for HTTP and 443 for HTTPS protocol). (#5419)

  • Fixed an issue where the http.request.method_original attribute was not set on activity. Now, when http.request.method is set and the original method is converted to its canonical form (e.g., Get is converted to GET), the original value Get will be stored in http.request.method_original. (#5471)

  • Fixed the name of spans that have http.request.method attribute set to _OTHER. The span name will be set as HTTP {http.route} as per the specification. (#5484)

core-1.8.0

1 month ago

If you're interested in knowing all of the changes that went into 1.8.0 release, please go through the release notes of all the previous pre-release versions for 1.8.0:

Changes in 1.8.0:

OpenTelemetry.Exporter.Console

  • Added support for ActivitySource.Version property. (#5472)

OpenTelemetry.Exporter.OpenTelemetryProtocol

  • OtlpExporter will no longer throw an exception (even on .NET Core 3.1) when the System.Net.Http.SocketsHttpHandler.Http2UnencryptedSupport AppContext switch is NOT set AND using OtlpExportProtocol.Grpc to send to an insecure ("http") endpoint. System.Net.Http.SocketsHttpHandler.Http2UnencryptedSupport is not required to be set when using .NET 5 or newer. (#5486)

  • Replaced environment variable OTEL_DOTNET_EXPERIMENTAL_OTLP_ENABLE_INMEMORY_RETRY with OTEL_DOTNET_EXPERIMENTAL_OTLP_RETRY. OTEL_DOTNET_EXPERIMENTAL_OTLP_RETRY when set to in_memory will enable automatic retries in case of transient failures during data export to an OTLP endpoint. (#5495)

core-1.8.0-rc.1

1 month ago

OpenTelemetry

  • TracerProviders can now have a sampler configured via the OTEL_TRACES_SAMPLER environment variable. The supported values are: always_off, always_on, traceidratio, parentbased_always_on, parentbased_always_off, and parentbased_traceidratio. The options traceidratio and parentbased_traceidratio may have the sampler probability configured via the OTEL_TRACES_SAMPLER_ARG environment variable. For details see: OpenTelemetry Environment Variable Specification. (#5448)

OpenTelemetry.Exporter.Prometheus.AspNetCore

  • Fix serializing scope_info when buffer overflows (#5407)

  • Add target_info to Prometheus exporters when using OpenMetrics (#5407)

OpenTelemetry.Exporter.Prometheus.HttpListener

  • Fix serializing scope_info when buffer overflows (#5407)

  • Add target_info to Prometheus exporters when using OpenMetrics (#5407)

OpenTelemetry.Exporter.Zipkin

  • Zipkin tags used for Instrumentation Library changed from otel.library.name and otel.library.version to otel.scope.name and otel.scope.version respectively. Old versions of attributes are deprecated, but still exported for backward compatibility. (#5473)

core-1.8.0-beta.1

1 month ago

OpenTelemetry

  • Throw NotSupportedException when using SetErrorStatusOnException method for Tracing in Mono Runtime and Native AOT environment because the dependent Marshal.GetExceptionPointers() API is not supported on these platforms. (#5374)

  • Fixed an issue where LogRecord.Attributes (or LogRecord.StateValues alias) could become out of sync with LogRecord.State if either is set directly via the public setters. This was done to further mitigate issues introduced in 1.5.0 causing attributes added using custom processor(s) to be missing after upgrading. For details see:(#5169)

  • Fixed an issue where SimpleExemplarReservoir was not resetting internal state for cumulative temporality. (#5230)

  • Fixed an issue causing LogRecords to be incorrectly reused when wrapping an instance of BatchLogRecordExportProcessor inside another BaseProcessor<LogRecord> which leads to missing or incorrect data during export. (#5255)

  • Experimental (pre-release builds only): Added support for setting CardinalityLimit (the maximum number of data points allowed for a metric) when configuring a view (applies to individual metrics) and obsoleted MeterProviderBuilderExtensions.SetMaxMetricPointsPerMetricStream (previously applied to all metrics). The default cardinality limit for metrics remains at 2000. (#5312, #5328)

  • Updated LogRecord to keep CategoryName and Logger in sync when using the experimental Log Bridge API. #5317

  • Added OpenTelemetryBuilderSdkExtensions class which contains extension methods (ConfigureResource, WithMetrics, WithTracing, and experimental WithLogging) for the IOpenTelemetryBuilder interface. (#5265)

  • Added Microsoft.Extensions.Diagnostics.Abstractions dependency so that the IOpenTelemetryBuilder.WithMetrics extension method can configure IMetricsListener. (#5265)

  • Experimental (pre-release builds only): The Exemplar.FilteredTags property now returns a ReadOnlyFilteredTagCollection instance and the Exemplar.LongValue property has been added. The MetricPoint.GetExemplars method has been replaced by MetricPoint.TryGetExemplars which outputs a ReadOnlyExemplarCollection instance. These are breaking changes for metrics exporters which support exemplars. (#5386)

  • Experimental (pre-release builds only): Added support for exemplars when using Base2 Exponential Bucket Histogram Aggregation configured via the View API. (#5396)

  • Experimental (pre-release builds only): Removed the ExemplarFilter, AlwaysOffExemplarFilter, AlwaysOnExemplarFilter, and TraceBasedExemplarFilter APIs. The MeterProviderBuilder.SetExemplarFilter extension method now accepts an ExemplarFilterType enumeration (which contains definitions for the supported filter types AlwaysOff, AlwaysOn, and TraceBased) instead of an ExemplarFilter instance. This was done in response to changes made to the OpenTelemetry Metrics SDK Specification. (#5404)

  • Experimental (pre-release builds only): The ExemplarFilter used by SDK MeterProviders can now be controlled via the OTEL_METRICS_EXEMPLAR_FILTER environment variable. The supported values are: always_off, always_on, and trace_based. For details see: OpenTelemetry Environment Variable Specification. (#5412)

OpenTelemetry.Api.ProviderBuilderExtensions

  • Added IOpenTelemetryBuilder interface to support authoring extensions which can configure multiple OpenTelemetry signals (tracing, metrics, and/or logs). (#5265)

OpenTelemetry.Exporter.OpenTelemetryProtocol

  • Experimental (pre-release builds only): Added LoggerProviderBuilder.AddOtlpExporter registration extensions. #5103

  • Removed the OTEL_DOTNET_EXPERIMENTAL_OTLP_EMIT_EXCEPTION_LOG_ATTRIBUTES environment variable, following the stabilization of the exception attributes exception.type, exception.message, and exception.stacktrace in the OpenTelemetry Semantic Conventions. These attributes, corresponding to LogRecord.Exception, are now stable and will be automatically included in exports. (#5258)

  • Updated OtlpLogExporter to set body on the data model from LogRecord.Body if {OriginalFormat} attribute is NOT found and FormattedMessage is null. This is typically the case when using the experimental Logs Bridge API. (#5268)

  • Updated OtlpLogExporter to set instrumentation scope name on the data model from LogRecord.Logger.Name if LogRecord.CategoryName is null. This is typically the case when using the experimental Logs Bridge API. (#5300)

  • URL encoded values in OTEL_EXPORTER_OTLP_HEADERS are now correctly decoded as it is mandated by the specification. (#5316)

  • Experimental (pre-release builds only): Add support in OtlpMetricExporter for emitting exemplars supplied on Counters, Gauges, and ExponentialHistograms. (#5397)

  • Setting Endpoint or HttpClientFactory properties on OtlpExporterOptions to null will now result in an ArgumentNullException being thrown. (#5434)

  • Introduced experimental support for automatically retrying export to the otlp endpoint when transient network errors occur. Users can enable this feature by setting OTEL_DOTNET_EXPERIMENTAL_OTLP_ENABLE_INMEMORY_RETRY environment variable to true. (#5435)

  • Added IOpenTelemetryBuilder.UseOtlpExporter extension to simplify setup of the OTLP Exporter when all three signals are used (logs, metrics, and traces). The new extension has the following behaviors:

    • Calling UseOtlpExporter will automatically enable logging, tracing, and metrics. Additional calls to WithLogging, WithMetrics, and WithTracing are NOT required however for metrics and tracing sources/meters still need to be enabled.

    • UseOtlpExporter can only be called once and cannot be used with the existing AddOtlpExporter extensions. Extra calls will result in NotSupportedExceptions being thrown.

    • UseOtlpExporter will register the OTLP Exporter at the end of the processor pipeline for logging and tracing.

    • The OTLP Exporters added for logging, tracing, and metrics can be configured using environment variables or IConfiguration.

    For details see: README > Enable OTLP Exporter for all signals.

    PR: #5400

OpenTelemetry.Exporter.Prometheus.AspNetCore

  • Added option to disable _total suffix addition to counter metrics (#5305)

  • Export OpenMetrics format from Prometheus exporters (#5107)

  • For requests with OpenMetrics format, scope info is automatically added (#5086 #5182)

OpenTelemetry.Exporter.Prometheus.HttpListener

  • Added option to disable _total suffix addition to counter metrics (#5305)

  • Export OpenMetrics format from Prometheus exporters (#5107)

  • For requests with OpenMetrics format, scope info is automatically added (#5086 #5182)

  • Breaking change Updated the PrometheusHttpListener to throw an exception if it can't be started. (#5304)

OpenTelemetry.Extensions.Hosting

  • OpenTelemetryBuilder has been marked obsolete. Component authors using OpenTelemetryBuilder for cross-cutting signal configuration extensions should switch to targeting IOpenTelemetryBuilder instead. (#5265)