# Handle adding automatic instrumentation to application with existing OpenTelemetry SDK and instrumentation references This document explains how OpenTelemetry automatic instrumentation interacts with applications that already include references to the OpenTelemetry SDK or instrumentation libraries. It covers the role and impact of the `OTEL_DOTNET_AUTO_SETUP_SDK` environment variable and provides troubleshooting guidance for conflicts between automatic instrumentation and existing references. The objective is to help users understand and effectively integrate OpenTelemetry automatic instrumentation into their applications. ## Interaction with existing OpenTelemetry SDK and instrumentation references OpenTelemetry automatic instrumentation enhances .NET applications by automatically injecting and configuring the OpenTelemetry .NET SDK and adding OpenTelemetry instrumentation to key packages and APIs that the application uses. For applications without existing OpenTelemetry references, the process is seamless. However, for applications that already include OpenTelemetry SDK or instrumentation libraries, the interaction requires careful management to avoid conflicts. ### The `OTEL_DOTNET_AUTO_SETUP_SDK` environment variable The `OTEL_DOTNET_AUTO_SETUP_SDK` environment variable plays a crucial role in managing the interaction between OpenTelemetry automatic instrumentation and existing OpenTelemetry references within an application. When set to `true`, this environment variable instructs the automatic instrumentation to automatically set up the OpenTelemetry SDK, ensuring that it is properly configured to work with the instrumentation injected by the automatic instrumentation. This automatic setup is particularly useful in scenarios where the application has its own references to OpenTelemetry libraries, as it helps to harmonize the configuration and ensure that telemetry data is collected and exported as expected. ### Impact on applications The presence of the `OTEL_DOTNET_AUTO_SETUP_SDK` environment variable and its configuration can significantly impact how telemetry data is collected and exported in applications with existing OpenTelemetry references. When enabled, it ensures that the OpenTelemetry SDK is configured in a way that complements the automatic instrumentation, thereby enhancing the telemetry data collected without causing conflicts or duplication. ### Troubleshooting When there are conflicts within an application between the OpenTelemetry automatic instrumentation and existing OpenTelemetry references, try these troubleshooting steps: 1. Verify that the `OTEL_DOTNET_AUTO_SETUP_SDK` environment variable is set to `true` to allow the automatic instrumentation to manage the SDK setup. 2. Review the application's dependencies to identify any conflicting versions of OpenTelemetry libraries and resolve them by aligning with the versions used by the automatic instrumentation. 3. Consult the [troubleshooting guide](troubleshooting.md) for additional advice on resolving specific issues related to OpenTelemetry automatic instrumentation.