diff --git a/defaults.env b/defaults.env index 204ac1fce..9fdb11118 100644 --- a/defaults.env +++ b/defaults.env @@ -2,5 +2,5 @@ export CORECLR_ENABLE_PROFILING=1 export CORECLR_PROFILER='{918728DD-259F-4A6A-AC2B-B85E1B658318}' export CORECLR_PROFILER_PATH=/opt/opentelemetry-dotnet-autoinstrumentation/OpenTelemetry.ClrProfiler.Native.so export DOTNET_STARTUP_HOOKS=/opt/opentelemetry-dotnet-autoinstrumentation/OpenTelemetry.Instrumentation.StartupHook.dll -export OTEL_INTEGRATIONS=/opt/opentelemetry-dotnet-autoinstrumentation/integrations.json -export OTEL_DOTNET_TRACER_HOME=/opt/opentelemetry-dotnet-autoinstrumentation \ No newline at end of file +export OTEL_DOTNET_AUTO_INTEGRATIONS_FILE=/opt/opentelemetry-dotnet-autoinstrumentation/integrations.json +export OTEL_DOTNET_AUTO_HOME=/opt/opentelemetry-dotnet-autoinstrumentation \ No newline at end of file diff --git a/dev/envvars.sh b/dev/envvars.sh index 7eac896b9..97cfaf7d0 100644 --- a/dev/envvars.sh +++ b/dev/envvars.sh @@ -56,9 +56,8 @@ fi export DOTNET_STARTUP_HOOKS="${CURDIR}/bin/tracer-home/netcoreapp3.1/OpenTelemetry.Instrumentation.StartupHook.dll" # Configure OpenTelemetry Tracer -export OTEL_DOTNET_TRACER_HOME="${CURDIR}/bin/tracer-home" -export OTEL_INTEGRATIONS="${CURDIR}/bin/tracer-home/integrations.json" -export OTEL_TRACE_DEBUG="1" -export OTEL_DUMP_ILREWRITE_ENABLED="0" -export OTEL_CLR_ENABLE_INLINING="1" -export OTEL_PROFILER_EXCLUDE_PROCESSES="dotnet.exe,dotnet" +export OTEL_DOTNET_AUTO_HOME="${CURDIR}/bin/tracer-home" +export OTEL_DOTNET_AUTO_INTEGRATIONS_FILE="${CURDIR}/bin/tracer-home/integrations.json" +export OTEL_DOTNET_AUTO_DEBUG="1" +export OTEL_DOTNET_AUTO_DUMP_ILREWRITE_ENABLED="0" +export OTEL_DOTNET_AUTO_EXCLUDE_PROCESSES="dotnet.exe,dotnet" diff --git a/devenv.bat b/devenv.bat index 966f1c00a..8ca06d27f 100644 --- a/devenv.bat +++ b/devenv.bat @@ -48,11 +48,11 @@ SET CORECLR_PROFILER={918728DD-259F-4A6A-AC2B-B85E1B658318} SET CORECLR_PROFILER_PATH=%~dp0\src\OpenTelemetry.ClrProfiler.Native\bin\%profiler_configuration%\%profiler_platform%\OpenTelemetry.ClrProfiler.Native.dll rem Don't attach the profiler to these processes -SET OTEL_PROFILER_EXCLUDE_PROCESSES=devenv.exe;Microsoft.ServiceHub.Controller.exe;ServiceHub.Host.CLR.exe;ServiceHub.TestWindowStoreHost.exe;ServiceHub.DataWarehouseHost.exe;sqlservr.exe;VBCSCompiler.exe;iisexpresstray.exe;msvsmon.exe;PerfWatson2.exe;ServiceHub.IdentityHost.exe;ServiceHub.VSDetouredHost.exe;ServiceHub.SettingsHost.exe;ServiceHub.Host.CLR.x86.exe;vstest.console.exe;ServiceHub.RoslynCodeAnalysisService32.exe;testhost.x86.exe;MSBuild.exe;ServiceHub.ThreadedWaitDialog.exe +SET OTEL_DOTNET_AUTO_EXCLUDE_PROCESSES=devenv.exe;Microsoft.ServiceHub.Controller.exe;ServiceHub.Host.CLR.exe;ServiceHub.TestWindowStoreHost.exe;ServiceHub.DataWarehouseHost.exe;sqlservr.exe;VBCSCompiler.exe;iisexpresstray.exe;msvsmon.exe;PerfWatson2.exe;ServiceHub.IdentityHost.exe;ServiceHub.VSDetouredHost.exe;ServiceHub.SettingsHost.exe;ServiceHub.Host.CLR.x86.exe;vstest.console.exe;ServiceHub.RoslynCodeAnalysisService32.exe;testhost.x86.exe;MSBuild.exe;ServiceHub.ThreadedWaitDialog.exe rem Set dotnet tracer home path -SET OTEL_DOTNET_TRACER_HOME=%~dp0 -SET OTEL_INTEGRATIONS=%OTEL_DOTNET_TRACER_HOME%\integrations.json +SET OTEL_DOTNET_AUTO_HOME=%~dp0 +SET OTEL_DOTNET_AUTO_INTEGRATIONS_FILE=%OTEL_DOTNET_AUTO_HOME%\integrations.json if "%start_visual_studio%" == "true" ( echo Starting Visual Studio... diff --git a/docs/DESIGN.md b/docs/DESIGN.md index b7ca610c4..8e8d6a291 100644 --- a/docs/DESIGN.md +++ b/docs/DESIGN.md @@ -59,7 +59,7 @@ injected into the application. contains the code setting up the OpenTelemtry .NET SDK and configured instrumentations. Plus, support code to run and implement bytecode instrumentations. Optionally, the code setting-up the OpenTelemetry .NET SDK can be left to the application by setting the -environment variable `OTEL_DOTNET_TRACER_LOAD_AT_STARTUP` to `false`. +environment variable `OTEL_DOTNET_AUTO_LOAD_AT_STARTUP` to `false`. - **Source Instrumentations**: instrumentations created on top of API hooks/callbacks provided directly by the library/framework being instrumented. This type of instrumentation depends on the diff --git a/docs/USAGE.md b/docs/USAGE.md index 939011b66..cf36045ef 100644 --- a/docs/USAGE.md +++ b/docs/USAGE.md @@ -8,10 +8,11 @@ | Environment variable | Description | Default | |-|-|-| -| `OTEL_TRACE_ENABLED` | Enable to activate the tracer. | `true` | -| `OTEL_PROFILER_PROCESSES` | Sets the filename of executables the profiler can attach to. If not defined (default), the profiler will attach to any process. Supports multiple values separated with comma, for example: `MyApp.exe,dotnet.exe` | | -| `OTEL_PROFILER_EXCLUDE_PROCESSES` | Sets the filename of executables the profiler cannot attach to. If not defined (default), the profiler will attach to any process. Supports multiple values separated with comma, for example: `MyApp.exe,dotnet.exe` | | -| `OTEL_AZURE_APP_SERVICES` | Set to indicate that the profiler is running in the context of Azure App Services. | `false` | +| `OTEL_DOTNET_AUTO_HOME` | Installation location. | `true` | +| `OTEL_DOTNET_AUTO_ENABLED` | Enable to activate the tracer. | `true` | +| `OTEL_DOTNET_AUTO_INCLUDE_PROCESSES` | Sets the filename of executables the profiler can attach to. If not defined (default), the profiler will attach to any process. Supports multiple values separated with comma, for example: `MyApp.exe,dotnet.exe` | | +| `OTEL_DOTNET_AUTO_EXCLUDE_PROCESSES` | Sets the filename of executables the profiler cannot attach to. If not defined (default), the profiler will attach to any process. Supports multiple values separated with comma, for example: `MyApp.exe,dotnet.exe` | | +| `OTEL_DOTNET_AUTO_AZURE_APP_SERVICES` | Set to indicate that the profiler is running in the context of Azure App Services. | `false` | ### Resource @@ -28,14 +29,14 @@ for more details. | Environment variable | Description | Default | |-|-|-| -| `OTEL_INTEGRATIONS` | The file path of bytecode instrumentations JSON configuration file. Usually it should be set to `%ProfilerDirectory%/integrations.json` | | -| `OTEL_DOTNET_TRACER_INSTRUMENTATIONS` | The instrumentations you want to enable, separated by a comma. Supported values: `AspNet`, `HttpClient`, `SqlClient`, `MongoDb`. | | -| `OTEL_DOTNET_TRACER_DISABLED_INSTRUMENTATIONS` | The instrumentations set via `OTEL_DOTNET_TRACER_INSTRUMENTATIONS` value and `OTEL_INTEGRATIONS` configuration file you want to disable, separated by a comma. | | -| `OTEL_TRACE_{0}_ENABLED` | Configuration pattern for enabling or disabling a specific bytecode. For example, in order to disable MongoDb instrumentation, set `OTEL_TRACE_MongoDb_ENABLED=false` | `true` | -| `OTEL_TRACE_DOMAIN_NEUTRAL_INSTRUMENTATION` | Sets whether to intercept method calls when the caller method is inside a domain-neutral assembly. This is recommended when instrumenting IIS applications. | `false` | -| `OTEL_CLR_DISABLE_OPTIMIZATIONS` | Set to `true` to disable all JIT optimizations. | `false` | -| `OTEL_CLR_ENABLE_INLINING` | Set to `false` to disable JIT inlining. | `true` | -| `OTEL_CLR_ENABLE_NGEN` | Set to `false` to disable NGEN images. | `true` | +| `OTEL_DOTNET_AUTO_INTEGRATIONS_FILE` | The file path of bytecode instrumentations JSON configuration file. Usually it should be set to `%ProfilerDirectory%/integrations.json` | | +| `OTEL_DOTNET_AUTO_ENABLED_INSTRUMENTATIONS` | The instrumentations you want to enable, separated by a comma. Supported values: `AspNet`, `HttpClient`, `SqlClient`, `MongoDb`. | | +| `OTEL_DOTNET_AUTO_DISABLED_INSTRUMENTATIONS` | The instrumentations set via `OTEL_DOTNET_AUTO_ENABLED_INSTRUMENTATIONS` value and `OTEL_DOTNET_AUTO_INTEGRATIONS_FILE` configuration file you want to disable, separated by a comma. | | +| `OTEL_DOTNET_AUTO_{0}_ENABLED` | Configuration pattern for enabling or disabling a specific bytecode. For example, in order to disable MongoDb instrumentation, set `OTEL_TRACE_MongoDb_ENABLED=false` | `true` | +| `OTEL_DOTNET_AUTO_DOMAIN_NEUTRAL_INSTRUMENTATION` | Sets whether to intercept method calls when the caller method is inside a domain-neutral assembly. This is recommended when instrumenting IIS applications. | `false` | +| `OTEL_DOTNET_AUTO_CLR_DISABLE_OPTIMIZATIONS` | Set to `true` to disable all JIT optimizations. | `false` | +| `OTEL_DOTNET_AUTO_CLR_ENABLE_INLINING` | Set to `false` to disable JIT inlining. | `true` | +| `OTEL_DOTNET_AUTO_CLR_ENABLE_NGEN` | Set to `false` to disable NGEN images. | `true` | ### ASP.NET (.NET Framework) Instrumentation @@ -53,11 +54,11 @@ Default logs directory paths are: | Environment variable | Description | Default | |-|-|-| -| `OTEL_TRACE_LOG_DIRECTORY` | The directory of the .NET Tracer logs. Overrides the value in `OTEL_TRACE_LOG_PATH` if present. | _see above_ | -| `OTEL_TRACE_LOG_PATH` | The path of the profiler log file. | _see above_ | -| `OTEL_TRACE_DEBUG` | Enable to activate debugging mode for the tracer. | `false` | -| `OTEL_DOTNET_TRACER_CONSOLE_EXPORTER_ENABLED` | Defines whether the console exporter is enabled or not. | `true` | -| `OTEL_DUMP_ILREWRITE_ENABLED` | Allows the profiler to dump the IL original code and modification to the log. | `false` | +| `OTEL_DOTNET_AUTO_LOG_DIRECTORY` | The directory of the .NET Tracer logs. Overrides the value in `OTEL_DOTNET_AUTO_LOG_PATH` if present. | _see above_ | +| `OTEL_DOTNET_AUTO_LOG_PATH` | The path of the profiler log file. | _see above_ | +| `OTEL_DOTNET_AUTO_DEBUG` | Enable to activate debugging mode for the tracer. | `false` | +| `OTEL_DOTNET_AUTO_CONSOLE_EXPORTER_ENABLED` | Defines whether the console exporter is enabled or not. | `true` | +| `OTEL_DOTNET_AUTO_DUMP_ILREWRITE_ENABLED` | Allows the profiler to dump the IL original code and modification to the log. | `false` | ### Exporters @@ -96,22 +97,22 @@ The Batch Span Processor batches of finished spans before they are send by the e | Environment variable | Description | Default | |-|-|-| -| `OTEL_DOTNET_TRACER_LOAD_AT_STARTUP` | Defines whether the tracer is created by the auto instrumentation library or not. | `true` | -| `OTEL_DOTNET_TRACER_ADDITIONAL_SOURCES` | Comma separated list of additional `ActivitySource` names to be added to the tracer at the startup. | | -| `OTEL_DOTNET_TRACER_LEGACY_SOURCES` | Comma separated list of additional legacy source names to be added to the tracer at the startup. | | -| `OTEL_DOTNET_TRACER_INSTRUMENTATION_PLUGINS` | Colon (:) separated list of OTel SDK instrumentation plugins represented by `System.Type.AssemblyQualifiedName`. | | +| `OTEL_DOTNET_AUTO_LOAD_AT_STARTUP` | Defines whether the tracer is created by the auto instrumentation library or not. | `true` | +| `OTEL_DOTNET_AUTO_ADDITIONAL_SOURCES` | Comma separated list of additional `ActivitySource` names to be added to the tracer at the startup. | | +| `OTEL_DOTNET_AUTO_LEGACY_SOURCES` | Comma separated list of additional legacy source names to be added to the tracer at the startup. | | +| `OTEL_DOTNET_AUTO_INSTRUMENTATION_PLUGINS` | Colon (:) separated list of OTel SDK instrumentation plugins represented by `System.Type.AssemblyQualifiedName`. | | -`OTEL_DOTNET_TRACER_LOAD_AT_STARTUP` should be set to `false` when application +`OTEL_DOTNET_AUTO_LOAD_AT_STARTUP` should be set to `false` when application initializes OpenTelemetry .NET SDK Tracer on its own. This configuration can be used e.g. to just get the bytecode instrumentations. -`OTEL_DOTNET_TRACER_ADDITIONAL_SOURCES` should be used to capture manually +`OTEL_DOTNET_AUTO_ADDITIONAL_SOURCES` should be used to capture manually instrumented spans. -`OTEL_DOTNET_TRACER_LEGACY_SOURCES` can be used to capture `Activity` objects +`OTEL_DOTNET_AUTO_LEGACY_SOURCES` can be used to capture `Activity` objects created without using the `ActivitySource` API. -`OTEL_DOTNET_TRACER_INSTRUMENTATION_PLUGINS` can be used to extend the +`OTEL_DOTNET_AUTO_INSTRUMENTATION_PLUGINS` can be used to extend the configuration of the the OpenTelemetry .NET SDK Tracer. A plugin must be a non-static, non-abstract class which has a default constructor and a method with following signature: @@ -180,7 +181,7 @@ cat /proc/version The default installation of auto-instrumentation enables tracing all .NET processes on the box. In the typical scenarios (dedicated VMs or containers), this is not a problem. -Use the environment variables `OTEL_PROFILER_EXCLUDE_PROCESSES` and `OTEL_PROFILER_PROCESSES` +Use the environment variables `OTEL_DOTNET_AUTO_EXCLUDE_PROCESSES` and `OTEL_DOTNET_AUTO_INCLUDE_PROCESSES` to include/exclude applications from the tracing auto-instrumentation. These are ";" delimited lists that control the inclusion/exclusion of processes. @@ -201,10 +202,10 @@ you can also manually add binding redirection to [the `App.config` file](../samp If none of the suggestions above solves your issue, detailed logs are necessary. Follow the steps below to get the detailed logs from OpenTelemetry AutoInstrumentation for .NET: -Set the environment variable `OTEL_TRACE_DEBUG` to `true` before the instrumented process starts. +Set the environment variable `OTEL_DOTNET_AUTO_DEBUG` to `true` before the instrumented process starts. By default, the library writes the log files under the below predefined locations. -If needed, change the default location by updating the environment variable `OTEL_TRACE_LOG_PATH` to an appropriate path. +If needed, change the default location by updating the environment variable `OTEL_DOTNET_AUTO_LOG_PATH` to an appropriate path. On Linux, the default log location is `/var/log/opentelemetry/dotnet/` On Windows, the default log location is `%ProgramData%\\OpenTelemetry .NET AutoInstrumentation\logs\` Compress the whole folder to capture the multiple log files and send the compressed folder to us. -After obtaining the logs, remember to remove the environment variable `OTEL_TRACE_DEBUG` to avoid unnecessary overhead. +After obtaining the logs, remember to remove the environment variable `OTEL_DOTNET_AUTO_DEBUG` to avoid unnecessary overhead. diff --git a/poc.sh b/poc.sh index 564008d15..50e5a20ab 100755 --- a/poc.sh +++ b/poc.sh @@ -43,13 +43,13 @@ docker run -d --rm --name jaeger \ jaegertracing/all-in-one:1.22 # instrument and run HTTP server app in background -export OTEL_DOTNET_TRACER_INSTRUMENTATION_PLUGINS="Samples.AspNetCoreMvc.OtelSdkPlugin, Samples.AspNetCoreMvc31, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null:Vendor.Distro.Plugin, Vendor.Distro, Version=0.0.1.0, Culture=neutral, PublicKeyToken=null" -./dev/instrument.sh OTEL_DOTNET_TRACER_INSTRUMENTATIONS="AspNet,SqlClient,MongoDb" OTEL_SERVICE_NAME="aspnet-server" ASPNETCORE_URLS="http://127.0.0.1:8080/" dotnet run --no-launch-profile -f $aspNetAppTargetFramework --project ./samples/Samples.AspNetCoreMvc31/Samples.AspNetCoreMvc31.csproj & -unset OTEL_DOTNET_TRACER_INSTRUMENTATION_PLUGINS +export OTEL_DOTNET_AUTO_INSTRUMENTATION_PLUGINS="Samples.AspNetCoreMvc.OtelSdkPlugin, Samples.AspNetCoreMvc31, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null:Vendor.Distro.Plugin, Vendor.Distro, Version=0.0.1.0, Culture=neutral, PublicKeyToken=null" +./dev/instrument.sh OTEL_DOTNET_AUTO_ENABLED_INSTRUMENTATIONS="AspNet,SqlClient,MongoDb" OTEL_SERVICE_NAME="aspnet-server" ASPNETCORE_URLS="http://127.0.0.1:8080/" dotnet run --no-launch-profile -f $aspNetAppTargetFramework --project ./samples/Samples.AspNetCoreMvc31/Samples.AspNetCoreMvc31.csproj & +unset OTEL_DOTNET_AUTO_INSTRUMENTATION_PLUGINS ./dev/wait-local-port.sh 8080 # instrument and run HTTP client app -time ./dev/instrument.sh OTEL_DOTNET_TRACER_INSTRUMENTATIONS="HttpClient" OTEL_SERVICE_NAME="http-client" dotnet run --no-launch-profile -f $sampleAppTargetFramework --project ./samples/${sampleApp}/${sampleApp}.csproj +time ./dev/instrument.sh OTEL_DOTNET_AUTO_ENABLED_INSTRUMENTATIONS="HttpClient" OTEL_SERVICE_NAME="http-client" dotnet run --no-launch-profile -f $sampleAppTargetFramework --project ./samples/${sampleApp}/${sampleApp}.csproj # verify if it works read -p "Check traces under: http://localhost:16686/search. Press enter to continue" diff --git a/samples/Samples.AspNetCoreMvc31/Properties/launchSettings.json b/samples/Samples.AspNetCoreMvc31/Properties/launchSettings.json index 4ece54f21..4b40af69d 100644 --- a/samples/Samples.AspNetCoreMvc31/Properties/launchSettings.json +++ b/samples/Samples.AspNetCoreMvc31/Properties/launchSettings.json @@ -19,8 +19,8 @@ "CORECLR_PROFILER_PATH": "$(SolutionDir)bin\\tracer-home\\win-x64\\OpenTelemetry.ClrProfiler.Native.dll", "DOTNET_STARTUP_HOOKS": "$(SolutionDir)bin\\tracer-home\\netcoreapp3.1\\OpenTelemetry.Instrumentation.StartupHook.dll", - "OTEL_DOTNET_TRACER_HOME": "$(SolutionDir)bin\\tracer-home", - "OTEL_INTEGRATIONS": "$(SolutionDir)bin\\tracer-home\\integrations.json", + "OTEL_DOTNET_AUTO_HOME": "$(SolutionDir)bin\\tracer-home", + "OTEL_DOTNET_AUTO_INTEGRATIONS_FILE": "$(SolutionDir)bin\\tracer-home\\integrations.json", "OTEL_SERVICE_NAME": "Samples.AspNetCoreMvc31", "OTEL_TRACES_EXPORTER": "jaeger", "OTEL_EXPORTER_JAEGER_AGENT_HOST": "localhost", @@ -40,8 +40,8 @@ "CORECLR_PROFILER_PATH": "$(SolutionDir)bin\\tracer-home$(OutputPath)\\OpenTelemetry.ClrProfiler.Native.dll", "DOTNET_STARTUP_HOOKS": "$(SolutionDir)bin\\tracer-home\\netcoreapp3.1\\OpenTelemetry.Instrumentation.StartupHook.dll", - "OTEL_DOTNET_TRACER_HOME": "$(SolutionDir)bin\\tracer-home", - "OTEL_INTEGRATIONS": "$(SolutionDir)bin\\tracer-home\\integrations.json", + "OTEL_DOTNET_AUTO_HOME": "$(SolutionDir)bin\\tracer-home", + "OTEL_DOTNET_AUTO_INTEGRATIONS_FILE": "$(SolutionDir)bin\\tracer-home\\integrations.json", "OTEL_SERVICE_NAME": "Samples.AspNetCoreMvc31", "OTEL_TRACES_EXPORTER": "jaeger", diff --git a/samples/Samples.StartupHook.AspNetCoreMvc31/Properties/launchSettings.json b/samples/Samples.StartupHook.AspNetCoreMvc31/Properties/launchSettings.json index 59700a064..20deb3133 100644 --- a/samples/Samples.StartupHook.AspNetCoreMvc31/Properties/launchSettings.json +++ b/samples/Samples.StartupHook.AspNetCoreMvc31/Properties/launchSettings.json @@ -21,7 +21,7 @@ "OTEL_SERVICE_NAME": "Samples.StartupHook.AspNetCoreMvc31", - "OTEL_DOTNET_TRACER_INSTRUMENTATIONS": "AspNet,HttpClient", + "OTEL_DOTNET_AUTO_ENABLED_INSTRUMENTATIONS": "AspNet,HttpClient", "OTEL_TRACES_EXPORTER": "zipkin", "OTEL_EXPORTER_ZIPKIN_ENDPOINT": "http://localhost:9411/api/v2/spans" @@ -41,7 +41,7 @@ "OTEL_SERVICE_NAME": "Samples.StartupHook.AspNetCoreMvc31", - "OTEL_DOTNET_TRACER_INSTRUMENTATIONS": "AspNet,HttpClient", + "OTEL_DOTNET_AUTO_ENABLED_INSTRUMENTATIONS": "AspNet,HttpClient", "OTEL_TRACES_EXPORTER": "zipkin", "OTEL_EXPORTER_ZIPKIN_ENDPOINT": "http://localhost:9411/api/v2/spans" diff --git a/src/OpenTelemetry.ClrProfiler.Managed.Loader/Startup.NetCore.cs b/src/OpenTelemetry.ClrProfiler.Managed.Loader/Startup.NetCore.cs index f9852f7c8..3a9fe3a31 100644 --- a/src/OpenTelemetry.ClrProfiler.Managed.Loader/Startup.NetCore.cs +++ b/src/OpenTelemetry.ClrProfiler.Managed.Loader/Startup.NetCore.cs @@ -15,7 +15,7 @@ namespace OpenTelemetry.ClrProfiler.Managed.Loader private static string ResolveManagedProfilerDirectory() { string tracerFrameworkDirectory = "netcoreapp3.1"; - string tracerHomeDirectory = ReadEnvironmentVariable("OTEL_DOTNET_TRACER_HOME") ?? string.Empty; + string tracerHomeDirectory = ReadEnvironmentVariable("OTEL_DOTNET_AUTO_HOME") ?? string.Empty; return Path.Combine(tracerHomeDirectory, tracerFrameworkDirectory); } diff --git a/src/OpenTelemetry.ClrProfiler.Managed.Loader/Startup.NetFramework.cs b/src/OpenTelemetry.ClrProfiler.Managed.Loader/Startup.NetFramework.cs index 2747656c8..61cda9eb1 100644 --- a/src/OpenTelemetry.ClrProfiler.Managed.Loader/Startup.NetFramework.cs +++ b/src/OpenTelemetry.ClrProfiler.Managed.Loader/Startup.NetFramework.cs @@ -13,7 +13,7 @@ namespace OpenTelemetry.ClrProfiler.Managed.Loader { private static string ResolveManagedProfilerDirectory() { - var tracerHomeDirectory = ReadEnvironmentVariable("OTEL_DOTNET_TRACER_HOME") ?? string.Empty; + var tracerHomeDirectory = ReadEnvironmentVariable("OTEL_DOTNET_AUTO_HOME") ?? string.Empty; var tracerFrameworkDirectory = "net461"; return Path.Combine(tracerHomeDirectory, tracerFrameworkDirectory); } diff --git a/src/OpenTelemetry.ClrProfiler.Managed.Loader/StartupLogger.cs b/src/OpenTelemetry.ClrProfiler.Managed.Loader/StartupLogger.cs index fecb5fa46..c69ebee41 100644 --- a/src/OpenTelemetry.ClrProfiler.Managed.Loader/StartupLogger.cs +++ b/src/OpenTelemetry.ClrProfiler.Managed.Loader/StartupLogger.cs @@ -61,11 +61,11 @@ namespace OpenTelemetry.ClrProfiler.Managed.Loader try { - logDirectory = Environment.GetEnvironmentVariable("OTEL_TRACE_LOG_DIRECTORY"); + logDirectory = Environment.GetEnvironmentVariable("OTEL_DOTNET_AUTO_LOG_DIRECTORY"); if (logDirectory == null) { - var nativeLogFile = Environment.GetEnvironmentVariable("OTEL_TRACE_LOG_PATH"); + var nativeLogFile = Environment.GetEnvironmentVariable("OTEL_DOTNET_AUTO_LOG_PATH"); if (!string.IsNullOrEmpty(nativeLogFile)) { @@ -143,7 +143,7 @@ namespace OpenTelemetry.ClrProfiler.Managed.Loader { try { - var ddTraceDebugValue = Environment.GetEnvironmentVariable("OTEL_TRACE_DEBUG"); + var ddTraceDebugValue = Environment.GetEnvironmentVariable("OTEL_DOTNET_AUTO_DEBUG"); if (ddTraceDebugValue == null) { diff --git a/src/OpenTelemetry.ClrProfiler.Managed/Configuration/ConfigurationKeys.cs b/src/OpenTelemetry.ClrProfiler.Managed/Configuration/ConfigurationKeys.cs index 76e4a47e1..6a929b1c3 100644 --- a/src/OpenTelemetry.ClrProfiler.Managed/Configuration/ConfigurationKeys.cs +++ b/src/OpenTelemetry.ClrProfiler.Managed/Configuration/ConfigurationKeys.cs @@ -12,12 +12,12 @@ namespace OpenTelemetry.ClrProfiler.Managed.Configuration /// Default is value is true (enabled). /// /// - public const string TraceEnabled = "OTEL_TRACE_ENABLED"; + public const string TraceEnabled = "OTEL_DOTNET_AUTO_ENABLED"; /// /// Configuration key for whether the tracer should be initialized by the profiler or not. /// - public const string LoadTracerAtStartup = "OTEL_DOTNET_TRACER_LOAD_AT_STARTUP"; + public const string LoadTracerAtStartup = "OTEL_DOTNET_AUTO_LOAD_AT_STARTUP"; /// /// Configuration key for the traces exporter to be used. @@ -39,32 +39,32 @@ namespace OpenTelemetry.ClrProfiler.Managed.Configuration /// /// Configuration key for whether the console exporter is enabled. /// - public const string ConsoleExporterEnabled = "OTEL_DOTNET_TRACER_CONSOLE_EXPORTER_ENABLED"; + public const string ConsoleExporterEnabled = "OTEL_DOTNET_AUTO_CONSOLE_EXPORTER_ENABLED"; /// /// Configuration key for comma separated list of enabled instrumentations. /// - public const string Instrumentations = "OTEL_DOTNET_TRACER_INSTRUMENTATIONS"; + public const string Instrumentations = "OTEL_DOTNET_AUTO_ENABLED_INSTRUMENTATIONS"; /// /// Configuration key for comma separated list of disabled instrumentations. /// - public const string DisabledInstrumentations = "OTEL_DOTNET_TRACER_DISABLED_INSTRUMENTATIONS"; + public const string DisabledInstrumentations = "OTEL_DOTNET_AUTO_DISABLED_INSTRUMENTATIONS"; /// /// Configuration key for colon (:) separated list of plugins represented by . /// - public const string ProviderPlugins = "OTEL_DOTNET_TRACER_INSTRUMENTATION_PLUGINS"; + public const string ProviderPlugins = "OTEL_DOTNET_AUTO_INSTRUMENTATION_PLUGINS"; /// /// Configuration key for additional names to be added to the tracer at the startup. /// - public const string AdditionalSources = "OTEL_DOTNET_TRACER_ADDITIONAL_SOURCES"; + public const string AdditionalSources = "OTEL_DOTNET_AUTO_ADDITIONAL_SOURCES"; /// /// Configuration key for legacy source names to be added to the tracer at the startup. /// - public const string LegacySources = "OTEL_DOTNET_TRACER_LEGACY_SOURCES"; + public const string LegacySources = "OTEL_DOTNET_AUTO_LEGACY_SOURCES"; /// /// String format patterns used to match integration-specific configuration keys. @@ -74,7 +74,7 @@ namespace OpenTelemetry.ClrProfiler.Managed.Configuration /// /// Configuration key pattern for enabling or disabling an integration. /// - public const string Enabled = "OTEL_TRACE_{0}_ENABLED"; + public const string Enabled = "OTEL_DOTNET_AUTO_{0}_ENABLED"; } } } diff --git a/src/OpenTelemetry.ClrProfiler.Managed/Configuration/IntegrationSettings.cs b/src/OpenTelemetry.ClrProfiler.Managed/Configuration/IntegrationSettings.cs index 419872554..09bf7e93f 100644 --- a/src/OpenTelemetry.ClrProfiler.Managed/Configuration/IntegrationSettings.cs +++ b/src/OpenTelemetry.ClrProfiler.Managed/Configuration/IntegrationSettings.cs @@ -21,8 +21,7 @@ namespace OpenTelemetry.ClrProfiler.Managed.Configuration return; } - Enabled = source.GetBool(string.Format(ConfigurationKeys.Integrations.Enabled, integrationName)) ?? - source.GetBool(string.Format("OTEL_{0}_ENABLED", integrationName)); + Enabled = source.GetBool(string.Format(ConfigurationKeys.Integrations.Enabled, integrationName)); } /// diff --git a/src/OpenTelemetry.ClrProfiler.Native/environment_variables.h b/src/OpenTelemetry.ClrProfiler.Native/environment_variables.h index 2c5073d2e..975feeb9c 100644 --- a/src/OpenTelemetry.ClrProfiler.Native/environment_variables.h +++ b/src/OpenTelemetry.ClrProfiler.Native/environment_variables.h @@ -8,66 +8,66 @@ namespace environment { // Sets whether the profiler is enabled. Default is true. // Setting this to false disabled the profiler entirely. -const WSTRING tracing_enabled = WStr("OTEL_TRACE_ENABLED"); +const WSTRING tracing_enabled = WStr("OTEL_DOTNET_AUTO_ENABLED"); // Sets whether debug mode is enabled. Default is false. -const WSTRING debug_enabled = WStr("OTEL_TRACE_DEBUG"); +const WSTRING debug_enabled = WStr("OTEL_DOTNET_AUTO_DEBUG"); // Sets the paths to integration definition JSON files. // Supports multiple values separated with comma, for example: // "C:\Program Files\OpenTelemetry .NET AutoInstrumentation\integrations.json,D:\temp\test_integrations.json" -const WSTRING integrations_path = WStr("OTEL_INTEGRATIONS"); +const WSTRING integrations_path = WStr("OTEL_DOTNET_AUTO_INTEGRATIONS_FILE"); // Sets the path to the profiler's home directory, for example: // "C:\Program Files\OpenTelemetry .NET AutoInstrumentation\" or "/opt/opentelemetry/" -const WSTRING profiler_home_path = WStr("OTEL_DOTNET_TRACER_HOME"); +const WSTRING profiler_home_path = WStr("OTEL_DOTNET_AUTO_HOME"); // Sets the filename of executables the profiler can attach to. // If not defined (default), the profiler will attach to any process. // Supports multiple values separated with comma, for example: // "MyApp.exe,dotnet.exe" -const WSTRING include_process_names = WStr("OTEL_PROFILER_PROCESSES"); +const WSTRING include_process_names = WStr("OTEL_DOTNET_AUTO_INCLUDE_PROCESSES"); // Sets the filename of executables the profiler cannot attach to. // If not defined (default), the profiler will attach to any process. // Supports multiple values separated with comma, for example: // "MyApp.exe,dotnet.exe" -const WSTRING exclude_process_names = WStr("OTEL_PROFILER_EXCLUDE_PROCESSES"); +const WSTRING exclude_process_names = WStr("OTEL_DOTNET_AUTO_EXCLUDE_PROCESSES"); // Sets a list of integrations to disable. All other integrations will remain // enabled. If not set (default), all integrations are enabled. Supports // multiple values separated with comma, for example: // "ElasticsearchNet,AspNetWebApi2" const WSTRING disabled_integrations = - WStr("OTEL_DOTNET_TRACER_DISABLED_INSTRUMENTATIONS"); + WStr("OTEL_DOTNET_AUTO_DISABLED_INSTRUMENTATIONS"); // Sets the path for the profiler's log file. -// Environment variable OTEL_TRACE_LOG_DIRECTORY takes precedence over this setting, if set. -const WSTRING log_path = WStr("OTEL_TRACE_LOG_PATH"); +// Environment variable OTEL_DOTNET_AUTO_LOG_DIRECTORY takes precedence over this setting, if set. +const WSTRING log_path = WStr("OTEL_DOTNET_AUTO_LOG_PATH"); // Sets the directory for the profiler's log file. -// If set, this setting takes precedence over environment variable OTEL_TRACE_LOG_PATH. +// If set, this setting takes precedence over environment variable OTEL_DOTNET_AUTO_LOG_PATH. // If not set, default is // "%ProgramData%"\OpenTelemetry .NET AutoInstrumentation\logs\" on Windows or // "/var/log/opentelemetry/dotnet/" on Linux. -const WSTRING log_directory = WStr("OTEL_TRACE_LOG_DIRECTORY"); +const WSTRING log_directory = WStr("OTEL_DOTNET_AUTO_LOG_DIRECTORY"); // Sets whether to disable all JIT optimizations. // Default value is false (do not disable all optimizations). // https://github.com/dotnet/coreclr/issues/24676 // https://github.com/dotnet/coreclr/issues/12468 -const WSTRING clr_disable_optimizations = WStr("OTEL_CLR_DISABLE_OPTIMIZATIONS"); +const WSTRING clr_disable_optimizations = WStr("OTEL_DOTNET_AUTO_CLR_DISABLE_OPTIMIZATIONS"); // Sets whether to intercept method calls when the caller method is inside a // domain-neutral assembly. This is dangerous because the integration assembly // the user can guarantee that all Application Pools on the system have at most // Default is false. Only used in .NET Framework 4.5 and 4.5.1. // https://github.com/DataDog/dd-trace-dotnet/pull/671 -const WSTRING domain_neutral_instrumentation = WStr("OTEL_TRACE_DOMAIN_NEUTRAL_INSTRUMENTATION"); +const WSTRING domain_neutral_instrumentation = WStr("OTEL_DOTNET_AUTO_DOMAIN_NEUTRAL_INSTRUMENTATION"); // Indicates whether the profiler is running in the context // of Azure App Services -const WSTRING azure_app_services = WStr("OTEL_AZURE_APP_SERVICES"); +const WSTRING azure_app_services = WStr("OTEL_DOTNET_AUTO_AZURE_APP_SERVICES"); // The app_pool_id in the context of azure app services const WSTRING azure_app_services_app_pool_id = WStr("APP_POOL_ID"); @@ -77,17 +77,17 @@ const WSTRING azure_app_services_cli_telemetry_profile_value = WStr("DOTNET_CLI_TELEMETRY_PROFILE"); // Enable the profiler to dump the IL original code and modification to the log. -const WSTRING dump_il_rewrite_enabled = WStr("OTEL_DUMP_ILREWRITE_ENABLED"); +const WSTRING dump_il_rewrite_enabled = WStr("OTEL_DOTNET_AUTO_DUMP_ILREWRITE_ENABLED"); // Sets whether to enable JIT inlining -const WSTRING clr_enable_inlining = WStr("OTEL_CLR_ENABLE_INLINING"); +const WSTRING clr_enable_inlining = WStr("OTEL_DOTNET_AUTO_CLR_ENABLE_INLINING"); // Custom internal tracer profiler path const WSTRING internal_trace_profiler_path = - WStr("OTEL_INTERNAL_TRACE_NATIVE_ENGINE_PATH"); + WStr("OTEL_DOTNET_AUTO_INTERNAL_NATIVE_ENGINE_PATH"); // Sets whether to enable NGEN images. -const WSTRING clr_enable_ngen = WStr("OTEL_CLR_ENABLE_NGEN"); +const WSTRING clr_enable_ngen = WStr("OTEL_DOTNET_AUTO_CLR_ENABLE_NGEN"); // The list of startup hooks defined for .NET Core 3.1+ applications. // This is a .NET runtime environment variable. diff --git a/src/OpenTelemetry.Instrumentation.StartupHook/StartupHook.cs b/src/OpenTelemetry.Instrumentation.StartupHook/StartupHook.cs index 267fa08d2..ce46e2eee 100644 --- a/src/OpenTelemetry.Instrumentation.StartupHook/StartupHook.cs +++ b/src/OpenTelemetry.Instrumentation.StartupHook/StartupHook.cs @@ -101,7 +101,7 @@ internal class StartupHook { var excludedProcesses = new List(); - var environmentValue = GetEnvironmentVariable("OTEL_PROFILER_EXCLUDE_PROCESSES"); + var environmentValue = GetEnvironmentVariable("OTEL_DOTNET_AUTO_EXCLUDE_PROCESSES"); if (environmentValue == null) { diff --git a/test/OpenTelemetry.ClrProfiler.Managed.Bootstrapping.Tests/InstrumentationTests.cs b/test/OpenTelemetry.ClrProfiler.Managed.Bootstrapping.Tests/InstrumentationTests.cs index c282fde91..26467b1e7 100644 --- a/test/OpenTelemetry.ClrProfiler.Managed.Bootstrapping.Tests/InstrumentationTests.cs +++ b/test/OpenTelemetry.ClrProfiler.Managed.Bootstrapping.Tests/InstrumentationTests.cs @@ -19,7 +19,7 @@ namespace OpenTelemetry.ClrProfiler.Managed.Bootstrapping.Tests [FactRequiringEnvVar] public void Initialize_WithDisabledFlag_DoesNotCreateTracerProvider() { - Environment.SetEnvironmentVariable("OTEL_DOTNET_TRACER_LOAD_AT_STARTUP", "false"); + Environment.SetEnvironmentVariable("OTEL_DOTNET_AUTO_LOAD_AT_STARTUP", "false"); Instrumentation.Initialize(); var otelActivity = _otelActivitySource.StartActivity("OtelActivity"); @@ -45,7 +45,7 @@ namespace OpenTelemetry.ClrProfiler.Managed.Bootstrapping.Tests [FactRequiringEnvVar] public void Initialize_WithEnabledFlag_CreatesTracerProvider() { - Environment.SetEnvironmentVariable("OTEL_DOTNET_TRACER_LOAD_AT_STARTUP", "true"); + Environment.SetEnvironmentVariable("OTEL_DOTNET_AUTO_LOAD_AT_STARTUP", "true"); Instrumentation.Initialize(); var otelActivity = _otelActivitySource.StartActivity("OtelActivity"); @@ -58,7 +58,7 @@ namespace OpenTelemetry.ClrProfiler.Managed.Bootstrapping.Tests [FactRequiringEnvVar] public void Initialize_WithPreviouslyCreatedTracerProvider_WorksCorrectly() { - Environment.SetEnvironmentVariable("OTEL_DOTNET_TRACER_LOAD_AT_STARTUP", "false"); + Environment.SetEnvironmentVariable("OTEL_DOTNET_AUTO_LOAD_AT_STARTUP", "false"); var tracer = Sdk .CreateTracerProviderBuilder() .AddSource("Custom") diff --git a/test/OpenTelemetry.ClrProfiler.Managed.Loader.Tests/StartupTests.cs b/test/OpenTelemetry.ClrProfiler.Managed.Loader.Tests/StartupTests.cs index d2901cb88..bc020aa03 100644 --- a/test/OpenTelemetry.ClrProfiler.Managed.Loader.Tests/StartupTests.cs +++ b/test/OpenTelemetry.ClrProfiler.Managed.Loader.Tests/StartupTests.cs @@ -11,7 +11,7 @@ namespace OpenTelemetry.ClrProfiler.Managed.Loader.Tests public void Ctor_LoadsManagedAssembly() { var directory = Directory.GetCurrentDirectory(); - Environment.SetEnvironmentVariable("OTEL_DOTNET_TRACER_HOME", Path.Combine(directory, "..", "Profiler")); + Environment.SetEnvironmentVariable("OTEL_DOTNET_AUTO_HOME", Path.Combine(directory, "..", "Profiler")); var exception = Record.Exception(() => Startup.ManagedProfilerDirectory); diff --git a/test/integration-tests/IntegrationTests.Helpers/EnvironmentHelper.cs b/test/integration-tests/IntegrationTests.Helpers/EnvironmentHelper.cs index f82033479..660eb7eac 100644 --- a/test/integration-tests/IntegrationTests.Helpers/EnvironmentHelper.cs +++ b/test/integration-tests/IntegrationTests.Helpers/EnvironmentHelper.cs @@ -98,12 +98,12 @@ namespace IntegrationTests.Helpers "COR_PROFILER_PATH", // OpenTelemetry - "OTEL_PROFILER_PROCESSES", - "OTEL_DOTNET_TRACER_HOME", - "OTEL_INTEGRATIONS", + "OTEL_DOTNET_AUTO_INCLUDE_PROCESSES", + "OTEL_DOTNET_AUTO_HOME", + "OTEL_DOTNET_AUTO_INTEGRATIONS_FILE", "OTEL_DISABLED_INTEGRATIONS", - "OTEL_DOTNET_TRACER_ADDITIONAL_SOURCES", - "OTEL_PROFILER_EXCLUDE_PROCESSES" + "OTEL_DOTNET_AUTO_ADDITIONAL_SOURCES", + "OTEL_DOTNET_AUTO_EXCLUDE_PROCESSES" }; foreach (string variable in environmentVariables) @@ -171,25 +171,25 @@ namespace IntegrationTests.Helpers if (DebugModeEnabled) { - environmentVariables["OTEL_TRACE_DEBUG"] = "1"; - environmentVariables["OTEL_TRACE_LOG_DIRECTORY"] = Path.Combine(EnvironmentTools.GetSolutionDirectory(), "build_data", "profiler-logs"); + environmentVariables["OTEL_DOTNET_AUTO_DEBUG"] = "1"; + environmentVariables["OTEL_DOTNET_AUTO_LOG_DIRECTORY"] = Path.Combine(EnvironmentTools.GetSolutionDirectory(), "build_data", "profiler-logs"); } if (!string.IsNullOrEmpty(processToProfile)) { - environmentVariables["OTEL_PROFILER_PROCESSES"] = Path.GetFileName(processToProfile); + environmentVariables["OTEL_DOTNET_AUTO_INCLUDE_PROCESSES"] = Path.GetFileName(processToProfile); } string integrations = GetIntegrationsPath(); - environmentVariables["OTEL_DOTNET_TRACER_HOME"] = GetNukeBuildOutput(); - environmentVariables["OTEL_INTEGRATIONS"] = integrations; + environmentVariables["OTEL_DOTNET_AUTO_HOME"] = GetNukeBuildOutput(); + environmentVariables["OTEL_DOTNET_AUTO_INTEGRATIONS_FILE"] = integrations; environmentVariables["OTEL_TRACES_EXPORTER"] = "zipkin"; environmentVariables["OTEL_EXPORTER_ZIPKIN_ENDPOINT"] = $"http://127.0.0.1:{agentPort}"; // for ASP.NET Core sample apps, set the server's port environmentVariables["ASPNETCORE_URLS"] = $"http://127.0.0.1:{aspNetCorePort}/"; - environmentVariables["OTEL_DOTNET_TRACER_ADDITIONAL_SOURCES"] = "Samples.*"; + environmentVariables["OTEL_DOTNET_AUTO_ADDITIONAL_SOURCES"] = "Samples.*"; foreach (var key in CustomEnvironmentVariables.Keys) { diff --git a/test/integration-tests/IntegrationTests.StartupHook/StartupHookTests.cs b/test/integration-tests/IntegrationTests.StartupHook/StartupHookTests.cs index 858b68c28..96d46ca99 100644 --- a/test/integration-tests/IntegrationTests.StartupHook/StartupHookTests.cs +++ b/test/integration-tests/IntegrationTests.StartupHook/StartupHookTests.cs @@ -20,7 +20,7 @@ namespace IntegrationTests.StartupHook : base("StartupHook", output) { SetEnvironmentVariable("OTEL_SERVICE_NAME", ServiceName); - SetEnvironmentVariable("OTEL_DOTNET_TRACER_INSTRUMENTATIONS", "HttpClient"); + SetEnvironmentVariable("OTEL_DOTNET_AUTO_ENABLED_INSTRUMENTATIONS", "HttpClient"); _expectations.Add(new WebServerSpanExpectation(ServiceName, null, "SayHello", "SayHello", null)); _expectations.Add(new WebServerSpanExpectation(ServiceName, null, "HTTP GET", "HTTP GET", null, "GET")); } @@ -61,7 +61,7 @@ namespace IntegrationTests.StartupHook expectedSpanCount = 0; } - SetEnvironmentVariable("OTEL_PROFILER_EXCLUDE_PROCESSES", $"dotnet,dotnet.exe,{applicationNameToExclude}"); + SetEnvironmentVariable("OTEL_DOTNET_AUTO_EXCLUDE_PROCESSES", $"dotnet,dotnet.exe,{applicationNameToExclude}"); var spans = RunTestApplication(enableStartupHook: true); diff --git a/test/test-applications/integrations/Samples.GraphQL/Properties/launchSettings.json b/test/test-applications/integrations/Samples.GraphQL/Properties/launchSettings.json index eb9788c7b..762ea31d1 100644 --- a/test/test-applications/integrations/Samples.GraphQL/Properties/launchSettings.json +++ b/test/test-applications/integrations/Samples.GraphQL/Properties/launchSettings.json @@ -19,11 +19,11 @@ "CORECLR_PROFILER_PATH": "$(SolutionDir)bin\\tracer-home\\win-x64\\OpenTelemetry.ClrProfiler.Native.dll", "DOTNET_STARTUP_HOOKS": "$(SolutionDir)bin\\tracer-home\\netcoreapp3.1\\OpenTelemetry.Instrumentation.StartupHook.dll", - "OTEL_DOTNET_TRACER_HOME": "$(SolutionDir)bin\\tracer-home\\", - "OTEL_INTEGRATIONS": "$(SolutionDir)bin\\tracer-home\\integrations.json", + "OTEL_DOTNET_AUTO_HOME": "$(SolutionDir)bin\\tracer-home\\", + "OTEL_DOTNET_AUTO_INTEGRATIONS_FILE": "$(SolutionDir)bin\\tracer-home\\integrations.json", "OTEL_TRACES_EXPORTER": "zipkin", "OTEL_EXPORTER_ZIPKIN_ENDPOINT": "http://127.0.0.1:9411/api/v2/spans", - "OTEL_TRACE_DEBUG": "1" + "OTEL_DOTNET_AUTO_DEBUG": "1" }, "applicationUrl": "http://localhost:54568/", "nativeDebugging": true diff --git a/test/test-applications/integrations/Samples.MongoDB/Properties/launchSettings.json b/test/test-applications/integrations/Samples.MongoDB/Properties/launchSettings.json index 91a281778..9fed8a8a5 100644 --- a/test/test-applications/integrations/Samples.MongoDB/Properties/launchSettings.json +++ b/test/test-applications/integrations/Samples.MongoDB/Properties/launchSettings.json @@ -8,11 +8,11 @@ "CORECLR_PROFILER_PATH": "$(SolutionDir)bin\\tracer-home\\win-x64\\OpenTelemetry.ClrProfiler.Native.dll", "DOTNET_STARTUP_HOOKS": "$(SolutionDir)bin\\tracer-home\\netcoreapp3.1\\OpenTelemetry.Instrumentation.StartupHook.dll", - "OTEL_DOTNET_TRACER_HOME": "$(SolutionDir)bin\\tracer-home\\", - "OTEL_INTEGRATIONS": "$(SolutionDir)bin\\tracer-home\\integrations.json", + "OTEL_DOTNET_AUTO_HOME": "$(SolutionDir)bin\\tracer-home\\", + "OTEL_DOTNET_AUTO_INTEGRATIONS_FILE": "$(SolutionDir)bin\\tracer-home\\integrations.json", "OTEL_TRACES_EXPORTER": "zipkin", "OTEL_EXPORTER_ZIPKIN_ENDPOINT": "http://127.0.0.1:9411/api/v2/spans", - "OTEL_TRACE_DEBUG": "1" + "OTEL_DOTNET_AUTO_DEBUG": "1" } } } diff --git a/test/test-applications/integrations/aspnet/Samples.AspNet/Dockerfile b/test/test-applications/integrations/aspnet/Samples.AspNet/Dockerfile index b6b6773de..ad4b42352 100644 --- a/test/test-applications/integrations/aspnet/Samples.AspNet/Dockerfile +++ b/test/test-applications/integrations/aspnet/Samples.AspNet/Dockerfile @@ -4,15 +4,15 @@ ARG platform=x64 ENV COR_ENABLE_PROFILING=1 \ COR_PROFILER={918728DD-259F-4A6A-AC2B-B85E1B658318} \ COR_PROFILER_PATH=C:\\opentelemetry\\win-${platform}\\OpenTelemetry.ClrProfiler.Native.dll \ - OTEL_DOTNET_TRACER_HOME=C:\\opentelemetry\\ \ - OTEL_INTEGRATIONS=C:\\opentelemetry\\integrations.json \ + OTEL_DOTNET_AUTO_HOME=C:\\opentelemetry\\ \ + OTEL_DOTNET_AUTO_INTEGRATIONS_FILE=C:\\opentelemetry\\integrations.json \ OTEL_TRACES_EXPORTER=zipkin \ - OTEL_DOTNET_TRACER_ADDITIONAL_SOURCES=Samples.* \ - OTEL_DOTNET_TRACER_INSTRUMENTATIONS=HttpClient,AspNet \ + OTEL_DOTNET_AUTO_ADDITIONAL_SOURCES=Samples.* \ + OTEL_DOTNET_AUTO_ENABLED_INSTRUMENTATIONS=HttpClient,AspNet \ OTEL_SERVICE_NAME=Samples.AspNet \ - OTEL_TRACE_DOMAIN_NEUTRAL_INSTRUMENTATION=1 \ - OTEL_TRACE_DEBUG=1 \ - OTEL_TRACE_LOG_DIRECTORY=C:\\inetpub\\wwwroot\\logs \ - OTEL_PROFILER_PROCESSES=w3wp.exe + OTEL_DOTNET_AUTO_DOMAIN_NEUTRAL_INSTRUMENTATION=1 \ + OTEL_DOTNET_AUTO_DEBUG=1 \ + OTEL_DOTNET_AUTO_LOG_DIRECTORY=C:\\inetpub\\wwwroot\\logs \ + OTEL_DOTNET_AUTO_INCLUDE_PROCESSES=w3wp.exe WORKDIR C:\\inetpub\\wwwroot COPY bin/${configuration}/app.publish .