From 93537fca9520e197f433c733490d3404c4c1974e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Piotr=20Kie=C5=82kowicz?= Date: Mon, 23 Oct 2023 13:46:08 +0200 Subject: [PATCH 1/2] Bump OTel .NET Auto from 1.0.2 to 1.1.0 --- CHANGELOG.md | 5 +++++ README.md | 2 +- build/Build.cs | 2 +- docs/advanced-config.md | 6 +++--- .../Splunk.OpenTelemetry.AutoInstrumentation.csproj | 4 ++-- .../Helpers/ResourceExpectorExtensions.cs | 3 ++- tools/MatrixHelper/InstrumentationData.cs | 5 +++-- tools/MatrixHelper/MetadataData.cs | 2 +- 8 files changed, 18 insertions(+), 11 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 230b083d..920dcb6f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,10 +7,15 @@ This component adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.h ## [Unreleased](https://github.com/signalfx/splunk-otel-dotnet/compare/v1.0.2...HEAD) +This release is built on top of [OpenTelemetry .NET Auto Instrumentation v1.1.0](https://github.com/open-telemetry/opentelemetry-dotnet-instrumentation/releases/tag/v1.1.0). + ### Added ### Changed +- Updated [OpenTelemetry .NET Auto Instrumentation](https://github.com/open-telemetry/opentelemetry-dotnet-instrumentation): + [`1.1.0`](https://github.com/open-telemetry/opentelemetry-dotnet-instrumentation/releases/tag/v1.1.0). + ### Deprecated ### Removed diff --git a/README.md b/README.md index 61bacc7a..6ab9c4f7 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,7 @@ # Splunk Distribution of OpenTelemetry .NET [![OpenTelemetry .NET](https://img.shields.io/badge/OTel-1.6.0-blueviolet)](https://github.com/open-telemetry/opentelemetry-dotnet/releases/tag/core-1.6.0) -[![OpenTelemetry .NET Auto Instrumentation](https://img.shields.io/badge/OTelAuto-v1.0.2-blueviolet)](https://github.com/open-telemetry/opentelemetry-dotnet-instrumentation/releases/tag/v1.0.2) +[![OpenTelemetry .NET Auto Instrumentation](https://img.shields.io/badge/OTelAuto-v1.1.0-blueviolet)](https://github.com/open-telemetry/opentelemetry-dotnet-instrumentation/releases/tag/v1.1.0) [![Splunk GDI Specification](https://img.shields.io/badge/GDI-1.6.0-blueviolet)](https://github.com/signalfx/gdi-specification/releases/tag/v1.6.0) [![Keep a Changelog](https://img.shields.io/badge/changelog-Keep%20a%20Changelog-%23E05735)](CHANGELOG.md) [![LICENSE](https://img.shields.io/github/license/signalfx/splunk-otel-dotnet)](LICENSE) diff --git a/build/Build.cs b/build/Build.cs index ec43d1d8..bb18dab9 100644 --- a/build/Build.cs +++ b/build/Build.cs @@ -16,7 +16,7 @@ partial class Build : NukeBuild [Parameter("Configuration to build - Default is 'Release'")] readonly Configuration Configuration = Configuration.Release; - const string OpenTelemetryAutoInstrumentationDefaultVersion = "v1.0.2"; + const string OpenTelemetryAutoInstrumentationDefaultVersion = "v1.1.0"; [Parameter($"OpenTelemetry AutoInstrumentation dependency version - Default is '{OpenTelemetryAutoInstrumentationDefaultVersion}'")] readonly string OpenTelemetryAutoInstrumentationVersion = OpenTelemetryAutoInstrumentationDefaultVersion; diff --git a/docs/advanced-config.md b/docs/advanced-config.md index b9e566ec..a0251e6d 100644 --- a/docs/advanced-config.md +++ b/docs/advanced-config.md @@ -7,7 +7,7 @@ ## OpenTelemetry configuration -See [Open Telemetry Auto Instrumentation documentation](https://github.com/open-telemetry/opentelemetry-dotnet-instrumentation/blob/v1.0.2/docs/config.md) +See [Open Telemetry Auto Instrumentation documentation](https://github.com/open-telemetry/opentelemetry-dotnet-instrumentation/blob/v1.1.0/docs/config.md) for configuration details. ## Splunk distribution configuration @@ -23,7 +23,7 @@ Download and install the latest binaries from When running your application, make sure to: -1. Set the [resources](https://github.com/open-telemetry/opentelemetry-dotnet-instrumentation/blob/v1.0.2/docs/config.md#resources). +1. Set the [resources](https://github.com/open-telemetry/opentelemetry-dotnet-instrumentation/blob/v1.1.0/docs/config.md#resources). 1. Set the environment variables from the table below. | Environment variable | .NET version | Value | @@ -45,7 +45,7 @@ When running your application, make sure to: | `OTEL_DOTNET_AUTO_HOME` | All versions | `$INSTALL_DIR` | | `OTEL_DOTNET_AUTO_PLUGINS` | All versions | `Splunk.OpenTelemetry.AutoInstrumentation.Plugin, Splunk.OpenTelemetry.AutoInstrumentation` | -> Some settings can be omitted on .NET. For more information, see the [documentation](https://github.com/open-telemetry/opentelemetry-dotnet-instrumentation/blob/v1.0.2/docs/config.md#net-clr-profiler). +> Some settings can be omitted on .NET. For more information, see the [documentation](https://github.com/open-telemetry/opentelemetry-dotnet-instrumentation/blob/v1.1.0/docs/config.md#net-clr-profiler). ## Splunk plugin settings diff --git a/src/Splunk.OpenTelemetry.AutoInstrumentation/Splunk.OpenTelemetry.AutoInstrumentation.csproj b/src/Splunk.OpenTelemetry.AutoInstrumentation/Splunk.OpenTelemetry.AutoInstrumentation.csproj index 29aa928b..baad8add 100644 --- a/src/Splunk.OpenTelemetry.AutoInstrumentation/Splunk.OpenTelemetry.AutoInstrumentation.csproj +++ b/src/Splunk.OpenTelemetry.AutoInstrumentation/Splunk.OpenTelemetry.AutoInstrumentation.csproj @@ -20,7 +20,7 @@ - + @@ -55,7 +55,7 @@ true - + none diff --git a/test/Splunk.OpenTelemetry.AutoInstrumentation.IntegrationTests/Helpers/ResourceExpectorExtensions.cs b/test/Splunk.OpenTelemetry.AutoInstrumentation.IntegrationTests/Helpers/ResourceExpectorExtensions.cs index c3f89330..8b746a3f 100644 --- a/test/Splunk.OpenTelemetry.AutoInstrumentation.IntegrationTests/Helpers/ResourceExpectorExtensions.cs +++ b/test/Splunk.OpenTelemetry.AutoInstrumentation.IntegrationTests/Helpers/ResourceExpectorExtensions.cs @@ -29,7 +29,8 @@ public static void ExpectDistributionResources(this OtlpResourceExpector resourc resourceExpector.Expect("telemetry.sdk.name", "opentelemetry"); resourceExpector.Expect("telemetry.sdk.language", "dotnet"); resourceExpector.Expect("telemetry.sdk.version", ExpectedSdkVersion); - resourceExpector.Expect("telemetry.auto.version", "1.0.2"); + resourceExpector.Expect("telemetry.distro.name", "opentelemetry-dotnet-instrumentation"); + resourceExpector.Expect("telemetry.distro.version", "1.1.0"); resourceExpector.Expect("splunk.distro.version", ExpectedDistributionVersion); } } diff --git a/tools/MatrixHelper/InstrumentationData.cs b/tools/MatrixHelper/InstrumentationData.cs index 343cc8b1..8e979b36 100644 --- a/tools/MatrixHelper/InstrumentationData.cs +++ b/tools/MatrixHelper/InstrumentationData.cs @@ -47,10 +47,11 @@ public static Instrumentation[] GetInstrumentations() var instrumentations = new Instrumentation[] { - new(new[] { "ASPNET" }, new[] { new InstrumentedComponent("ASP.NET Framework (.NET Framework)", "See general requirements") }, "MVC / WebApi (Only integrated pipeline mode supported). Metrics requires trace instrumentation.", "beta", "community", new[] { new Dependency("ASP.NET Instrumentation for OpenTelemetry", "https://github.com/open-telemetry/opentelemetry-dotnet-contrib/tree/main/src/OpenTelemetry.Instrumentation.AspNet", "https://www.nuget.org/packages/OpenTelemetry.Instrumentation.AspNet", "1.0.0-rc9.9", "beta"), new Dependency("ASP.NET Telemetry HttpModule for OpenTelemetry", "https://github.com/open-telemetry/opentelemetry-dotnet-contrib/tree/main/src/OpenTelemetry.Instrumentation.AspNet.TelemetryHttpModule", "https://www.nuget.org/packages/OpenTelemetry.Instrumentation.AspNet.TelemetryHttpModule", "1.0.0-rc9.9", "beta") }, new SignalsList[] { new TracesList(), new MetricList(new MetricData("http.server.duration", histogram, "Duration of the inbound HTTP request, in the form of count, sum, and histogram buckets. This metric originates multiple metric time series, which might result in increased data ingestion costs.")) }, Array.Empty()), + new(new[] { "ASPNET" }, new[] { new InstrumentedComponent("ASP.NET Framework (.NET Framework)", "See general requirements") }, "MVC / WebApi (Only integrated pipeline mode supported). Metrics requires trace instrumentation.", "beta", "community", new[] { new Dependency("ASP.NET Instrumentation for OpenTelemetry", "https://github.com/open-telemetry/opentelemetry-dotnet-contrib/tree/main/src/OpenTelemetry.Instrumentation.AspNet", "https://www.nuget.org/packages/OpenTelemetry.Instrumentation.AspNet", "1.6.0-beta.1", "beta"), new Dependency("ASP.NET Telemetry HttpModule for OpenTelemetry", "https://github.com/open-telemetry/opentelemetry-dotnet-contrib/tree/main/src/OpenTelemetry.Instrumentation.AspNet.TelemetryHttpModule", "https://www.nuget.org/packages/OpenTelemetry.Instrumentation.AspNet.TelemetryHttpModule", "1.0.0-rc9.9", "beta") }, new SignalsList[] { new TracesList(), new MetricList(new MetricData("http.server.duration", histogram, "Duration of the inbound HTTP request, in the form of count, sum, and histogram buckets. This metric originates multiple metric time series, which might result in increased data ingestion costs.")) }, Array.Empty()), new("ASPNETCORE", new InstrumentedComponent("ASP.NET Core", "See general requirements"), "Metrics automatically activates `Microsoft.AspNetCore.Hosting.HttpRequestIn` spans.", "beta", "community", new Dependency("ASP.NET Core Instrumentation for OpenTelemetry .NET", "https://github.com/open-telemetry/opentelemetry-dotnet/tree/main/src/OpenTelemetry.Instrumentation.AspNetCore", "https://www.nuget.org/packages/OpenTelemetry.Instrumentation.AspNetCore", "1.5.1-beta.1", "beta"), new SignalsList[] { new TracesList(), new MetricList(new MetricData("http.server.duration", histogram, "Duration of the inbound HTTP request, in the form of count, sum, and histogram buckets. This metric originates multiple metric time series, which might result in increased data ingestion costs.")) }), new("AZURE", new InstrumentedComponent("Azure SDK", "`Azure.` prefixed packages, released after October 1, 2021"), null, "beta", "third-party", new TracesList()), - new("ELASTICSEARCH", new InstrumentedComponent("Elastic.Clients.Elasticsearch", "8.0.0 and higher"), null, "beta", "third-party", new TracesList()), + new("ELASTICSEARCH", new InstrumentedComponent("Elastic.Clients.Elasticsearch", "8.0.0 to 8.9.3"), "Versions 8.10.0 and higher are supported by `Elastic.Transport` instrumentation.", "beta", "third-party", new TracesList()), + new("ELASTICTRANSPORT", new InstrumentedComponent("Elastic.Transport", "0.4.16 and higher"), null, "beta", "third-party", new TracesList()), new("ENTITYFRAMEWORKCORE", new InstrumentedComponent("Microsoft.EntityFrameworkCore", "6.0.12 and higher"), "Not supported on .NET Framework", "beta", "community", new Dependency("EntityFrameworkCore Instrumentation for OpenTelemetry .NET", "https://github.com/open-telemetry/opentelemetry-dotnet-contrib/tree/main/src/OpenTelemetry.Instrumentation.EntityFrameworkCore", "https://www.nuget.org/packages/OpenTelemetry.Instrumentation.EntityFrameworkCore", "1.0.0-beta.7", "beta"), new SignalsList[] { new TracesList() }), new(new[] { "GRAPHQL" }, new[] { new InstrumentedComponent("GraphQL", "7.5.0 and higher") }, "Not supported on .NET Framework", "beta", "third-party", Array.Empty(), new SignalsList[] { new TracesList() }, new Setting[] { new("OTEL_DOTNET_AUTO_GRAPHQL_SET_DOCUMENT", "Whether the GraphQL instrumentation can pass raw queries as a `graphql.document` attribute. As queries might contain sensitive information, the default value is `false`.", "false", "boolean", SettingsData.InstrumentationCategory) }), new("GRPCNETCLIENT", new InstrumentedComponent("Grpc.Net.Client", "2.52.0 to 3.0.0"), null, "beta", "community", new Dependency("Grpc.Net.Client Instrumentation for OpenTelemetry", "https://github.com/open-telemetry/opentelemetry-dotnet/tree/main/src/OpenTelemetry.Instrumentation.GrpcNetClient", "https://www.nuget.org/packages/OpenTelemetry.Instrumentation.GrpcNetClient", "1.5.1-beta.1", "beta"), new SignalsList[] { new TracesList() }), diff --git a/tools/MatrixHelper/MetadataData.cs b/tools/MatrixHelper/MetadataData.cs index 0b1f666b..98d0f9f8 100644 --- a/tools/MatrixHelper/MetadataData.cs +++ b/tools/MatrixHelper/MetadataData.cs @@ -28,7 +28,7 @@ public static AllInOne GetAllInOne() dependencies: new Dependency[] { new("OpenTelemetry .NET", "https://github.com/open-telemetry/opentelemetry-dotnet", null, "1.6.0", "stable"), - new("OpenTelemetry .NET Automatic Instrumentation", "https://github.com/open-telemetry/opentelemetry-dotnet-instrumentation", null, "1.0.2", "stable"), + new("OpenTelemetry .NET Automatic Instrumentation", "https://github.com/open-telemetry/opentelemetry-dotnet-instrumentation", null, "1.1.0", "stable"), }, settings: SettingsData.GetSettings(), instrumentations: InstrumentationData.GetInstrumentations(), From 38a72b09aa70e50048ff781c51fb84a924b0a1aa Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Piotr=20Kie=C5=82kowicz?= Date: Tue, 24 Oct 2023 11:07:53 +0200 Subject: [PATCH 2/2] Update tools/MatrixHelper/InstrumentationData.cs MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Mateusz Łach --- tools/MatrixHelper/InstrumentationData.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tools/MatrixHelper/InstrumentationData.cs b/tools/MatrixHelper/InstrumentationData.cs index 8e979b36..8e8e37c5 100644 --- a/tools/MatrixHelper/InstrumentationData.cs +++ b/tools/MatrixHelper/InstrumentationData.cs @@ -47,7 +47,7 @@ public static Instrumentation[] GetInstrumentations() var instrumentations = new Instrumentation[] { - new(new[] { "ASPNET" }, new[] { new InstrumentedComponent("ASP.NET Framework (.NET Framework)", "See general requirements") }, "MVC / WebApi (Only integrated pipeline mode supported). Metrics requires trace instrumentation.", "beta", "community", new[] { new Dependency("ASP.NET Instrumentation for OpenTelemetry", "https://github.com/open-telemetry/opentelemetry-dotnet-contrib/tree/main/src/OpenTelemetry.Instrumentation.AspNet", "https://www.nuget.org/packages/OpenTelemetry.Instrumentation.AspNet", "1.6.0-beta.1", "beta"), new Dependency("ASP.NET Telemetry HttpModule for OpenTelemetry", "https://github.com/open-telemetry/opentelemetry-dotnet-contrib/tree/main/src/OpenTelemetry.Instrumentation.AspNet.TelemetryHttpModule", "https://www.nuget.org/packages/OpenTelemetry.Instrumentation.AspNet.TelemetryHttpModule", "1.0.0-rc9.9", "beta") }, new SignalsList[] { new TracesList(), new MetricList(new MetricData("http.server.duration", histogram, "Duration of the inbound HTTP request, in the form of count, sum, and histogram buckets. This metric originates multiple metric time series, which might result in increased data ingestion costs.")) }, Array.Empty()), + new(new[] { "ASPNET" }, new[] { new InstrumentedComponent("ASP.NET Framework (.NET Framework)", "See general requirements") }, "MVC / WebApi (Only integrated pipeline mode supported). Metrics requires trace instrumentation.", "beta", "community", new[] { new Dependency("ASP.NET Instrumentation for OpenTelemetry", "https://github.com/open-telemetry/opentelemetry-dotnet-contrib/tree/main/src/OpenTelemetry.Instrumentation.AspNet", "https://www.nuget.org/packages/OpenTelemetry.Instrumentation.AspNet", "1.6.0-beta.1", "beta"), new Dependency("ASP.NET Telemetry HttpModule for OpenTelemetry", "https://github.com/open-telemetry/opentelemetry-dotnet-contrib/tree/main/src/OpenTelemetry.Instrumentation.AspNet.TelemetryHttpModule", "https://www.nuget.org/packages/OpenTelemetry.Instrumentation.AspNet.TelemetryHttpModule", "1.6.0-beta.1", "beta") }, new SignalsList[] { new TracesList(), new MetricList(new MetricData("http.server.duration", histogram, "Duration of the inbound HTTP request, in the form of count, sum, and histogram buckets. This metric originates multiple metric time series, which might result in increased data ingestion costs.")) }, Array.Empty()), new("ASPNETCORE", new InstrumentedComponent("ASP.NET Core", "See general requirements"), "Metrics automatically activates `Microsoft.AspNetCore.Hosting.HttpRequestIn` spans.", "beta", "community", new Dependency("ASP.NET Core Instrumentation for OpenTelemetry .NET", "https://github.com/open-telemetry/opentelemetry-dotnet/tree/main/src/OpenTelemetry.Instrumentation.AspNetCore", "https://www.nuget.org/packages/OpenTelemetry.Instrumentation.AspNetCore", "1.5.1-beta.1", "beta"), new SignalsList[] { new TracesList(), new MetricList(new MetricData("http.server.duration", histogram, "Duration of the inbound HTTP request, in the form of count, sum, and histogram buckets. This metric originates multiple metric time series, which might result in increased data ingestion costs.")) }), new("AZURE", new InstrumentedComponent("Azure SDK", "`Azure.` prefixed packages, released after October 1, 2021"), null, "beta", "third-party", new TracesList()), new("ELASTICSEARCH", new InstrumentedComponent("Elastic.Clients.Elasticsearch", "8.0.0 to 8.9.3"), "Versions 8.10.0 and higher are supported by `Elastic.Transport` instrumentation.", "beta", "third-party", new TracesList()),