[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill-microsoft-applicationinsights-setup":3,"mdc--3bc047-key":41,"related-repo-microsoft-applicationinsights-setup":2274,"related-org-microsoft-applicationinsights-setup":2284},{"slug":4,"name":4,"fn":5,"description":6,"org":7,"tags":11,"stars":25,"repoUrl":26,"updatedAt":27,"license":28,"forks":29,"topics":30,"repo":36,"sourceUrl":39,"mdContent":40},"applicationinsights-setup","set up Azure Application Insights in .NET","Sets up, migrates, or enhances Azure Monitor Application Insights in .NET applications. Detects application type and existing instrumentation automatically. Use when adding Application Insights, Azure Monitor, observability, or telemetry to ASP.NET Core, Worker Service, ASP.NET Classic, or Console apps, upgrading from Application Insights 2.x to 3.x, migrating from TelemetryClient to OpenTelemetry, or adding Entity Framework, Redis, SQL, or OTLP telemetry to apps already using Application Insights.\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},"microsoft","Microsoft","https:\u002F\u002Fpexgzepcugksgbtrxkhf.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Forg-logos\u002Fmicrosoft.png",[12,16,19,22],{"name":13,"slug":14,"type":15},"Observability","observability","tag",{"name":17,"slug":18,"type":15},"Application Insights","application-insights",{"name":20,"slug":21,"type":15},"Azure","azure",{"name":23,"slug":24,"type":15},".NET","dotnet",607,"https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002FApplicationInsights-dotnet","2026-04-06T18:37:55.007524",null,298,[18,21,31,32,33,14,34,35],"distributed-tracing","logging","monitoring","sdk","telemetry",{"repoUrl":26,"stars":25,"forks":29,"topics":37,"description":38},[18,21,31,32,33,14,34,35],"ApplicationInsights-dotnet","https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002FApplicationInsights-dotnet\u002Ftree\u002FHEAD\u002Fskills\u002Fapplicationinsights-setup","---\nname: applicationinsights-setup\ndescription: >\n  Sets up, migrates, or enhances Azure Monitor Application Insights in .NET\n  applications. Detects application type and existing instrumentation\n  automatically. Use when adding Application Insights, Azure Monitor,\n  observability, or telemetry to ASP.NET Core, Worker Service, ASP.NET Classic,\n  or Console apps, upgrading from Application Insights 2.x to 3.x, migrating\n  from TelemetryClient to OpenTelemetry, or adding Entity Framework, Redis, SQL,\n  or OTLP telemetry to apps already using Application Insights.\nmetadata:\n  author: Microsoft\n  version: 1.0.0\ncompatibility: Requires filesystem access to read .csproj files and source code. Works in GitHub Copilot, Cursor, Codex, Claude Code, Claude.ai with code execution, and any agent with file read capability.\n---\n\n# Application Insights Setup\n\nThis skill detects your .NET application type and instrumentation state, then guides you through the correct setup, migration, or enhancement path.\n\n## Step 1 — Detect Application Type\n\nFind all `.csproj` files (also `.fsproj`, `.vbproj`) in the workspace. If multiple non-library projects exist, ask the user which one to instrument before proceeding. Also check for `global.json` as a .NET workspace indicator.\n\nFirst, check the `\u003CProject Sdk=\"...\">` attribute in the `.csproj`:\n\n### SDK-style projects (modern format — has `Sdk` attribute)\n\n| Signal | App Type |\n|---|---|\n| `Sdk=\"Microsoft.NET.Sdk.Web\"` | **ASP.NET Core** |\n| `Sdk=\"Microsoft.NET.Sdk.Worker\"` | **Worker Service** |\n| `Microsoft.Azure.Functions.Worker` or `Microsoft.NET.Sdk.Functions` in PackageReference | **Azure Functions** — not supported by this skill; refer to Azure Functions monitoring docs |\n| `Sdk=\"Microsoft.NET.Sdk\"` with `\u003COutputType>Exe\u003C\u002FOutputType>` | **Console App** |\n| `Sdk=\"Microsoft.NET.Sdk\"` with `\u003COutputType>Library\u003C\u002FOutputType>` or no OutputType | **Library** — does not get pipeline setup (no `AddApplicationInsightsTelemetry()` \u002F `UseAzureMonitor()`), but may need **migration** if it uses `TelemetryClient`, `ITelemetryInitializer`, `ITelemetryProcessor`, or other 2.x APIs. Check for existing Application Insights package references and apply migration guidance if found. |\n\nFor ASP.NET Core \u002F Worker Service, read `Program.cs` (or `Startup.cs` in older projects) to confirm hosting pattern:\n- `WebApplication.CreateBuilder` → ASP.NET Core minimal APIs\n- `Host.CreateDefaultBuilder` or `Host.CreateApplicationBuilder` → Generic Host\n- `CreateWebHostBuilder` \u002F `WebHost.CreateDefaultBuilder` → Legacy ASP.NET Core host\n\n### Legacy projects (no `Sdk` attribute — old .csproj format)\n\nIf the `\u003CProject>` element has no `Sdk` attribute, this is a legacy .NET Framework project. Detect the type using file and reference patterns:\n\n| Signal (ANY ONE is sufficient) | App Type |\n|---|---|\n| `Web.config` with `\u003Csystem.web>` section | **ASP.NET Classic** |\n| `System.Web` in assembly references (`\u003CReference Include=\"System.Web\" \u002F>`) | **ASP.NET Classic** |\n| `Microsoft.AspNet.*` packages in `packages.config` | **ASP.NET Classic** |\n| `.svc` files OR `System.ServiceModel` reference OR `[ServiceContract]` attributes | **WCF Service** — not supported by this skill; manual onboarding required |\n| `Microsoft.Owin` or `Owin` in `packages.config`, or `IAppBuilder`\u002F`IOwinContext` usage | **OWIN App** — not supported by this skill; manual onboarding required |\n| `\u003COutputType>Exe\u003C\u002FOutputType>` or `\u003COutputType>WinExe\u003C\u002FOutputType>` with no web signals | **Console App** |\n\nFor ASP.NET Classic, further sub-type (all use the same setup):\n- `Microsoft.AspNet.Mvc` package + `Controllers\u002F` folder → **ASP.NET MVC**\n- `.aspx` or `.ascx` files → **ASP.NET WebForms**\n- Otherwise → **ASP.NET Classic (generic)**\n\n**Entry point**: ASP.NET Classic uses `Global.asax.cs` as its entry point (not `Program.cs`).\n\n## Step 2 — Detect Existing Instrumentation\n\nCheck multiple sources for evidence of existing instrumentation:\n\n**Source 1 — Package references**: Scan `PackageReference` nodes in `.csproj` (check both `Version` and `VersionOverride` attributes for central package management). For legacy projects, scan `\u003Cpackage>` elements in `packages.config`. Version check: major version ≥ 3 → target version; handles wildcards (`3.*`), pre-release suffixes, and `v` prefix.\n\n**Source 2 — Config files**: Check for `applicationinsights.config` (its presence indicates existing Classic SDK). Scan `appsettings*.json` for `InstrumentationKey` or `ApplicationInsights` sections.\n\n**Detection priority** (if multiple types found): Application Insights SDK > plain OpenTelemetry.\n\n| Package Found | Version | State |\n|---|---|---|\n| `Azure.Monitor.OpenTelemetry.AspNetCore` or `Azure.Monitor.OpenTelemetry.Exporter` | any | **Azure Monitor Distro** — not covered by this skill. This skill covers Application Insights 3.x SDK only. Inform the user and refer to Azure Monitor OpenTelemetry Distro documentation. |\n| `Microsoft.ApplicationInsights.AspNetCore` | ≥ 3.0 | **Already on 3.x** → go to Enhancement |\n| `Microsoft.ApplicationInsights.AspNetCore` | \u003C 3.0 | **Brownfield 2.x** → go to Migration |\n| `Microsoft.ApplicationInsights.WorkerService` | ≥ 3.0 | **Already on 3.x** → go to Enhancement |\n| `Microsoft.ApplicationInsights.WorkerService` | \u003C 3.0 | **Brownfield 2.x** → go to Migration |\n| `Microsoft.ApplicationInsights.Web` | ≥ 3.0 | **Already on 3.x** → go to Enhancement |\n| `Microsoft.ApplicationInsights.Web` | \u003C 3.0 | **Brownfield 2.x** → go to Migration |\n| `Microsoft.ApplicationInsights` (base only) | ≥ 3.0 | **Already on 3.x** → go to Enhancement |\n| `Microsoft.ApplicationInsights` (base only) | \u003C 3.0 | **Brownfield 2.x** → go to Migration (Console path) |\n| `OpenTelemetry` \u002F `OpenTelemetry.Api` \u002F `OpenTelemetry.Extensions.Hosting` only (no AI SDK) | any | **OpenTelemetry only** → go to Enhancement (add Azure Monitor exporter) |\n| None of the above, no `applicationinsights.config` | — | **Greenfield** → go to New Setup |\n\n## Step 3 — Route to the Correct Guide\n\n### Greenfield (No existing Application Insights)\n\nBefore making any code changes, read [references\u002Fopentelemetry-pipeline.md](references\u002Fopentelemetry-pipeline.md) to understand the architecture.\n\nThen follow the guide for your app type (all greenfield paths use Application Insights 3.x SDK):\n- **ASP.NET Core** → read [references\u002Faspnetcore-greenfield.md](references\u002Faspnetcore-greenfield.md)\n- **Worker Service** → read [references\u002Fworkerservice-greenfield.md](references\u002Fworkerservice-greenfield.md)\n- **ASP.NET Classic** → read [references\u002Faspnet-classic-greenfield.md](references\u002Faspnet-classic-greenfield.md)\n- **Console App** → read [references\u002Fconsole-setup.md](references\u002Fconsole-setup.md)\n\n### Migration (Application Insights 2.x → 3.x)\n\nFirst, read [references\u002Fopentelemetry-pipeline.md](references\u002Fopentelemetry-pipeline.md) to understand how 3.x differs from 2.x.\n\nThen scan the codebase using the template in [references\u002Fanalysis-template.md](references\u002Fanalysis-template.md). This identifies which migration guides are relevant.\n\nBased on findings, read the applicable migration references:\n- **All migrations**: start with [references\u002Fcode-migration.md](references\u002Fcode-migration.md) (property changes, removed APIs)\n- **ITelemetryInitializer found** → [references\u002Finitializer-migration.md](references\u002Finitializer-migration.md)\n- **ITelemetryProcessor found** → [references\u002Fprocessor-migration.md](references\u002Fprocessor-migration.md)\n- **Custom sampling** → [references\u002Fsampling-migration.md](references\u002Fsampling-migration.md)\n- **ILogger \u002F logging config** → [references\u002Filogger-migration.md](references\u002Filogger-migration.md)\n- **TelemetryClient breaking changes** → [references\u002Ftelemetryclient-migration.md](references\u002Ftelemetryclient-migration.md)\n- **Dependency tracking config** → [references\u002Fdependency-tracking.md](references\u002Fdependency-tracking.md)\n- **AAD \u002F Token Credential authentication** → [references\u002Faad-authentication-migration.md](references\u002Faad-authentication-migration.md)\n- **Live Metrics config** → [references\u002Flive-metrics-migration.md](references\u002Flive-metrics-migration.md)\n\nIf the scan finds NO code changes needed (only unchanged properties used, no removed APIs), the migration is just a package upgrade — read [references\u002Fno-code-change-migration.md](references\u002Fno-code-change-migration.md). Note: this path does NOT apply to Classic ASP.NET — Classic always requires config changes.\n\n**Classic ASP.NET migration extras**: In addition to the references above, Classic ASP.NET brownfield migration requires:\n- Rewrite `applicationinsights.config` to 3.x format: remove `\u003CTelemetryInitializers>`, `\u003CTelemetryModules>`, `\u003CTelemetryProcessors>`, `\u003CTelemetryChannel>` sections; replace `\u003CInstrumentationKey>` with `\u003CConnectionString>`\n- Update `Web.config`: remove `TelemetryCorrelationHttpModule`; verify `ApplicationInsightsHttpModule` and `TelemetryHttpModule` are present in `\u003Csystem.webServer>\u003Cmodules>`\n- Remove satellite packages in order: `Microsoft.ApplicationInsights.WindowsServer`, `.WindowsServer.TelemetryChannel`, `.DependencyCollector`, `.PerfCounterCollector`, `.Agent.Intercept`, `Microsoft.AspNet.TelemetryCorrelation`\n- Replace `TelemetryConfiguration.Active` with `TelemetryConfiguration.CreateDefault()`\n- Connection string goes in `ApplicationInsights.config` `\u003CConnectionString>` element (not `appsettings.json`)\n- Use `config.ConfigureOpenTelemetryBuilder(otel => ...)` for all extensibility (DI-based methods are not available)\n\n### Enhancement (Already on 3.x)\n\nAsk the user what they want to add, then read the relevant reference.\n\n> **DI vs Non-DI:** The enhancement references show DI patterns (`builder.Services.Configure*`). For Console or Classic ASP.NET apps that use `TelemetryConfiguration` directly, replace `builder.Services.ConfigureOpenTelemetryTracerProvider(tracing => ...)` with `config.ConfigureOpenTelemetryBuilder(otel => otel.WithTracing(tracing => ...))`. Each reference file includes a \"Non-DI Usage\" section.\n\n- **Entity Framework Core** → [references\u002Fentity-framework.md](references\u002Fentity-framework.md)\n- **Redis (StackExchange.Redis)** → [references\u002Fredis-cache.md](references\u002Fredis-cache.md)\n- **SQL Client** → [references\u002Fsql-client.md](references\u002Fsql-client.md)\n- **HTTP Client\u002FServer Enrichment** → [references\u002Fhttp-instrumentation.md](references\u002Fhttp-instrumentation.md)\n- **OTLP Exporter** → [references\u002Fotlp-exporter.md](references\u002Fotlp-exporter.md)\n- **Console Exporter** (dev\u002Fdebug only) → `OpenTelemetry.Exporter.Console` package, `.AddConsoleExporter()` on each signal\n- **Sampling Configuration** → [references\u002Fsampling-migration.md](references\u002Fsampling-migration.md) (applies to enhancement too)\n- **Custom Processors** (filtering\u002Fenrichment) → [references\u002Fcustom-processors.md](references\u002Fcustom-processors.md)\n- **Custom Activities** (distributed tracing) → [references\u002Fcustom-activities.md](references\u002Fcustom-activities.md)\n- **Custom Logging** (ILogger best practices) → [references\u002Fcustom-logging.md](references\u002Fcustom-logging.md)\n- **Custom Metrics** → [references\u002Fcustom-metrics.md](references\u002Fcustom-metrics.md)\n\n## Important Rules\n\n1. **Learn first, act second**: Always read the relevant concept or migration reference BEFORE making code changes.\n2. **Connection string, not instrumentation key**: Always use `ConnectionString`, never `InstrumentationKey`. The environment variable is `APPLICATIONINSIGHTS_CONNECTION_STRING`. For Classic ASP.NET, connection string goes in `ApplicationInsights.config`, not `appsettings.json`.\n3. **Application Insights 3.x SDK only**: This skill covers `Microsoft.ApplicationInsights.AspNetCore` \u002F `.WorkerService` \u002F `.Web`. The Azure Monitor OpenTelemetry Distro (`Azure.Monitor.OpenTelemetry.AspNetCore`) is a separate product — do not mix them, and do not use this skill for Distro-based apps.\n4. **Classic ASP.NET uses Package Manager Console**: Use `Install-Package` in Visual Studio, not `dotnet add package`.\n5. **Verify after changes**: Build the project, run it, and confirm telemetry appears in Azure Portal (Live Metrics for immediate feedback, Transaction Search for 2-5 minute delayed data).\n6. **Unsupported app types**: If the detected type is WCF Service, OWIN App, or Azure Functions, inform the user that automated setup is not available and point them to the Azure Monitor documentation for manual onboarding.\n7. **Error handling**: If no `.csproj`\u002F`.fsproj`\u002F`.vbproj` files are found, report that no .NET project was detected rather than guessing.\n\n## Examples\n\nExample queries that should use this skill:\n- \"Add Application Insights to my app\"\n- \"Set up Azure Monitor telemetry\"\n- \"Add observability to my ASP.NET Core project\"\n- \"Migrate from Application Insights 2.x to 3.x\"\n- \"Upgrade my Application Insights SDK\"\n- \"I'm getting deprecated API warnings from Application Insights\"\n- \"Add Redis monitoring to my app that already has Application Insights\"\n- \"How do I add Entity Framework telemetry\"\n- \"Set up OTLP exporter alongside Application Insights\"\n\n## Troubleshooting\n\n**No telemetry appearing**: Check that `APPLICATIONINSIGHTS_CONNECTION_STRING` is set or connection string is configured in `appsettings.json`. Verify the app targets `net8.0` or later for ASP.NET Core 3.x packages.\n\n**Package version conflicts**: Ensure all `Microsoft.ApplicationInsights.*` packages are on the same major version. Do not mix 2.x and 3.x packages.\n\n**Build errors after migration**: Check for removed APIs listed in [references\u002Fcode-migration.md](references\u002Fcode-migration.md). Common: `InstrumentationKey` property, `ITelemetryInitializer`, `ITelemetryProcessor`, `TrackPageView`.\n",{"data":42,"body":46},{"name":4,"description":6,"metadata":43,"compatibility":45},{"author":9,"version":44},"1.0.0","Requires filesystem access to read .csproj files and source code. Works in GitHub Copilot, Cursor, Codex, Claude Code, Claude.ai with code execution, and any agent with file read capability.",{"type":47,"children":48},"root",[49,58,64,71,109,129,144,348,369,421,434,454,680,685,745,770,776,781,853,894,904,1232,1238,1244,1257,1262,1318,1324,1335,1347,1352,1485,1497,1507,1709,1715,1720,1765,1938,1944,2117,2123,2128,2176,2182,2214,2232],{"type":50,"tag":51,"props":52,"children":54},"element","h1",{"id":53},"application-insights-setup",[55],{"type":56,"value":57},"text","Application Insights Setup",{"type":50,"tag":59,"props":60,"children":61},"p",{},[62],{"type":56,"value":63},"This skill detects your .NET application type and instrumentation state, then guides you through the correct setup, migration, or enhancement path.",{"type":50,"tag":65,"props":66,"children":68},"h2",{"id":67},"step-1-detect-application-type",[69],{"type":56,"value":70},"Step 1 — Detect Application Type",{"type":50,"tag":59,"props":72,"children":73},{},[74,76,83,85,91,93,99,101,107],{"type":56,"value":75},"Find all ",{"type":50,"tag":77,"props":78,"children":80},"code",{"className":79},[],[81],{"type":56,"value":82},".csproj",{"type":56,"value":84}," files (also ",{"type":50,"tag":77,"props":86,"children":88},{"className":87},[],[89],{"type":56,"value":90},".fsproj",{"type":56,"value":92},", ",{"type":50,"tag":77,"props":94,"children":96},{"className":95},[],[97],{"type":56,"value":98},".vbproj",{"type":56,"value":100},") in the workspace. If multiple non-library projects exist, ask the user which one to instrument before proceeding. Also check for ",{"type":50,"tag":77,"props":102,"children":104},{"className":103},[],[105],{"type":56,"value":106},"global.json",{"type":56,"value":108}," as a .NET workspace indicator.",{"type":50,"tag":59,"props":110,"children":111},{},[112,114,120,122,127],{"type":56,"value":113},"First, check the ",{"type":50,"tag":77,"props":115,"children":117},{"className":116},[],[118],{"type":56,"value":119},"\u003CProject Sdk=\"...\">",{"type":56,"value":121}," attribute in the ",{"type":50,"tag":77,"props":123,"children":125},{"className":124},[],[126],{"type":56,"value":82},{"type":56,"value":128},":",{"type":50,"tag":130,"props":131,"children":133},"h3",{"id":132},"sdk-style-projects-modern-format-has-sdk-attribute",[134,136,142],{"type":56,"value":135},"SDK-style projects (modern format — has ",{"type":50,"tag":77,"props":137,"children":139},{"className":138},[],[140],{"type":56,"value":141},"Sdk",{"type":56,"value":143}," attribute)",{"type":50,"tag":145,"props":146,"children":147},"table",{},[148,167],{"type":50,"tag":149,"props":150,"children":151},"thead",{},[152],{"type":50,"tag":153,"props":154,"children":155},"tr",{},[156,162],{"type":50,"tag":157,"props":158,"children":159},"th",{},[160],{"type":56,"value":161},"Signal",{"type":50,"tag":157,"props":163,"children":164},{},[165],{"type":56,"value":166},"App Type",{"type":50,"tag":168,"props":169,"children":170},"tbody",{},[171,193,213,245,273],{"type":50,"tag":153,"props":172,"children":173},{},[174,184],{"type":50,"tag":175,"props":176,"children":177},"td",{},[178],{"type":50,"tag":77,"props":179,"children":181},{"className":180},[],[182],{"type":56,"value":183},"Sdk=\"Microsoft.NET.Sdk.Web\"",{"type":50,"tag":175,"props":185,"children":186},{},[187],{"type":50,"tag":188,"props":189,"children":190},"strong",{},[191],{"type":56,"value":192},"ASP.NET Core",{"type":50,"tag":153,"props":194,"children":195},{},[196,205],{"type":50,"tag":175,"props":197,"children":198},{},[199],{"type":50,"tag":77,"props":200,"children":202},{"className":201},[],[203],{"type":56,"value":204},"Sdk=\"Microsoft.NET.Sdk.Worker\"",{"type":50,"tag":175,"props":206,"children":207},{},[208],{"type":50,"tag":188,"props":209,"children":210},{},[211],{"type":56,"value":212},"Worker Service",{"type":50,"tag":153,"props":214,"children":215},{},[216,235],{"type":50,"tag":175,"props":217,"children":218},{},[219,225,227,233],{"type":50,"tag":77,"props":220,"children":222},{"className":221},[],[223],{"type":56,"value":224},"Microsoft.Azure.Functions.Worker",{"type":56,"value":226}," or ",{"type":50,"tag":77,"props":228,"children":230},{"className":229},[],[231],{"type":56,"value":232},"Microsoft.NET.Sdk.Functions",{"type":56,"value":234}," in PackageReference",{"type":50,"tag":175,"props":236,"children":237},{},[238,243],{"type":50,"tag":188,"props":239,"children":240},{},[241],{"type":56,"value":242},"Azure Functions",{"type":56,"value":244}," — not supported by this skill; refer to Azure Functions monitoring docs",{"type":50,"tag":153,"props":246,"children":247},{},[248,265],{"type":50,"tag":175,"props":249,"children":250},{},[251,257,259],{"type":50,"tag":77,"props":252,"children":254},{"className":253},[],[255],{"type":56,"value":256},"Sdk=\"Microsoft.NET.Sdk\"",{"type":56,"value":258}," with ",{"type":50,"tag":77,"props":260,"children":262},{"className":261},[],[263],{"type":56,"value":264},"\u003COutputType>Exe\u003C\u002FOutputType>",{"type":50,"tag":175,"props":266,"children":267},{},[268],{"type":50,"tag":188,"props":269,"children":270},{},[271],{"type":56,"value":272},"Console App",{"type":50,"tag":153,"props":274,"children":275},{},[276,293],{"type":50,"tag":175,"props":277,"children":278},{},[279,284,285,291],{"type":50,"tag":77,"props":280,"children":282},{"className":281},[],[283],{"type":56,"value":256},{"type":56,"value":258},{"type":50,"tag":77,"props":286,"children":288},{"className":287},[],[289],{"type":56,"value":290},"\u003COutputType>Library\u003C\u002FOutputType>",{"type":56,"value":292}," or no OutputType",{"type":50,"tag":175,"props":294,"children":295},{},[296,301,303,309,311,317,319,324,326,332,333,339,340,346],{"type":50,"tag":188,"props":297,"children":298},{},[299],{"type":56,"value":300},"Library",{"type":56,"value":302}," — does not get pipeline setup (no ",{"type":50,"tag":77,"props":304,"children":306},{"className":305},[],[307],{"type":56,"value":308},"AddApplicationInsightsTelemetry()",{"type":56,"value":310}," \u002F ",{"type":50,"tag":77,"props":312,"children":314},{"className":313},[],[315],{"type":56,"value":316},"UseAzureMonitor()",{"type":56,"value":318},"), but may need ",{"type":50,"tag":188,"props":320,"children":321},{},[322],{"type":56,"value":323},"migration",{"type":56,"value":325}," if it uses ",{"type":50,"tag":77,"props":327,"children":329},{"className":328},[],[330],{"type":56,"value":331},"TelemetryClient",{"type":56,"value":92},{"type":50,"tag":77,"props":334,"children":336},{"className":335},[],[337],{"type":56,"value":338},"ITelemetryInitializer",{"type":56,"value":92},{"type":50,"tag":77,"props":341,"children":343},{"className":342},[],[344],{"type":56,"value":345},"ITelemetryProcessor",{"type":56,"value":347},", or other 2.x APIs. Check for existing Application Insights package references and apply migration guidance if found.",{"type":50,"tag":59,"props":349,"children":350},{},[351,353,359,361,367],{"type":56,"value":352},"For ASP.NET Core \u002F Worker Service, read ",{"type":50,"tag":77,"props":354,"children":356},{"className":355},[],[357],{"type":56,"value":358},"Program.cs",{"type":56,"value":360}," (or ",{"type":50,"tag":77,"props":362,"children":364},{"className":363},[],[365],{"type":56,"value":366},"Startup.cs",{"type":56,"value":368}," in older projects) to confirm hosting pattern:",{"type":50,"tag":370,"props":371,"children":372},"ul",{},[373,385,403],{"type":50,"tag":374,"props":375,"children":376},"li",{},[377,383],{"type":50,"tag":77,"props":378,"children":380},{"className":379},[],[381],{"type":56,"value":382},"WebApplication.CreateBuilder",{"type":56,"value":384}," → ASP.NET Core minimal APIs",{"type":50,"tag":374,"props":386,"children":387},{},[388,394,395,401],{"type":50,"tag":77,"props":389,"children":391},{"className":390},[],[392],{"type":56,"value":393},"Host.CreateDefaultBuilder",{"type":56,"value":226},{"type":50,"tag":77,"props":396,"children":398},{"className":397},[],[399],{"type":56,"value":400},"Host.CreateApplicationBuilder",{"type":56,"value":402}," → Generic Host",{"type":50,"tag":374,"props":404,"children":405},{},[406,412,413,419],{"type":50,"tag":77,"props":407,"children":409},{"className":408},[],[410],{"type":56,"value":411},"CreateWebHostBuilder",{"type":56,"value":310},{"type":50,"tag":77,"props":414,"children":416},{"className":415},[],[417],{"type":56,"value":418},"WebHost.CreateDefaultBuilder",{"type":56,"value":420}," → Legacy ASP.NET Core host",{"type":50,"tag":130,"props":422,"children":424},{"id":423},"legacy-projects-no-sdk-attribute-old-csproj-format",[425,427,432],{"type":56,"value":426},"Legacy projects (no ",{"type":50,"tag":77,"props":428,"children":430},{"className":429},[],[431],{"type":56,"value":141},{"type":56,"value":433}," attribute — old .csproj format)",{"type":50,"tag":59,"props":435,"children":436},{},[437,439,445,447,452],{"type":56,"value":438},"If the ",{"type":50,"tag":77,"props":440,"children":442},{"className":441},[],[443],{"type":56,"value":444},"\u003CProject>",{"type":56,"value":446}," element has no ",{"type":50,"tag":77,"props":448,"children":450},{"className":449},[],[451],{"type":56,"value":141},{"type":56,"value":453}," attribute, this is a legacy .NET Framework project. Detect the type using file and reference patterns:",{"type":50,"tag":145,"props":455,"children":456},{},[457,472],{"type":50,"tag":149,"props":458,"children":459},{},[460],{"type":50,"tag":153,"props":461,"children":462},{},[463,468],{"type":50,"tag":157,"props":464,"children":465},{},[466],{"type":56,"value":467},"Signal (ANY ONE is sufficient)",{"type":50,"tag":157,"props":469,"children":470},{},[471],{"type":56,"value":166},{"type":50,"tag":168,"props":473,"children":474},{},[475,504,533,560,600,653],{"type":50,"tag":153,"props":476,"children":477},{},[478,496],{"type":50,"tag":175,"props":479,"children":480},{},[481,487,488,494],{"type":50,"tag":77,"props":482,"children":484},{"className":483},[],[485],{"type":56,"value":486},"Web.config",{"type":56,"value":258},{"type":50,"tag":77,"props":489,"children":491},{"className":490},[],[492],{"type":56,"value":493},"\u003Csystem.web>",{"type":56,"value":495}," section",{"type":50,"tag":175,"props":497,"children":498},{},[499],{"type":50,"tag":188,"props":500,"children":501},{},[502],{"type":56,"value":503},"ASP.NET Classic",{"type":50,"tag":153,"props":505,"children":506},{},[507,526],{"type":50,"tag":175,"props":508,"children":509},{},[510,516,518,524],{"type":50,"tag":77,"props":511,"children":513},{"className":512},[],[514],{"type":56,"value":515},"System.Web",{"type":56,"value":517}," in assembly references (",{"type":50,"tag":77,"props":519,"children":521},{"className":520},[],[522],{"type":56,"value":523},"\u003CReference Include=\"System.Web\" \u002F>",{"type":56,"value":525},")",{"type":50,"tag":175,"props":527,"children":528},{},[529],{"type":50,"tag":188,"props":530,"children":531},{},[532],{"type":56,"value":503},{"type":50,"tag":153,"props":534,"children":535},{},[536,553],{"type":50,"tag":175,"props":537,"children":538},{},[539,545,547],{"type":50,"tag":77,"props":540,"children":542},{"className":541},[],[543],{"type":56,"value":544},"Microsoft.AspNet.*",{"type":56,"value":546}," packages in ",{"type":50,"tag":77,"props":548,"children":550},{"className":549},[],[551],{"type":56,"value":552},"packages.config",{"type":50,"tag":175,"props":554,"children":555},{},[556],{"type":50,"tag":188,"props":557,"children":558},{},[559],{"type":56,"value":503},{"type":50,"tag":153,"props":561,"children":562},{},[563,590],{"type":50,"tag":175,"props":564,"children":565},{},[566,572,574,580,582,588],{"type":50,"tag":77,"props":567,"children":569},{"className":568},[],[570],{"type":56,"value":571},".svc",{"type":56,"value":573}," files OR ",{"type":50,"tag":77,"props":575,"children":577},{"className":576},[],[578],{"type":56,"value":579},"System.ServiceModel",{"type":56,"value":581}," reference OR ",{"type":50,"tag":77,"props":583,"children":585},{"className":584},[],[586],{"type":56,"value":587},"[ServiceContract]",{"type":56,"value":589}," attributes",{"type":50,"tag":175,"props":591,"children":592},{},[593,598],{"type":50,"tag":188,"props":594,"children":595},{},[596],{"type":56,"value":597},"WCF Service",{"type":56,"value":599}," — not supported by this skill; manual onboarding required",{"type":50,"tag":153,"props":601,"children":602},{},[603,644],{"type":50,"tag":175,"props":604,"children":605},{},[606,612,613,619,621,626,628,634,636,642],{"type":50,"tag":77,"props":607,"children":609},{"className":608},[],[610],{"type":56,"value":611},"Microsoft.Owin",{"type":56,"value":226},{"type":50,"tag":77,"props":614,"children":616},{"className":615},[],[617],{"type":56,"value":618},"Owin",{"type":56,"value":620}," in ",{"type":50,"tag":77,"props":622,"children":624},{"className":623},[],[625],{"type":56,"value":552},{"type":56,"value":627},", or ",{"type":50,"tag":77,"props":629,"children":631},{"className":630},[],[632],{"type":56,"value":633},"IAppBuilder",{"type":56,"value":635},"\u002F",{"type":50,"tag":77,"props":637,"children":639},{"className":638},[],[640],{"type":56,"value":641},"IOwinContext",{"type":56,"value":643}," usage",{"type":50,"tag":175,"props":645,"children":646},{},[647,652],{"type":50,"tag":188,"props":648,"children":649},{},[650],{"type":56,"value":651},"OWIN App",{"type":56,"value":599},{"type":50,"tag":153,"props":654,"children":655},{},[656,673],{"type":50,"tag":175,"props":657,"children":658},{},[659,664,665,671],{"type":50,"tag":77,"props":660,"children":662},{"className":661},[],[663],{"type":56,"value":264},{"type":56,"value":226},{"type":50,"tag":77,"props":666,"children":668},{"className":667},[],[669],{"type":56,"value":670},"\u003COutputType>WinExe\u003C\u002FOutputType>",{"type":56,"value":672}," with no web signals",{"type":50,"tag":175,"props":674,"children":675},{},[676],{"type":50,"tag":188,"props":677,"children":678},{},[679],{"type":56,"value":272},{"type":50,"tag":59,"props":681,"children":682},{},[683],{"type":56,"value":684},"For ASP.NET Classic, further sub-type (all use the same setup):",{"type":50,"tag":370,"props":686,"children":687},{},[688,712,735],{"type":50,"tag":374,"props":689,"children":690},{},[691,697,699,705,707],{"type":50,"tag":77,"props":692,"children":694},{"className":693},[],[695],{"type":56,"value":696},"Microsoft.AspNet.Mvc",{"type":56,"value":698}," package + ",{"type":50,"tag":77,"props":700,"children":702},{"className":701},[],[703],{"type":56,"value":704},"Controllers\u002F",{"type":56,"value":706}," folder → ",{"type":50,"tag":188,"props":708,"children":709},{},[710],{"type":56,"value":711},"ASP.NET MVC",{"type":50,"tag":374,"props":713,"children":714},{},[715,721,722,728,730],{"type":50,"tag":77,"props":716,"children":718},{"className":717},[],[719],{"type":56,"value":720},".aspx",{"type":56,"value":226},{"type":50,"tag":77,"props":723,"children":725},{"className":724},[],[726],{"type":56,"value":727},".ascx",{"type":56,"value":729}," files → ",{"type":50,"tag":188,"props":731,"children":732},{},[733],{"type":56,"value":734},"ASP.NET WebForms",{"type":50,"tag":374,"props":736,"children":737},{},[738,740],{"type":56,"value":739},"Otherwise → ",{"type":50,"tag":188,"props":741,"children":742},{},[743],{"type":56,"value":744},"ASP.NET Classic (generic)",{"type":50,"tag":59,"props":746,"children":747},{},[748,753,755,761,763,768],{"type":50,"tag":188,"props":749,"children":750},{},[751],{"type":56,"value":752},"Entry point",{"type":56,"value":754},": ASP.NET Classic uses ",{"type":50,"tag":77,"props":756,"children":758},{"className":757},[],[759],{"type":56,"value":760},"Global.asax.cs",{"type":56,"value":762}," as its entry point (not ",{"type":50,"tag":77,"props":764,"children":766},{"className":765},[],[767],{"type":56,"value":358},{"type":56,"value":769},").",{"type":50,"tag":65,"props":771,"children":773},{"id":772},"step-2-detect-existing-instrumentation",[774],{"type":56,"value":775},"Step 2 — Detect Existing Instrumentation",{"type":50,"tag":59,"props":777,"children":778},{},[779],{"type":56,"value":780},"Check multiple sources for evidence of existing instrumentation:",{"type":50,"tag":59,"props":782,"children":783},{},[784,789,791,797,799,804,806,812,814,820,822,828,830,835,837,843,845,851],{"type":50,"tag":188,"props":785,"children":786},{},[787],{"type":56,"value":788},"Source 1 — Package references",{"type":56,"value":790},": Scan ",{"type":50,"tag":77,"props":792,"children":794},{"className":793},[],[795],{"type":56,"value":796},"PackageReference",{"type":56,"value":798}," nodes in ",{"type":50,"tag":77,"props":800,"children":802},{"className":801},[],[803],{"type":56,"value":82},{"type":56,"value":805}," (check both ",{"type":50,"tag":77,"props":807,"children":809},{"className":808},[],[810],{"type":56,"value":811},"Version",{"type":56,"value":813}," and ",{"type":50,"tag":77,"props":815,"children":817},{"className":816},[],[818],{"type":56,"value":819},"VersionOverride",{"type":56,"value":821}," attributes for central package management). For legacy projects, scan ",{"type":50,"tag":77,"props":823,"children":825},{"className":824},[],[826],{"type":56,"value":827},"\u003Cpackage>",{"type":56,"value":829}," elements in ",{"type":50,"tag":77,"props":831,"children":833},{"className":832},[],[834],{"type":56,"value":552},{"type":56,"value":836},". Version check: major version ≥ 3 → target version; handles wildcards (",{"type":50,"tag":77,"props":838,"children":840},{"className":839},[],[841],{"type":56,"value":842},"3.*",{"type":56,"value":844},"), pre-release suffixes, and ",{"type":50,"tag":77,"props":846,"children":848},{"className":847},[],[849],{"type":56,"value":850},"v",{"type":56,"value":852}," prefix.",{"type":50,"tag":59,"props":854,"children":855},{},[856,861,863,869,871,877,879,885,886,892],{"type":50,"tag":188,"props":857,"children":858},{},[859],{"type":56,"value":860},"Source 2 — Config files",{"type":56,"value":862},": Check for ",{"type":50,"tag":77,"props":864,"children":866},{"className":865},[],[867],{"type":56,"value":868},"applicationinsights.config",{"type":56,"value":870}," (its presence indicates existing Classic SDK). Scan ",{"type":50,"tag":77,"props":872,"children":874},{"className":873},[],[875],{"type":56,"value":876},"appsettings*.json",{"type":56,"value":878}," for ",{"type":50,"tag":77,"props":880,"children":882},{"className":881},[],[883],{"type":56,"value":884},"InstrumentationKey",{"type":56,"value":226},{"type":50,"tag":77,"props":887,"children":889},{"className":888},[],[890],{"type":56,"value":891},"ApplicationInsights",{"type":56,"value":893}," sections.",{"type":50,"tag":59,"props":895,"children":896},{},[897,902],{"type":50,"tag":188,"props":898,"children":899},{},[900],{"type":56,"value":901},"Detection priority",{"type":56,"value":903}," (if multiple types found): Application Insights SDK > plain OpenTelemetry.",{"type":50,"tag":145,"props":905,"children":906},{},[907,927],{"type":50,"tag":149,"props":908,"children":909},{},[910],{"type":50,"tag":153,"props":911,"children":912},{},[913,918,922],{"type":50,"tag":157,"props":914,"children":915},{},[916],{"type":56,"value":917},"Package Found",{"type":50,"tag":157,"props":919,"children":920},{},[921],{"type":56,"value":811},{"type":50,"tag":157,"props":923,"children":924},{},[925],{"type":56,"value":926},"State",{"type":50,"tag":168,"props":928,"children":929},{},[930,964,991,1017,1041,1064,1088,1111,1137,1162,1204],{"type":50,"tag":153,"props":931,"children":932},{},[933,949,954],{"type":50,"tag":175,"props":934,"children":935},{},[936,942,943],{"type":50,"tag":77,"props":937,"children":939},{"className":938},[],[940],{"type":56,"value":941},"Azure.Monitor.OpenTelemetry.AspNetCore",{"type":56,"value":226},{"type":50,"tag":77,"props":944,"children":946},{"className":945},[],[947],{"type":56,"value":948},"Azure.Monitor.OpenTelemetry.Exporter",{"type":50,"tag":175,"props":950,"children":951},{},[952],{"type":56,"value":953},"any",{"type":50,"tag":175,"props":955,"children":956},{},[957,962],{"type":50,"tag":188,"props":958,"children":959},{},[960],{"type":56,"value":961},"Azure Monitor Distro",{"type":56,"value":963}," — not covered by this skill. This skill covers Application Insights 3.x SDK only. Inform the user and refer to Azure Monitor OpenTelemetry Distro documentation.",{"type":50,"tag":153,"props":965,"children":966},{},[967,976,981],{"type":50,"tag":175,"props":968,"children":969},{},[970],{"type":50,"tag":77,"props":971,"children":973},{"className":972},[],[974],{"type":56,"value":975},"Microsoft.ApplicationInsights.AspNetCore",{"type":50,"tag":175,"props":977,"children":978},{},[979],{"type":56,"value":980},"≥ 3.0",{"type":50,"tag":175,"props":982,"children":983},{},[984,989],{"type":50,"tag":188,"props":985,"children":986},{},[987],{"type":56,"value":988},"Already on 3.x",{"type":56,"value":990}," → go to Enhancement",{"type":50,"tag":153,"props":992,"children":993},{},[994,1002,1007],{"type":50,"tag":175,"props":995,"children":996},{},[997],{"type":50,"tag":77,"props":998,"children":1000},{"className":999},[],[1001],{"type":56,"value":975},{"type":50,"tag":175,"props":1003,"children":1004},{},[1005],{"type":56,"value":1006},"\u003C 3.0",{"type":50,"tag":175,"props":1008,"children":1009},{},[1010,1015],{"type":50,"tag":188,"props":1011,"children":1012},{},[1013],{"type":56,"value":1014},"Brownfield 2.x",{"type":56,"value":1016}," → go to Migration",{"type":50,"tag":153,"props":1018,"children":1019},{},[1020,1029,1033],{"type":50,"tag":175,"props":1021,"children":1022},{},[1023],{"type":50,"tag":77,"props":1024,"children":1026},{"className":1025},[],[1027],{"type":56,"value":1028},"Microsoft.ApplicationInsights.WorkerService",{"type":50,"tag":175,"props":1030,"children":1031},{},[1032],{"type":56,"value":980},{"type":50,"tag":175,"props":1034,"children":1035},{},[1036,1040],{"type":50,"tag":188,"props":1037,"children":1038},{},[1039],{"type":56,"value":988},{"type":56,"value":990},{"type":50,"tag":153,"props":1042,"children":1043},{},[1044,1052,1056],{"type":50,"tag":175,"props":1045,"children":1046},{},[1047],{"type":50,"tag":77,"props":1048,"children":1050},{"className":1049},[],[1051],{"type":56,"value":1028},{"type":50,"tag":175,"props":1053,"children":1054},{},[1055],{"type":56,"value":1006},{"type":50,"tag":175,"props":1057,"children":1058},{},[1059,1063],{"type":50,"tag":188,"props":1060,"children":1061},{},[1062],{"type":56,"value":1014},{"type":56,"value":1016},{"type":50,"tag":153,"props":1065,"children":1066},{},[1067,1076,1080],{"type":50,"tag":175,"props":1068,"children":1069},{},[1070],{"type":50,"tag":77,"props":1071,"children":1073},{"className":1072},[],[1074],{"type":56,"value":1075},"Microsoft.ApplicationInsights.Web",{"type":50,"tag":175,"props":1077,"children":1078},{},[1079],{"type":56,"value":980},{"type":50,"tag":175,"props":1081,"children":1082},{},[1083,1087],{"type":50,"tag":188,"props":1084,"children":1085},{},[1086],{"type":56,"value":988},{"type":56,"value":990},{"type":50,"tag":153,"props":1089,"children":1090},{},[1091,1099,1103],{"type":50,"tag":175,"props":1092,"children":1093},{},[1094],{"type":50,"tag":77,"props":1095,"children":1097},{"className":1096},[],[1098],{"type":56,"value":1075},{"type":50,"tag":175,"props":1100,"children":1101},{},[1102],{"type":56,"value":1006},{"type":50,"tag":175,"props":1104,"children":1105},{},[1106,1110],{"type":50,"tag":188,"props":1107,"children":1108},{},[1109],{"type":56,"value":1014},{"type":56,"value":1016},{"type":50,"tag":153,"props":1112,"children":1113},{},[1114,1125,1129],{"type":50,"tag":175,"props":1115,"children":1116},{},[1117,1123],{"type":50,"tag":77,"props":1118,"children":1120},{"className":1119},[],[1121],{"type":56,"value":1122},"Microsoft.ApplicationInsights",{"type":56,"value":1124}," (base only)",{"type":50,"tag":175,"props":1126,"children":1127},{},[1128],{"type":56,"value":980},{"type":50,"tag":175,"props":1130,"children":1131},{},[1132,1136],{"type":50,"tag":188,"props":1133,"children":1134},{},[1135],{"type":56,"value":988},{"type":56,"value":990},{"type":50,"tag":153,"props":1138,"children":1139},{},[1140,1149,1153],{"type":50,"tag":175,"props":1141,"children":1142},{},[1143,1148],{"type":50,"tag":77,"props":1144,"children":1146},{"className":1145},[],[1147],{"type":56,"value":1122},{"type":56,"value":1124},{"type":50,"tag":175,"props":1150,"children":1151},{},[1152],{"type":56,"value":1006},{"type":50,"tag":175,"props":1154,"children":1155},{},[1156,1160],{"type":50,"tag":188,"props":1157,"children":1158},{},[1159],{"type":56,"value":1014},{"type":56,"value":1161}," → go to Migration (Console path)",{"type":50,"tag":153,"props":1163,"children":1164},{},[1165,1190,1194],{"type":50,"tag":175,"props":1166,"children":1167},{},[1168,1174,1175,1181,1182,1188],{"type":50,"tag":77,"props":1169,"children":1171},{"className":1170},[],[1172],{"type":56,"value":1173},"OpenTelemetry",{"type":56,"value":310},{"type":50,"tag":77,"props":1176,"children":1178},{"className":1177},[],[1179],{"type":56,"value":1180},"OpenTelemetry.Api",{"type":56,"value":310},{"type":50,"tag":77,"props":1183,"children":1185},{"className":1184},[],[1186],{"type":56,"value":1187},"OpenTelemetry.Extensions.Hosting",{"type":56,"value":1189}," only (no AI SDK)",{"type":50,"tag":175,"props":1191,"children":1192},{},[1193],{"type":56,"value":953},{"type":50,"tag":175,"props":1195,"children":1196},{},[1197,1202],{"type":50,"tag":188,"props":1198,"children":1199},{},[1200],{"type":56,"value":1201},"OpenTelemetry only",{"type":56,"value":1203}," → go to Enhancement (add Azure Monitor exporter)",{"type":50,"tag":153,"props":1205,"children":1206},{},[1207,1217,1222],{"type":50,"tag":175,"props":1208,"children":1209},{},[1210,1212],{"type":56,"value":1211},"None of the above, no ",{"type":50,"tag":77,"props":1213,"children":1215},{"className":1214},[],[1216],{"type":56,"value":868},{"type":50,"tag":175,"props":1218,"children":1219},{},[1220],{"type":56,"value":1221},"—",{"type":50,"tag":175,"props":1223,"children":1224},{},[1225,1230],{"type":50,"tag":188,"props":1226,"children":1227},{},[1228],{"type":56,"value":1229},"Greenfield",{"type":56,"value":1231}," → go to New Setup",{"type":50,"tag":65,"props":1233,"children":1235},{"id":1234},"step-3-route-to-the-correct-guide",[1236],{"type":56,"value":1237},"Step 3 — Route to the Correct Guide",{"type":50,"tag":130,"props":1239,"children":1241},{"id":1240},"greenfield-no-existing-application-insights",[1242],{"type":56,"value":1243},"Greenfield (No existing Application Insights)",{"type":50,"tag":59,"props":1245,"children":1246},{},[1247,1249,1255],{"type":56,"value":1248},"Before making any code changes, read ",{"type":50,"tag":1250,"props":1251,"children":1253},"a",{"href":1252},"references\u002Fopentelemetry-pipeline.md",[1254],{"type":56,"value":1252},{"type":56,"value":1256}," to understand the architecture.",{"type":50,"tag":59,"props":1258,"children":1259},{},[1260],{"type":56,"value":1261},"Then follow the guide for your app type (all greenfield paths use Application Insights 3.x SDK):",{"type":50,"tag":370,"props":1263,"children":1264},{},[1265,1279,1292,1305],{"type":50,"tag":374,"props":1266,"children":1267},{},[1268,1272,1274],{"type":50,"tag":188,"props":1269,"children":1270},{},[1271],{"type":56,"value":192},{"type":56,"value":1273}," → read ",{"type":50,"tag":1250,"props":1275,"children":1277},{"href":1276},"references\u002Faspnetcore-greenfield.md",[1278],{"type":56,"value":1276},{"type":50,"tag":374,"props":1280,"children":1281},{},[1282,1286,1287],{"type":50,"tag":188,"props":1283,"children":1284},{},[1285],{"type":56,"value":212},{"type":56,"value":1273},{"type":50,"tag":1250,"props":1288,"children":1290},{"href":1289},"references\u002Fworkerservice-greenfield.md",[1291],{"type":56,"value":1289},{"type":50,"tag":374,"props":1293,"children":1294},{},[1295,1299,1300],{"type":50,"tag":188,"props":1296,"children":1297},{},[1298],{"type":56,"value":503},{"type":56,"value":1273},{"type":50,"tag":1250,"props":1301,"children":1303},{"href":1302},"references\u002Faspnet-classic-greenfield.md",[1304],{"type":56,"value":1302},{"type":50,"tag":374,"props":1306,"children":1307},{},[1308,1312,1313],{"type":50,"tag":188,"props":1309,"children":1310},{},[1311],{"type":56,"value":272},{"type":56,"value":1273},{"type":50,"tag":1250,"props":1314,"children":1316},{"href":1315},"references\u002Fconsole-setup.md",[1317],{"type":56,"value":1315},{"type":50,"tag":130,"props":1319,"children":1321},{"id":1320},"migration-application-insights-2x-3x",[1322],{"type":56,"value":1323},"Migration (Application Insights 2.x → 3.x)",{"type":50,"tag":59,"props":1325,"children":1326},{},[1327,1329,1333],{"type":56,"value":1328},"First, read ",{"type":50,"tag":1250,"props":1330,"children":1331},{"href":1252},[1332],{"type":56,"value":1252},{"type":56,"value":1334}," to understand how 3.x differs from 2.x.",{"type":50,"tag":59,"props":1336,"children":1337},{},[1338,1340,1345],{"type":56,"value":1339},"Then scan the codebase using the template in ",{"type":50,"tag":1250,"props":1341,"children":1343},{"href":1342},"references\u002Fanalysis-template.md",[1344],{"type":56,"value":1342},{"type":56,"value":1346},". This identifies which migration guides are relevant.",{"type":50,"tag":59,"props":1348,"children":1349},{},[1350],{"type":56,"value":1351},"Based on findings, read the applicable migration references:",{"type":50,"tag":370,"props":1353,"children":1354},{},[1355,1372,1387,1401,1415,1429,1443,1457,1471],{"type":50,"tag":374,"props":1356,"children":1357},{},[1358,1363,1365,1370],{"type":50,"tag":188,"props":1359,"children":1360},{},[1361],{"type":56,"value":1362},"All migrations",{"type":56,"value":1364},": start with ",{"type":50,"tag":1250,"props":1366,"children":1368},{"href":1367},"references\u002Fcode-migration.md",[1369],{"type":56,"value":1367},{"type":56,"value":1371}," (property changes, removed APIs)",{"type":50,"tag":374,"props":1373,"children":1374},{},[1375,1380,1382],{"type":50,"tag":188,"props":1376,"children":1377},{},[1378],{"type":56,"value":1379},"ITelemetryInitializer found",{"type":56,"value":1381}," → ",{"type":50,"tag":1250,"props":1383,"children":1385},{"href":1384},"references\u002Finitializer-migration.md",[1386],{"type":56,"value":1384},{"type":50,"tag":374,"props":1388,"children":1389},{},[1390,1395,1396],{"type":50,"tag":188,"props":1391,"children":1392},{},[1393],{"type":56,"value":1394},"ITelemetryProcessor found",{"type":56,"value":1381},{"type":50,"tag":1250,"props":1397,"children":1399},{"href":1398},"references\u002Fprocessor-migration.md",[1400],{"type":56,"value":1398},{"type":50,"tag":374,"props":1402,"children":1403},{},[1404,1409,1410],{"type":50,"tag":188,"props":1405,"children":1406},{},[1407],{"type":56,"value":1408},"Custom sampling",{"type":56,"value":1381},{"type":50,"tag":1250,"props":1411,"children":1413},{"href":1412},"references\u002Fsampling-migration.md",[1414],{"type":56,"value":1412},{"type":50,"tag":374,"props":1416,"children":1417},{},[1418,1423,1424],{"type":50,"tag":188,"props":1419,"children":1420},{},[1421],{"type":56,"value":1422},"ILogger \u002F logging config",{"type":56,"value":1381},{"type":50,"tag":1250,"props":1425,"children":1427},{"href":1426},"references\u002Filogger-migration.md",[1428],{"type":56,"value":1426},{"type":50,"tag":374,"props":1430,"children":1431},{},[1432,1437,1438],{"type":50,"tag":188,"props":1433,"children":1434},{},[1435],{"type":56,"value":1436},"TelemetryClient breaking changes",{"type":56,"value":1381},{"type":50,"tag":1250,"props":1439,"children":1441},{"href":1440},"references\u002Ftelemetryclient-migration.md",[1442],{"type":56,"value":1440},{"type":50,"tag":374,"props":1444,"children":1445},{},[1446,1451,1452],{"type":50,"tag":188,"props":1447,"children":1448},{},[1449],{"type":56,"value":1450},"Dependency tracking config",{"type":56,"value":1381},{"type":50,"tag":1250,"props":1453,"children":1455},{"href":1454},"references\u002Fdependency-tracking.md",[1456],{"type":56,"value":1454},{"type":50,"tag":374,"props":1458,"children":1459},{},[1460,1465,1466],{"type":50,"tag":188,"props":1461,"children":1462},{},[1463],{"type":56,"value":1464},"AAD \u002F Token Credential authentication",{"type":56,"value":1381},{"type":50,"tag":1250,"props":1467,"children":1469},{"href":1468},"references\u002Faad-authentication-migration.md",[1470],{"type":56,"value":1468},{"type":50,"tag":374,"props":1472,"children":1473},{},[1474,1479,1480],{"type":50,"tag":188,"props":1475,"children":1476},{},[1477],{"type":56,"value":1478},"Live Metrics config",{"type":56,"value":1381},{"type":50,"tag":1250,"props":1481,"children":1483},{"href":1482},"references\u002Flive-metrics-migration.md",[1484],{"type":56,"value":1482},{"type":50,"tag":59,"props":1486,"children":1487},{},[1488,1490,1495],{"type":56,"value":1489},"If the scan finds NO code changes needed (only unchanged properties used, no removed APIs), the migration is just a package upgrade — read ",{"type":50,"tag":1250,"props":1491,"children":1493},{"href":1492},"references\u002Fno-code-change-migration.md",[1494],{"type":56,"value":1492},{"type":56,"value":1496},". Note: this path does NOT apply to Classic ASP.NET — Classic always requires config changes.",{"type":50,"tag":59,"props":1498,"children":1499},{},[1500,1505],{"type":50,"tag":188,"props":1501,"children":1502},{},[1503],{"type":56,"value":1504},"Classic ASP.NET migration extras",{"type":56,"value":1506},": In addition to the references above, Classic ASP.NET brownfield migration requires:",{"type":50,"tag":370,"props":1508,"children":1509},{},[1510,1564,1605,1651,1669,1696],{"type":50,"tag":374,"props":1511,"children":1512},{},[1513,1515,1520,1522,1528,1529,1535,1536,1542,1543,1549,1551,1557,1558],{"type":56,"value":1514},"Rewrite ",{"type":50,"tag":77,"props":1516,"children":1518},{"className":1517},[],[1519],{"type":56,"value":868},{"type":56,"value":1521}," to 3.x format: remove ",{"type":50,"tag":77,"props":1523,"children":1525},{"className":1524},[],[1526],{"type":56,"value":1527},"\u003CTelemetryInitializers>",{"type":56,"value":92},{"type":50,"tag":77,"props":1530,"children":1532},{"className":1531},[],[1533],{"type":56,"value":1534},"\u003CTelemetryModules>",{"type":56,"value":92},{"type":50,"tag":77,"props":1537,"children":1539},{"className":1538},[],[1540],{"type":56,"value":1541},"\u003CTelemetryProcessors>",{"type":56,"value":92},{"type":50,"tag":77,"props":1544,"children":1546},{"className":1545},[],[1547],{"type":56,"value":1548},"\u003CTelemetryChannel>",{"type":56,"value":1550}," sections; replace ",{"type":50,"tag":77,"props":1552,"children":1554},{"className":1553},[],[1555],{"type":56,"value":1556},"\u003CInstrumentationKey>",{"type":56,"value":258},{"type":50,"tag":77,"props":1559,"children":1561},{"className":1560},[],[1562],{"type":56,"value":1563},"\u003CConnectionString>",{"type":50,"tag":374,"props":1565,"children":1566},{},[1567,1569,1574,1576,1582,1584,1590,1591,1597,1599],{"type":56,"value":1568},"Update ",{"type":50,"tag":77,"props":1570,"children":1572},{"className":1571},[],[1573],{"type":56,"value":486},{"type":56,"value":1575},": remove ",{"type":50,"tag":77,"props":1577,"children":1579},{"className":1578},[],[1580],{"type":56,"value":1581},"TelemetryCorrelationHttpModule",{"type":56,"value":1583},"; verify ",{"type":50,"tag":77,"props":1585,"children":1587},{"className":1586},[],[1588],{"type":56,"value":1589},"ApplicationInsightsHttpModule",{"type":56,"value":813},{"type":50,"tag":77,"props":1592,"children":1594},{"className":1593},[],[1595],{"type":56,"value":1596},"TelemetryHttpModule",{"type":56,"value":1598}," are present in ",{"type":50,"tag":77,"props":1600,"children":1602},{"className":1601},[],[1603],{"type":56,"value":1604},"\u003Csystem.webServer>\u003Cmodules>",{"type":50,"tag":374,"props":1606,"children":1607},{},[1608,1610,1616,1617,1623,1624,1630,1631,1637,1638,1644,1645],{"type":56,"value":1609},"Remove satellite packages in order: ",{"type":50,"tag":77,"props":1611,"children":1613},{"className":1612},[],[1614],{"type":56,"value":1615},"Microsoft.ApplicationInsights.WindowsServer",{"type":56,"value":92},{"type":50,"tag":77,"props":1618,"children":1620},{"className":1619},[],[1621],{"type":56,"value":1622},".WindowsServer.TelemetryChannel",{"type":56,"value":92},{"type":50,"tag":77,"props":1625,"children":1627},{"className":1626},[],[1628],{"type":56,"value":1629},".DependencyCollector",{"type":56,"value":92},{"type":50,"tag":77,"props":1632,"children":1634},{"className":1633},[],[1635],{"type":56,"value":1636},".PerfCounterCollector",{"type":56,"value":92},{"type":50,"tag":77,"props":1639,"children":1641},{"className":1640},[],[1642],{"type":56,"value":1643},".Agent.Intercept",{"type":56,"value":92},{"type":50,"tag":77,"props":1646,"children":1648},{"className":1647},[],[1649],{"type":56,"value":1650},"Microsoft.AspNet.TelemetryCorrelation",{"type":50,"tag":374,"props":1652,"children":1653},{},[1654,1656,1662,1663],{"type":56,"value":1655},"Replace ",{"type":50,"tag":77,"props":1657,"children":1659},{"className":1658},[],[1660],{"type":56,"value":1661},"TelemetryConfiguration.Active",{"type":56,"value":258},{"type":50,"tag":77,"props":1664,"children":1666},{"className":1665},[],[1667],{"type":56,"value":1668},"TelemetryConfiguration.CreateDefault()",{"type":50,"tag":374,"props":1670,"children":1671},{},[1672,1674,1680,1682,1687,1689,1695],{"type":56,"value":1673},"Connection string goes in ",{"type":50,"tag":77,"props":1675,"children":1677},{"className":1676},[],[1678],{"type":56,"value":1679},"ApplicationInsights.config",{"type":56,"value":1681}," ",{"type":50,"tag":77,"props":1683,"children":1685},{"className":1684},[],[1686],{"type":56,"value":1563},{"type":56,"value":1688}," element (not ",{"type":50,"tag":77,"props":1690,"children":1692},{"className":1691},[],[1693],{"type":56,"value":1694},"appsettings.json",{"type":56,"value":525},{"type":50,"tag":374,"props":1697,"children":1698},{},[1699,1701,1707],{"type":56,"value":1700},"Use ",{"type":50,"tag":77,"props":1702,"children":1704},{"className":1703},[],[1705],{"type":56,"value":1706},"config.ConfigureOpenTelemetryBuilder(otel => ...)",{"type":56,"value":1708}," for all extensibility (DI-based methods are not available)",{"type":50,"tag":130,"props":1710,"children":1712},{"id":1711},"enhancement-already-on-3x",[1713],{"type":56,"value":1714},"Enhancement (Already on 3.x)",{"type":50,"tag":59,"props":1716,"children":1717},{},[1718],{"type":56,"value":1719},"Ask the user what they want to add, then read the relevant reference.",{"type":50,"tag":1721,"props":1722,"children":1723},"blockquote",{},[1724],{"type":50,"tag":59,"props":1725,"children":1726},{},[1727,1732,1734,1740,1742,1748,1750,1756,1757,1763],{"type":50,"tag":188,"props":1728,"children":1729},{},[1730],{"type":56,"value":1731},"DI vs Non-DI:",{"type":56,"value":1733}," The enhancement references show DI patterns (",{"type":50,"tag":77,"props":1735,"children":1737},{"className":1736},[],[1738],{"type":56,"value":1739},"builder.Services.Configure*",{"type":56,"value":1741},"). For Console or Classic ASP.NET apps that use ",{"type":50,"tag":77,"props":1743,"children":1745},{"className":1744},[],[1746],{"type":56,"value":1747},"TelemetryConfiguration",{"type":56,"value":1749}," directly, replace ",{"type":50,"tag":77,"props":1751,"children":1753},{"className":1752},[],[1754],{"type":56,"value":1755},"builder.Services.ConfigureOpenTelemetryTracerProvider(tracing => ...)",{"type":56,"value":258},{"type":50,"tag":77,"props":1758,"children":1760},{"className":1759},[],[1761],{"type":56,"value":1762},"config.ConfigureOpenTelemetryBuilder(otel => otel.WithTracing(tracing => ...))",{"type":56,"value":1764},". Each reference file includes a \"Non-DI Usage\" section.",{"type":50,"tag":370,"props":1766,"children":1767},{},[1768,1782,1796,1810,1824,1838,1864,1879,1894,1909,1924],{"type":50,"tag":374,"props":1769,"children":1770},{},[1771,1776,1777],{"type":50,"tag":188,"props":1772,"children":1773},{},[1774],{"type":56,"value":1775},"Entity Framework Core",{"type":56,"value":1381},{"type":50,"tag":1250,"props":1778,"children":1780},{"href":1779},"references\u002Fentity-framework.md",[1781],{"type":56,"value":1779},{"type":50,"tag":374,"props":1783,"children":1784},{},[1785,1790,1791],{"type":50,"tag":188,"props":1786,"children":1787},{},[1788],{"type":56,"value":1789},"Redis (StackExchange.Redis)",{"type":56,"value":1381},{"type":50,"tag":1250,"props":1792,"children":1794},{"href":1793},"references\u002Fredis-cache.md",[1795],{"type":56,"value":1793},{"type":50,"tag":374,"props":1797,"children":1798},{},[1799,1804,1805],{"type":50,"tag":188,"props":1800,"children":1801},{},[1802],{"type":56,"value":1803},"SQL Client",{"type":56,"value":1381},{"type":50,"tag":1250,"props":1806,"children":1808},{"href":1807},"references\u002Fsql-client.md",[1809],{"type":56,"value":1807},{"type":50,"tag":374,"props":1811,"children":1812},{},[1813,1818,1819],{"type":50,"tag":188,"props":1814,"children":1815},{},[1816],{"type":56,"value":1817},"HTTP Client\u002FServer Enrichment",{"type":56,"value":1381},{"type":50,"tag":1250,"props":1820,"children":1822},{"href":1821},"references\u002Fhttp-instrumentation.md",[1823],{"type":56,"value":1821},{"type":50,"tag":374,"props":1825,"children":1826},{},[1827,1832,1833],{"type":50,"tag":188,"props":1828,"children":1829},{},[1830],{"type":56,"value":1831},"OTLP Exporter",{"type":56,"value":1381},{"type":50,"tag":1250,"props":1834,"children":1836},{"href":1835},"references\u002Fotlp-exporter.md",[1837],{"type":56,"value":1835},{"type":50,"tag":374,"props":1839,"children":1840},{},[1841,1846,1848,1854,1856,1862],{"type":50,"tag":188,"props":1842,"children":1843},{},[1844],{"type":56,"value":1845},"Console Exporter",{"type":56,"value":1847}," (dev\u002Fdebug only) → ",{"type":50,"tag":77,"props":1849,"children":1851},{"className":1850},[],[1852],{"type":56,"value":1853},"OpenTelemetry.Exporter.Console",{"type":56,"value":1855}," package, ",{"type":50,"tag":77,"props":1857,"children":1859},{"className":1858},[],[1860],{"type":56,"value":1861},".AddConsoleExporter()",{"type":56,"value":1863}," on each signal",{"type":50,"tag":374,"props":1865,"children":1866},{},[1867,1872,1873,1877],{"type":50,"tag":188,"props":1868,"children":1869},{},[1870],{"type":56,"value":1871},"Sampling Configuration",{"type":56,"value":1381},{"type":50,"tag":1250,"props":1874,"children":1875},{"href":1412},[1876],{"type":56,"value":1412},{"type":56,"value":1878}," (applies to enhancement too)",{"type":50,"tag":374,"props":1880,"children":1881},{},[1882,1887,1889],{"type":50,"tag":188,"props":1883,"children":1884},{},[1885],{"type":56,"value":1886},"Custom Processors",{"type":56,"value":1888}," (filtering\u002Fenrichment) → ",{"type":50,"tag":1250,"props":1890,"children":1892},{"href":1891},"references\u002Fcustom-processors.md",[1893],{"type":56,"value":1891},{"type":50,"tag":374,"props":1895,"children":1896},{},[1897,1902,1904],{"type":50,"tag":188,"props":1898,"children":1899},{},[1900],{"type":56,"value":1901},"Custom Activities",{"type":56,"value":1903}," (distributed tracing) → ",{"type":50,"tag":1250,"props":1905,"children":1907},{"href":1906},"references\u002Fcustom-activities.md",[1908],{"type":56,"value":1906},{"type":50,"tag":374,"props":1910,"children":1911},{},[1912,1917,1919],{"type":50,"tag":188,"props":1913,"children":1914},{},[1915],{"type":56,"value":1916},"Custom Logging",{"type":56,"value":1918}," (ILogger best practices) → ",{"type":50,"tag":1250,"props":1920,"children":1922},{"href":1921},"references\u002Fcustom-logging.md",[1923],{"type":56,"value":1921},{"type":50,"tag":374,"props":1925,"children":1926},{},[1927,1932,1933],{"type":50,"tag":188,"props":1928,"children":1929},{},[1930],{"type":56,"value":1931},"Custom Metrics",{"type":56,"value":1381},{"type":50,"tag":1250,"props":1934,"children":1936},{"href":1935},"references\u002Fcustom-metrics.md",[1937],{"type":56,"value":1935},{"type":50,"tag":65,"props":1939,"children":1941},{"id":1940},"important-rules",[1942],{"type":56,"value":1943},"Important Rules",{"type":50,"tag":1945,"props":1946,"children":1947},"ol",{},[1948,1958,2005,2043,2068,2078,2088],{"type":50,"tag":374,"props":1949,"children":1950},{},[1951,1956],{"type":50,"tag":188,"props":1952,"children":1953},{},[1954],{"type":56,"value":1955},"Learn first, act second",{"type":56,"value":1957},": Always read the relevant concept or migration reference BEFORE making code changes.",{"type":50,"tag":374,"props":1959,"children":1960},{},[1961,1966,1968,1974,1976,1981,1983,1989,1991,1996,1998,2003],{"type":50,"tag":188,"props":1962,"children":1963},{},[1964],{"type":56,"value":1965},"Connection string, not instrumentation key",{"type":56,"value":1967},": Always use ",{"type":50,"tag":77,"props":1969,"children":1971},{"className":1970},[],[1972],{"type":56,"value":1973},"ConnectionString",{"type":56,"value":1975},", never ",{"type":50,"tag":77,"props":1977,"children":1979},{"className":1978},[],[1980],{"type":56,"value":884},{"type":56,"value":1982},". The environment variable is ",{"type":50,"tag":77,"props":1984,"children":1986},{"className":1985},[],[1987],{"type":56,"value":1988},"APPLICATIONINSIGHTS_CONNECTION_STRING",{"type":56,"value":1990},". For Classic ASP.NET, connection string goes in ",{"type":50,"tag":77,"props":1992,"children":1994},{"className":1993},[],[1995],{"type":56,"value":1679},{"type":56,"value":1997},", not ",{"type":50,"tag":77,"props":1999,"children":2001},{"className":2000},[],[2002],{"type":56,"value":1694},{"type":56,"value":2004},".",{"type":50,"tag":374,"props":2006,"children":2007},{},[2008,2013,2015,2020,2021,2027,2028,2034,2036,2041],{"type":50,"tag":188,"props":2009,"children":2010},{},[2011],{"type":56,"value":2012},"Application Insights 3.x SDK only",{"type":56,"value":2014},": This skill covers ",{"type":50,"tag":77,"props":2016,"children":2018},{"className":2017},[],[2019],{"type":56,"value":975},{"type":56,"value":310},{"type":50,"tag":77,"props":2022,"children":2024},{"className":2023},[],[2025],{"type":56,"value":2026},".WorkerService",{"type":56,"value":310},{"type":50,"tag":77,"props":2029,"children":2031},{"className":2030},[],[2032],{"type":56,"value":2033},".Web",{"type":56,"value":2035},". The Azure Monitor OpenTelemetry Distro (",{"type":50,"tag":77,"props":2037,"children":2039},{"className":2038},[],[2040],{"type":56,"value":941},{"type":56,"value":2042},") is a separate product — do not mix them, and do not use this skill for Distro-based apps.",{"type":50,"tag":374,"props":2044,"children":2045},{},[2046,2051,2053,2059,2061,2067],{"type":50,"tag":188,"props":2047,"children":2048},{},[2049],{"type":56,"value":2050},"Classic ASP.NET uses Package Manager Console",{"type":56,"value":2052},": Use ",{"type":50,"tag":77,"props":2054,"children":2056},{"className":2055},[],[2057],{"type":56,"value":2058},"Install-Package",{"type":56,"value":2060}," in Visual Studio, not ",{"type":50,"tag":77,"props":2062,"children":2064},{"className":2063},[],[2065],{"type":56,"value":2066},"dotnet add package",{"type":56,"value":2004},{"type":50,"tag":374,"props":2069,"children":2070},{},[2071,2076],{"type":50,"tag":188,"props":2072,"children":2073},{},[2074],{"type":56,"value":2075},"Verify after changes",{"type":56,"value":2077},": Build the project, run it, and confirm telemetry appears in Azure Portal (Live Metrics for immediate feedback, Transaction Search for 2-5 minute delayed data).",{"type":50,"tag":374,"props":2079,"children":2080},{},[2081,2086],{"type":50,"tag":188,"props":2082,"children":2083},{},[2084],{"type":56,"value":2085},"Unsupported app types",{"type":56,"value":2087},": If the detected type is WCF Service, OWIN App, or Azure Functions, inform the user that automated setup is not available and point them to the Azure Monitor documentation for manual onboarding.",{"type":50,"tag":374,"props":2089,"children":2090},{},[2091,2096,2098,2103,2104,2109,2110,2115],{"type":50,"tag":188,"props":2092,"children":2093},{},[2094],{"type":56,"value":2095},"Error handling",{"type":56,"value":2097},": If no ",{"type":50,"tag":77,"props":2099,"children":2101},{"className":2100},[],[2102],{"type":56,"value":82},{"type":56,"value":635},{"type":50,"tag":77,"props":2105,"children":2107},{"className":2106},[],[2108],{"type":56,"value":90},{"type":56,"value":635},{"type":50,"tag":77,"props":2111,"children":2113},{"className":2112},[],[2114],{"type":56,"value":98},{"type":56,"value":2116}," files are found, report that no .NET project was detected rather than guessing.",{"type":50,"tag":65,"props":2118,"children":2120},{"id":2119},"examples",[2121],{"type":56,"value":2122},"Examples",{"type":50,"tag":59,"props":2124,"children":2125},{},[2126],{"type":56,"value":2127},"Example queries that should use this skill:",{"type":50,"tag":370,"props":2129,"children":2130},{},[2131,2136,2141,2146,2151,2156,2161,2166,2171],{"type":50,"tag":374,"props":2132,"children":2133},{},[2134],{"type":56,"value":2135},"\"Add Application Insights to my app\"",{"type":50,"tag":374,"props":2137,"children":2138},{},[2139],{"type":56,"value":2140},"\"Set up Azure Monitor telemetry\"",{"type":50,"tag":374,"props":2142,"children":2143},{},[2144],{"type":56,"value":2145},"\"Add observability to my ASP.NET Core project\"",{"type":50,"tag":374,"props":2147,"children":2148},{},[2149],{"type":56,"value":2150},"\"Migrate from Application Insights 2.x to 3.x\"",{"type":50,"tag":374,"props":2152,"children":2153},{},[2154],{"type":56,"value":2155},"\"Upgrade my Application Insights SDK\"",{"type":50,"tag":374,"props":2157,"children":2158},{},[2159],{"type":56,"value":2160},"\"I'm getting deprecated API warnings from Application Insights\"",{"type":50,"tag":374,"props":2162,"children":2163},{},[2164],{"type":56,"value":2165},"\"Add Redis monitoring to my app that already has Application Insights\"",{"type":50,"tag":374,"props":2167,"children":2168},{},[2169],{"type":56,"value":2170},"\"How do I add Entity Framework telemetry\"",{"type":50,"tag":374,"props":2172,"children":2173},{},[2174],{"type":56,"value":2175},"\"Set up OTLP exporter alongside Application Insights\"",{"type":50,"tag":65,"props":2177,"children":2179},{"id":2178},"troubleshooting",[2180],{"type":56,"value":2181},"Troubleshooting",{"type":50,"tag":59,"props":2183,"children":2184},{},[2185,2190,2192,2197,2199,2204,2206,2212],{"type":50,"tag":188,"props":2186,"children":2187},{},[2188],{"type":56,"value":2189},"No telemetry appearing",{"type":56,"value":2191},": Check that ",{"type":50,"tag":77,"props":2193,"children":2195},{"className":2194},[],[2196],{"type":56,"value":1988},{"type":56,"value":2198}," is set or connection string is configured in ",{"type":50,"tag":77,"props":2200,"children":2202},{"className":2201},[],[2203],{"type":56,"value":1694},{"type":56,"value":2205},". Verify the app targets ",{"type":50,"tag":77,"props":2207,"children":2209},{"className":2208},[],[2210],{"type":56,"value":2211},"net8.0",{"type":56,"value":2213}," or later for ASP.NET Core 3.x packages.",{"type":50,"tag":59,"props":2215,"children":2216},{},[2217,2222,2224,2230],{"type":50,"tag":188,"props":2218,"children":2219},{},[2220],{"type":56,"value":2221},"Package version conflicts",{"type":56,"value":2223},": Ensure all ",{"type":50,"tag":77,"props":2225,"children":2227},{"className":2226},[],[2228],{"type":56,"value":2229},"Microsoft.ApplicationInsights.*",{"type":56,"value":2231}," packages are on the same major version. Do not mix 2.x and 3.x packages.",{"type":50,"tag":59,"props":2233,"children":2234},{},[2235,2240,2242,2246,2248,2253,2255,2260,2261,2266,2267,2273],{"type":50,"tag":188,"props":2236,"children":2237},{},[2238],{"type":56,"value":2239},"Build errors after migration",{"type":56,"value":2241},": Check for removed APIs listed in ",{"type":50,"tag":1250,"props":2243,"children":2244},{"href":1367},[2245],{"type":56,"value":1367},{"type":56,"value":2247},". Common: ",{"type":50,"tag":77,"props":2249,"children":2251},{"className":2250},[],[2252],{"type":56,"value":884},{"type":56,"value":2254}," property, ",{"type":50,"tag":77,"props":2256,"children":2258},{"className":2257},[],[2259],{"type":56,"value":338},{"type":56,"value":92},{"type":50,"tag":77,"props":2262,"children":2264},{"className":2263},[],[2265],{"type":56,"value":345},{"type":56,"value":92},{"type":50,"tag":77,"props":2268,"children":2270},{"className":2269},[],[2271],{"type":56,"value":2272},"TrackPageView",{"type":56,"value":2004},{"items":2275,"total":2283},[2276],{"slug":4,"name":4,"fn":5,"description":6,"org":2277,"tags":2278,"stars":25,"repoUrl":26,"updatedAt":27},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[2279,2280,2281,2282],{"name":23,"slug":24,"type":15},{"name":17,"slug":18,"type":15},{"name":20,"slug":21,"type":15},{"name":13,"slug":14,"type":15},1,{"items":2285,"total":2476},[2286,2308,2326,2346,2361,2378,2389,2402,2417,2432,2451,2464],{"slug":2287,"name":2287,"fn":2288,"description":2289,"org":2290,"tags":2291,"stars":2305,"repoUrl":2306,"updatedAt":2307},"rushstack-best-practices","manage Rush monorepos with best practices","Provides best practices and guidance for working with Rush monorepos. Use when the user is working in a Rush-based repository, asks about Rush commands (install, update, build, rebuild), needs help with project selection, dependency management, build caching, subspace configuration, or troubleshooting Rush-specific issues.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[2292,2295,2298,2299,2302],{"name":2293,"slug":2294,"type":15},"Engineering","engineering",{"name":2296,"slug":2297,"type":15},"Local Development","local-development",{"name":9,"slug":8,"type":15},{"name":2300,"slug":2301,"type":15},"Project Management","project-management",{"name":2303,"slug":2304,"type":15},"Rush","rush",6484,"https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Frushstack","2026-04-06T18:34:44.965032",{"slug":2309,"name":2309,"fn":2310,"description":2311,"org":2312,"tags":2313,"stars":2323,"repoUrl":2324,"updatedAt":2325},"azure-ai-agents-persistent-dotnet","build AI agents with Azure .NET SDK","Azure AI Agents Persistent SDK for .NET. Low-level SDK for creating and managing AI agents with threads, messages, runs, and tools. Use for agent CRUD, conversation threads, streaming responses, function calling, file search, and code interpreter. Triggers: \"PersistentAgentsClient\", \"persistent agents\", \"agent threads\", \"agent runs\", \"streaming agents\", \"function calling agents .NET\".\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[2314,2316,2319,2320],{"name":23,"slug":2315,"type":15},"net",{"name":2317,"slug":2318,"type":15},"Agents","agents",{"name":20,"slug":21,"type":15},{"name":2321,"slug":2322,"type":15},"LLM","llm",2804,"https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fskills","2026-07-03T16:32:10.297433",{"slug":2327,"name":2327,"fn":2328,"description":2329,"org":2330,"tags":2331,"stars":2323,"repoUrl":2324,"updatedAt":2345},"azure-ai-anomalydetector-java","build anomaly detection applications with Java","Build anomaly detection applications with Azure AI Anomaly Detector SDK for Java. Use when implementing univariate\u002Fmultivariate anomaly detection, time-series analysis, or AI-powered monitoring.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[2332,2335,2336,2339,2342,2343],{"name":2333,"slug":2334,"type":15},"Analytics","analytics",{"name":20,"slug":21,"type":15},{"name":2337,"slug":2338,"type":15},"Data Analysis","data-analysis",{"name":2340,"slug":2341,"type":15},"Java","java",{"name":9,"slug":8,"type":15},{"name":2344,"slug":33,"type":15},"Monitoring","2026-05-13T06:14:16.261754",{"slug":2347,"name":2347,"fn":2348,"description":2349,"org":2350,"tags":2351,"stars":2323,"repoUrl":2324,"updatedAt":2360},"azure-ai-contentsafety-java","build content moderation applications with Azure AI","Build content moderation applications with Azure AI Content Safety SDK for Java. Use when implementing text\u002Fimage analysis, blocklist management, or harm detection for hate, violence, sexual content, and self-harm.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[2352,2355,2356,2357],{"name":2353,"slug":2354,"type":15},"AI Infrastructure","ai-infrastructure",{"name":20,"slug":21,"type":15},{"name":2340,"slug":2341,"type":15},{"name":2358,"slug":2359,"type":15},"Security","security","2026-07-07T06:53:31.293235",{"slug":2362,"name":2362,"fn":2363,"description":2364,"org":2365,"tags":2366,"stars":2323,"repoUrl":2324,"updatedAt":2377},"azure-ai-contentsafety-py","detect harmful content with Azure AI Content Safety","Azure AI Content Safety SDK for Python. Use for detecting harmful content in text and images with multi-severity classification.\nTriggers: \"azure-ai-contentsafety\", \"ContentSafetyClient\", \"content moderation\", \"harmful content\", \"text analysis\", \"image analysis\".\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[2367,2368,2371,2372,2373,2376],{"name":20,"slug":21,"type":15},{"name":2369,"slug":2370,"type":15},"Compliance","compliance",{"name":2321,"slug":2322,"type":15},{"name":9,"slug":8,"type":15},{"name":2374,"slug":2375,"type":15},"Python","python",{"name":2358,"slug":2359,"type":15},"2026-07-18T05:14:23.017504",{"slug":2379,"name":2379,"fn":2380,"description":2381,"org":2382,"tags":2383,"stars":2323,"repoUrl":2324,"updatedAt":2388},"azure-ai-language-conversations-py","implement conversational language understanding with Python","Implement Conversational Language Understanding (CLU) using the azure-ai-language-conversations Python SDK. Use when working with ConversationAnalysisClient to analyze conversation intent and entities, building NLP features, or integrating language understanding into applications.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[2384,2385,2386,2387],{"name":2333,"slug":2334,"type":15},{"name":20,"slug":21,"type":15},{"name":2321,"slug":2322,"type":15},{"name":2374,"slug":2375,"type":15},"2026-07-31T05:54:29.068751",{"slug":2390,"name":2390,"fn":2391,"description":2392,"org":2393,"tags":2394,"stars":2323,"repoUrl":2324,"updatedAt":2401},"azure-ai-translation-text-py","translate text using Azure AI services","Azure AI Text Translation SDK for real-time text translation, transliteration, language detection, and dictionary lookup. Use for translating text content in applications.\nTriggers: \"text translation\", \"translator\", \"translate text\", \"transliterate\", \"TextTranslationClient\".\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[2395,2398,2399,2400],{"name":2396,"slug":2397,"type":15},"API Development","api-development",{"name":20,"slug":21,"type":15},{"name":9,"slug":8,"type":15},{"name":2374,"slug":2375,"type":15},"2026-07-18T05:14:16.988376",{"slug":2403,"name":2403,"fn":2404,"description":2405,"org":2406,"tags":2407,"stars":2323,"repoUrl":2324,"updatedAt":2416},"azure-ai-vision-imageanalysis-py","analyze images with Azure AI Vision","Azure AI Vision Image Analysis SDK for captions, tags, objects, OCR, people detection, and smart cropping. Use for computer vision and image understanding tasks.\nTriggers: \"image analysis\", \"computer vision\", \"OCR\", \"object detection\", \"ImageAnalysisClient\", \"image caption\".\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[2408,2409,2412,2415],{"name":20,"slug":21,"type":15},{"name":2410,"slug":2411,"type":15},"Computer Vision","computer-vision",{"name":2413,"slug":2414,"type":15},"Images","images",{"name":2374,"slug":2375,"type":15},"2026-07-18T05:14:18.007737",{"slug":2418,"name":2418,"fn":2419,"description":2420,"org":2421,"tags":2422,"stars":2323,"repoUrl":2324,"updatedAt":2431},"azure-appconfiguration-java","manage configuration with Azure App Configuration","Azure App Configuration SDK for Java. Centralized application configuration management with key-value settings, feature flags, and snapshots.\nTriggers: \"ConfigurationClient java\", \"app configuration java\", \"feature flag java\", \"configuration setting java\", \"azure config java\".\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[2423,2424,2427,2430],{"name":20,"slug":21,"type":15},{"name":2425,"slug":2426,"type":15},"Configuration","configuration",{"name":2428,"slug":2429,"type":15},"Feature Flags","feature-flags",{"name":2340,"slug":2341,"type":15},"2026-07-03T16:32:01.278468",{"slug":2433,"name":2433,"fn":2434,"description":2435,"org":2436,"tags":2437,"stars":2323,"repoUrl":2324,"updatedAt":2450},"azure-cosmos-rust","build applications with Azure Cosmos DB","Azure Cosmos DB library for Rust (NoSQL API). Document CRUD, containers, and globally distributed data.\nTriggers: \"cosmos db rust\", \"CosmosClient rust\", \"document crud rust\", \"NoSQL rust\", \"partition key rust\".\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[2438,2441,2444,2447],{"name":2439,"slug":2440,"type":15},"Cosmos DB","cosmos-db",{"name":2442,"slug":2443,"type":15},"Database","database",{"name":2445,"slug":2446,"type":15},"NoSQL","nosql",{"name":2448,"slug":2449,"type":15},"Rust","rust","2026-07-31T05:54:27.021432",{"slug":2452,"name":2452,"fn":2434,"description":2453,"org":2454,"tags":2455,"stars":2323,"repoUrl":2324,"updatedAt":2463},"azure-cosmos-ts","Azure Cosmos DB JavaScript\u002FTypeScript SDK (@azure\u002Fcosmos) for data plane operations. Use for CRUD operations on documents, queries, bulk operations, and container management. Triggers: \"Cosmos DB\", \"@azure\u002Fcosmos\", \"CosmosClient\", \"document CRUD\", \"NoSQL queries\", \"bulk operations\", \"partition key\", \"container.items\".\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[2456,2457,2458,2459,2460],{"name":2439,"slug":2440,"type":15},{"name":2442,"slug":2443,"type":15},{"name":9,"slug":8,"type":15},{"name":2445,"slug":2446,"type":15},{"name":2461,"slug":2462,"type":15},"TypeScript","typescript","2026-07-03T16:31:19.368382",{"slug":2465,"name":2465,"fn":2466,"description":2467,"org":2468,"tags":2469,"stars":2323,"repoUrl":2324,"updatedAt":2475},"azure-data-tables-java","build table storage applications with Java","Build table storage applications with Azure Tables SDK for Java. Use when working with Azure Table Storage or Cosmos DB Table API for NoSQL key-value data, schemaless storage, or structured data at scale.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[2470,2471,2472,2473,2474],{"name":20,"slug":21,"type":15},{"name":2439,"slug":2440,"type":15},{"name":2442,"slug":2443,"type":15},{"name":2340,"slug":2341,"type":15},{"name":2445,"slug":2446,"type":15},"2026-05-13T06:14:17.582229",267]