diff --git a/CHANGELOG.md b/CHANGELOG.md index ba599669..aae6d5ef 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.6.0...HEAD) +This release is built on top of [OpenTelemetry .NET Auto Instrumentation v1.8.0](https://github.com/open-telemetry/opentelemetry-dotnet-instrumentation/releases/tag/v1.8.0). + ### Added ### Changed +- Updated [OpenTelemetry .NET Auto Instrumentation](https://github.com/open-telemetry/opentelemetry-dotnet-instrumentation): + [`1.8.0`](https://github.com/open-telemetry/opentelemetry-dotnet-instrumentation/releases/tag/v1.8.0). + ### Deprecated ### Removed diff --git a/README.md b/README.md index de2dad0d..4a9c6d0c 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.9.0-blueviolet)](https://github.com/open-telemetry/opentelemetry-dotnet/releases/tag/core-1.9.0) -[![OpenTelemetry .NET Auto Instrumentation](https://img.shields.io/badge/OTelAuto-v1.7.0-blueviolet)](https://github.com/open-telemetry/opentelemetry-dotnet-instrumentation/releases/tag/v1.7.0) +[![OpenTelemetry .NET Auto Instrumentation](https://img.shields.io/badge/OTelAuto-v1.8.0-blueviolet)](https://github.com/open-telemetry/opentelemetry-dotnet-instrumentation/releases/tag/v1.8.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 c1bd81ad..f5de098c 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.7.0"; + const string OpenTelemetryAutoInstrumentationDefaultVersion = "v1.8.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 77079cf4..6b6b2645 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.7.0/docs/config.md) +See [Open Telemetry Auto Instrumentation documentation](https://github.com/open-telemetry/opentelemetry-dotnet-instrumentation/blob/v1.8.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.7.0/docs/config.md#resources). +1. Set the [resources](https://github.com/open-telemetry/opentelemetry-dotnet-instrumentation/blob/v1.8.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.7.0/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.8.0/docs/config.md#net-clr-profiler). ## Splunk plugin settings diff --git a/script-templates/splunk-otel-dotnet-install.sh.template b/script-templates/splunk-otel-dotnet-install.sh.template index 94e69540..340d6c79 100644 --- a/script-templates/splunk-otel-dotnet-install.sh.template +++ b/script-templates/splunk-otel-dotnet-install.sh.template @@ -47,9 +47,10 @@ case "$ARCHITECTURE" in esac test -z "$OTEL_DOTNET_AUTO_HOME" && OTEL_DOTNET_AUTO_HOME="$HOME/.splunk-otel-dotnet" -test -z "$TMPDIR" && TMPDIR="$(mktemp -d)" test -z "$VERSION" && VERSION="v{{VERSION}}" +DOWNLOAD_DIR="${DOWNLOAD_DIR:=${TMPDIR:=$(mktemp -d)}}" + RELEASES_URL="https://github.com/signalfx/splunk-otel-dotnet/releases" ARCHIVE="splunk-opentelemetry-dotnet-$OS_TYPE.zip" @@ -58,11 +59,16 @@ if echo "$OS_TYPE" | grep -q "linux"; then ARCHIVE="splunk-opentelemetry-dotnet-$OS_TYPE-$ARCHITECTURE.zip" fi -TMPFILE="$TMPDIR/$ARCHIVE" -( - cd "$TMPDIR" - echo "Downloading $VERSION for $OS_TYPE..." - curl -sSfLo "$TMPFILE" "$RELEASES_URL/download/$VERSION/$ARCHIVE" -) +LOCAL_PATH="${LOCAL_PATH:=$DOWNLOAD_DIR/$ARCHIVE}" +if [ ! -f "${LOCAL_PATH}" ]; then + ( + cd "$DOWNLOAD_DIR" + echo "Downloading $VERSION for $OS_TYPE ($LOCAL_PATH)..." + curl -sSfLo "$LOCAL_PATH" "$RELEASES_URL/download/$VERSION/$ARCHIVE" + ) +else + echo "Using local installation archive: $LOCAL_PATH" +fi + rm -rf "$OTEL_DOTNET_AUTO_HOME" -unzip -q "$TMPFILE" -d "$OTEL_DOTNET_AUTO_HOME" +unzip -q "$LOCAL_PATH" -d "$OTEL_DOTNET_AUTO_HOME" diff --git a/src/Splunk.OpenTelemetry.AutoInstrumentation/Splunk.OpenTelemetry.AutoInstrumentation.csproj b/src/Splunk.OpenTelemetry.AutoInstrumentation/Splunk.OpenTelemetry.AutoInstrumentation.csproj index 775e3275..57f64753 100644 --- a/src/Splunk.OpenTelemetry.AutoInstrumentation/Splunk.OpenTelemetry.AutoInstrumentation.csproj +++ b/src/Splunk.OpenTelemetry.AutoInstrumentation/Splunk.OpenTelemetry.AutoInstrumentation.csproj @@ -62,7 +62,7 @@ true - + none diff --git a/src/Splunk.OpenTelemetry.AutoInstrumentation/nuget-readme.md b/src/Splunk.OpenTelemetry.AutoInstrumentation/nuget-readme.md index 6a21d0ee..75407dd0 100644 --- a/src/Splunk.OpenTelemetry.AutoInstrumentation/nuget-readme.md +++ b/src/Splunk.OpenTelemetry.AutoInstrumentation/nuget-readme.md @@ -42,7 +42,7 @@ you to either add the missing instrumentation package or to skip the instrumentation of the corresponding package: ```terminal -~packages/opentelemetry.autoinstrumentation.buildtasks/1.7.0/build/OpenTelemetry.AutoInstrumentation.BuildTasks.targets(29,5): error : OpenTelemetry.AutoInstrumentation: add a reference to the instrumentation package 'MongoDB.Driver.Core.Extensions.DiagnosticSources' version 1.4.0 or add 'MongoDB.Driver.Core' to the property 'SkippedInstrumentations' to suppress this error. +~packages/opentelemetry.autoinstrumentation.buildtasks/1.8.0/build/OpenTelemetry.AutoInstrumentation.BuildTasks.targets(29,5): error : OpenTelemetry.AutoInstrumentation: add a reference to the instrumentation package 'MongoDB.Driver.Core.Extensions.DiagnosticSources' version 1.4.0 or add 'MongoDB.Driver.Core' to the property 'SkippedInstrumentations' to suppress this error. ``` To resolve the error either add the recommended instrumentation package or skip diff --git a/test/Splunk.OpenTelemetry.AutoInstrumentation.IntegrationTests/BuildTests.DistributionStructure_alpine-linux-arm64.verified.txt b/test/Splunk.OpenTelemetry.AutoInstrumentation.IntegrationTests/BuildTests.DistributionStructure_alpine-linux-arm64.verified.txt index 172e3592..fe6111cf 100644 --- a/test/Splunk.OpenTelemetry.AutoInstrumentation.IntegrationTests/BuildTests.DistributionStructure_alpine-linux-arm64.verified.txt +++ b/test/Splunk.OpenTelemetry.AutoInstrumentation.IntegrationTests/BuildTests.DistributionStructure_alpine-linux-arm64.verified.txt @@ -39,6 +39,7 @@ /net/OpenTelemetry.Resources.Azure.dll, /net/OpenTelemetry.Resources.Container.dll, /net/OpenTelemetry.Resources.Host.dll, + /net/OpenTelemetry.Resources.OperatingSystem.dll, /net/OpenTelemetry.Resources.Process.dll, /net/OpenTelemetry.Resources.ProcessRuntime.dll, /net/OpenTelemetry.Shims.OpenTracing.dll, diff --git a/test/Splunk.OpenTelemetry.AutoInstrumentation.IntegrationTests/BuildTests.DistributionStructure_alpine-linux-x64.verified.txt b/test/Splunk.OpenTelemetry.AutoInstrumentation.IntegrationTests/BuildTests.DistributionStructure_alpine-linux-x64.verified.txt index 7a977977..49452f43 100644 --- a/test/Splunk.OpenTelemetry.AutoInstrumentation.IntegrationTests/BuildTests.DistributionStructure_alpine-linux-x64.verified.txt +++ b/test/Splunk.OpenTelemetry.AutoInstrumentation.IntegrationTests/BuildTests.DistributionStructure_alpine-linux-x64.verified.txt @@ -39,6 +39,7 @@ /net/OpenTelemetry.Resources.Azure.dll, /net/OpenTelemetry.Resources.Container.dll, /net/OpenTelemetry.Resources.Host.dll, + /net/OpenTelemetry.Resources.OperatingSystem.dll, /net/OpenTelemetry.Resources.Process.dll, /net/OpenTelemetry.Resources.ProcessRuntime.dll, /net/OpenTelemetry.Shims.OpenTracing.dll, diff --git a/test/Splunk.OpenTelemetry.AutoInstrumentation.IntegrationTests/BuildTests.DistributionStructure_linux-arm64.verified.txt b/test/Splunk.OpenTelemetry.AutoInstrumentation.IntegrationTests/BuildTests.DistributionStructure_linux-arm64.verified.txt index f3ab5f2f..2c4a1a1f 100644 --- a/test/Splunk.OpenTelemetry.AutoInstrumentation.IntegrationTests/BuildTests.DistributionStructure_linux-arm64.verified.txt +++ b/test/Splunk.OpenTelemetry.AutoInstrumentation.IntegrationTests/BuildTests.DistributionStructure_linux-arm64.verified.txt @@ -39,6 +39,7 @@ /net/OpenTelemetry.Resources.Azure.dll, /net/OpenTelemetry.Resources.Container.dll, /net/OpenTelemetry.Resources.Host.dll, + /net/OpenTelemetry.Resources.OperatingSystem.dll, /net/OpenTelemetry.Resources.Process.dll, /net/OpenTelemetry.Resources.ProcessRuntime.dll, /net/OpenTelemetry.Shims.OpenTracing.dll, diff --git a/test/Splunk.OpenTelemetry.AutoInstrumentation.IntegrationTests/BuildTests.DistributionStructure_linux-x64.verified.txt b/test/Splunk.OpenTelemetry.AutoInstrumentation.IntegrationTests/BuildTests.DistributionStructure_linux-x64.verified.txt index f7542d9b..bec81a49 100644 --- a/test/Splunk.OpenTelemetry.AutoInstrumentation.IntegrationTests/BuildTests.DistributionStructure_linux-x64.verified.txt +++ b/test/Splunk.OpenTelemetry.AutoInstrumentation.IntegrationTests/BuildTests.DistributionStructure_linux-x64.verified.txt @@ -39,6 +39,7 @@ /net/OpenTelemetry.Resources.Azure.dll, /net/OpenTelemetry.Resources.Container.dll, /net/OpenTelemetry.Resources.Host.dll, + /net/OpenTelemetry.Resources.OperatingSystem.dll, /net/OpenTelemetry.Resources.Process.dll, /net/OpenTelemetry.Resources.ProcessRuntime.dll, /net/OpenTelemetry.Shims.OpenTracing.dll, diff --git a/test/Splunk.OpenTelemetry.AutoInstrumentation.IntegrationTests/BuildTests.DistributionStructure_osx.verified.txt b/test/Splunk.OpenTelemetry.AutoInstrumentation.IntegrationTests/BuildTests.DistributionStructure_osx.verified.txt index ae106cf1..aed00a95 100644 --- a/test/Splunk.OpenTelemetry.AutoInstrumentation.IntegrationTests/BuildTests.DistributionStructure_osx.verified.txt +++ b/test/Splunk.OpenTelemetry.AutoInstrumentation.IntegrationTests/BuildTests.DistributionStructure_osx.verified.txt @@ -38,6 +38,7 @@ /net/OpenTelemetry.Resources.Azure.dll, /net/OpenTelemetry.Resources.Container.dll, /net/OpenTelemetry.Resources.Host.dll, + /net/OpenTelemetry.Resources.OperatingSystem.dll, /net/OpenTelemetry.Resources.Process.dll, /net/OpenTelemetry.Resources.ProcessRuntime.dll, /net/OpenTelemetry.Shims.OpenTracing.dll, diff --git a/test/Splunk.OpenTelemetry.AutoInstrumentation.IntegrationTests/BuildTests.DistributionStructure_windows.verified.txt b/test/Splunk.OpenTelemetry.AutoInstrumentation.IntegrationTests/BuildTests.DistributionStructure_windows.verified.txt index 354f37b2..76f9e6e6 100644 --- a/test/Splunk.OpenTelemetry.AutoInstrumentation.IntegrationTests/BuildTests.DistributionStructure_windows.verified.txt +++ b/test/Splunk.OpenTelemetry.AutoInstrumentation.IntegrationTests/BuildTests.DistributionStructure_windows.verified.txt @@ -38,6 +38,7 @@ \net\OpenTelemetry.Resources.Azure.dll, \net\OpenTelemetry.Resources.Container.dll, \net\OpenTelemetry.Resources.Host.dll, + \net\OpenTelemetry.Resources.OperatingSystem.dll, \net\OpenTelemetry.Resources.Process.dll, \net\OpenTelemetry.Resources.ProcessRuntime.dll, \net\OpenTelemetry.Shims.OpenTracing.dll, @@ -87,6 +88,7 @@ \netfx\OpenTelemetry.Instrumentation.Wcf.dll, \netfx\OpenTelemetry.Resources.Azure.dll, \netfx\OpenTelemetry.Resources.Host.dll, + \netfx\OpenTelemetry.Resources.OperatingSystem.dll, \netfx\OpenTelemetry.Resources.Process.dll, \netfx\OpenTelemetry.Resources.ProcessRuntime.dll, \netfx\OpenTelemetry.Shims.OpenTracing.dll, diff --git a/tools/MatrixHelper/InstrumentationData.cs b/tools/MatrixHelper/InstrumentationData.cs index e5c3a09c..0b4dd6fc 100644 --- a/tools/MatrixHelper/InstrumentationData.cs +++ b/tools/MatrixHelper/InstrumentationData.cs @@ -93,15 +93,16 @@ public static Instrumentation[] GetInstrumentations() new(new[] { "HTTPCLIENT" }, new[] { new InstrumentedComponent("System.Net.Http.HttpClient", "See general requirements"), new InstrumentedComponent("System.Net.HttpWebRequest", "See general requirements") }, null, "beta", "community", new[] { new Dependency("HttpClient and HttpWebRequest instrumentation for OpenTelemetry", "https://github.com/open-telemetry/opentelemetry-dotnet-contrib/tree/main/src/OpenTelemetry.Instrumentation.Http", "https://www.nuget.org/packages/OpenTelemetry.Instrumentation.Http", "1.9.0", "beta") }, new SignalsList[] { new TracesList(), new MetricList(httpClientMetrics) }, new Setting[] { new("OTEL_DOTNET_AUTO_TRACES_HTTP_INSTRUMENTATION_CAPTURE_REQUEST_HEADERS", "A comma-separated list of HTTP header names. HTTP Client instrumentations will capture HTTP request header values for all configured header names.", string.Empty, "string", SettingsData.InstrumentationCategory), new("OTEL_DOTNET_AUTO_TRACES_HTTP_INSTRUMENTATION_CAPTURE_RESPONSE_HEADERS", "A comma-separated list of HTTP header names. HTTP Client instrumentations will capture HTTP response header values for all configured header names.", string.Empty, "string", SettingsData.InstrumentationCategory), new("OTEL_DOTNET_EXPERIMENTAL_HTTPCLIENT_DISABLE_URL_QUERY_REDACTION", "Whether the HTTP client instrumentation turns off redaction of the `url.full` attribute value.", "false", "boolean", SettingsData.InstrumentationCategory) }), new("KAFKA", new InstrumentedComponent("Confluent.Kafka", "ARM64: 1.8.2 to 3.0.0. Other platforms: 1.4.0 to 3.0.0"), null, "beta", "community", new TracesList()), new("MASSTRANSIT", new InstrumentedComponent("MassTransit", "8.0.0 and higher"), "Not supported on .NET Framework", "beta", "third-party", new TracesList()), - new("MONGODB", new InstrumentedComponent("MongoDB.Driver.Core", "2.13.3 to 3.0.0"), "Not supported on .NET Framework", "beta", "third-party", new TracesList()), + new("MONGODB", new InstrumentedComponent("MongoDB.Driver.Core", "2.28.0 to 3.0.0"), "Not supported on .NET Framework", "beta", "third-party", new TracesList()), new("MYSQLCONNECTOR", new InstrumentedComponent("MySqlConnector", "2.0.0 and higher"), null, "beta", "third-party", new TracesList()), new("MYSQLDATA", new InstrumentedComponent("MySql.Data", "8.1.0 and higher"), "Not supported on .NET Framework", "beta", "third-party", new TracesList()), new("NPGSQL", new InstrumentedComponent("Npgsql", "6.0.0 and higher"), null, "beta", "third-party", new TracesList()), new(new[] { "ORACLEMDA" }, new[] { new InstrumentedComponent("Oracle.ManagedDataAccess.Core", "23.4.0 and higher"), new InstrumentedComponent("Oracle.ManagedDataAccess", "23.4.0 and higher") }, "Not supported on ARM64", "beta", "third-party", Array.Empty(), new SignalsList[] { new TracesList() }, new Setting[] { new("OTEL_DOTNET_AUTO_ORACLEMDA_SET_DBSTATEMENT_FOR_TEXT", "Whether the Oracle Client instrumentation can pass SQL statements through the `db.statement` attribute. Queries might contain sensitive information. If set to `false`, `db.statement` is recorded only for executing stored procedures.", "false", "boolean", SettingsData.InstrumentationCategory) }), new(new[] { "NSERVICEBUS" }, new[] { new InstrumentedComponent("NServiceBus", "8.0.0 to 10.0.0") }, null, "beta", "third-party", Array.Empty(), new SignalsList[] { new TracesList(), new MetricList(new MetricData("nservicebus.messaging.successes", counter, "Number of messages successfully processed by the endpoint."), new MetricData("nservicebus.messaging.fetches", counter, "Number of messages retrieved from the queue by the endpoint."), new MetricData("nservicebus.messaging.failures", counter, "Number of messages unsuccessfully processed by the endpoint.")) }, Array.Empty()), new("QUARTZ", new InstrumentedComponent("Quartz", "3.4.0 and higher"), "Not supported on .NET Framework 4.7.1 and lower", "beta", "community", new Dependency("QuartzNET Instrumentation for OpenTelemetry .NET", "https://github.com/open-telemetry/opentelemetry-dotnet-contrib/tree/main/src/OpenTelemetry.Instrumentation.Quartz", "https://www.nuget.org/packages/OpenTelemetry.Instrumentation.Quartz", "1.0.0-beta.3", "beta"), new SignalsList[] { new TracesList() }), + new("RABBITMQ", new InstrumentedComponent("RabbitMQ.Client", "6.0.0 to 7.0.0"), null, "beta", "community", new TracesList()), new(new[] { "SQLCLIENT" }, new[] { new InstrumentedComponent("Microsoft.Data.SqlClient", "v3.* is not supported on .NET Framework"), new InstrumentedComponent("System.Data.SqlClient", "4.8.5 and higher"), new InstrumentedComponent("System.Data", "Shipped with .NET Framework") }, null, "beta", "community", new Dependency[] { new Dependency("SqlClient instrumentation for OpenTelemetry .NET", "https://github.com/open-telemetry/opentelemetry-dotnet-contrib/tree/main/src/OpenTelemetry.Instrumentation.SqlClient", "https://www.nuget.org/packages/OpenTelemetry.Instrumentation.SqlClient", "1.9.0-beta.1", "beta") }, new SignalsList[] { new TracesList() }, new Setting[] { new("OTEL_DOTNET_AUTO_SQLCLIENT_SET_DBSTATEMENT_FOR_TEXT", "Whether the SQL Client instrumentation can pass SQL statements through the `db.statement` attribute. Queries might contain sensitive information. If set to `false`, `db.statement` is recorded only for executing stored procedures. Not supported on .NET Framework for System.Data.SqlClient.", "false", "boolean", SettingsData.InstrumentationCategory) }), - new("STACKEXCHANGEREDIS", new InstrumentedComponent("StackExchange.Redis", "2.0.405 to 3.0.0"), "Not supported on .NET Framework", "beta", "community", new Dependency("StackExchange.Redis Instrumentation for OpenTelemetry", "https://github.com/open-telemetry/opentelemetry-dotnet-contrib/tree/main/src/OpenTelemetry.Instrumentation.StackExchangeRedis", "https://www.nuget.org/packages/OpenTelemetry.Instrumentation.StackExchangeRedis", "1.0.0-rc9.15", "beta"), new SignalsList[] { new TracesList() }), + new("STACKEXCHANGEREDIS", new InstrumentedComponent("StackExchange.Redis", "2.6.122 to 3.0.0"), "Not supported on .NET Framework", "beta", "community", new Dependency("StackExchange.Redis Instrumentation for OpenTelemetry", "https://github.com/open-telemetry/opentelemetry-dotnet-contrib/tree/main/src/OpenTelemetry.Instrumentation.StackExchangeRedis", "https://www.nuget.org/packages/OpenTelemetry.Instrumentation.StackExchangeRedis", "1.0.0-rc9.15", "beta"), new SignalsList[] { new TracesList() }), new(new[] { "WCFCLIENT", "WCFSERVICE" }, new[] { new InstrumentedComponent("System.ServiceModel", "4.7.0 and higher of `System.ServiceModel.Primitives`") }, "Service side not supported on .NET. `WCFCLIENT` for client side instrumentation and `WCFSERVICE` for service side instrumentation", "beta", "community", new[] { new Dependency("WCF Instrumentation for OpenTelemetry .NET", "https://github.com/open-telemetry/opentelemetry-dotnet-contrib/tree/main/src/OpenTelemetry.Instrumentation.Wcf", "https://www.nuget.org/packages/OpenTelemetry.Instrumentation.Wcf", "1.0.0-rc.17", "beta") }, new SignalsList[] { new TracesList() }, Array.Empty()), new("NETRUNTIME", new InstrumentedComponent(".NET runtime", null), null, "beta", "community", new Dependency("Runtime Instrumentation for OpenTelemetry .NET", "https://github.com/open-telemetry/opentelemetry-dotnet-contrib/tree/main/src/OpenTelemetry.Instrumentation.Runtime", "https://www.nuget.org/packages/OpenTelemetry.Instrumentation.Runtime", "1.9.0", "stable"), new SignalsList[] { new MetricList(netRuntimeMetrics) }), diff --git a/tools/MatrixHelper/MetadataData.cs b/tools/MatrixHelper/MetadataData.cs index 1c11e50e..9eb51d9c 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.9.0", "stable"), - new("OpenTelemetry .NET Automatic Instrumentation", "https://github.com/open-telemetry/opentelemetry-dotnet-instrumentation", null, "1.7.0", "stable"), + new("OpenTelemetry .NET Automatic Instrumentation", "https://github.com/open-telemetry/opentelemetry-dotnet-instrumentation", null, "1.8.0", "stable"), }, settings: SettingsData.GetSettings(), instrumentations: InstrumentationData.GetInstrumentations(), diff --git a/tools/MatrixHelper/ResourceDetectorsData.cs b/tools/MatrixHelper/ResourceDetectorsData.cs index 348edf4d..cbd2a0ee 100644 --- a/tools/MatrixHelper/ResourceDetectorsData.cs +++ b/tools/MatrixHelper/ResourceDetectorsData.cs @@ -22,10 +22,11 @@ public static ResourceDetector[] GetResourceDetectors() { return new ResourceDetector[] { - new("AZUREAPPSERVICE", "Azure App Service detector.", new Attribute[] { new("azure.app.service.stamp"), new("cloud.platform"), new("cloud.provider"), new("cloud.resource_id"), new("cloud.region"), new("deployment.environment"), new("host.id"), new("service.instance.id"), new("service.name") }, "beta", "community", new Dependency("Resource Detectors for Azure cloud environments", "https://github.com/open-telemetry/opentelemetry-dotnet-contrib/tree/main/src/OpenTelemetry.Resources.Azure", "https://www.nuget.org/packages/OpenTelemetry.Resources.Azure", "1.0.0-beta.8", "beta")), + new("AZUREAPPSERVICE", "Azure App Service detector.", new Attribute[] { new("azure.app.service.stamp"), new("cloud.platform"), new("cloud.provider"), new("cloud.resource_id"), new("cloud.region"), new("deployment.environment"), new("host.id"), new("service.instance.id"), new("service.name"), new("service.version") }, "beta", "community", new Dependency("Resource Detectors for Azure cloud environments", "https://github.com/open-telemetry/opentelemetry-dotnet-contrib/tree/main/src/OpenTelemetry.Resources.Azure", "https://www.nuget.org/packages/OpenTelemetry.Resources.Azure", "1.0.0-beta.9", "beta")), new("CONTAINER", "Container detector. For example, Docker or Podman containers. Not supported on .NET Framework.", new Attribute[] { new("container.id") }, "beta", "community", new Dependency("Container Resource Detectors", "https://github.com/open-telemetry/opentelemetry-dotnet-contrib/tree/main/src/OpenTelemetry.Resources.Container", "https://www.nuget.org/packages/OpenTelemetry.Resources.Container", "1.0.0-beta.9", "beta")), - new("HOST", "Host detector.", new Attribute[] { new("host.name") }, "alpha", "community", new Dependency("Host Resource Detectors", "https://github.com/open-telemetry/opentelemetry-dotnet-contrib/tree/main/src/OpenTelemetry.Resources.Host", "https://www.nuget.org/packages/OpenTelemetry.Resources.Host", "0.1.0-beta.2", "beta")), - new("PROCESS", "Process detector.", new Attribute[] { new("process.owner"), new("process.pid") }, "alpha", "community", new Dependency("Process Resource Detectors", "https://github.com/open-telemetry/opentelemetry-dotnet-contrib/tree/main/src/OpenTelemetry.Resources.Process", "https://www.nuget.org/packages/OpenTelemetry.Resources.Process", "0.1.0-beta.2", "beta")), + new("HOST", "Host detector.", new Attribute[] { new("host.id"), new("host.name") }, "alpha", "community", new Dependency("Host Resource Detectors", "https://github.com/open-telemetry/opentelemetry-dotnet-contrib/tree/main/src/OpenTelemetry.Resources.Host", "https://www.nuget.org/packages/OpenTelemetry.Resources.Host", "0.1.0-beta.3", "beta")), + new("OPERATINGSYSTEM", "Operating System detector.", new Attribute[] { new("os.type"), new("os.build_id"), new("os.description"), new("os.name"), new("os.version") }, "beta", "community", new Dependency("Operating System Detectors", "https://github.com/open-telemetry/opentelemetry-dotnet-contrib/blob/main/src/OpenTelemetry.Resources.OperatingSystem", "https://www.nuget.org/packages/OpenTelemetry.Resources.OperatingSystem", "0.1.0-alpha.4", "alpha")), + new("PROCESS", "Process detector.", new Attribute[] { new("process.owner"), new("process.pid") }, "alpha", "community", new Dependency("Process Resource Detectors", "https://github.com/open-telemetry/opentelemetry-dotnet-contrib/tree/main/src/OpenTelemetry.Resources.Process", "https://www.nuget.org/packages/OpenTelemetry.Resources.Process", "0.1.0-beta.3", "beta")), new("PROCESSRUNTIME", "Process Runtime detector.", new Attribute[] { new("process.runtime.description"), new("process.runtime.name"), new("process.runtime.version") }, "alpha", "community", new Dependency("Process Runtime Resource Detectors", "https://github.com/open-telemetry/opentelemetry-dotnet-contrib/tree/main/src/OpenTelemetry.Resources.ProcessRuntime", "https://www.nuget.org/packages/OpenTelemetry.Resources.ProcessRuntime", "0.1.0-beta.2", "beta")), }; } diff --git a/tools/MatrixHelper/SettingsData.cs b/tools/MatrixHelper/SettingsData.cs index 73c38ca2..5f24db26 100644 --- a/tools/MatrixHelper/SettingsData.cs +++ b/tools/MatrixHelper/SettingsData.cs @@ -44,7 +44,13 @@ public static Setting[] GetSettings() new("OTEL_DOTNET_AUTO_FAIL_FAST_ENABLED", "Activate to let the process fail when automatic instrumentation can't be executed. This setting is for debugging purposes, don't use it in production environments. The default value is `false`. Can't be set using the web.config or app.config files.", "false", "boolean", GeneralCategory), // exporter - new("OTEL_EXPORTER_OTLP_ENDPOINT", "The URL to where traces and metrics are sent. The default value is `http://localhost:4318`. Setting a value overrides the `SPLUNK_REALM` environment variable.", string.Empty, "string", ExporterCategory), + new("OTEL_LOGS_EXPORTER", "Comma-separated list of exporters. Supported options: `otlp`, `console`, `none`.", "otlp", "string", ExporterCategory), + new("OTEL_METRICS_EXPORTER", "Comma-separated list of exporters. Supported options: `otlp`, `console`, `none`.", "otlp", "string", ExporterCategory), + new("OTEL_TRACES_EXPORTER", "Comma-separated list of exporters. Supported options: `otlp`, `console`, `none`.", "otlp", "string", ExporterCategory), + new("OTEL_EXPORTER_OTLP_ENDPOINT", "The URL to where traces, metrics, and logs are sent. The default value is `http://localhost:4318`. Setting a value overrides the `SPLUNK_REALM` environment variable.", string.Empty, "string", ExporterCategory), + new("OTEL_EXPORTER_OTLP_LOGS_ENDPOINT", "Equivalent to `OTEL_EXPORTER_OTLP_ENDPOINT`, but applies only to logs.", string.Empty, "string", ExporterCategory), + new("OTEL_EXPORTER_OTLP_METRICS_ENDPOINT", "Equivalent to `OTEL_EXPORTER_OTLP_ENDPOINT`, but applies only to metrics.", string.Empty, "string", ExporterCategory), + new("OTEL_EXPORTER_OTLP_TRACES_ENDPOINT", "Equivalent to `OTEL_EXPORTER_OTLP_ENDPOINT`, but applies only to traces.", string.Empty, "string", ExporterCategory), new("SPLUNK_REALM", "The name of your organization's realm, for example, `us0`. When you set the realm, telemetry is sent directly to the ingest endpoint of Splunk Observability Cloud, bypassing the Splunk Distribution of OpenTelemetry Collector.", string.Empty, "string", ExporterCategory), new("SPLUNK_ACCESS_TOKEN", "A Splunk authentication token that lets exporters send data directly to Splunk Observability Cloud. Unset by default. Required if you need to send data to the Splunk Observability Cloud ingest endpoint.", string.Empty, "string", ExporterCategory), new("OTEL_EXPORTER_OTLP_METRICS_TEMPORALITY_PREFERENCE", "The aggregation temporality to use on the basis of instrument kind. The supported options are `Cumulative` for all instrument kinds and `Delta` for Counter, Asynchronous Counter, and Histogram instrument kinds. If you use `Delta` for UpDownCounter and Asynchronous UpDownCounter instrument kinds, the `Cumulative` aggregation temporality will be used. `LowMemory`, from the OpenTelemetry specification, is not supported.", "Cumulative", "string", ExporterCategory), @@ -85,12 +91,13 @@ public static Setting[] GetSettings() new("OTEL_DOTNET_AUTO_LOGS_{INSTRUMENTATION}_INSTRUMENTATION_ENABLED", "Activates or deactivates a specific log instrumentation, where `{INSTRUMENTATION}` is the case-sensitive name of the instrumentation. Overrides `OTEL_DOTNET_AUTO_LOGS_INSTRUMENTATION_ENABLED`. Inherits the value of the `OTEL_DOTNET_AUTO_LOGS_INSTRUMENTATION_ENABLED` environment variable. Can’t be set using the web.config or app.config files. See Supported libraries for a complete list of supported instrumentations and their names.\n\n", string.Empty, "boolean", InstrumentationCategory), // diagnostic logging - new("OTEL_LOG_LEVEL", "Sets the logging level for instrumentation log messages. Possible values are `none`, `error`, `warn`, `info`, and `debug`. The default value is `info`. Can't be set using the web.config or app.config files.", "info", "string", DiagnosticCategory), + new("OTEL_DOTNET_AUTO_LOGGER", "AutoInstrumentation diagnostic logs sink. (supported values: `none`,`file`,`console`.", "file", "string", DiagnosticCategory), + new("OTEL_LOG_LEVEL", "Sets the logging level for instrumentation log messages. Possible values are `none`, `error`, `warn`, `info`, and `debug`. Can't be set using the web.config or app.config files.", "info", "string", DiagnosticCategory), new("OTEL_DOTNET_AUTO_LOG_DIRECTORY", "Directory of the .NET tracer logs. The default value is `/var/log/opentelemetry/dotnet` for Linux, and `%ProgramData%\\OpenTelemetry .NET AutoInstrumentation\\logs` for Windows. Can't be set using the web.config or app.config files.", string.Empty, "string", DiagnosticCategory), - new("OTEL_DOTNET_AUTO_TRACES_CONSOLE_EXPORTER_ENABLED", "Whether the traces console exporter is activated. The default value is `false`.", "false", "boolean", DiagnosticCategory), - new("OTEL_DOTNET_AUTO_METRICS_CONSOLE_EXPORTER_ENABLED", "Whether the metrics console exporter is activated. The default value is `false`.", "false", "boolean", DiagnosticCategory), - new("OTEL_DOTNET_AUTO_LOGS_CONSOLE_EXPORTER_ENABLED", "Whether the logs console exporter is activated. The default value is `false`.The default value is `false`.", "false", "boolean", DiagnosticCategory), - new("OTEL_DOTNET_AUTO_LOGS_INCLUDE_FORMATTED_MESSAGE", "Whether the log state have to be formatted. The default value is `false`.", "false", "boolean", DiagnosticCategory) + new("OTEL_DOTNET_AUTO_TRACES_CONSOLE_EXPORTER_ENABLED", "Deprecated. Whether the traces console exporter is activated. It can be configured by `OTEL_TRACES_EXPORTER`.", "false", "boolean", DiagnosticCategory), + new("OTEL_DOTNET_AUTO_METRICS_CONSOLE_EXPORTER_ENABLED", "Deprecated. Whether the metrics console exporter is activated. It can be configured by `OTEL_METRICS_EXPORTER`.", "false", "boolean", DiagnosticCategory), + new("OTEL_DOTNET_AUTO_LOGS_CONSOLE_EXPORTER_ENABLED", "Deprecated. Whether the logs console exporter is activated. It can be configured by `OTEL_LOGS_EXPORTER`.", "false", "boolean", DiagnosticCategory), + new("OTEL_DOTNET_AUTO_LOGS_INCLUDE_FORMATTED_MESSAGE", "Whether the log state have to be formatted.", "false", "boolean", DiagnosticCategory) }; return settings;