OpenTelemetry.AutoInstrumentation 1.6.0

The ID prefix of this package has been reserved for one of the owners of this package by Prefix Reserved
dotnet add package OpenTelemetry.AutoInstrumentation --version 1.6.0
NuGet\Install-Package OpenTelemetry.AutoInstrumentation -Version 1.6.0
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="OpenTelemetry.AutoInstrumentation" Version="1.6.0" />
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add OpenTelemetry.AutoInstrumentation --version 1.6.0
#r "nuget: OpenTelemetry.AutoInstrumentation, 1.6.0"
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
// Install OpenTelemetry.AutoInstrumentation as a Cake Addin
#addin nuget:?package=OpenTelemetry.AutoInstrumentation&version=1.6.0

// Install OpenTelemetry.AutoInstrumentation as a Cake Tool
#tool nuget:?package=OpenTelemetry.AutoInstrumentation&version=1.6.0

Using the OpenTelemetry.AutoInstrumentation NuGet package

When to use the NuGet package

Use the NuGet package in the following scenarios:

  1. You control the application build but not the machine/container where the application is running.
  2. Support instrumentation of self-contained applications.
  3. Facilitate developer experimentation with automatic instrumentation through NuGet packages.
  4. Solve version conflicts between the dependencies used by the application and the automatic instrumentation.


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:

  1. You can't add the package to the application project. For example, the application is from a third party that can't add the package.
  2. Reduce disk usage, or the size of a virtual machine, when multiple applications to be instrumented are installed in a single machine. In this case you can use a single deployment for all .NET applications running on the machine.
  3. A legacy application that can't be migrated to the SDK-style project.

Using the NuGet packages

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.1.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.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:


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.

  • On Windows, use instrument.cmd <application_executable>
  • On Linux or Unix, use <application_executable>

If you launch the application using the dotnet CLI, add dotnet after the script.

  • On Windows, use instrument.cmd dotnet <application>
  • On Linux and Unix, use dotnet <application>

The script passes to the application all the command-line parameters you provide.

There are no supported framework assets in this package.

Learn more about Target Frameworks and .NET Standard.

NuGet packages (3)

Showing the top 3 NuGet packages that depend on OpenTelemetry.AutoInstrumentation:

Package Downloads

A set of internal generic classes and extensions for working with caches, databases, queues, message brokers, files, reflection, errors, , pagination, collections, strings, and ASP NET CORE. You can use this code in your projects as is. You can copy, modify and distribute it without any restrictions. You do not need to provide any copyrights or references.


Splunk Distribution of OpenTelemetry .NET package with all required components to enable automatic instrumentation.


Common setup for OpenTelemetry.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last updated
1.6.0 5,408 4/29/2024
1.5.0 14,695 4/9/2024
1.4.0 30,458 2/12/2024
1.3.0 24,375 1/18/2024
1.2.0 25,962 11/22/2023
1.1.0 13,827 10/20/2023
1.0.2 54,116 9/27/2023
1.0.1 1,946 9/21/2023
1.0.0 5,757 9/7/2023
1.0.0-rc.2 15,748 8/3/2023
1.0.0-rc.1 4,205 6/27/2023