@azure/mcp-win32-x64
Version:
Azure MCP Server - Model Context Protocol implementation for Azure, for win32 on x64
93 lines (67 loc) • 3.4 kB
Markdown
---
title: Application Insights 2.x to 3.x — No-Code-Change Migration
category: migration
applies-to: 3.x
---
# App Insights 2.x → 3.x — No Code Change
## When this applies
Your migration requires **only a package upgrade** (no code changes) if both of these are true:
1. You call `AddApplicationInsightsTelemetry()` with no arguments, an `IConfiguration`, or with options that only set **unchanged properties**.
2. You do not use any **removed extension methods** (`UseApplicationInsights()`, `AddApplicationInsightsTelemetryProcessor<T>()`, `ConfigureTelemetryModule<T>()`).
### Unchanged properties (safe to keep as-is)
| Property | Default |
|---|---|
| `ConnectionString` | `null` |
| `ApplicationVersion` | Entry assembly version |
| `EnableQuickPulseMetricStream` | `true` |
| `EnablePerformanceCounterCollectionModule` | `true` |
| `EnableDependencyTrackingTelemetryModule` | `true` |
| `EnableRequestTrackingTelemetryModule` | `true` |
| `AddAutoCollectedMetricExtractor` | `true` |
| `EnableAuthenticationTrackingJavaScript` | `false` |
If your code only uses these properties (or none at all), **and** does not use `ITelemetryInitializer` or `ITelemetryProcessor`, no code changes are needed. (`TelemetryClient` still works in 3.x — existing usage does not block a no-code-change upgrade.)
## Migration steps
### 1. Update the package
```xml
<PackageReference Include="Microsoft.ApplicationInsights.AspNetCore" Version="3.*" />
```
### 2. Build and run
That's it. No code changes required.
## Examples that work without changes
**Parameterless call:**
```csharp
using Microsoft.Extensions.DependencyInjection;
var builder = WebApplication.CreateBuilder(args);
builder.Services.AddApplicationInsightsTelemetry();
var app = builder.Build();
```
**IConfiguration overload:**
```csharp
using Microsoft.Extensions.DependencyInjection;
var builder = WebApplication.CreateBuilder(args);
builder.Services.AddApplicationInsightsTelemetry(builder.Configuration);
var app = builder.Build();
```
**Options with only unchanged properties:**
```csharp
using Microsoft.Extensions.DependencyInjection;
using Microsoft.ApplicationInsights.AspNetCore.Extensions;
var builder = WebApplication.CreateBuilder(args);
builder.Services.AddApplicationInsightsTelemetry(options =>
{
options.ConnectionString = "InstrumentationKey=...;IngestionEndpoint=...";
options.EnableQuickPulseMetricStream = true;
options.EnableDependencyTrackingTelemetryModule = true;
});
var app = builder.Build();
```
All three examples above work identically in 2.x and 3.x.
## What changes under the hood
Even though your code stays the same, 3.x brings these improvements automatically:
- Telemetry is now collected via OpenTelemetry — better standards alignment and ecosystem compatibility.
- `TracesPerSecond` (effective default `5`) provides rate-limited sampling out of the box. No configuration needed.
- Logging is integrated automatically — `ILogger` output is exported to Application Insights without additional setup.
- Azure resource detection (App Service, VM) happens automatically.
## See also
- Application Insights 2.x to 3.x Code Migration(see in appinsights-2x-to-3x-code-migration.md)
- AddApplicationInsightsTelemetry API reference(see in AddApplicationInsightsTelemetry.md)