Skip to main content

azure-mgmt-applicationinsights-dotnet

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",...

Quellinformationen

Repository
JantonioFC/skillsbank
Letzte Quellaktivität
4. August 2026 um 03:07
Erkannte Sprache von SKILL.md
Englisch
Sterne
8
Forks
2

Installationsoptionen

Standardmäßig ist der Prompt ausgewählt, der zuerst die Quelle prüft. Sie können zu einem direkten Befehl wechseln oder eine lokale Kopie herunterladen.

Quelldateien prüfen

Lesen Sie SKILL.md und alle von SkillsMP angezeigten Begleitdateien, bevor Sie sich für eine Installation entscheiden.

Datei-Explorer
2 Dateien

SKILL.md wird angezeigt

SKILL.md
Quellanweisungen · Schreibgeschützte Vorschau
name
azure-mgmt-applicationinsights-dotnet
description
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",...
package
Azure.ResourceManager.ApplicationInsights
risk
safe
source
community
license
MIT
# Azure.ResourceManager.ApplicationInsights (.NET) Azure Resource Manager SDK for managing Application Insights resources for application performance monitoring. ## Installation ```bash dotnet add package Azure.ResourceManager.ApplicationInsights dotnet add package Azure.Identity ``` **Current Version**: v1.0.0 (GA) **API Version**: 2022-06-15 ## Environment Variables ```bash AZURE_SUBSCRIPTION_ID=<your-subscription-id> AZURE_RESOURCE_GROUP=<your-resource-group> AZURE_APPINSIGHTS_NAME=<your-appinsights-component> ``` ## Authentication ```csharp using Azure.Identity; using Azure.ResourceManager; using Azure.ResourceManager.ApplicationInsights; ArmClient client = new ArmClient(new DefaultAzureCredential()); ``` ## Resource Hierarchy ``` Subscription └── ResourceGroup └── ApplicationInsightsComponent # App Insights resource ├── ApplicationInsightsComponentApiKey # API keys for programmatic access ├── ComponentLinkedStorageAccount # Linked storage for data export └── (via component ID) ├── WebTest # Availability tests ├── Workbook # Workbooks for analysis ├── WorkbookTemplate # Workbook templates └── MyWorkbook # Private workbooks ``` ## Core Workflows ### 1. Create Application Insights Component (Workspace-based) ```csharp using Azure.ResourceManager.ApplicationInsights; using Azure.ResourceManager.ApplicationInsights.Models; ResourceGroupResource resourceGroup = await client .GetDefaultSubscriptionAsync() .Result .GetResourceGroupAsync("my-resource-group"); ApplicationInsightsComponentCollection components = resourceGroup.GetApplicationInsightsComponents(); // Workspace-based Application Insights (recommended) ApplicationInsightsComponentData data = new ApplicationInsightsComponentData( AzureLocation.EastUS, ApplicationInsightsApplicationType.Web) { Kind = "web", WorkspaceResourceId = new ResourceIdentifier( "/subscriptions/<sub-id>/resourceGroups/<rg>/providers/Microsoft.OperationalInsights/workspaces/<workspace-name>"), IngestionMode = IngestionMode.LogAnalytics, PublicNetworkAccessForIngestion = PublicNetworkAccessType.Enabled, PublicNetworkAccessForQuery = PublicNetworkAccessType.Enabled, RetentionInDays = 90, SamplingPercentage = 100, DisableIPMasking = false, ImmediatePurgeDataOn30Days = false, Tags = { { "environment", "production" }, { "application", "mywebapp" } } }; ArmOperation<ApplicationInsightsComponentResource> operation = await components .CreateOrUpdateAsync(WaitUntil.Completed, "my-appinsights", data); ApplicationInsightsComponentResource component = operation.Value; Console.WriteLine($"Component created: {component.Data.Name}"); Console.WriteLine($"Instrumentation Key: {component.Data.InstrumentationKey}"); Console.WriteLine($"Connection String: {component.Data.ConnectionString}"); ``` ### 2. Get Connection String and Keys ```csharp ApplicationInsightsComponentResource component = await resourceGroup .GetApplicationInsightsComponentAsync("my-appinsights"); // Get connection string for SDK configuration string connectionString = component.Data.ConnectionString; string instrumentationKey = component.Data.InstrumentationKey; string appId = component.Data.AppId; Console.WriteLine($"Connection String: {connectionString}"); Console.WriteLine($"Instrumentation Key: {instrumentationKey}"); Console.WriteLine($"App ID: {appId}"); ``` ### 3. Create API Key ```csharp ApplicationInsightsComponentResource component = await resourceGroup .GetApplicationInsightsComponentAsync("my-appinsights"); ApplicationInsightsComponentApiKeyCollection apiKeys = component.GetApplicationInsightsComponentApiKeys(); // API key for reading telemetry ApplicationInsightsApiKeyContent keyContent = new ApplicationInsightsApiKeyContent { Name = "ReadTelemetryKey", LinkedReadProperties = { $"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/microsoft.insights/components/{component.Data.Name}/api", $"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/microsoft.insights/components/{component.Data.Name}/agentconfig" } }; ApplicationInsightsComponentApiKeyResource apiKey = await apiKeys .CreateOrUpdateAsync(WaitUntil.Completed, keyContent); Console.WriteLine($"API Key Name: {apiKey.Data.Name}"); Console.WriteLine($"API Key: {apiKey.Data.ApiKey}"); // Only shown once! ``` ### 4. Create Web Test (Availability Test) ```csharp WebTestCollection webTests = resourceGroup.GetWebTests(); // URL Ping Test WebTestData urlPingTest = new WebTestData(AzureLocation.EastUS) { Kind = WebTestKind.Ping, SyntheticMonitorId = "webtest-ping-myapp", WebTestName = "Homepage Availability", Description = "Checks if homepage is available", IsEnabled = true, Frequency = 300, // 5 minutes Timeout = 120, // 2 minutes WebTestKind = WebTestKind.Ping, IsRetryEnabled = true, Locations = { new WebTestGeolocation { WebTestLocationId = "us-ca-sjc-azr" }, // West US new WebTestGeolocation { WebTestLocationId = "us-tx-sn1-azr" }, // South Central US new WebTestGeolocation { WebTestLocationId = "us-il-ch1-azr" }, // North Central US new WebTestGeolocation { WebTestLocationId = "emea-gb-db3-azr" }, // UK South new WebTestGeolocation { WebTestLocationId = "apac-sg-sin-azr" } // Southeast Asia }, Configuration = new WebTestConfiguration { WebTest = """ <WebTest Name="Homepage" Enabled="True" Timeout="120" xmlns="http://microsoft.com/schemas/VisualStudio/TeamTest/2010"> <Items> <Request Method="GET" Version="1.1" Url="https://myapp.example.com" ThinkTime="0" Timeout="120" ParseDependentRequests="False" FollowRedirects="True" RecordResult="True" Cache="False" ResponseTimeGoal="0" Encoding="utf-8" ExpectedHttpStatusCode="200" /> </Items> </WebTest> """ }, Tags = { { $"hidden-link:/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/microsoft.insights/components/my-appinsights", "Resource" } } }; ArmOperation<WebTestResource> operation = await webTests .CreateOrUpdateAsync(WaitUntil.Completed, "webtest-homepage", urlPingTest); WebTestResource webTest = operation.Value; Console.WriteLine($"Web test created: {webTest.Data.Name}"); ``` ### 5. Create Multi-Step Web Test ```csharp WebTestData multiStepTest = new WebTestData(AzureLocation.EastUS) { Kind = WebTestKind.MultiStep, SyntheticMonitorId = "webtest-multistep-login", WebTestName = "Login Flow Test", Description = "Tests login functionality", IsEnabled = true, Frequency = 900, // 15 minutes Timeout = 300, // 5 minutes WebTestKind = WebTestKind.MultiStep, IsRetryEnabled = true, Locations = { new WebTestGeolocation { WebTestLocationId = "us-ca-sjc-azr" } }, Configuration = new WebTestConfiguration { WebTest = """ <WebTest Name="LoginFlow" Enabled="True" Timeout="300" xmlns="http://microsoft.com/schemas/VisualStudio/TeamTest/2010"> <Items> <Request Method="GET" Version="1.1" Url="https://myapp.example.com/login" ThinkTime="0" Timeout="60" /> <Request Method="POST" Version="1.1" Url="https://myapp.example.com/api/auth" ThinkTime="0" Timeout="60"> <Headers> <Header Name="Content-Type" Value="application/json" /> </Headers> <Body>{"username":"testuser","password":"{{TestPassword}}"}</Body> </Request> </Items> </WebTest> """ }, Tags = { { $"hidden-link:/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/microsoft.insights/components/my-appinsights", "Resource" } } }; await webTests.CreateOrUpdateAsync(WaitUntil.Completed, "webtest-login-flow", multiStepTest); ``` ### 6. Create Workbook ```csharp WorkbookCollection workbooks = resourceGroup.GetWorkbooks(); WorkbookData workbookData = new WorkbookData(AzureLocation.EastUS) { DisplayName = "Application Performance Dashboard", Category = "workbook", Kind = WorkbookSharedTypeKind.Shared, SerializedData = """ { "version": "Notebook/1.0", "items": [ { "type": 1, "content": { "json": "# Application Performance\n\nThis workbook shows application performance metrics." }, "name": "header" }, { "type": 3, "content": { "version": "KqlItem/1.0", "query": "requests\n| summarize count() by bin(timestamp, 1h)\n| render timechart", "size": 0, "title": "Requests per Hour", "timeContext": { "durationMs": 86400000 }, "queryType": 0, "resourceType": "microsoft.insights/components" }, "name": "requestsChart" } ], "isLocked": false } """, SourceId = component.Id, Tags = { { "environment", "production" } } }; // Note: Workbook ID should be a new GUID string workbookId = Guid.NewGuid().ToString(); ArmOperation<WorkbookResource> operation = await workbooks .CreateOrUpdateAsync(WaitUntil.Completed, workbookId, workbookData); WorkbookResource workbook = operation.Value; Console.WriteLine($"Workbook created: {workbook.Data.DisplayName}"); ``` ### 7. Link Storage Account ```csharp ApplicationInsightsComponentResource component = await resourceGroup .GetApplicationInsightsComponentAsync("my-appinsights"); ComponentLinkedStorageAccountCollection linkedStorage = component.GetComponentLinkedStorageAccounts(); ComponentLinkedStorageAccountData storageData = new ComponentLinkedStorageAccountData { LinkedStorageAccount = new ResourceIdentifier( "/subscriptions/<sub-id>/resourceGroups/<rg>/providers/Microsoft.Storage/storageAccounts/<storage-account>") }; ArmOperation<ComponentLinkedStorageAccountResource> operation = await linkedStorage .CreateOrUpdateAsync(WaitUntil.Completed, StorageType.ServiceProfiler, storageData); ``` ### 8. List and Manage Components ```csharp // List all Application Insights components in resource group await foreach (ApplicationInsightsComponentResource component in resourceGroup.GetApplicationInsightsComponents()) { Console.WriteLine($"Component: {component.Data.Name}"); Console.WriteLine($" App ID: {component.Data.AppId}"); Console.WriteLine($" Type: {component.Data.ApplicationType}"); Console.WriteLine($" Ingestion Mode: {component.Data.IngestionMode}"); Console.WriteLine($" Retention: {component.Data.RetentionInDays} days"); } // List web tests await foreach (WebTestResource webTest in resourceGroup.GetWebTests()) { Console.WriteLine($"Web Test: {webTest.Data.WebTestName}"); Console.WriteLine($" Enabled: {webTest.Data.IsEnabled}"); Console.WriteLine($" Frequency: {webTest.Data.Frequency}s"); } // List workbooks await foreach (WorkbookResource workbook in resourceGroup.GetWorkbooks()) { Console.WriteLine($"Workbook: {workbook.Data.DisplayName}"); } ``` ### 9. Update Component ```csharp ApplicationInsightsComponentResource component = await resourceGroup .GetApplicationInsightsComponentAsync("my-appinsights"); // Update using full data (PUT operation) ApplicationInsightsComponentData updateData = component.Data; updateData.RetentionInDays = 180; updateData.SamplingPercentage = 50; updateData.Tags["updated"] = "true"; ArmOperation<ApplicationInsightsComponentResource> operation = await resourceGroup .GetApplicationInsightsComponents() .CreateOrUpdateAsync(WaitUntil.Completed, "my-appinsights", updateData); ``` ### 10. Delete Resources ```csharp // Delete Application Insights component ApplicationInsightsComponentResource component = await resourceGroup .GetApplicationInsightsComponentAsync("my-appinsights"); await component.DeleteAsync(WaitUntil.Completed); // Delete web test WebTestResource webTest = await resourceGroup.GetWebTestAsync("webtest-homepage"); await webTest.DeleteAsync(WaitUntil.Completed); ``` ## Key Types Reference | Type | Purpose | |------|---------| | `ApplicationInsightsComponentResource` | App Insights component | | `ApplicationInsightsComponentData` | Component configuration | | `ApplicationInsightsComponentCollection` | Collection of components | | `ApplicationInsightsComponentApiKeyResource` | API key for programmatic access | | `WebTestResource` | Availability/web test | | `WebTestData` | Web test configuration | | `WorkbookResource` | Analysis workbook | | `WorkbookData` | Workbook configuration | | `ComponentLinkedStorageAccountResource` | Linked storage for exports | ## Application Types | Type | Enum Value | |------|------------| | Web Application | `Web` | | iOS Application | `iOS` | | Java Application | `Java` | | Node.js Application | `NodeJS` | | .NET Application | `MRT` | | Other | `Other` | ## Web Test Locations | Location ID | Region | |-------------|--------|
Auf GitHub ansehen
Diese SKILL.md ist sehr gross, daher zeigt SkillsMP hier nur den ersten Abschnitt. Auf GitHub ansehen