core-1.8.0-beta.1
Pre-releaseOpenTelemetry
-
Throw NotSupportedException when using
SetErrorStatusOnExceptionmethod for Tracing in Mono Runtime and Native AOT environment because the dependentMarshal.GetExceptionPointers()API is not supported on these platforms. (#5374) -
Fixed an issue where
LogRecord.Attributes(orLogRecord.StateValuesalias) could become out of sync withLogRecord.Stateif 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
SimpleExemplarReservoirwas not resetting internal state for cumulative temporality. (#5230) -
Fixed an issue causing
LogRecords to be incorrectly reused when wrapping an instance ofBatchLogRecordExportProcessorinside 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 obsoletedMeterProviderBuilderExtensions.SetMaxMetricPointsPerMetricStream(previously applied to all metrics). The default cardinality limit for metrics remains at2000. (#5312, #5328) -
Updated
LogRecordto keepCategoryNameandLoggerin sync when using the experimental Log Bridge API. #5317 -
Added
OpenTelemetryBuilderSdkExtensionsclass which contains extension methods (ConfigureResource,WithMetrics,WithTracing, and experimentalWithLogging) for theIOpenTelemetryBuilderinterface. (#5265) -
Added
Microsoft.Extensions.Diagnostics.Abstractionsdependency so that theIOpenTelemetryBuilder.WithMetricsextension method can configure IMetricsListener. (#5265) -
Experimental (pre-release builds only): The
Exemplar.FilteredTagsproperty now returns aReadOnlyFilteredTagCollectioninstance and theExemplar.LongValueproperty has been added. TheMetricPoint.GetExemplarsmethod has been replaced byMetricPoint.TryGetExemplarswhich outputs aReadOnlyExemplarCollectioninstance. 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, andTraceBasedExemplarFilterAPIs. TheMeterProviderBuilder.SetExemplarFilterextension method now accepts anExemplarFilterTypeenumeration (which contains definitions for the supported filter typesAlwaysOff,AlwaysOn, andTraceBased) instead of anExemplarFilterinstance. This was done in response to changes made to the OpenTelemetry Metrics SDK Specification. (#5404) -
Experimental (pre-release builds only): The
ExemplarFilterused by SDKMeterProviders can now be controlled via theOTEL_METRICS_EXEMPLAR_FILTERenvironment variable. The supported values are:always_off,always_on, andtrace_based. For details see: OpenTelemetry Environment Variable Specification. (#5412)
OpenTelemetry.Api.ProviderBuilderExtensions
- Added
IOpenTelemetryBuilderinterface 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.AddOtlpExporterregistration extensions. #5103 -
Removed the
OTEL_DOTNET_EXPERIMENTAL_OTLP_EMIT_EXCEPTION_LOG_ATTRIBUTESenvironment variable, following the stabilization of the exception attributesexception.type,exception.message, andexception.stacktracein the OpenTelemetry Semantic Conventions. These attributes, corresponding toLogRecord.Exception, are now stable and will be automatically included in exports. (#5258) -
Updated
OtlpLogExporterto setbodyon the data model fromLogRecord.Bodyif{OriginalFormat}attribute is NOT found andFormattedMessageisnull. This is typically the case when using the
experimental Logs Bridge API. (#5268) -
Updated
OtlpLogExporterto set instrumentation scope name on the data model fromLogRecord.Logger.NameifLogRecord.CategoryNameisnull. This is typically the case when using the experimental Logs Bridge API. (#5300) -
URL encoded values in
OTEL_EXPORTER_OTLP_HEADERSare now correctly decoded as it is mandated by the specification. (#5316) -
Experimental (pre-release builds only): Add support in
OtlpMetricExporterfor emitting exemplars supplied on Counters, Gauges, and
ExponentialHistograms. (#5397) -
Setting
EndpointorHttpClientFactoryproperties onOtlpExporterOptionstonullwill now result in anArgumentNullExceptionbeing 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_RETRYenvironment variable to true. (#5435) -
Added
IOpenTelemetryBuilder.UseOtlpExporterextension 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
UseOtlpExporterwill automatically enable logging, tracing, and metrics. Additional calls toWithLogging,WithMetrics, andWithTracingare NOT required however for metrics and tracing sources/meters still need to be enabled. -
UseOtlpExportercan only be called once and cannot be used with the existingAddOtlpExporterextensions. Extra calls will result inNotSupportedExceptions being thrown. -
UseOtlpExporterwill 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
PrometheusHttpListenerto throw an exception if it can't be started. (#5304)
OpenTelemetry.Extensions.Hosting
OpenTelemetryBuilderhas been marked obsolete. Component authors usingOpenTelemetryBuilderfor cross-cutting signal configuration extensions should switch to targetingIOpenTelemetryBuilderinstead. (#5265)