OpenTelemetry Automatic Instrumentation package with all required components to enable automatic instrumentation.
$ dotnet add package OpenTelemetry.AutoInstrumentationUse the NuGet package in the following scenarios:
self-contained
applications.While NuGet packages are a convenient way to deploy automatic instrumentation, they can't be used in all cases. The most common reasons for not using NuGet packages include the following:
To automatically instrument your application with
the OpenTelemetry .NET Automatic Instrumentation add
the OpenTelemetry.AutoInstrumentation package to your project:
dotnet add [<PROJECT>] package OpenTelemetry.AutoInstrumentation
If the application references packages that can be instrumented, but require other packages for the instrumentation to work, the build will fail and prompt you to either add the missing instrumentation package or to skip the instrumentation of the corresponding package:
~packages/opentelemetry.autoinstrumentation.buildtasks/1.0.2/build/OpenTelemetry.AutoInstrumentation.BuildTasks.targets(29,5): error : OpenTelemetry.AutoInstrumentation: add a reference to the instrumentation package 'MongoDB.Driver.Core.Extensions.DiagnosticSources' version 1.3.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
the instrumentation of the listed package by adding it to the SkippedInstrumentation
property. For example:
<PropertyGroup>
<SkippedInstrumentations>MongoDB.Driver.Core;StackExchange.Redis</SkippedInstrumentations>
</PropertyGroup>
The same property can be also specified directly using the terminal.
Notice that the ; separator needs to be properly escaped as '%3B':
dotnet build -p:SkippedInstrumentations=StackExchange.Redis%3BMongoDB.Driver.Core
To distribute the appropriate native runtime components with your .NET application,
specify a Runtime Identifier (RID)
to build the application using dotnet build or dotnet publish. This might
require choosing between distributing a
self-contained or a framework-dependent
application. Both types are compatible with automatic instrumentation.
Use the script in the output folder of the build to launch the application with automatic instrumentation activated.
instrument.cmd <application_executable>instrument.sh <application_executable>If you launch the application using the dotnet CLI, add dotnet after the script.
instrument.cmd dotnet <application>instrument.sh dotnet <application>The script passes to the application all the command-line parameters you provide.