51 KiB
Changelog
Unreleased
-
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 anotherBaseProcessor<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)
1.7.0
Released 2023-Dec-08
1.7.0-rc.1
Released 2023-Nov-29
-
The
AddServiceResourceBuilderextension method will now generate the sameservice.instance.idfor the lifetime of a process whenautoGenerateServiceInstanceIdistrue. (#4988) -
Fixed a Metrics SDK bug which led to
ExemplarReservoir.Offeralways being called regardless of whether or not theExemplarFiltersampled the measurement. (#5004) (#5016) -
Update Metrics SDK to override the default histogram buckets for the following metrics from ASP.NET Core and HttpClient runtime:
signalr.server.connection.durationkestrel.connection.durationhttp.client.connection.duration
These histogram metrics which have their
Unitass(second) will have their default histogram buckets as[ 0.01, 0.02, 0.05, 0.1, 0.2, 0.5, 1, 2, 5, 10, 30, 60, 120, 300 ]. (#5008) (#5021) -
Remove the bucket with value
0for histogram buckets for all metrics from ASP.NET Core and HttpClient. (#5021) -
Updated
Microsoft.Extensions.Logging.Configurationpackage version to8.0.0. (#5051) -
Updated
Microsoft.Extensions.Loggingpackage version to8.0.0. (#5051) -
Revert the default behavior of Metrics SDK for Delta aggregation. It would not reclaim unused Metric Points by default. You can enable the SDK to reclaim unused Metric Points by setting the environment variable
OTEL_DOTNET_EXPERIMENTAL_METRICS_RECLAIM_UNUSED_METRIC_POINTStotruebefore setting up theMeterProvider. (#5052) -
Update Metrics SDK to override the default histogram buckets for ASP.NET (.NET Framework).
Histogram metrics for the meter name
OpenTelemetry.Instrumentation.AspNetand instrument namehttp.request.server.durationwhich have theirUnitass(second) will have their default histogram buckets as[ 0.005, 0.01, 0.025, 0.05, 0.075, 0.1, 0.25, 0.5, 0.75, 1, 2.5, 5, 7.5, 10 ]. (#5063) -
Added
AddProcessoroverload onOpenTelemetryLoggerOptionswhich exposes the factory pattern(Func<IServiceProvider, BaseProcessor<LogRecord>> implementationFactory). (#4916) -
Add support for Instrumentation Scope Attributes (i.e Meter Tags), fixing issue #4563. (#5089)
-
Added the
ILoggingBuilder.UseOpenTelemetryexperimental API extension for registering OpenTelemetryILoggerintegration usingLoggerProviderBuilderwhich supports the full DI (IServiceCollection\IServiceProvider) API surface (mirrors tracing & metrics). (#5072) -
Changed the
ILoggingBuilderregistration extensions (AddOpenTelemetry&UseOpenTelemetry) to fire the optionalOpenTelemetryLoggerOptionsconfiguration delegate AFTER the "Logging:OpenTelemetry"IConfigurationsection has been applied. (#5072)
1.7.0-alpha.1
Released 2023-Oct-16
-
Update
AggregatorStoreto reclaim unused MetricPoints for Delta aggregation temporality. (#4486) -
Fixed a bug where
TracerProviderBuilderBasewas not invoking theinstrumentationFactorydelegate passed to theprotectedAddInstrumentationmethod. (#4873) -
Allowed metric instrument names to contain
/characters. (#4882) -
Breaking Change
[Tracer|Meter|Logger]ProviderBuilder.Buildextension will now throw aNotSupportedExceptionif invoked on a non-SDK builder type. Previously it would returnnull. (#4885) -
Updated
Microsoft.Extensions.Loggingpackage version to8.0.0-rc.1.23419.4. (#4920, #4933)
1.6.0
Released 2023-Sep-05
-
Increased the character limit of the Meter instrument name from 63 to 255. (#4798)
-
Update default size for
SimpleExemplarReservoirto1. (#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 histogram metrics which have their
Unitass(second) will have their default histogram buckets as[ 0, 0.005, 0.01, 0.025, 0.05, 0.075, 0.1, 0.25, 0.5, 0.75, 1, 2.5, 5, 7.5, 10 ]. (#4820)
1.6.0-rc.1
Released 2023-Aug-21
- Experimental Feature Added an opt-in feature to aggregate any metric
measurements that were dropped due to reaching the max MetricPoints
limit.
When this feature is enabled, SDK would aggregate such measurements using a
reserved MetricPoint with a single tag with key as
otel.metric.overflowand value astrue. The feature is turned-off by default. You can enable it by setting the environment variableOTEL_DOTNET_EXPERIMENTAL_METRICS_EMIT_OVERFLOW_ATTRIBUTEtotruebefore setting up theMeterProvider. (#4737)
1.6.0-alpha.1
Released 2023-Jul-12
-
Experimental (pre-release builds only):
-
Note: See #4735 for the introduction of experimental api support.
-
Add back support for Exemplars. See exemplars for instructions to enable exemplars. (#4553)
-
Added Logs Bridge API implementation (
Sdk.CreateLoggerProviderBuilder, etc.). (#4433) -
Obsoleted
LogRecord.LogLevelin favor of theLogRecord.Severityproperty which matches the OpenTelemetry Specification > Logs DataModel > Severity definition. (#4433) -
Added
LogRecord.Loggerproperty to access the OpenTelemetry Specification Instrumentation Scope provided during Logger creation. (#4433)
-
-
Fix the issue of potentially running into the
ArgumentException:An instance of EventSource with Guid af2d5796-946b-50cb-5f76-166a609afcbb already exists.when using any of the following exporters:ConsoleExporter,OtlpExporter,ZipkinExporter,JaegerExporter.
1.5.1
Released 2023-Jun-26
-
Fixed a breaking change causing
LogRecord.Stateto benullwhere it was previously set to a valid value whenOpenTelemetryLoggerOptions.ParseStateValuesisfalseand states implementIReadOnlyListorIEnumerableofKeyValuePair<string, object>s. (#4609) -
Breaking Change Removed the support for parsing
TStatetypes passed to theILogger.Log<TState>API whenParseStateValuesis true andTStatedoes not implement eitherIReadOnlyList<KeyValuePair<string, object>>orIEnumerable<KeyValuePair<string, object>>. This feature was first introduced in the1.5.0stable release with #4334 and has been removed because it makes the OpenTelemetry .NET SDK incompatible with native AOT. (#4614)
1.5.0
Released 2023-Jun-05
-
Fixed a bug introduced by #4508 in 1.5.0-rc.1 which caused the "Build" extension to return
nullwhen performing chained/fluent calls. (#4529) -
Marked
Exemplarsand related APIsinternalas the spec forExemplarsis not stable yet. This would be added back in the1.6.*prerelease versions right after1.5.0stable version is released. (#4533)
1.5.0-rc.1
Released 2023-May-25
-
The default resource provided by
ResourceBuilder.CreateDefault()now adds thetelemetry.sdk.*attributes defined in the specification. (#4369) -
Fixed an issue with
HashCodecomputations throwing exceptions on .NET Standard 2.1 targets. (#4362) -
Update value of the resource attribute
telemetry.sdk.versionto show the tag name which resembles the package version of the SDK. (#4375) -
Obsoleted
StateandStateValuesproperties and addedBodyandAttributesproperties onLogRecord. Note:LogRecord.AttributesandLogRecord.StateValuespoint to the same data. "Attributes" is what the OpenTelemetry Specification defines so this was changed for clarity & consistency with the specification. (#4334) -
Tweaked the behavior of the
OpenTelemetryLoggerOptions.ParseStateValuesflag:-
LogRecord.Attributes(akaLogRecord.StateValues) are now automatically included for all log messages with states implementingIReadOnlyListorIEnumerable. -
OpenTelemetryLoggerOptions.ParseStateValuesis now used to tell the SDK to parse (using reflection) attributes for custom states which do not implementIReadOnlyListorIEnumerable. Only top-level properties are included. -
LogRecord.Statewill only be set to the raw state object if no attributes are found.
See #4334 for details.
-
-
If a template (
{OriginalFormat}attribute) cannot be found on log messages a formatted message will now automatically be generated (even ifOpenTelemetryLoggerOptions.IncludeFormattedMessageis set tofalse). (#4334)
1.5.0-alpha.2
Released 2023-Mar-31
-
Enabling
SetErrorStatusOnExceptionon TracerProvider will now set theStatusproperty on Activity toActivityStatusCode.Errorin case of an error. This will be done in addition to current behavior of settingotel.status_codetag on activity. (#4336) -
Add support for configuring the Base2 Exponential Bucket Histogram Aggregation using the
AddViewAPI. This aggregation is supported by OTLP but not yet by Prometheus. (#4337) -
Implementation of
SuppressInstrumentationScopechanged to improve performance. (#4304)
1.5.0-alpha.1
Released 2023-Mar-07
-
Added Exemplar support. See exemplars for instructions to enable exemplars.
-
Added
AddDetectorfactory overload onResourceBuilder. (#4261)
1.4.0
Released 2023-Feb-24
1.4.0-rc.4
Released 2023-Feb-10
-
Removed the dependency on System.Reflection.Emit.Lightweight (#4140)
-
Moved the
AddOpenTelemetryextension into theOpenTelemetry.Extensions.Hostingpackage so that theStartWithHostAPI could be removed. (#4174)
1.4.0-rc.3
Released 2023-Feb-01
-
Removed the dependency on Microsoft.Extensions.Configuration.EnvironmentVariables (#4092)
-
Removed the explicit reference to Microsoft.Extensions.Options version 5.0 and reverted back to the transitive reference of version 3.1 (#4093)
-
Added
SetSampler,AddProcessor, &AddReaderfactory extensions. (#4103)
1.4.0-rc.2
Released 2023-Jan-09
- Performance Improvement: Update the internal structure used to store metric
dimensions from a combination of
string[]andobject[]to aKeyValuePair<string, object>[]. This results in faster copying of the metric dimensions required forMetricPointlookup on the hot path. (#4059)
1.4.0-rc.1
Released 2022-Dec-12
-
Added dependency injection support in the
ResourceBuilderclass and added support for loading environment variables fromIConfigurationfor theAddEnvironmentVariableDetectorextension (Logs) (#3889) -
Refactored
AddInstrumentation,ConfigureServicesandConfigureBuilderAPIs into the OpenTelemetry.Extensions.DependencyInjection package and added theIServiceCollection.AddOpenTelemetryAPI (#3923) -
Removed
ConfigureResourceonOpenTelemetryLoggingOptions(#3999)
1.4.0-beta.3
Released 2022-Nov-07
-
Fix instrument naming enforcement implementation to match the spec. (#3821)
-
Added support for loading environment variables from
IConfigurationwhen using theMetricReaderOptions&BatchExportActivityProcessorOptionsclasses. (#3760, #3776) -
Added dependency injection support in the
ResourceBuilderclass and added support for loading environment variables fromIConfigurationfor theAddEnvironmentVariableDetectorextension (Traces & Metrics) (#3782, #3798) -
Breaking: MetricPoint API to retrieve Histogram Min, Max changed. The existing pattern of checking if Min/Max is available with
HasMinMax()and then retrieving the same usingGetHistogramMin(),GetHistogramMax()is replaced with a single APITryGetHistogramMinMaxValues(out double min, out double max). (#3822)
1.4.0-beta.2
Released 2022-Oct-17
-
Make recording of
MinandMaxfor histograms configurable, enabled by default. (#2735) -
Changed default bucket boundaries for Explicit Bucket Histogram from [0, 5, 10, 25, 50, 75, 100, 250, 500, 1000] to [0, 5, 10, 25, 50, 75, 100, 250, 500, 750, 1000, 2500, 5000, 7500, 10000]. (#3722)
-
Fixed an issue where
LogRecord.ForEachScopemay return scopes from a previous log if accessed in a custom processor beforeBatchLogRecordExportProcessor.OnEndis fired. (#3731) -
Added support for loading environment variables from
IConfigurationwhen usingTracerProviderBuilderorMeterProviderBuilder(#3720)
1.4.0-beta.1
Released 2022-Sep-29
-
Use binary search for histograms with 50 or more supplied boundaries. (#3252)
-
Allows samplers the ability to modify tracestate if desired. (#3610)
-
Added support for
UpDownCounterandObservableUpDownCounterinstruments. (#3606) -
Added support for dependency injection scenarios when configuring
MeterProvider. (#3646) -
Revert new logging APIs pending OTel specification changes. (#3702)
-
Fix Histogram synchronization issue: Use the same synchronization mechanism for Histograms Update and Snapshot. (#3534)
1.4.0-alpha.2
Released 2022-Aug-18
-
Added
Sdk.CreateLoggerProviderBuildermethod and support for dependency injection scenarios when configuringOpenTelemetryLoggerProvider(#3504) -
Added support for dependency injection scenarios when configuring
TracerProvider(#3533)
1.4.0-alpha.1
Released 2022-Aug-02
TracerProviderSDKmodified for spans with remote parent. For such spans activity will be created irrespective of SamplingResult, to maintain context propagation. (#3329)- Fix issue where a measurement would be dropped when recording it with a null-valued tag. (#3325)
CompositeProcessorwill now ensureParentProvideris set on its children (#3368)- Added
ForceFlushand helper ctors onOpenTelemetryLoggerProvider(#3364) Timestamp,TraceId,SpanId,TraceFlags,TraceState,CategoryName,LogLevel,EventId, &Exceptionproperties onLogRecordnow exposesetmethods (#3378)- Handle possible exception when initializing the default service name. (#3405)
- Add
ConfigureResourcewhich can replace SetResourceBuilder more succinctly in most cases and has greater flexibility (applies to TracerProviderBuilder, MeterProviderBuilder, OpenTelemetryLoggingOptions). (#3307) LogRecordinstances are now reused to reduce memory pressure (#3385)- Fix exact match of activity source name when
wildcardis used. (#3446) - Added AddOpenTelemetry
ILoggingBuilderextensions which acceptOpenTelemetryLoggerProviderdirectly (#3489)
1.3.0
Released 2022-Jun-03
1.3.0-rc.2
Released 2022-June-1
- Fix null reference exception when a metric view does not match an instrument. (#3285)
- Swallow
ObjectDisposedExceptioninBatchExportProcessorandPeriodicExportingMetricReader. (#3291)
1.3.0-beta.2
Released 2022-May-16
- Exposed public setters for
LogRecord.State,LogRecord.StateValues, andLogRecord.FormattedMessage. (#3217)
1.3.0-beta.1
Released 2022-Apr-15
- Removes .NET Framework 4.6.1. The minimum .NET Framework version supported is .NET 4.6.2. (#3190)
- Bumped minimum required version of
Microsoft.Extensions.LoggingandMicrosoft.Extensions.Logging.Configurationto 3.1.0 (#2582)
1.2.0
Released 2022-Apr-15
- Make setter for
MetricReaderOptions.PeriodicExportingMetricReaderOptionsproperty public. (#3184)
1.2.0-rc5
Released 2022-Apr-12
- Removed the
Temporalitysetting onMetricReaderand replaced it withTemporalityPreference. This is a breaking change.TemporalityPreferenceis used to determine theAggregationTemporalityused on a per-instrument kind basis. Currently, there are two preferences:Cumulative: Measurements from all instrument kinds are aggregated usingAggregationTemporality.Cumulative.Delta: Measurements fromCounter,ObservableCounter, andHistograminstruments are aggregated usingAggregationTemporality.Delta. When UpDownCounters are supported with DiagnosticSource version 7.0 onwards, they will be aggregated usingAggregationTemporality.Cumulative. (#3153)
- Fix issue where
ExplicitBucketHistogramConfigurationcould be used to configure metric streams for instruments that are not histograms. Currently, it is not possible to change the aggregation of an instrument with views. This may be possible in the future. (#3126) - Conformed to the specification to ensure that each view that an instrument matches results in a new metric stream. With this change it is possible for views to introduce conflicting metric streams. Any conflicts encountered will result in a diagnostic log. (#3148)
1.2.0-rc4
Released 2022-Mar-30
- The
PeriodicExportingMetricReadernow accepts anExportIntervalMillisecondsof-1indicating an infinite export interval period. (#2982) - Fix bug where multiple views selecting a single instrument can result in duplicate updates to a single metric point. (#3006)
- Added the
PeriodicExportingMetricReaderOptions.ExportTimeoutMillisecondsoption. (#3038) - Removed
MetricReaderType. This enumeration was previously used when configuring a metric reader with an exporter to configure whether the export cycle would be periodic or manual (i.e., requiring a explicit call to flush metrics). This change affects the push-based metric exporters: OTLP, Console, and InMemory. For these exporters, a manual export cycle can now be achieved by settingPeriodicExportingMetricReaderOptions.ExportIntervalMillisecondsto-1. (#3038) - Marked members of the
MetricPointstructwhich do not mutate state asreadonly(#3065) - [Bug fix] OpenTelemetryLoggerProvider is now unaffected by changes to OpenTelemetryLoggerOptions after the LoggerFactory is built. (#3055)
1.2.0-rc3
Released 2022-Mar-04
- Instantiating multiple metric instruments with the same name and also identical in all other respects - same type, description, and unit - result in a single metric stream aggregating measurements from all the identical instruments. Instantiating multiple metric instruments with the same name but differ in some respect - different type, description, or unit - will result in a separate metric stream for each distinct instrument. (#2916)
- The
Meterproperty onOpenTelemetry.Metrics.Metrichas been removed. It now hasMeterNameandMeterVersionproperties. (#2916) - Added support for implementing custom
ResourceDetector. (#2949 #2897) - Perf improvement for Histogram and HistogramSumCount by implementing lock-free updates. (#2951 #2961)
1.2.0-rc2
Released 2022-Feb-02
- Make
MetricPointofMetricPointAccessorreadonly. (#2736) - Fail-fast when using AddView with guaranteed conflict. (#2751)
- Swallow
ObjectDisposedExceptionfrom theBatchExportProcessorworker thread. (#2844) - Performance improvement: when emitting metrics, users are strongly advised to provide tags with same Key order, to achieve maximum performance. (#2805)
1.2.0-rc1
Released 2021-Nov-29
- Prevent accessing activity Id before sampler runs in case of legacy activities. (#2659)
- Added
ReadOnlyTagCollectionand exposeTagsonMetricPointinstead ofKeys+Values(#2642) - Refactored
MetricPointand added public methods:GetBucketCounts,GetExplicitBounds,GetHistogramCount, andGetHistogramSum(#2657) - Remove MetricStreamConfiguration.Aggregation, as the feature to customize aggregation is not implemented yet. (#2660)
- Removed the public property
HistogramMeasurementsand added a public methodGetHistogramBucketsinstead. Renamed the classHistogramMeasurementstoHistogramBucketsand added an enumerator of typeHistogramBucketfor enumeratingBucketCountsandExplicitBounds. RemovedGetBucketCountsandGetExplicitBoundsmethods fromMetricPoint. (#2664) - Refactored temporality setting to align with the latest spec. (#2666)
- Removed the public properties
LongValue,DoubleValue, in favor of their counterpart public methodsGetSumLong,GetSumDouble,GetGaugeLastValueLong,GetGaugeLastValueDouble. (#2667) - MetricType modified to reserve bits for future types. (#2693)
1.2.0-beta2
Released 2021-Nov-19
- Renamed
HistogramConfigurationtoExplicitBucketHistogramConfigurationand changed its memberBucketBoundstoBoundaries. (#2638) - Metrics with the same name but from different meters are allowed. (#2634)
- Metrics SDK will not provide inactive Metrics to delta exporter. (#2629)
- Histogram bounds are validated when added to a View. (#2573)
- Changed
BatchExportActivityProcessorOptionsconstructor to throwFormatExceptionif it fails to parse any of the supported environment variables. - Added
BaseExporter.ForceFlush. (#2525) - Exposed public
Batch(T[] items, int count)constructor onBatch<T>struct (#2542) - Added wildcard support for AddMeter. (#2459)
- Add support for multiple Metric readers (#2596)
- Add ability to configure MaxMetricStreams, MaxMetricPointsPerMetricStream (#2635)
1.2.0-beta1
Released 2021-Oct-08
- Exception from Observable instrument callbacks does not result in entire metrics being lost.
- SDK is allocation-free on recording of measurements with up to 8 tags.
- TracerProviderBuilder.AddLegacySource now supports wildcard activity names. (#2183)
- Instrument and View names are validated according with the spec. (#2470)
1.2.0-alpha4
Released 2021-Sep-23
BatchExportProcessor.OnShutdownwill now log the count of dropped telemetry items. (#2331)- Changed
CompositeProcessor<T>.OnForceFlushto meet with the spec requirement. Now the SDK will invokeForceFlushon all registered processors, even if there is a timeout. (#2388)
1.2.0-alpha3
Released 2021-Sep-13
- Metrics perf improvements, bug fixes. Replace MetricProcessor with MetricReader. (#2306)
- Add
BatchExportActivityProcessorOptionswhich supports field value overriding usingOTEL_BSP_SCHEDULE_DELAY,OTEL_BSP_EXPORT_TIMEOUT,OTEL_BSP_MAX_QUEUE_SIZE,OTEL_BSP_MAX_EXPORT_BATCH_SIZEenvironmental variables as defined in the specification. (#2219)
1.2.0-alpha2
Released 2021-Aug-24
- More Metrics features. All instrument types, push/pull exporters, Delta/Cumulative temporality supported.
ResourceBuilder.CreateDefaulthas detectors forOTEL_RESOURCE_ATTRIBUTES,OTEL_SERVICE_NAMEenvironment variables so that explicitAddEnvironmentVariableDetectorcall is not needed. (#2247)ResourceBuilder.AddEnvironmentVariableDetectorhandlesOTEL_SERVICE_NAMEenvironmental variable. (#2209)- Removes upper constraint for Microsoft.Extensions.Logging dependencies. (#2179)
- OpenTelemetryLogger modified to not throw, when the formatter supplied in ILogger.Log call is null. (#2200)
1.2.0-alpha1
Released 2021-Jul-23
- Add basic Metrics support with a single pipeline, and supporting Counter (sync) instrument. Push and Pull exporters are supported. (#2174)
- Removes .NET Framework 4.5.2, .NET 4.6 support. The minimum .NET Framework version supported is .NET 4.6.1. (#2138)
1.1.0
Released 2021-Jul-12
1.1.0-rc1
Released 2021-Jun-25
- Moved
IDeferredTracerProviderBuilderto API library. (#2058)
1.1.0-beta4
Released 2021-Jun-09
1.1.0-beta3
Released 2021-May-11
AddLegacySource()moved out ofTracerProviderBuilderExtensionsand into public API (#2019)- Fixed an issue causing inconsistent log scopes when using
BatchLogRecordExportProcessor. To make parsing scopes easier theLogRecord.ForEachScopesignature has been changed to receive instances ofLogRecordScope(a new type which implementsIEnumerator<KeyValuePair<string, object>>for accessing scope items) (#2026)
1.1.0-beta2
Released 2021-Apr-23
- Use
AssemblyFileVersionAttributeinstead ofFileVersionInfo.GetVersionInfoto get the SDK version attribute to ensure that it works when the assembly is not loaded directly from a file on disk (#1908)
1.1.0-beta1
Released 2021-Mar-19
- Removed SuppressScope Increment/Decrement from DiagnosticSourceListeners. (1893)
- Added
TracerProviderBuilder.SetErrorStatusOnExceptionwhich automatically sets the activity status toErrorwhen exception happened. (#1858 #1875) - Added
ForceFlushtoTracerProvider. (#1837) - Added a TracerProviderBuilder extension method called
AddLegacySourcewhich is used by instrumentation libraries that use DiagnosticSource to get activities processed without ActivitySourceAdapter. #1836 #1860 - Added new constructor with optional parameters to allow customization of
ParentBasedSamplerbehavior. (#1727) - The application base directory is now tested after the current directory when searching for the self diagnostic configuration file. (#1865)
- Resource Attributes now accept primitive arrays as values. (#1852)
- Fixed
#1846:
ParentBasedSamplerwill no longer explicitly consider Activity links. (#1851) - Added
IncludeScopes,IncludeFormattedMessage, &ParseStateValuesonOpenTelemetryLoggerOptions. AddedFormattedMessage,StateValues, &ForEachScopeonLogRecord. (#1869 #1883) - Added
SetResourceBuildersupport toOpenTelemetryLoggerOptions. (#1913) - Added
IDeferredTracerProviderBuilderandTracerProviderBuilderBaseto support dependency injection through OpenTelemetry.Extensions.Hosting. (#1889)
1.0.1
Released 2021-Feb-10
1.0.0-rc4
Released 2021-Feb-09
1.0.0-rc3
Released 2021-Feb-04
- Default
Resourcewill now contain service.name instead of Telemetry SDK. (#1744) - Added GetDefaultResource() method to
Provider. (#1768)
1.0.0-rc2
Released 2021-Jan-29
- The following extension methods on
ResourceBuilderhas been moved from theOpenTelemetrynamespace to theOpenTelemetry.Resourcesnamespace:AddEnvironmentVariableDetector,AddAttributes,AddService, andAddTelemetrySdk. (#1576) - Metrics API/SDK support is in an experimental state and is not recommended for
production use. All metric APIs have been marked with the
Obsoleteattribute. See #1501 for more information. (#1611) - Modified SimpleExportProcessor and BatchExportProcessor to abstract classes; Added SimpleActivityExportProcessor, SimpleLogRecordExportProcessor, BatchActivityExportProcessor, BatchLogRecordExportProcessor; Added the check for Activity.Recorded in SimpleActivityExportProcessor and BatchActivityExportProcessor (#1622)
- Added check in
ActivitySourceAdapterclass for root activity if trace ID is overridden by callingSetParentId(#1355) - Resource Attributes now accept int, short, and float as values, converting them to supported data types (long for int/short, double for float). For invalid attributes we now throw an exception instead of logging an error. (#1720)
- Merging "this" resource with an "other" resource now prioritizes the "other" resource's attributes in a conflict. We've rectified to follow a recent change to the spec. We previously prioritized "this" resource's tags. (#1728)
BatchExportProcessorwill now flush any remaining spans left in aBatchafter the export operation has completed. (#1726)- Fixed a bug to allow the Self Diagnostics log file to be opened simultaneously by another process in read-only mode for .NET Framework. (#1693)
- Metrics removed as it is not part 1.0.0 release. See issue #1501 for details on Metric release plans.
- Fix Resource attribute telemetry.sdk.version to have correct file version.
- Metrics removed as it is not part 1.0.0 release. See issue #1501 for details on Metric release plans.
1.0.0-rc1.1
Released 2020-Nov-17
- Removed
GetResourceandSetResourceActivityextension methods. AddedGetResourceextension method onBaseProvider(#1463) - Added
ParentProviderproperty onBaseProcessorandBaseExporterclasses. (#1463) Resourceis no longer added to observedActivityobjects as aCustomProperty. (#1463)- Removed
ReentrantExportProcessoras it is not required by spec. (#1496) ActivitySourceAdaptersupports settingActivitySourcefor Activities created withoutActivitySource. (#1515)- Implemented
ShutdownforTracerProvider. (#1489) Resources.CreateServiceResourcehas been removed in favor of theResourceBuilderAPI. (#1533)TracerProviderBuilder.SetResourcehas been changed toTracerProviderBuilder.SetResourceBuilder. (#1533)- By default
TracerProviderwill set aResourcecontaining Telemetry SDK details (#1533):telemetry.sdk.name=opentelemetrytelemetry.sdk.language=dotnettelemetry.sdk.version= [SDK version]
Resourceconstructor marked as internal, asResourceBuilderis the recommended API to build resources. (#1566)- Changed BaseExportProcessor to have it override OnExport instead of OnEnd; Added check for ActivityTraceFlags to BaseExportProcessor OnEnd (#1574)
0.8.0-beta.1
Released 2020-Nov-5
- TracerProviderBuilder API changes Renamed AddInstrumentation to AddDiagnosticSourceInstrumentation and made internal. Added AddInstrumentation (#1454)
- DiagnosticSource subscription helper classes (DiagnosticSourceSubscriber, ListenerHandler,PropertyFetcher) are made internal.
0.7.0-beta.1
Released 2020-Oct-16
- Changed
ActivityExporter.OnShutdown,ActivityExporter.Shutdown,ActivityProcessor.OnShutdownandActivityProcessor.Shutdownto return boolean value (#1282 #1285) - Renamed
SamplingDecisionoptions (NotRecordtoDrop,RecordtoRecordOnly, andRecordAndSampledtoRecordAndSample) (#1297) - Added
ILogger/Microsoft.Extensions.Loggingintegration (#1308 #1315) - Changed exporter and processor to generic types
(#1328):
ActivityExporterchanged toBaseExporter<Activity>ActivityProcessorchanged toBaseProcessor<Activity>BatchExportActivityProcessorchanged toBatchExportProcessor<Activity>ReentrantExportActivityProcessorchanged toReentrantExportProcessor<Activity>SimpleExportActivityProcessorchanged toSimpleExportProcessor<Activity>
0.6.0-beta.1
Released 2020-Sep-15
- Fixes 953
- Changes arising from
DiagnosticSourcechanges (#1203) PropertyFetcheris now public (#1232)PropertyFetcherchanged toPropertyFetcher<T>(#1238)
0.5.0-beta.2
Released 2020-08-28
- Changed
ActivityProcessorto implementIDisposable(#975) - Samplers now get the actual TraceId of the Activity to be created. (#1007)
- Changed the default sampler from
AlwaysOntoParentOrElse(AlwaysOn)to match the spec (#1013) - Added
SuppressInstrumentationScopeAPI (#988 #1067) - Changed
BroadcastActivityProcessortoFanOutActivityProcessor(#1015) - Changed
TracerProviderBuilderandTracerProviderSdkdesign to simply the flow and usage (#1008 #1027 #1035) - Changed
AddActivitySourcetoAddSourcewith params support (#1036) - Modified Sampler implementation to match the spec (#1037)
- Refactored simple export and batch export APIs (#1078 #1081 #1083 #1085 #1087 #1094 #1113 #1127 #1129 #1135)
- Changed
MeterProviderBuilderandMeterProviderSdkdesign to simply the flow and usage (#1149) - Renamed
ParentOrElseSamplertoParentBasedSampler(#1173) - Renamed
ProbabilitySamplertoTraceIdRatioBasedSampler(#1174)
0.4.0-beta.2
Released 2020-07-24
- First beta release
0.3.0-beta
Released 2020-07-23
- Initial release