[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M69AN4T6FVBD4HX548FSCDPN":3,"skill-same:01M69AN4T6FVBD4HX548FSCDPN":73},{"skillNo":4,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":16,"categories":17,"keywords":18,"publishedAt":40,"linkOnly":41,"markdownContent":42,"markdownBody":43,"frontMatter":44,"refName":49,"commitSha":50,"skillDirectory":51,"forksCount":52,"repositoryHtmlUrl":53,"repositoryHomepageUrl":54,"ownerHtmlUrl":55,"ownerBlogUrl":56,"ownerDescription":57,"updatedAt":58,"install":59,"resources":72},"01M69AN4T6FVBD4HX548FSCDPN","azure-mgmt-applicationinsights-dotnet",null,"Azure Application Insights SDK for .NET. Application performance monitoring and observability resource management. Use for creating Application Insights components, web tests, workbooks, analytics items, and API keys. Triggers: \"Application Insights\", \"ApplicationInsights\", \"App Insights\", \"APM\", \"application monitoring\", \"web tests\", \"availability tests\", \"workbooks\".","microsoft\u002Fskills","microsoft","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F6154722?v=4","01M698VYDXZ6JW5WH3CRV650R8","Microsoft","01M69AJYYW4E1RMSYCQDJ4FJSH",3195,"MIT","https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fskills\u002Fblob\u002Fmain\u002F.github\u002Fplugins\u002Fazure-sdk-dotnet\u002Fskills\u002Fazure-mgmt-applicationinsights-dotnet\u002FSKILL.md",[],[19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,9,38,39],"dotnet","azure","azure mgmt applicationinsights dotnet","monitoring","api keys","for","resource management","insights","availability","app","triggers","tests","use","api","sdk","observability","apm","analytics","components","web","performance","2026-11-10 10:12:30",false,"---\nname: azure-mgmt-applicationinsights-dotnet\ndescription: |\n  Azure Application Insights SDK for .NET. Application performance monitoring and observability resource management. Use for creating Application Insights components, web tests, workbooks, analytics items, and API keys. Triggers: \"Application Insights\", \"ApplicationInsights\", \"App Insights\", \"APM\", \"application monitoring\", \"web tests\", \"availability tests\", \"workbooks\".\nlicense: MIT\nmetadata:\n  author: Microsoft\n  version: \"1.0.0\"\n  package: Azure.ResourceManager.ApplicationInsights\n---\n\n# Azure.ResourceManager.ApplicationInsights (.NET)\n\nAzure Resource Manager SDK for managing Application Insights resources for application performance monitoring.\n\n## Installation\n\n```bash\ndotnet add package Azure.ResourceManager.ApplicationInsights\ndotnet add package Azure.Identity\n```\n\n**Current Version**: v1.0.0 (GA)  \n**API Version**: 2022-06-15\n\n## Environment Variables\n\n```bash\nAZURE_SUBSCRIPTION_ID=\u003Cyour-subscription-id> # Required: Azure subscription ID\nAZURE_RESOURCE_GROUP=\u003Cyour-resource-group> # Required: Azure resource group name\nAZURE_APPINSIGHTS_NAME=\u003Cyour-appinsights-component> # Required: Application Insights component name\nAZURE_TOKEN_CREDENTIALS=prod  # Required only if DefaultAzureCredential is used in production\n```\n\n## Authentication\n\n```csharp\nusing Azure.Identity;\nusing Azure.ResourceManager;\nusing Azure.ResourceManager.ApplicationInsights;\n\n\u002F\u002F Local dev: DefaultAzureCredential. Production: set AZURE_TOKEN_CREDENTIALS=prod or AZURE_TOKEN_CREDENTIALS=\u003Cspecific_credential>\nvar credential = new DefaultAzureCredential(\n    DefaultAzureCredential.DefaultEnvironmentVariableName\n);\n\u002F\u002F Or use a specific credential directly in production:\n\u002F\u002F See https:\u002F\u002Flearn.microsoft.com\u002Fdotnet\u002Fapi\u002Foverview\u002Fazure\u002Fidentity-readme?view=azure-dotnet#credential-classes\n\u002F\u002F var credential = new ManagedIdentityCredential();\nArmClient client = new ArmClient(credential);\n```\n\n## Resource Hierarchy\n\n```\nSubscription\n└── ResourceGroup\n    └── ApplicationInsightsComponent          # App Insights resource\n        ├── ApplicationInsightsComponentApiKey  # API keys for programmatic access\n        ├── ComponentLinkedStorageAccount      # Linked storage for data export\n        └── (via component ID)\n            ├── WebTest                        # Availability tests\n            ├── Workbook                       # Workbooks for analysis\n            ├── WorkbookTemplate               # Workbook templates\n            └── MyWorkbook                     # Private workbooks\n```\n\n## Core Workflows\n\n### 1. Create Application Insights Component (Workspace-based)\n\n```csharp\nusing Azure.ResourceManager.ApplicationInsights;\nusing Azure.ResourceManager.ApplicationInsights.Models;\n\nResourceGroupResource resourceGroup = await client\n    .GetDefaultSubscriptionAsync()\n    .Result\n    .GetResourceGroupAsync(\"my-resource-group\");\n\nApplicationInsightsComponentCollection components = resourceGroup.GetApplicationInsightsComponents();\n\n\u002F\u002F Workspace-based Application Insights (recommended)\nApplicationInsightsComponentData data = new ApplicationInsightsComponentData(\n    AzureLocation.EastUS,\n    ApplicationInsightsApplicationType.Web)\n{\n    Kind = \"web\",\n    WorkspaceResourceId = new ResourceIdentifier(\n        \"\u002Fsubscriptions\u002F\u003Csub-id>\u002FresourceGroups\u002F\u003Crg>\u002Fproviders\u002FMicrosoft.OperationalInsights\u002Fworkspaces\u002F\u003Cworkspace-name>\"),\n    IngestionMode = IngestionMode.LogAnalytics,\n    PublicNetworkAccessForIngestion = PublicNetworkAccessType.Enabled,\n    PublicNetworkAccessForQuery = PublicNetworkAccessType.Enabled,\n    RetentionInDays = 90,\n    SamplingPercentage = 100,\n    DisableIPMasking = false,\n    ImmediatePurgeDataOn30Days = false,\n    Tags =\n    {\n        { \"environment\", \"production\" },\n        { \"application\", \"mywebapp\" }\n    }\n};\n\nArmOperation\u003CApplicationInsightsComponentResource> operation = await components\n    .CreateOrUpdateAsync(WaitUntil.Completed, \"my-appinsights\", data);\n\nApplicationInsightsComponentResource component = operation.Value;\n\nConsole.WriteLine($\"Component created: {component.Data.Name}\");\nConsole.WriteLine($\"Instrumentation Key: {component.Data.InstrumentationKey}\");\nConsole.WriteLine($\"Connection String: {component.Data.ConnectionString}\");\n```\n\n### 2. Get Connection String and Keys\n\n```csharp\nApplicationInsightsComponentResource component = await resourceGroup\n    .GetApplicationInsightsComponentAsync(\"my-appinsights\");\n\n\u002F\u002F Get connection string for SDK configuration\nstring connectionString = component.Data.ConnectionString;\nstring instrumentationKey = component.Data.InstrumentationKey;\nstring appId = component.Data.AppId;\n\nConsole.WriteLine($\"Connection String: {connectionString}\");\nConsole.WriteLine($\"Instrumentation Key: {instrumentationKey}\");\nConsole.WriteLine($\"App ID: {appId}\");\n```\n\n### 3. Create API Key\n\n```csharp\nApplicationInsightsComponentResource component = await resourceGroup\n    .GetApplicationInsightsComponentAsync(\"my-appinsights\");\n\nApplicationInsightsComponentApiKeyCollection apiKeys = component.GetApplicationInsightsComponentApiKeys();\n\n\u002F\u002F API key for reading telemetry\nApplicationInsightsApiKeyContent keyContent = new ApplicationInsightsApiKeyContent\n{\n    Name = \"ReadTelemetryKey\",\n    LinkedReadProperties =\n    {\n        $\"\u002Fsubscriptions\u002F{subscriptionId}\u002FresourceGroups\u002F{resourceGroupName}\u002Fproviders\u002Fmicrosoft.insights\u002Fcomponents\u002F{component.Data.Name}\u002Fapi\",\n        $\"\u002Fsubscriptions\u002F{subscriptionId}\u002FresourceGroups\u002F{resourceGroupName}\u002Fproviders\u002Fmicrosoft.insights\u002Fcomponents\u002F{component.Data.Name}\u002Fagentconfig\"\n    }\n};\n\nApplicationInsightsComponentApiKeyResource apiKey = await apiKeys\n    .CreateOrUpdateAsync(WaitUntil.Completed, keyContent);\n\nConsole.WriteLine($\"API Key Name: {apiKey.Data.Name}\");\nConsole.WriteLine($\"API Key: {apiKey.Data.ApiKey}\"); \u002F\u002F Only shown once!\n```\n\n### 4. Create Web Test (Availability Test)\n\n```csharp\nWebTestCollection webTests = resourceGroup.GetWebTests();\n\n\u002F\u002F URL Ping Test\nWebTestData urlPingTest = new WebTestData(AzureLocation.EastUS)\n{\n    Kind = WebTestKind.Ping,\n    SyntheticMonitorId = \"webtest-ping-myapp\",\n    WebTestName = \"Homepage Availability\",\n    Description = \"Checks if homepage is available\",\n    IsEnabled = true,\n    Frequency = 300, \u002F\u002F 5 minutes\n    Timeout = 120,   \u002F\u002F 2 minutes\n    WebTestKind = WebTestKind.Ping,\n    IsRetryEnabled = true,\n    Locations =\n    {\n        new WebTestGeolocation { WebTestLocationId = \"us-ca-sjc-azr\" },  \u002F\u002F West US\n        new WebTestGeolocation { WebTestLocationId = \"us-tx-sn1-azr\" },  \u002F\u002F South Central US\n        new WebTestGeolocation { WebTestLocationId = \"us-il-ch1-azr\" },  \u002F\u002F North Central US\n        new WebTestGeolocation { WebTestLocationId = \"emea-gb-db3-azr\" }, \u002F\u002F UK South\n        new WebTestGeolocation { WebTestLocationId = \"apac-sg-sin-azr\" }  \u002F\u002F Southeast Asia\n    },\n    Configuration = new WebTestConfiguration\n    {\n        WebTest = \"\"\"\n            \u003CWebTest Name=\"Homepage\" Enabled=\"True\" Timeout=\"120\" \n                     xmlns=\"http:\u002F\u002Fmicrosoft.com\u002Fschemas\u002FVisualStudio\u002FTeamTest\u002F2010\">\n                \u003CItems>\n                    \u003CRequest Method=\"GET\" Version=\"1.1\" Url=\"https:\u002F\u002Fmyapp.example.com\" \n                             ThinkTime=\"0\" Timeout=\"120\" ParseDependentRequests=\"False\" \n                             FollowRedirects=\"True\" RecordResult=\"True\" Cache=\"False\" \n                             ResponseTimeGoal=\"0\" Encoding=\"utf-8\" ExpectedHttpStatusCode=\"200\" \u002F>\n                \u003C\u002FItems>\n            \u003C\u002FWebTest>\n        \"\"\"\n    },\n    Tags =\n    {\n        { $\"hidden-link:\u002Fsubscriptions\u002F{subscriptionId}\u002FresourceGroups\u002F{resourceGroupName}\u002Fproviders\u002Fmicrosoft.insights\u002Fcomponents\u002Fmy-appinsights\", \"Resource\" }\n    }\n};\n\nArmOperation\u003CWebTestResource> operation = await webTests\n    .CreateOrUpdateAsync(WaitUntil.Completed, \"webtest-homepage\", urlPingTest);\n\nWebTestResource webTest = operation.Value;\nConsole.WriteLine($\"Web test created: {webTest.Data.Name}\");\n```\n\n### 5. Create Multi-Step Web Test\n\n```csharp\nWebTestData multiStepTest = new WebTestData(AzureLocation.EastUS)\n{\n    Kind = WebTestKind.MultiStep,\n    SyntheticMonitorId = \"webtest-multistep-login\",\n    WebTestName = \"Login Flow Test\",\n    Description = \"Tests login functionality\",\n    IsEnabled = true,\n    Frequency = 900, \u002F\u002F 15 minutes\n    Timeout = 300,   \u002F\u002F 5 minutes\n    WebTestKind = WebTestKind.MultiStep,\n    IsRetryEnabled = true,\n    Locations =\n    {\n        new WebTestGeolocation { WebTestLocationId = \"us-ca-sjc-azr\" }\n    },\n    Configuration = new WebTestConfiguration\n    {\n        WebTest = \"\"\"\n            \u003CWebTest Name=\"LoginFlow\" Enabled=\"True\" Timeout=\"300\"\n                     xmlns=\"http:\u002F\u002Fmicrosoft.com\u002Fschemas\u002FVisualStudio\u002FTeamTest\u002F2010\">\n                \u003CItems>\n                    \u003CRequest Method=\"GET\" Version=\"1.1\" Url=\"https:\u002F\u002Fmyapp.example.com\u002Flogin\" \n                             ThinkTime=\"0\" Timeout=\"60\" \u002F>\n                    \u003CRequest Method=\"POST\" Version=\"1.1\" Url=\"https:\u002F\u002Fmyapp.example.com\u002Fapi\u002Fauth\" \n                             ThinkTime=\"0\" Timeout=\"60\">\n                        \u003CHeaders>\n                            \u003CHeader Name=\"Content-Type\" Value=\"application\u002Fjson\" \u002F>\n                        \u003C\u002FHeaders>\n                        \u003CBody>{\"username\":\"testuser\",\"password\":\"{{TestPassword}}\"}\u003C\u002FBody>\n                    \u003C\u002FRequest>\n                \u003C\u002FItems>\n            \u003C\u002FWebTest>\n        \"\"\"\n    },\n    Tags =\n    {\n        { $\"hidden-link:\u002Fsubscriptions\u002F{subscriptionId}\u002FresourceGroups\u002F{resourceGroupName}\u002Fproviders\u002Fmicrosoft.insights\u002Fcomponents\u002Fmy-appinsights\", \"Resource\" }\n    }\n};\n\nawait webTests.CreateOrUpdateAsync(WaitUntil.Completed, \"webtest-login-flow\", multiStepTest);\n```\n\n### 6. Create Workbook\n\n```csharp\nWorkbookCollection workbooks = resourceGroup.GetWorkbooks();\n\nWorkbookData workbookData = new WorkbookData(AzureLocation.EastUS)\n{\n    DisplayName = \"Application Performance Dashboard\",\n    Category = \"workbook\",\n    Kind = WorkbookSharedTypeKind.Shared,\n    SerializedData = \"\"\"\n    {\n        \"version\": \"Notebook\u002F1.0\",\n        \"items\": [\n            {\n                \"type\": 1,\n                \"content\": {\n                    \"json\": \"# Application Performance\\n\\nThis workbook shows application performance metrics.\"\n                },\n                \"name\": \"header\"\n            },\n            {\n                \"type\": 3,\n                \"content\": {\n                    \"version\": \"KqlItem\u002F1.0\",\n                    \"query\": \"requests\\n| summarize count() by bin(timestamp, 1h)\\n| render timechart\",\n                    \"size\": 0,\n                    \"title\": \"Requests per Hour\",\n                    \"timeContext\": {\n                        \"durationMs\": 86400000\n                    },\n                    \"queryType\": 0,\n                    \"resourceType\": \"microsoft.insights\u002Fcomponents\"\n                },\n                \"name\": \"requestsChart\"\n            }\n        ],\n        \"isLocked\": false\n    }\n    \"\"\",\n    SourceId = component.Id,\n    Tags =\n    {\n        { \"environment\", \"production\" }\n    }\n};\n\n\u002F\u002F Note: Workbook ID should be a new GUID\nstring workbookId = Guid.NewGuid().ToString();\n\nArmOperation\u003CWorkbookResource> operation = await workbooks\n    .CreateOrUpdateAsync(WaitUntil.Completed, workbookId, workbookData);\n\nWorkbookResource workbook = operation.Value;\nConsole.WriteLine($\"Workbook created: {workbook.Data.DisplayName}\");\n```\n\n### 7. Link Storage Account\n\n```csharp\nApplicationInsightsComponentResource component = await resourceGroup\n    .GetApplicationInsightsComponentAsync(\"my-appinsights\");\n\nComponentLinkedStorageAccountCollection linkedStorage = component.GetComponentLinkedStorageAccounts();\n\nComponentLinkedStorageAccountData storageData = new ComponentLinkedStorageAccountData\n{\n    LinkedStorageAccount = new ResourceIdentifier(\n        \"\u002Fsubscriptions\u002F\u003Csub-id>\u002FresourceGroups\u002F\u003Crg>\u002Fproviders\u002FMicrosoft.Storage\u002FstorageAccounts\u002F\u003Cstorage-account>\")\n};\n\nArmOperation\u003CComponentLinkedStorageAccountResource> operation = await linkedStorage\n    .CreateOrUpdateAsync(WaitUntil.Completed, StorageType.ServiceProfiler, storageData);\n```\n\n### 8. List and Manage Components\n\n```csharp\n\u002F\u002F List all Application Insights components in resource group\nawait foreach (ApplicationInsightsComponentResource component in \n    resourceGroup.GetApplicationInsightsComponents())\n{\n    Console.WriteLine($\"Component: {component.Data.Name}\");\n    Console.WriteLine($\"  App ID: {component.Data.AppId}\");\n    Console.WriteLine($\"  Type: {component.Data.ApplicationType}\");\n    Console.WriteLine($\"  Ingestion Mode: {component.Data.IngestionMode}\");\n    Console.WriteLine($\"  Retention: {component.Data.RetentionInDays} days\");\n}\n\n\u002F\u002F List web tests\nawait foreach (WebTestResource webTest in resourceGroup.GetWebTests())\n{\n    Console.WriteLine($\"Web Test: {webTest.Data.WebTestName}\");\n    Console.WriteLine($\"  Enabled: {webTest.Data.IsEnabled}\");\n    Console.WriteLine($\"  Frequency: {webTest.Data.Frequency}s\");\n}\n\n\u002F\u002F List workbooks\nawait foreach (WorkbookResource workbook in resourceGroup.GetWorkbooks())\n{\n    Console.WriteLine($\"Workbook: {workbook.Data.DisplayName}\");\n}\n```\n\n### 9. Update Component\n\n```csharp\nApplicationInsightsComponentResource component = await resourceGroup\n    .GetApplicationInsightsComponentAsync(\"my-appinsights\");\n\n\u002F\u002F Update using full data (PUT operation)\nApplicationInsightsComponentData updateData = component.Data;\nupdateData.RetentionInDays = 180;\nupdateData.SamplingPercentage = 50;\nupdateData.Tags[\"updated\"] = \"true\";\n\nArmOperation\u003CApplicationInsightsComponentResource> operation = await resourceGroup\n    .GetApplicationInsightsComponents()\n    .CreateOrUpdateAsync(WaitUntil.Completed, \"my-appinsights\", updateData);\n```\n\n### 10. Delete Resources\n\n```csharp\n\u002F\u002F Delete Application Insights component\nApplicationInsightsComponentResource component = await resourceGroup\n    .GetApplicationInsightsComponentAsync(\"my-appinsights\");\nawait component.DeleteAsync(WaitUntil.Completed);\n\n\u002F\u002F Delete web test\nWebTestResource webTest = await resourceGroup.GetWebTestAsync(\"webtest-homepage\");\nawait webTest.DeleteAsync(WaitUntil.Completed);\n```\n\n## Key Types Reference\n\n| Type | Purpose |\n|------|---------|\n| `ApplicationInsightsComponentResource` | App Insights component |\n| `ApplicationInsightsComponentData` | Component configuration |\n| `ApplicationInsightsComponentCollection` | Collection of components |\n| `ApplicationInsightsComponentApiKeyResource` | API key for programmatic access |\n| `WebTestResource` | Availability\u002Fweb test |\n| `WebTestData` | Web test configuration |\n| `WorkbookResource` | Analysis workbook |\n| `WorkbookData` | Workbook configuration |\n| `ComponentLinkedStorageAccountResource` | Linked storage for exports |\n\n## Application Types\n\n| Type | Enum Value |\n|------|------------|\n| Web Application | `Web` |\n| iOS Application | `iOS` |\n| Java Application | `Java` |\n| Node.js Application | `NodeJS` |\n| .NET Application | `MRT` |\n| Other | `Other` |\n\n## Web Test Locations\n\n| Location ID | Region |\n|-------------|--------|\n| `us-ca-sjc-azr` | West US |\n| `us-tx-sn1-azr` | South Central US |\n| `us-il-ch1-azr` | North Central US |\n| `us-va-ash-azr` | East US |\n| `emea-gb-db3-azr` | UK South |\n| `emea-nl-ams-azr` | West Europe |\n| `emea-fr-pra-edge` | France Central |\n| `apac-sg-sin-azr` | Southeast Asia |\n| `apac-hk-hkn-azr` | East Asia |\n| `apac-jp-kaw-edge` | Japan East |\n| `latam-br-gru-edge` | Brazil South |\n| `emea-au-syd-edge` | Australia East |\n\n## Best Practices\n\n1. **Use workspace-based** — Workspace-based App Insights is the current standard\n2. **Link to Log Analytics** — Store data in Log Analytics for better querying\n3. **Set appropriate retention** — Balance cost vs. data availability\n4. **Use sampling** — Reduce costs for high-volume applications\n5. **Store connection string securely** — Use Key Vault or managed identity\n6. **Enable multiple test locations** — For accurate availability monitoring\n7. **Use workbooks** — For custom dashboards and analysis\n8. **Set up alerts** — Based on availability tests and metrics\n9. **Tag resources** — For cost allocation and organization\n10. **Use private endpoints** — For secure data ingestion\n\n## Error Handling\n\n```csharp\nusing Azure;\n\ntry\n{\n    ArmOperation\u003CApplicationInsightsComponentResource> operation = await components\n        .CreateOrUpdateAsync(WaitUntil.Completed, \"my-appinsights\", data);\n}\ncatch (RequestFailedException ex) when (ex.Status == 409)\n{\n    Console.WriteLine(\"Component already exists\");\n}\ncatch (RequestFailedException ex) when (ex.Status == 400)\n{\n    Console.WriteLine($\"Invalid configuration: {ex.Message}\");\n}\ncatch (RequestFailedException ex)\n{\n    Console.WriteLine($\"Azure error: {ex.Status} - {ex.Message}\");\n}\n```\n\n## SDK Integration\n\nUse the connection string with Application Insights SDK:\n\n```csharp\n\u002F\u002F Program.cs in ASP.NET Core\nbuilder.Services.AddApplicationInsightsTelemetry(options =>\n{\n    options.ConnectionString = configuration[\"ApplicationInsights:ConnectionString\"];\n});\n\n\u002F\u002F Or set via environment variable\n\u002F\u002F APPLICATIONINSIGHTS_CONNECTION_STRING=InstrumentationKey=...;IngestionEndpoint=...\n```\n\n## Related SDKs\n\n| SDK | Purpose | Install |\n|-----|---------|---------|\n| `Azure.ResourceManager.ApplicationInsights` | Resource management (this SDK) | `dotnet add package Azure.ResourceManager.ApplicationInsights` |\n| `Microsoft.ApplicationInsights` | Telemetry SDK | `dotnet add package Microsoft.ApplicationInsights` |\n| `Microsoft.ApplicationInsights.AspNetCore` | ASP.NET Core integration | `dotnet add package Microsoft.ApplicationInsights.AspNetCore` |\n| `Azure.Monitor.OpenTelemetry.Exporter` | OpenTelemetry export | `dotnet add package Azure.Monitor.OpenTelemetry.Exporter` |\n\n## Reference Links\n\n| Resource | URL |\n|----------|-----|\n| NuGet Package | https:\u002F\u002Fwww.nuget.org\u002Fpackages\u002FAzure.ResourceManager.ApplicationInsights |\n| API Reference | https:\u002F\u002Flearn.microsoft.com\u002Fdotnet\u002Fapi\u002Fazure.resourcemanager.applicationinsights |\n| Product Documentation | https:\u002F\u002Flearn.microsoft.com\u002Fazure\u002Fazure-monitor\u002Fapp\u002Fapp-insights-overview |\n| GitHub Source | https:\u002F\u002Fgithub.com\u002FAzure\u002Fazure-sdk-for-net\u002Ftree\u002Fmain\u002Fsdk\u002Fapplicationinsights\u002FAzure.ResourceManager.ApplicationInsights |\n","# Azure.ResourceManager.ApplicationInsights (.NET)\n\nAzure Resource Manager SDK for managing Application Insights resources for application performance monitoring.\n\n## Installation\n\n```bash\ndotnet add package Azure.ResourceManager.ApplicationInsights\ndotnet add package Azure.Identity\n```\n\n**Current Version**: v1.0.0 (GA)  \n**API Version**: 2022-06-15\n\n## Environment Variables\n\n```bash\nAZURE_SUBSCRIPTION_ID=\u003Cyour-subscription-id> # Required: Azure subscription ID\nAZURE_RESOURCE_GROUP=\u003Cyour-resource-group> # Required: Azure resource group name\nAZURE_APPINSIGHTS_NAME=\u003Cyour-appinsights-component> # Required: Application Insights component name\nAZURE_TOKEN_CREDENTIALS=prod  # Required only if DefaultAzureCredential is used in production\n```\n\n## Authentication\n\n```csharp\nusing Azure.Identity;\nusing Azure.ResourceManager;\nusing Azure.ResourceManager.ApplicationInsights;\n\n\u002F\u002F Local dev: DefaultAzureCredential. Production: set AZURE_TOKEN_CREDENTIALS=prod or AZURE_TOKEN_CREDENTIALS=\u003Cspecific_credential>\nvar credential = new DefaultAzureCredential(\n    DefaultAzureCredential.DefaultEnvironmentVariableName\n);\n\u002F\u002F Or use a specific credential directly in production:\n\u002F\u002F See https:\u002F\u002Flearn.microsoft.com\u002Fdotnet\u002Fapi\u002Foverview\u002Fazure\u002Fidentity-readme?view=azure-dotnet#credential-classes\n\u002F\u002F var credential = new ManagedIdentityCredential();\nArmClient client = new ArmClient(credential);\n```\n\n## Resource Hierarchy\n\n```\nSubscription\n└── ResourceGroup\n    └── ApplicationInsightsComponent          # App Insights resource\n        ├── ApplicationInsightsComponentApiKey  # API keys for programmatic access\n        ├── ComponentLinkedStorageAccount      # Linked storage for data export\n        └── (via component ID)\n            ├── WebTest                        # Availability tests\n            ├── Workbook                       # Workbooks for analysis\n            ├── WorkbookTemplate               # Workbook templates\n            └── MyWorkbook                     # Private workbooks\n```\n\n## Core Workflows\n\n### 1. Create Application Insights Component (Workspace-based)\n\n```csharp\nusing Azure.ResourceManager.ApplicationInsights;\nusing Azure.ResourceManager.ApplicationInsights.Models;\n\nResourceGroupResource resourceGroup = await client\n    .GetDefaultSubscriptionAsync()\n    .Result\n    .GetResourceGroupAsync(\"my-resource-group\");\n\nApplicationInsightsComponentCollection components = resourceGroup.GetApplicationInsightsComponents();\n\n\u002F\u002F Workspace-based Application Insights (recommended)\nApplicationInsightsComponentData data = new ApplicationInsightsComponentData(\n    AzureLocation.EastUS,\n    ApplicationInsightsApplicationType.Web)\n{\n    Kind = \"web\",\n    WorkspaceResourceId = new ResourceIdentifier(\n        \"\u002Fsubscriptions\u002F\u003Csub-id>\u002FresourceGroups\u002F\u003Crg>\u002Fproviders\u002FMicrosoft.OperationalInsights\u002Fworkspaces\u002F\u003Cworkspace-name>\"),\n    IngestionMode = IngestionMode.LogAnalytics,\n    PublicNetworkAccessForIngestion = PublicNetworkAccessType.Enabled,\n    PublicNetworkAccessForQuery = PublicNetworkAccessType.Enabled,\n    RetentionInDays = 90,\n    SamplingPercentage = 100,\n    DisableIPMasking = false,\n    ImmediatePurgeDataOn30Days = false,\n    Tags =\n    {\n        { \"environment\", \"production\" },\n        { \"application\", \"mywebapp\" }\n    }\n};\n\nArmOperation\u003CApplicationInsightsComponentResource> operation = await components\n    .CreateOrUpdateAsync(WaitUntil.Completed, \"my-appinsights\", data);\n\nApplicationInsightsComponentResource component = operation.Value;\n\nConsole.WriteLine($\"Component created: {component.Data.Name}\");\nConsole.WriteLine($\"Instrumentation Key: {component.Data.InstrumentationKey}\");\nConsole.WriteLine($\"Connection String: {component.Data.ConnectionString}\");\n```\n\n### 2. Get Connection String and Keys\n\n```csharp\nApplicationInsightsComponentResource component = await resourceGroup\n    .GetApplicationInsightsComponentAsync(\"my-appinsights\");\n\n\u002F\u002F Get connection string for SDK configuration\nstring connectionString = component.Data.ConnectionString;\nstring instrumentationKey = component.Data.InstrumentationKey;\nstring appId = component.Data.AppId;\n\nConsole.WriteLine($\"Connection String: {connectionString}\");\nConsole.WriteLine($\"Instrumentation Key: {instrumentationKey}\");\nConsole.WriteLine($\"App ID: {appId}\");\n```\n\n### 3. Create API Key\n\n```csharp\nApplicationInsightsComponentResource component = await resourceGroup\n    .GetApplicationInsightsComponentAsync(\"my-appinsights\");\n\nApplicationInsightsComponentApiKeyCollection apiKeys = component.GetApplicationInsightsComponentApiKeys();\n\n\u002F\u002F API key for reading telemetry\nApplicationInsightsApiKeyContent keyContent = new ApplicationInsightsApiKeyContent\n{\n    Name = \"ReadTelemetryKey\",\n    LinkedReadProperties =\n    {\n        $\"\u002Fsubscriptions\u002F{subscriptionId}\u002FresourceGroups\u002F{resourceGroupName}\u002Fproviders\u002Fmicrosoft.insights\u002Fcomponents\u002F{component.Data.Name}\u002Fapi\",\n        $\"\u002Fsubscriptions\u002F{subscriptionId}\u002FresourceGroups\u002F{resourceGroupName}\u002Fproviders\u002Fmicrosoft.insights\u002Fcomponents\u002F{component.Data.Name}\u002Fagentconfig\"\n    }\n};\n\nApplicationInsightsComponentApiKeyResource apiKey = await apiKeys\n    .CreateOrUpdateAsync(WaitUntil.Completed, keyContent);\n\nConsole.WriteLine($\"API Key Name: {apiKey.Data.Name}\");\nConsole.WriteLine($\"API Key: {apiKey.Data.ApiKey}\"); \u002F\u002F Only shown once!\n```\n\n### 4. Create Web Test (Availability Test)\n\n```csharp\nWebTestCollection webTests = resourceGroup.GetWebTests();\n\n\u002F\u002F URL Ping Test\nWebTestData urlPingTest = new WebTestData(AzureLocation.EastUS)\n{\n    Kind = WebTestKind.Ping,\n    SyntheticMonitorId = \"webtest-ping-myapp\",\n    WebTestName = \"Homepage Availability\",\n    Description = \"Checks if homepage is available\",\n    IsEnabled = true,\n    Frequency = 300, \u002F\u002F 5 minutes\n    Timeout = 120,   \u002F\u002F 2 minutes\n    WebTestKind = WebTestKind.Ping,\n    IsRetryEnabled = true,\n    Locations =\n    {\n        new WebTestGeolocation { WebTestLocationId = \"us-ca-sjc-azr\" },  \u002F\u002F West US\n        new WebTestGeolocation { WebTestLocationId = \"us-tx-sn1-azr\" },  \u002F\u002F South Central US\n        new WebTestGeolocation { WebTestLocationId = \"us-il-ch1-azr\" },  \u002F\u002F North Central US\n        new WebTestGeolocation { WebTestLocationId = \"emea-gb-db3-azr\" }, \u002F\u002F UK South\n        new WebTestGeolocation { WebTestLocationId = \"apac-sg-sin-azr\" }  \u002F\u002F Southeast Asia\n    },\n    Configuration = new WebTestConfiguration\n    {\n        WebTest = \"\"\"\n            \u003CWebTest Name=\"Homepage\" Enabled=\"True\" Timeout=\"120\" \n                     xmlns=\"http:\u002F\u002Fmicrosoft.com\u002Fschemas\u002FVisualStudio\u002FTeamTest\u002F2010\">\n                \u003CItems>\n                    \u003CRequest Method=\"GET\" Version=\"1.1\" Url=\"https:\u002F\u002Fmyapp.example.com\" \n                             ThinkTime=\"0\" Timeout=\"120\" ParseDependentRequests=\"False\" \n                             FollowRedirects=\"True\" RecordResult=\"True\" Cache=\"False\" \n                             ResponseTimeGoal=\"0\" Encoding=\"utf-8\" ExpectedHttpStatusCode=\"200\" \u002F>\n                \u003C\u002FItems>\n            \u003C\u002FWebTest>\n        \"\"\"\n    },\n    Tags =\n    {\n        { $\"hidden-link:\u002Fsubscriptions\u002F{subscriptionId}\u002FresourceGroups\u002F{resourceGroupName}\u002Fproviders\u002Fmicrosoft.insights\u002Fcomponents\u002Fmy-appinsights\", \"Resource\" }\n    }\n};\n\nArmOperation\u003CWebTestResource> operation = await webTests\n    .CreateOrUpdateAsync(WaitUntil.Completed, \"webtest-homepage\", urlPingTest);\n\nWebTestResource webTest = operation.Value;\nConsole.WriteLine($\"Web test created: {webTest.Data.Name}\");\n```\n\n### 5. Create Multi-Step Web Test\n\n```csharp\nWebTestData multiStepTest = new WebTestData(AzureLocation.EastUS)\n{\n    Kind = WebTestKind.MultiStep,\n    SyntheticMonitorId = \"webtest-multistep-login\",\n    WebTestName = \"Login Flow Test\",\n    Description = \"Tests login functionality\",\n    IsEnabled = true,\n    Frequency = 900, \u002F\u002F 15 minutes\n    Timeout = 300,   \u002F\u002F 5 minutes\n    WebTestKind = WebTestKind.MultiStep,\n    IsRetryEnabled = true,\n    Locations =\n    {\n        new WebTestGeolocation { WebTestLocationId = \"us-ca-sjc-azr\" }\n    },\n    Configuration = new WebTestConfiguration\n    {\n        WebTest = \"\"\"\n            \u003CWebTest Name=\"LoginFlow\" Enabled=\"True\" Timeout=\"300\"\n                     xmlns=\"http:\u002F\u002Fmicrosoft.com\u002Fschemas\u002FVisualStudio\u002FTeamTest\u002F2010\">\n                \u003CItems>\n                    \u003CRequest Method=\"GET\" Version=\"1.1\" Url=\"https:\u002F\u002Fmyapp.example.com\u002Flogin\" \n                             ThinkTime=\"0\" Timeout=\"60\" \u002F>\n                    \u003CRequest Method=\"POST\" Version=\"1.1\" Url=\"https:\u002F\u002Fmyapp.example.com\u002Fapi\u002Fauth\" \n                             ThinkTime=\"0\" Timeout=\"60\">\n                        \u003CHeaders>\n                            \u003CHeader Name=\"Content-Type\" Value=\"application\u002Fjson\" \u002F>\n                        \u003C\u002FHeaders>\n                        \u003CBody>{\"username\":\"testuser\",\"password\":\"{{TestPassword}}\"}\u003C\u002FBody>\n                    \u003C\u002FRequest>\n                \u003C\u002FItems>\n            \u003C\u002FWebTest>\n        \"\"\"\n    },\n    Tags =\n    {\n        { $\"hidden-link:\u002Fsubscriptions\u002F{subscriptionId}\u002FresourceGroups\u002F{resourceGroupName}\u002Fproviders\u002Fmicrosoft.insights\u002Fcomponents\u002Fmy-appinsights\", \"Resource\" }\n    }\n};\n\nawait webTests.CreateOrUpdateAsync(WaitUntil.Completed, \"webtest-login-flow\", multiStepTest);\n```\n\n### 6. Create Workbook\n\n```csharp\nWorkbookCollection workbooks = resourceGroup.GetWorkbooks();\n\nWorkbookData workbookData = new WorkbookData(AzureLocation.EastUS)\n{\n    DisplayName = \"Application Performance Dashboard\",\n    Category = \"workbook\",\n    Kind = WorkbookSharedTypeKind.Shared,\n    SerializedData = \"\"\"\n    {\n        \"version\": \"Notebook\u002F1.0\",\n        \"items\": [\n            {\n                \"type\": 1,\n                \"content\": {\n                    \"json\": \"# Application Performance\\n\\nThis workbook shows application performance metrics.\"\n                },\n                \"name\": \"header\"\n            },\n            {\n                \"type\": 3,\n                \"content\": {\n                    \"version\": \"KqlItem\u002F1.0\",\n                    \"query\": \"requests\\n| summarize count() by bin(timestamp, 1h)\\n| render timechart\",\n                    \"size\": 0,\n                    \"title\": \"Requests per Hour\",\n                    \"timeContext\": {\n                        \"durationMs\": 86400000\n                    },\n                    \"queryType\": 0,\n                    \"resourceType\": \"microsoft.insights\u002Fcomponents\"\n                },\n                \"name\": \"requestsChart\"\n            }\n        ],\n        \"isLocked\": false\n    }\n    \"\"\",\n    SourceId = component.Id,\n    Tags =\n    {\n        { \"environment\", \"production\" }\n    }\n};\n\n\u002F\u002F Note: Workbook ID should be a new GUID\nstring workbookId = Guid.NewGuid().ToString();\n\nArmOperation\u003CWorkbookResource> operation = await workbooks\n    .CreateOrUpdateAsync(WaitUntil.Completed, workbookId, workbookData);\n\nWorkbookResource workbook = operation.Value;\nConsole.WriteLine($\"Workbook created: {workbook.Data.DisplayName}\");\n```\n\n### 7. Link Storage Account\n\n```csharp\nApplicationInsightsComponentResource component = await resourceGroup\n    .GetApplicationInsightsComponentAsync(\"my-appinsights\");\n\nComponentLinkedStorageAccountCollection linkedStorage = component.GetComponentLinkedStorageAccounts();\n\nComponentLinkedStorageAccountData storageData = new ComponentLinkedStorageAccountData\n{\n    LinkedStorageAccount = new ResourceIdentifier(\n        \"\u002Fsubscriptions\u002F\u003Csub-id>\u002FresourceGroups\u002F\u003Crg>\u002Fproviders\u002FMicrosoft.Storage\u002FstorageAccounts\u002F\u003Cstorage-account>\")\n};\n\nArmOperation\u003CComponentLinkedStorageAccountResource> operation = await linkedStorage\n    .CreateOrUpdateAsync(WaitUntil.Completed, StorageType.ServiceProfiler, storageData);\n```\n\n### 8. List and Manage Components\n\n```csharp\n\u002F\u002F List all Application Insights components in resource group\nawait foreach (ApplicationInsightsComponentResource component in \n    resourceGroup.GetApplicationInsightsComponents())\n{\n    Console.WriteLine($\"Component: {component.Data.Name}\");\n    Console.WriteLine($\"  App ID: {component.Data.AppId}\");\n    Console.WriteLine($\"  Type: {component.Data.ApplicationType}\");\n    Console.WriteLine($\"  Ingestion Mode: {component.Data.IngestionMode}\");\n    Console.WriteLine($\"  Retention: {component.Data.RetentionInDays} days\");\n}\n\n\u002F\u002F List web tests\nawait foreach (WebTestResource webTest in resourceGroup.GetWebTests())\n{\n    Console.WriteLine($\"Web Test: {webTest.Data.WebTestName}\");\n    Console.WriteLine($\"  Enabled: {webTest.Data.IsEnabled}\");\n    Console.WriteLine($\"  Frequency: {webTest.Data.Frequency}s\");\n}\n\n\u002F\u002F List workbooks\nawait foreach (WorkbookResource workbook in resourceGroup.GetWorkbooks())\n{\n    Console.WriteLine($\"Workbook: {workbook.Data.DisplayName}\");\n}\n```\n\n### 9. Update Component\n\n```csharp\nApplicationInsightsComponentResource component = await resourceGroup\n    .GetApplicationInsightsComponentAsync(\"my-appinsights\");\n\n\u002F\u002F Update using full data (PUT operation)\nApplicationInsightsComponentData updateData = component.Data;\nupdateData.RetentionInDays = 180;\nupdateData.SamplingPercentage = 50;\nupdateData.Tags[\"updated\"] = \"true\";\n\nArmOperation\u003CApplicationInsightsComponentResource> operation = await resourceGroup\n    .GetApplicationInsightsComponents()\n    .CreateOrUpdateAsync(WaitUntil.Completed, \"my-appinsights\", updateData);\n```\n\n### 10. Delete Resources\n\n```csharp\n\u002F\u002F Delete Application Insights component\nApplicationInsightsComponentResource component = await resourceGroup\n    .GetApplicationInsightsComponentAsync(\"my-appinsights\");\nawait component.DeleteAsync(WaitUntil.Completed);\n\n\u002F\u002F Delete web test\nWebTestResource webTest = await resourceGroup.GetWebTestAsync(\"webtest-homepage\");\nawait webTest.DeleteAsync(WaitUntil.Completed);\n```\n\n## Key Types Reference\n\n| Type | Purpose |\n|------|---------|\n| `ApplicationInsightsComponentResource` | App Insights component |\n| `ApplicationInsightsComponentData` | Component configuration |\n| `ApplicationInsightsComponentCollection` | Collection of components |\n| `ApplicationInsightsComponentApiKeyResource` | API key for programmatic access |\n| `WebTestResource` | Availability\u002Fweb test |\n| `WebTestData` | Web test configuration |\n| `WorkbookResource` | Analysis workbook |\n| `WorkbookData` | Workbook configuration |\n| `ComponentLinkedStorageAccountResource` | Linked storage for exports |\n\n## Application Types\n\n| Type | Enum Value |\n|------|------------|\n| Web Application | `Web` |\n| iOS Application | `iOS` |\n| Java Application | `Java` |\n| Node.js Application | `NodeJS` |\n| .NET Application | `MRT` |\n| Other | `Other` |\n\n## Web Test Locations\n\n| Location ID | Region |\n|-------------|--------|\n| `us-ca-sjc-azr` | West US |\n| `us-tx-sn1-azr` | South Central US |\n| `us-il-ch1-azr` | North Central US |\n| `us-va-ash-azr` | East US |\n| `emea-gb-db3-azr` | UK South |\n| `emea-nl-ams-azr` | West Europe |\n| `emea-fr-pra-edge` | France Central |\n| `apac-sg-sin-azr` | Southeast Asia |\n| `apac-hk-hkn-azr` | East Asia |\n| `apac-jp-kaw-edge` | Japan East |\n| `latam-br-gru-edge` | Brazil South |\n| `emea-au-syd-edge` | Australia East |\n\n## Best Practices\n\n1. **Use workspace-based** — Workspace-based App Insights is the current standard\n2. **Link to Log Analytics** — Store data in Log Analytics for better querying\n3. **Set appropriate retention** — Balance cost vs. data availability\n4. **Use sampling** — Reduce costs for high-volume applications\n5. **Store connection string securely** — Use Key Vault or managed identity\n6. **Enable multiple test locations** — For accurate availability monitoring\n7. **Use workbooks** — For custom dashboards and analysis\n8. **Set up alerts** — Based on availability tests and metrics\n9. **Tag resources** — For cost allocation and organization\n10. **Use private endpoints** — For secure data ingestion\n\n## Error Handling\n\n```csharp\nusing Azure;\n\ntry\n{\n    ArmOperation\u003CApplicationInsightsComponentResource> operation = await components\n        .CreateOrUpdateAsync(WaitUntil.Completed, \"my-appinsights\", data);\n}\ncatch (RequestFailedException ex) when (ex.Status == 409)\n{\n    Console.WriteLine(\"Component already exists\");\n}\ncatch (RequestFailedException ex) when (ex.Status == 400)\n{\n    Console.WriteLine($\"Invalid configuration: {ex.Message}\");\n}\ncatch (RequestFailedException ex)\n{\n    Console.WriteLine($\"Azure error: {ex.Status} - {ex.Message}\");\n}\n```\n\n## SDK Integration\n\nUse the connection string with Application Insights SDK:\n\n```csharp\n\u002F\u002F Program.cs in ASP.NET Core\nbuilder.Services.AddApplicationInsightsTelemetry(options =>\n{\n    options.ConnectionString = configuration[\"ApplicationInsights:ConnectionString\"];\n});\n\n\u002F\u002F Or set via environment variable\n\u002F\u002F APPLICATIONINSIGHTS_CONNECTION_STRING=InstrumentationKey=...;IngestionEndpoint=...\n```\n\n## Related SDKs\n\n| SDK | Purpose | Install |\n|-----|---------|---------|\n| `Azure.ResourceManager.ApplicationInsights` | Resource management (this SDK) | `dotnet add package Azure.ResourceManager.ApplicationInsights` |\n| `Microsoft.ApplicationInsights` | Telemetry SDK | `dotnet add package Microsoft.ApplicationInsights` |\n| `Microsoft.ApplicationInsights.AspNetCore` | ASP.NET Core integration | `dotnet add package Microsoft.ApplicationInsights.AspNetCore` |\n| `Azure.Monitor.OpenTelemetry.Exporter` | OpenTelemetry export | `dotnet add package Azure.Monitor.OpenTelemetry.Exporter` |\n\n## Reference Links\n\n| Resource | URL |\n|----------|-----|\n| NuGet Package | https:\u002F\u002Fwww.nuget.org\u002Fpackages\u002FAzure.ResourceManager.ApplicationInsights |\n| API Reference | https:\u002F\u002Flearn.microsoft.com\u002Fdotnet\u002Fapi\u002Fazure.resourcemanager.applicationinsights |\n| Product Documentation | https:\u002F\u002Flearn.microsoft.com\u002Fazure\u002Fazure-monitor\u002Fapp\u002Fapp-insights-overview |\n| GitHub Source | https:\u002F\u002Fgithub.com\u002FAzure\u002Fazure-sdk-for-net\u002Ftree\u002Fmain\u002Fsdk\u002Fapplicationinsights\u002FAzure.ResourceManager.ApplicationInsights |\n",{"name":5,"license":15,"metadata":45,"description":48},{"author":12,"package":46,"version":47},"Azure.ResourceManager.ApplicationInsights","1.0.0","Azure Application Insights SDK for .NET. Application performance monitoring and observability resource management. Use for creating Application Insights components, web tests, workbooks, analytics items, and API keys. Triggers: \"Application Insights\", \"ApplicationInsights\", \"App Insights\", \"APM\", \"application monitoring\", \"web tests\", \"availability tests\", \"workbooks\".\n","main","3f5b461b2314e01c400564051e92469114c5b68f",".github\u002Fplugins\u002Fazure-sdk-dotnet\u002Fskills\u002Fazure-mgmt-applicationinsights-dotnet",365,"https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fskills","https:\u002F\u002Fmicrosoft.github.io\u002Fskills\u002F","https:\u002F\u002Fgithub.com\u002Fmicrosoft","https:\u002F\u002Fopensource.microsoft.com","Open source projects and samples from Microsoft","2026-11-12 02:02:58",{"source":8,"skillName":5,"commands":60,"prompt":70,"zipAvailable":71},[61,64,67],{"tool":62,"command":63},"npx","npx skills add microsoft\u002Fskills --skill azure-mgmt-applicationinsights-dotnet",{"tool":65,"command":66},"bunx","bunx skills add microsoft\u002Fskills --skill azure-mgmt-applicationinsights-dotnet",{"tool":68,"command":69},"pnpm","pnpm dlx skills add microsoft\u002Fskills --skill azure-mgmt-applicationinsights-dotnet","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fskills\u002Fblob\u002Fmain\u002F.github\u002Fplugins\u002Fazure-sdk-dotnet\u002Fskills\u002Fazure-mgmt-applicationinsights-dotnet\u002FSKILL.md",true,[],[74,101,138,165,185,222],{"skillNo":75,"name":76,"nameZh":6,"description":77,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":78,"categories":79,"keywords":85,"publishedAt":40},"01M69B4JCRQV5SPXAFCKXQRV0H","skill-creator","Guide for creating effective skills for AI coding agents working with Azure SDKs and Microsoft Foundry services. Use when creating new skills or updating existing skills.","https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fskills\u002Fblob\u002Fmain\u002F.github\u002Fskills\u002Fskill-creator\u002FSKILL.md",[80],{"categoryNo":81,"categoryName":82,"taxonomyType":83,"taxonomyTypeDesc":84},"01JBSEEDCAT000000000000023","Skill与智能体开发","SCENARIO","使用场景",[86,87,88,9,89,90,91,20,92,93,94,31,95,96,97,24,98,99,100],"skill creator","creator","coding agents","foundry","microsoft foundry","ai coding agents","services","coding","guide","ai coding","with","sdks","Existing","when","new",{"skillNo":102,"name":103,"nameZh":6,"description":104,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":105,"categories":106,"keywords":117,"publishedAt":40},"01M69B4FD57V1MYKRWAJJECTZ7","podcast-generation","Generate AI-powered podcast-style audio narratives using Azure OpenAI's GPT Realtime Mini model via WebSocket. Use when building text-to-speech features, audio narrative generation, podcast creation from content, or integrating with Azure OpenAI Realtime API for real audio output. Covers full-stack implementation from React frontend to Python FastAPI backend with WebSocket streaming.","https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fskills\u002Fblob\u002Fmain\u002F.github\u002Fskills\u002Fpodcast-generation\u002FSKILL.md",[107,110,113,116],{"categoryNo":108,"categoryName":109,"taxonomyType":83,"taxonomyTypeDesc":84},"01JBSEEDCAT000000000000009","前端开发",{"categoryNo":111,"categoryName":112,"taxonomyType":83,"taxonomyTypeDesc":84},"01JBSEEDCAT000000000000010","后端与接口",{"categoryNo":114,"categoryName":115,"taxonomyType":83,"taxonomyTypeDesc":84},"01JBSEEDCAT000000000000016","图像与多媒体",{"categoryNo":81,"categoryName":82,"taxonomyType":83,"taxonomyTypeDesc":84},[118,119,120,121,122,123,124,20,125,126,127,32,128,129,130,131,132,133,134,135,136,99,137],"podcast generation","podcast","generation","frontend","python","react","realtime","azure openai","generate","streaming","Audio","stack","text","model","fastapi","creation","python fastapi","narrative","features","fastapi backend",{"skillNo":139,"name":140,"nameZh":6,"description":141,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":142,"categories":143,"keywords":145,"publishedAt":40},"01M69B4CYPM5SESY5ZWEFDXEQZ","microsoft-docs","Understand Microsoft technologies by querying official documentation. Use whenever the user asks how something works, wants tutorials, needs configuration options, limits, quotas, or best practices for any Microsoft technology (Azure, .NET, M365, Windows, Power Platform, etc.)—even if they don't mention \"docs.\" If the question is about understanding a concept rather than writing code, this is the right skill.","https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fskills\u002Fblob\u002Fmain\u002F.github\u002Fskills\u002Fmicrosoft-docs\u002FSKILL.md",[144],{"categoryNo":81,"categoryName":82,"taxonomyType":83,"taxonomyTypeDesc":84},[146,9,147,148,149,150,151,152,153,154,155,20,156,157,158,31,159,62,160,161,162,163,164,24],"docs","microsoft docs","MCP","writing","cli","mcp server","windows","power platform","official","documentation","learn","best practices","question","power","back","technology","platform","learn mcp","concept",{"skillNo":166,"name":167,"nameZh":6,"description":168,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":169,"categories":170,"keywords":172,"publishedAt":40},"01M69B49C3YPD1ZJ3NC0HPCY58","mcp-builder","Guide for creating high-quality MCP (Model Context Protocol) servers that enable LLMs to interact with external services through well-designed tools. Use when building MCP servers to integrate external APIs or services, whether in Python (FastMCP), Node\u002FTypeScript (MCP SDK), or C#\u002F.NET (Microsoft MCP SDK).","https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fskills\u002Fblob\u002Fmain\u002F.github\u002Fskills\u002Fmcp-builder\u002FSKILL.md",[171],{"categoryNo":81,"categoryName":82,"taxonomyType":83,"taxonomyTypeDesc":84},[148,173,174,175,122,176,33,177,9,178,179,131,180,181,94,31,182,183,184,96,24,99],"mcp builder","builder","typescript","llms","model context protocol","fastmcp","Tools","node","context","integrate","mcp sdk","building mcp servers",{"skillNo":186,"name":187,"nameZh":6,"description":188,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":189,"categories":190,"keywords":203,"publishedAt":40},"01M69B467A7CDMFQ0T6Q0ZA12Q","kql","KQL language expertise for writing correct, efficient Kusto Query Language queries. Covers syntax gotchas, join patterns, dynamic types, datetime pitfalls, regex patterns, serialization, memory management, result-size discipline, and advanced functions (geo, vector, graph). USE THIS SKILL whenever writing, debugging, or reviewing KQL queries — even simple ones — because the gotchas section prevents the most common errors that waste tool calls and cause expensive retry cascades. Trigger on: KQL, Kusto, ADX, Azure Data Explorer, Fabric Real-Time Intelligence, EventHouse, Log Analytics, log analysis, data exploration, time series, anomaly detection, summarize, where clause, join, extend, project, let statement, parse operator, extract function, any mention of pipe-forward query syntax.","https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fskills\u002Fblob\u002Fmain\u002F.github\u002Fskills\u002Fkql\u002FSKILL.md",[191,194,195,200],{"categoryNo":192,"categoryName":193,"taxonomyType":83,"taxonomyTypeDesc":84},"01JBSEEDCAT000000000000018","写作与文案",{"categoryNo":81,"categoryName":82,"taxonomyType":83,"taxonomyTypeDesc":84},{"categoryNo":196,"categoryName":197,"taxonomyType":198,"taxonomyTypeDesc":199},"01JBSEEDCAT000000000000033","数据分析师","PROFESSION","适用职业",{"categoryNo":201,"categoryName":202,"taxonomyType":198,"taxonomyTypeDesc":199},"01JBSEEDCAT000000000000036","内容创作者",[187,149,204,205,36,20,206,207,208,209,210,211,212,213,214,215,216,217,218,24,219,220,221],"summarize","memory","vector","time series","tool","discipline","log","geo","exploration","pipe","time","project","regex","join","datetime","section","anomaly","parse",{"skillNo":223,"name":224,"nameZh":6,"description":225,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":226,"categories":227,"keywords":228,"publishedAt":40},"01M69B44HJQ7897EZ7NE7DWQX3","github-issue-creator","Convert raw notes, error logs, voice dictation, or screenshots into crisp GitHub-flavored markdown issue reports. Use when the user pastes bug info, error messages, or informal descriptions and wants a structured GitHub issue. Supports images\u002FGIFs for visual evidence.","https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fskills\u002Fblob\u002Fmain\u002F.github\u002Fskills\u002Fgithub-issue-creator\u002FSKILL.md",[],[229,230,231,232,87,233,234,235,236,237,238,239,31,240,241,242,243,244,245,24,99],"github","github issue creator","github issue","issue","issue creator","screenshots","notes","logs","error messages","messages","convert","evidence","reports","images","info","visual","error"]