Skip to content

How to Migrate from Application Insights to OpenTelemetry in Azure

application insights to open telemetry migration

As the Azure ecosystem evolves, Microsoft is consolidating its observability tooling. One key shift is the move away from legacy Application Insights-specific NuGet packages towards an OpenTelemetry-based approach, aligned with the OpenTelemetry standard.

In this post, we’ll explore what’s changing, why it matters, and how to migrate your .NET applications to OpenTelemetry with Azure Monitor integration.

Why Microsoft Is Moving to OpenTelemetry

Microsoft has marked the Microsoft.ApplicationInsights.* SDKs as feature-complete, meaning no new features will be added — only critical fixes will be provided. The company now recommends migrating to OpenTelemetry-based packages for all new development and future-proof instrumentation.

azure application insights recommend to migrate to open telemetry

Why This Matters

OpenTelemetry is a vendor-neutral, open standard maintained by the Cloud Native Computing Foundation (CNCF). It provides consistent instrumentation for traces, metrics, and logs across platforms and tools, enabling better observability for modern, distributed applications.

Key Benefits for Azure Engineers

  • Enables integration with open-source tools like Prometheus, Grafana, Jaeger, and Zipkin
  • Seamlessly connects with Azure Monitor through the OpenTelemetry exporter
  • Reduces vendor lock-in and supports hybrid observability strategies
  • Unified APIs for metrics, traces, and logs

Microsoft’s official announcement

Does This Migration Affect You?

Yes, if your application uses any of the following NuGet packages, for exa

  • Microsoft.ApplicationInsights.Web
  • Microsoft.ApplicationInsights.AspNetCore
  • Microsoft.ApplicationInsights.WorkerService
  • Other Microsoft.ApplicationInsights.* NuGet packages (e.g. WindowsServer, DependencyCollector, PerformanceCounterCollector)

These are now deprecated. Microsoft has confirmed that no new features will be added, and future investment is focused entirely on OpenTelemetry.

A Look at the New Implementation

Here’s what your new setup might look like in an ASP.NET Core app:

C#
using Azure.Monitor.OpenTelemetry.AspNetCore;

var builder = WebApplication.CreateBuilder(args);

// Configure OpenTelemetry with Azure Monitor exporter
builder.Services.AddOpenTelemetry().UseAzureMonitor();

var app = builder.Build();

app.Run();

There’s no need to set the connection string manually in code — the SDK automatically reads the environment variable APPLICATIONINSIGHTS_CONNECTION_STRING.

Still using instrumentation keys? It’s time to migrate to application insights connection strings. Microsoft has deprecated instrumentation keys for all new Application Insights resources.

Migration Guide: From App Insights to OpenTelemetry

Although the migration is fairly straightforward, it’s not just a NuGet update. Here are the steps you should follow:

Step 1 – Remove Legacy Packages

Uninstall any Microsoft.ApplicationInsights.* packages from your project.

Step 2 – Add the New SDK

Add the new package:

C#
dotnet add package Azure.Monitor.OpenTelemetry.AspNetCore

Step 3 – Configure OpenTelemetry in Startup

Use the new AddOpenTelemetry().UseAzureMonitor() pattern, as shown earlier.

Step 4 – Update Environment Configuration

Ensure APPLICATIONINSIGHTS_CONNECTION_STRING is correctly configured. This can be set via:

  • Azure App Service application settings
  • Azure Functions configuration
  • Environment variables in your container or pipeline

Step 5 – Validate Telemetry

After deployment, check:

  • Logs are flowing into Azure Monitor / Application Insights
  • Dependencies and custom events are showing correctly
  • Any custom telemetry processors are re-implemented using the OpenTelemetry pipeline

Final Thoughts

Microsoft’s transition to OpenTelemetry is part of a broader move toward modern, standardised observability in the cloud. For Azure engineers and architects, this shift brings better tooling, more flexibility, and a path toward unified telemetry across platforms.

If you’re still relying on legacy Application Insights SDKs, now’s the time to plan your migration and adopt the future of telemetry.