Skip to content

Releases: open-telemetry/opentelemetry-dotnet

1.4.0 / 1.0.0-rc9.14

24 Feb 22:19
6f78784
Compare
Choose a tag to compare

1.4.0

This is the stable release encompassing work from 1.4.0-alpha.1 to 1.4.0-rc.4

OpenTelemetry

OpenTelemetry.Api

OpenTelemetry.Api.ProviderBuilderExtensions

OpenTelemetry.Exporter.Console

OpenTelemetry.Exporter.InMemory

OpenTelemetry.Exporter.Jaeger

OpenTelemetry.Exporter.OpenTelemetryProtocol

  • AddOtlpExporter extension methods will now always create a new options instance when named options are NOT used. (#4200)

OpenTelemetry.Exporter.Zipkin

OpenTelemetry.Extensions.Hosting

  • Removed deprecated extensions: AddOpenTelemetryTracing, AddOpenTelemetryMetrics, Configure, & GetServices. (#4071)

OpenTelemetry.Extensions.Propagators

1.0.0-rc9.14

OpenTelemetry.Exporter.ZPages

OpenTelemetry.Instrumentation.AspNetCore

OpenTelemetry.Instrumentation.GrpcNetClient

OpenTelemetry.Instrumentation.Http

OpenTelemetry.Instrumentation.SqlClient

OpenTelemetry.Shims.OpenTracing

1.4.0-rc.4 / 1.0.0-rc9.13

11 Feb 01:52
939b4c4
Compare
Choose a tag to compare
Pre-release

OpenTelemetry

  • Removed the dependency on System.Reflection.Emit.Lightweight (#4140)

  • Moved the AddOpenTelemetry extension into the OpenTelemetry.Extensions.Hosting package so that the StartWithHost API
    could be removed. (#4174)

OpenTelemetry.Api

OpenTelemetry.Api.ProviderBuilderExtensions

OpenTelemetry.Exporter.Console

OpenTelemetry.Exporter.InMemory

OpenTelemetry.Exporter.Jaeger

OpenTelemetry.Exporter.OpenTelemetryProtocol

  • Added a direct dependency on System.Reflection.Emit.Lightweight which previously came transitively through the OpenTelemetry SDK. (#4140)

OpenTelemetry.Exporter.OpenTelemetryProtocol.Logs

OpenTelemetry.Exporter.Prometheus.AspNetCore

OpenTelemetry.Exporter.Prometheus.HttpListener

OpenTelemetry.Exporter.Zipkin

OpenTelemetry.Exporter.ZPages

OpenTelemetry.Extensions.Hosting

  • Added AddOpenTelemetry extension from SDK and removed StartWithHost. AddOpenTelemetry now registers the IHostedService used to start collecting traces and/or metrics. (#4174)

OpenTelemetry.Extensions.Propagators

OpenTelemetry.Instrumentation.AspNetCore

OpenTelemetry.Instrumentation.GrpcNetClient

OpenTelemetry.Instrumentation.Http

OpenTelemetry.Instrumentation.SqlClient

OpenTelemetry.Shims.OpenTracing

1.4.0-rc.3 / 1.0.0-rc9.12

02 Feb 02:53
31cf729
Compare
Choose a tag to compare
Pre-release

OpenTelemetry

  • 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, & AddReader factory extensions. (#4103)

OpenTelemetry.Api

OpenTelemetry.Api.ProviderBuilderExtensions

  • Removed ConfigureBuilder from the public API. (#4103)

  • Renamed package from OpenTelemetry.Extensions.DependencyInjection to OpenTelemetry.Api.ProviderBuilderExtensions. (#4125)

OpenTelemetry.Exporter.Console

OpenTelemetry.Exporter.InMemory

OpenTelemetry.Exporter.Jaeger

OpenTelemetry.Exporter.OpenTelemetryProtocol

OpenTelemetry.Exporter.OpenTelemetryProtocol.Logs

OpenTelemetry.Exporter.Prometheus.AspNetCore

OpenTelemetry.Exporter.Prometheus.HttpListener

OpenTelemetry.Exporter.Zipkin

  • Changed EnvironmentVariable parsing to not throw a FormatException and instead log a warning. (#4095)

OpenTelemetry.Exporter.ZPages

OpenTelemetry.Extensions.Hosting

OpenTelemetry.Extensions.Propagators

OpenTelemetry.Instrumentation.AspNetCore

OpenTelemetry.Instrumentation.GrpcNetClient

OpenTelemetry.Instrumentation.Http

OpenTelemetry.Instrumentation.SqlClient

OpenTelemetry.Shims.OpenTracing

1.4.0-rc.2/1.0.0-rc9.11

09 Jan 22:39
69f215a
Compare
Choose a tag to compare
Pre-release

1.4.0-rc.2

OpenTelemetry

  • Performance Improvement: Update the internal structure used to store metric dimensions from a combination of string[] and object[] to a KeyValuePair<string, object>[]. This results in faster copying of the metric dimensions required for MetricPoint lookup on the hot path (#4059)

OpenTelemetry.Api

OpenTelemetry.Exporter.Console

OpenTelemetry.Exporter.InMemory

OpenTelemetry.Exporter.Jaeger

OpenTelemetry.Exporter.OpenTelemetryProtocol

  • For AddOtlpExporter extension methods, configuration delegates will be executed inline and not through Options API when named options are NOT used. (#4058)

OpenTelemetry.Exporter.OpenTelemetryProtocol.Logs

OpenTelemetry.Exporter.Prometheus.AspNetCore

OpenTelemetry.Exporter.Prometheus.HttpListener

OpenTelemetry.Exporter.Zipkin

OpenTelemetry.Extensions.DependencyInjection

OpenTelemetry.Extensions.Hosting

  • If the OpenTelemetry SDK cannot start it will now throw exceptions and prevent the host from starting. (#4006)

1.0.0-rc9.11

OpenTelemetry.Extensions.Propagators

OpenTelemetry.Exporter.ZPages

OpenTelemetry.Instrumentation.AspNetCore

OpenTelemetry.Instrumentation.GrpcNetClient

OpenTelemetry.Instrumentation.Http

OpenTelemetry.Instrumentation.SqlClient

OpenTelemetry.Shims.OpenTracing

core-1.3.2

20 Dec 23:28
78aa8ad
Compare
Choose a tag to compare
  • Support for metrics was originally released in version 1.3.0. A synchronization issue with regards to the histogram aggregation was discovered and fixed in #3534. This fix has been back-ported to OpenTelemetry .NET 1.3.2. If you are currently running OpenTelemetry .NET version 1.3.x, it is recommended that you upgrade to 1.3.2. (#4031)

1.4.0-rc.1 / 1.0.0-rc9.10

12 Dec 23:00
ebabb63
Compare
Choose a tag to compare
Pre-release

1.4.0-rc.1

OpenTelemetry

  • Added dependency injection support in the ResourceBuilder class and added
    support for loading environment variables from IConfiguration for the
    AddEnvironmentVariableDetector extension (Logs)
    (#3889)

  • Refactored AddInstrumentation, ConfigureServices and ConfigureBuilder
    APIs into the OpenTelemetry.Extensions.DependencyInjection package and added
    the IServiceCollection.AddOpenTelemetry API
    (#3923)

  • Removed ConfigureResource on OpenTelemetryLoggingOptions
    (#3999)

OpenTelemetry.Api

  • Updated to System.Diagnostics.DiagnosticSource version 7.0.0.

OpenTelemetry.Exporter.Console

  • Bug fix to prevent ConsoleExporter from failing when exporting an
    ActivityLink without Tags.
    (#3932)

OpenTelemetry.Exporter.InMemory

OpenTelemetry.Exporter.Jaeger

OpenTelemetry.Exporter.OpenTelemetryProtocol

  • Fix default values for OTEL_ATTRIBUTE_COUNT_LIMIT,
    OTEL_ATTRIBUTE_COUNT_LIMIT,
    OTEL_SPAN_ATTRIBUTE_COUNT_LIMIT,
    OTEL_SPAN_EVENT_COUNT_LIMIT,
    OTEL_SPAN_LINK_COUNT_LIMIT,
    OTEL_EVENT_ATTRIBUTE_COUNT_LIMIT,
    OTEL_LINK_ATTRIBUTE_COUNT_LIMIT. All of them are defaulted to 128.
    (#3978)

OpenTelemetry.Exporter.OpenTelemetryProtocol.Logs

OpenTelemetry.Exporter.Prometheus.AspNetCore

OpenTelemetry.Exporter.Prometheus.HttpListener

OpenTelemetry.Exporter.Zipkin

OpenTelemetry.Extensions.DependencyInjection

Initial release.

OpenTelemetry.Extensions.Hosting

  • Added the OpenTelemetryBuilder.StartWithHost extension.
    (#3923)

OpenTelemetry.Extensions.Propagators

1.0.0-rc9.10

OpenTelemetry.Exporter.ZPages

OpenTelemetry.Instrumentation.AspNetCore

  • Users migrating from version 1.0.0-rc9.9 will see the following breaking
    changes:

    • Updated http.status_code dimension type from string to int for
      http.server.duration metric.
      (#3930)

    • http.host will no longer be populated on http.server.duration metric.
      net.host.name and net.host.port attributes will be populated instead.
      (#3928)

    • The http.server.duration metric's http.target attribute is replaced with
      http.route attribute.
      (#3903)

    • http.host will no longer be populated on activity. net.host.name and
      net.host.port attributes will be populated instead.
      (#3858)

  • Extension method AddAspNetCoreInstrumentation on MeterProviderBuilder now
    supports AspNetCoreMetricsInstrumentationOptions. This option class exposes
    configuration properties for metric filtering and tag enrichment.
    (#3948,
    #3982)

OpenTelemetry.Instrumentation.GrpcNetClient

OpenTelemetry.Instrumentation.Http

  • Added net.peer.name and net.peer.port as dimensions on
    http.client.duration metric.
    (#3907)

  • Breaking change http.host will no longer be populated on activity.
    net.peer.name and net.peer.port attributes will be populated instead.
    (#3832)

OpenTelemetry.Instrumentation.SqlClient

  • Breaking change: The same API is now exposed for net462 and
    netstandard2.0 targets. SetDbStatement has been removed. Use
    SetDbStatementForText to capture command text and stored procedure names on
    .NET Framework. Note: Enrich, Filter, RecordException, and
    SetDbStatementForStoredProcedure options are NOT supported on .NET
    Framework.
    (#3900)

  • Added overloads which accept a name to the TracerProviderBuilder
    AddSqlClientInstrumentation extension to allow for more fine-grained options
    management
    (#3994)

OpenTelemetry.Shims.OpenTracing

1.4.0-beta.3 / 1.0.0-rc9.9

07 Nov 20:12
273c205
Compare
Choose a tag to compare
Pre-release

1.4.0-beta.3

OpenTelemetry

  • Fix instrument naming enforcement implementation to match the spec.
    (#3821)

  • Added support for loading environment variables from IConfiguration when
    using the MetricReaderOptions & BatchExportActivityProcessorOptions
    classes.
    (#3760,
    #3776)

  • Added dependency injection support in the ResourceBuilder class and added
    support for loading environment variables from IConfiguration for the
    AddEnvironmentVariableDetector extension
    (#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 using GetHistogramMin(), GetHistogramMax() is replaced
    with a single API TryGetHistogramMinMaxValues(out double min, out double max).
    (#3822)

OpenTelemetry.Api

  • Updated to System.Diagnostics.DiagnosticSource version 7.0.0-rc.2.22472.3.

OpenTelemetry.Exporter.Console

  • Bumped the minimum required version of System.Text.Json to 4.7.2 in response
    to CVE-2021-26701.
    (#3789)

LogRecordExporter to print full exception details instead of just Message, when
using ILogger to log exception.
(#3784)

Added support to print Histogram Min, Max in MetricExporter.

OpenTelemetry.Exporter.InMemory

OpenTelemetry.Exporter.Jaeger

  • Bumped the minimum required version of System.Text.Json to 4.7.2 in response
    to CVE-2021-26701.
    (#3789)

OpenTelemetry.Exporter.OpenTelemetryProtocol

  • Log Exporter modified to no longer prefix scope-depth when exporting ILogger
    scopes as attributes. Empty keys and {OriginalFormat} key will be ignored from
    scopes.
    (3843)

OpenTelemetry.Exporter.OpenTelemetryProtocol.Logs

OpenTelemetry.Exporter.Prometheus.AspNetCore

  • Support named options in UseOpenTelemetryPrometheusScrapingEndpoint &
    MapPrometheusScrapingEndpoint extensions
    (#3780)

OpenTelemetry.Exporter.Prometheus.HttpListener

OpenTelemetry.Exporter.Zipkin

  • Bumped the minimum required version of System.Text.Json to 4.7.2 in response
    to CVE-2021-26701.
    (#3789)

OpenTelemetry.Extensions.Propagators

1.0.0-rc9.9

OpenTelemetry.Exporter.ZPages

OpenTelemetry.Extensions.Hosting

OpenTelemetry.Instrumentation.AspNetCore

  • Breaking change The Enrich callback option has been removed.
    For better usability, it has been replaced by three separate options:
    EnrichWithHttpRequest, EnrichWithHttpResponse and EnrichWithException.
    Previously, the single Enrich callback required the consumer to detect
    which event triggered the callback to be invoked (e.g., request start,
    response end, or an exception) and then cast the object received to the
    appropriate type: HttpRequest, HttpResponse, or Exception. The separate
    callbacks make it clear what event triggers them and there is no longer the
    need to cast the argument to the expected type.
    (#3749)

  • Added back netstandard2.0 and netstandard2.1 targets.
    (#3755)

OpenTelemetry.Instrumentation.GrpcNetClient

Breaking change The Enrich callback option has been removed. For better
usability, it has been replaced by two separate options:
EnrichWithHttpRequestMessageand EnrichWithHttpResponseMessage. Previously,
the single Enrich callback required the consumer to detect which event
triggered the callback to be invoked (e.g., request start or response end) and
then cast the object received to the appropriate type: HttpRequestMessage
and HttpResponseMessage. The separate callbacks make it clear what event
triggers them and there is no longer the need to cast the argument to the
expected type.
(#3804)

OpenTelemetry.Instrumentation.Http

  • Added back netstandard2.0 target.
    (#3787)

  • Breaking change: The Enrich callback option has been removed. For better
    usability, it has been replaced by three separate options: In case of
    HttpClient the new options are EnrichWithHttpRequestMessage,
    EnrichWithHttpResponseMessage and EnrichWithException and in case of
    HttpWebRequest the new options are EnrichWithHttpWebRequest,
    EnrichWithHttpWebResponse and EnrichWithException. Previously, the single
    Enrich callback required the consumer to detect which event triggered the
    callback to be invoked (e.g., request start, response end, or an exception)
    and then cast the object received to the appropriate type:
    HttpRequestMessage, HttpResponsemessage, or Exception in case of
    HttpClient and HttpWebRequest,HttpWebResponse and Exception in case of
    HttpWebRequest. The separate callbacks make it clear what event triggers
    them and there is no longer the need to cast the argument to the expected
    type.
    (#3792)

  • Fixed an issue which prevented custom propagators from being called on .NET 7+
    runtimes for non-sampled outgoing HttpClient spans.
    (#3828)

  • Breaking change: The same API is now exposed for net462 and
    netstandard2.0 targets. The Filter property on options is now exposed as
    FilterHttpRequestMessage (called for .NET & .NET Core) and
    FilterHttpWebRequest (called for .NET Framework).
    (#3793)

OpenTelemetry.Instrumentation.SqlClient

OpenTelemetry.Shims.OpenTracing

1.4.0-beta.2 / 1.0.0-rc9.8

17 Oct 19:07
727aab0
Compare
Choose a tag to compare
Pre-release

1.4.0-beta.2

OpenTelemetry

  • Make recording of Min and Max for 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.ForEachScope may return scopes from a
    previous log if accessed in a custom processor before
    BatchLogRecordExportProcessor.OnEnd is fired.
    (#3731)

  • Added support for loading environment variables from IConfiguration when
    using TracerProviderBuilder or MeterProviderBuilder
    (#3720)

OpenTelemetry.Api

OpenTelemetry.Exporter.Console

OpenTelemetry.Exporter.InMemory

OpenTelemetry.Exporter.Jaeger

  • Added support for loading environment variables from IConfiguration when
    using the AddJaegerExporter extension
    (#3720)

OpenTelemetry.Exporter.OpenTelemetryProtocol

  • OTLP histogram data points will now include Min and Max values when
    they are present.
    (#2735)

  • Adds support for limiting the length and count of attributes exported from
    the OTLP log exporter. These
    Attribute Limits
    are configured via the environment variables defined in the specification.
    (#3684)

OpenTelemetry.Exporter.OpenTelemetryProtocol.Logs

OpenTelemetry.Exporter.Prometheus.AspNetCore

  • Changed configuration class name from PrometheusExporterOptions
    to PrometheusAspNetCoreOptions
    (#3717)

OpenTelemetry.Exporter.Prometheus.HttpListener

OpenTelemetry.Exporter.Zipkin

  • Added support for loading environment variables from IConfiguration when
    using the AddZipkinExporter extension
    (#3759)

OpenTelemetry.Extensions.Propagators

1.0.0-rc9.8

OpenTelemetry.Exporter.ZPages

OpenTelemetry.Extensions.Hosting

OpenTelemetry.Instrumentation.AspNetCore

OpenTelemetry.Instrumentation.GrpcNetClient

OpenTelemetry.Instrumentation.Http

  • In case of .NET Core, additional spans created during retries will now be
    exported.
    ([#3729])

OpenTelemetry.Instrumentation.SqlClient

  • Use Activity.Status and Activity.StatusDescription properties instead of
    OpenTelemetry.Trace.Status and OpenTelemetry.Trace.Status.Description
    respectively to set activity status.
    (#3118)
    (#3751)

OpenTelemetry.Shims.OpenTracing

1.4.0-beta.1 / 1.0.0-rc9.7

30 Sep 19:51
897abe3
Compare
Choose a tag to compare
Pre-release

1.4.0-beta.1

OpenTelemetry

  • 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 UpDownCounter and ObservableUpDownCounter instruments.
    (#3606)

  • Added support for dependency injection scenarios when configuring
    MeterProvider
    (#3646)

  • Revert new logging APIs pending OTel specification changes
    (#3702)

OpenTelemetry.Api

  • Updated to System.Diagnostics.DiagnosticSource version 7.0.0-rc.1.22426.10.
    (#3698)

OpenTelemetry.Exporter.Console

  • Changed the behavior of ConsoleExporter, the exporter will stop outputting
    the data if it is disposed.
    (#3578)

  • Added overloads which accept a name to the MeterProviderBuilder
    AddConsoleExporter extension to allow for more fine-grained options
    management
    (#3648)

  • Added overloads which accept a name to the TracerProviderBuilder
    AddConsoleExporter extension to allow for more fine-grained options
    management
    (#3657)

OpenTelemetry.Exporter.InMemory

  • Changed error handling, InMemoryExporter will now throw
    ObjectDisposedException if Export is invoked after the exporter is
    disposed.
    (#3607)

  • Added overloads which accept a name to the MeterProviderBuilder
    AddInMemoryExporter extension to allow for more fine-grained options
    management
    (#3648)

OpenTelemetry.Exporter.Jaeger

  • Added overloads which accept a name to the TracerProviderBuilder
    AddJaegerExporter extension to allow for more fine-grained options
    management
    (#3656)

OpenTelemetry.Exporter.OpenTelemetryProtocol

  • Added overloads which accept a name to the MeterProviderBuilder
    AddOtlpExporter extension to allow for more fine-grained options management
    (#3648)

  • Added overloads which accept a name to the TracerProviderBuilder
    AddOtlpExporter extension to allow for more fine-grained options management
    (#3653)

OpenTelemetry.Exporter.OpenTelemetryProtocol.Logs

  • OtlpExporterOptions can now be bound to IConfiguation and
    HttpClientFactory may be used to manage the HttpClient instance used when
    HttpProtobuf is configured
    (#3640)

OpenTelemetry.Exporter.Prometheus.AspNetCore

  • Bug fix for Prometheus Exporter reporting StatusCode 204
    instead of 200, when no metrics are collected
    (#3643)
  • Added overloads which accept a name to the MeterProviderBuilder
    AddPrometheusExporter extension to allow for more fine-grained options
    management
    (#3648)
  • Added support for OpenMetrics UNIT metadata
    (#3651)
  • Added "# EOF\n" ending following the OpenMetrics
    specification

    (#3654)

OpenTelemetry.Exporter.Prometheus.HttpListener

  • Bug fix for Prometheus Exporter reporting StatusCode 204
    instead of 200, when no metrics are collected
    (#3643)
  • Added overloads which accept a name to the MeterProviderBuilder
    AddPrometheusHttpListener extension to allow for more fine-grained options
    management
    (#3648)
  • Added support for OpenMetrics UNIT metadata
    (#3651)
  • Added "# EOF\n" ending following the OpenMetrics
    specification

    (#3654)

OpenTelemetry.Exporter.Zipkin

  • Added overloads which accept a name to the TracerProviderBuilder
    AddZipkinExporter extension to allow for more fine-grained options
    management
    (#3655)

OpenTelemetry.Extensions.Propagators

1.0.0-rc9.7

OpenTelemetry.Exporter.ZPages

OpenTelemetry.Extensions.Hosting

  • Dependency injection support when configuring
    TracerProvider has been moved into the SDK.
    (#3533)

  • Dependency injection support when configuring
    MeterProvider has been moved into the SDK.
    (#3646)

OpenTelemetry.Instrumentation.AspNetCore

  • Performance improvement (Reduced memory allocation) - Updated DiagnosticSource
    event subscription to specific set of events.
    (#3519)

  • Added overloads which accept a name to the TracerProviderBuilder
    AddAspNetCoreInstrumentation extension to allow for more fine-grained
    options management
    (#3661)

  • Fix issue where when an application has an ExceptionFilter, the exception data
    wouldn't be collected.
    (#3475)

OpenTelemetry.Instrumentation.GrpcNetClient

  • Added overloads which accept a name to the TracerProviderBuilder
    AddGrpcClientInstrumentation extension to allow for more fine-grained
    options management
    (#3665)

OpenTelemetry.Instrumentation.Http

  • Dropped netstandard2.0 target and added net6.0. .NET 5 reached EOL
    in May 2022 and .NET Core 3.1 reaches EOL in December 2022. End of support
    dates for .NET are published
    here.
    The instrumentation for HttpClient now requires .NET 6 or later.
    This does not affect applications targeting .NET Framework.
    (#3664)

  • Added overloads which accept a name to the TracerProviderBuilder
    AddHttpClientInstrumentation extension to allow for more fine-grained
    options management
    (#3664,
    #3667)

OpenTelemetry.Instrumentation.SqlClient

OpenTelemetry.Shims.OpenTracing

core-1.3.1

09 Sep 22:59
c9052ef
Compare
Choose a tag to compare

OpenTelemetry.Api

  • Added support for the .NET7 version of the System.Diagnostics.DiagnosticSource package (#3605). For more details, refer to the issue (#3629).

OpenTelemetry.Exporter.Jaeger

  • Fixed an issue that can crash applications when using 1.3.0 of the exporter with System.Diagnostics.DiagnosticSource 7.0+ (#3629).

OpenTelemetry.Exporter.OpenTelemetryProtocol

  • Fixed an issue that can crash applications when using 1.3.0 of the exporter with System.Diagnostics.DiagnosticSource 7.0+ (#3629).

OpenTelemetry.Exporter.Zipkin

  • Fixed an issue that can crash applications when using 1.3.0 of the exporter with System.Diagnostics.DiagnosticSource 7.0+ (#3629).