Application Insights ist in Log Analytics integriert und sendet Telemetrie an einen gemeinsamen Log Analytics-Arbeitsbereich. Dieses Setup bietet vollzugriff auf Log Analytics-Features, konsolidiert Protokolle an einem Ort und ermöglicht eine einheitliche rollenbasierte Azure-Zugriffssteuerung , die die Notwendigkeit von App-/Arbeitsbereichsabfragen beseitigt.
Zu den erweiterten Funktionen gehören:
In diesem Artikel erfahren Sie, wie Sie Application Insights-Ressourcen erstellen und konfigurieren. Zusammen mit der Application Insights-Ressource selbst können Sie verschiedene Konfigurationen hinzufügen, z. B. das Festlegen des täglichen Cap- und Preisplans. Sie können auch Verfügbarkeitstests erstellen, Metrikwarnungen einrichten und den Prozess mithilfe von Azure Resource Manager automatisieren.
Hinweis
Die Abrechnung der Datenerfassung und -aufbewahrung für arbeitsbereichsbasierte Application Insights-Ressourcen erfolgt über den Log Analytics-Arbeitsbereich, in dem sich die Daten befinden. Weitere Informationen zur Abrechnung finden Sie unter Azure Monitor Logs Preisdetails.
Voraussetzungen
- Ein aktives Azure-Abonnement.
- Die erforderlichen Berechtigungen zum Erstellen von Ressourcen.
Zusätzliche Anforderungen
Keine zusätzlichen Anforderungen.
Um auf Application Insights Azure CLI-Befehle zuzugreifen, müssen Sie zuerst Folgendes ausführen:
az extension add -n application-insights
Wenn Sie den Befehl az extension add nicht ausführen, wird eine Fehlermeldung mit folgendem Wortlaut angezeigt: az : ERROR: az monitor: 'app-insights' is not in the 'az monitor' command group. See 'az monitor --help'.
Sie können Bicep-Vorlagen über die Azure CLI, Azure PowerShell und im Azure-Portal bereitstellen. Weitere Anforderungen finden Sie auf den entsprechenden Registerkarten.
Sie können ARM-Vorlagen über die Azure CLI, Azure PowerShell und im Azure-Portal bereitstellen. Weitere Anforderungen finden Sie auf den entsprechenden Registerkarten.
Eine Application Insights Ressource erstellen
Hinweis
Wenn Sie während der Ressourcenerstellung keine Verbindung mit einem vorhandenen Log Analytics-Arbeitsbereich herstellen, wird automatisch eine neue Log Analytics-Ressource zusammen mit Ihrer Application Insights-Ressource erstellt.
Wenn Sie eine arbeitsbereichbasierte Application Insights-Ressource erstellen oder aktualisieren und mit einem Log Analytics Arbeitsbereich in einem anderen Abonnement verknüpfen, muss die Identität, die den Vorgang ausführt, über die Berechtigung für den Zielarbeitsbereich Microsoft.OperationalInsights/workspaces/sharedKeys/actionverfügen. Diese Anforderung gilt auch, wenn sich beide Abonnements im selben Microsoft Entra Mandanten befinden. Wenn die Identität nicht über diese Berechtigung verfügt, kann der Vorgang mit einem 403 (Forbidden) Fehler fehlschlagen. Weisen Sie die Rolle mit den geringsten erforderlichen Berechtigungen zu, die diese Aktion für den Zielarbeitsbereich umfasst, oder verwenden Sie einen Arbeitsbereich im selben Abonnement wie die Application Insights-Ressource.
- Melden Sie sich beim Azure-Portal an.
- Wählen Sie Ressource erstellen aus.
- Öffnen Sie die Kategorie Monitoring & Diagnostics, und wählen Sie dann Application Insights aus.
- Geben Sie alle relevanten Informationen ein, und klicken Sie dann auf Überprüfen + Erstellen, um Ihre Application Insights-Ressource zu erstellen.
Nachdem Sie Ihre Ressource erstellt haben, finden Sie die entsprechenden Arbeitsbereichsinformationen im Bereich "Application Insights Overview ".
Wählen Sie den blauen Linktext aus, um zum zugeordneten Log Analytics-Arbeitsbereich zu gelangen, wo Sie die neue einheitliche Umgebung für Arbeitsbereichsabfragen nutzen können.
Hinweis
Wir bieten weiterhin vollständige Abwärtskompatibilität für Ihre klassischen Application Insights-Ressourcenabfragen, Arbeitsmappen und protokollbasierten Warnungen. Um die neue arbeitsbereichsbasierte Tabellenstruktur und das neue Tabellenschema anzuzeigen und abzufragen, müssen Sie zuerst zu Ihrem Log Analytics-Arbeitsbereich wechseln. Wählen Sie Protokolle (Analytics) in den Application Insights-Bereichen aus, um Zugriff auf die klassische Application Insights-Abfrageerfahrung zu erhalten.
Im folgenden Azure CLI Beispiel wird der Befehl az monitor app-insights component create verwendet.
# Set variables
resourceGroupName="<ResourceGroupName>"
resourceName="<ResourceName>"
azureRegion="<AzureRegion>"
workspaceName="<WorkspaceName>"
# Get the subscription ID from the current Azure CLI context
subscriptionId=$(az account show --query id --output tsv)
# Build the full resource ID for the Log Analytics workspace
workspaceResourceId="/subscriptions/$subscriptionId/resourceGroups/$resourceGroupName/providers/Microsoft.OperationalInsights/workspaces/$workspaceName"
# Create a workspace-based Application Insights resource
az monitor app-insights component create \
--app "$resourceName" \
--location "$azureRegion" \
--resource-group "$resourceGroupName" \
--kind web \
--application-type web \
--workspace "$workspaceResourceId"
Hinweis
Azure CLI Befehle verwenden den Azure Resource Manager Endpunkt aus dem aktuellen CLI-Kontext. Daher müssen management.azure.com nicht in der Befehlssyntax angegeben werden.
Im folgenden Azure PowerShell Beispiel wird das Cmdlet New-AzApplicationInsights verwendet.
# Set variables
$resourceGroupName = "<ResourceGroupName>"
$resourceName = "<ResourceName>"
$azureRegion = "<AzureRegion>"
$workspaceName = "<WorkspaceName>"
# Get the subscription ID from the current Azure PowerShell context
$subscriptionId = (Get-AzContext).Subscription.Id
# Build the full resource ID for the Log Analytics workspace
$workspaceResourceId = "/subscriptions/$subscriptionId/resourceGroups/$resourceGroupName/providers/Microsoft.OperationalInsights/workspaces/$workspaceName"
# Define the parameters for the Application Insights resource
$newAzApplicationInsightsParams = @{
ResourceGroupName = $resourceGroupName
Name = $resourceName
Location = $azureRegion
Kind = "web"
ApplicationType = "web"
WorkspaceResourceId = $workspaceResourceId
}
# Create a workspace-based Application Insights resource
New-AzApplicationInsights @newAzApplicationInsightsParams
Hinweis
Azure PowerShell Cmdlets den Azure Resource Manager Endpunkt aus dem aktuellen Az-Kontext verwenden, sodass management.azure.com nicht in der Cmdlet-Syntax angegeben werden muss.
Im folgenden REST-Beispiel wird der Vorgang "Components - Create Or Update REST API" verwendet.
PUT https://management.azure.com/subscriptions/{SubscriptionId}/resourceGroups/{ResourceGroupName}/providers/Microsoft.Insights/components/{ResourceName}?api-version=2020-02-02
Authorization: Bearer {AccessToken}
Content-Type: application/json
{
"kind": "web",
"location": "<AzureRegion>",
"properties": {
"Application_Type": "web",
"WorkspaceResourceId": "/subscriptions/<SubscriptionId>/resourceGroups/<ResourceGroupName>/providers/Microsoft.OperationalInsights/workspaces/<WorkspaceName>"
}
}
Im folgenden Bicep-Beispiel wird der Ressourcentyp Microsoft.Insights/components verwendet.
param subscriptionId string = '<SubscriptionId>'
param resourceGroupName string = '<ResourceGroupName>'
param resourceName string = '<ResourceName>'
param azureRegion string = '<AzureRegion>'
param workspaceName string = '<WorkspaceName>'
var workspaceResourceId = '/subscriptions/${subscriptionId}/resourceGroups/${resourceGroupName}/providers/Microsoft.OperationalInsights/workspaces/${workspaceName}'
resource applicationInsightsComponent 'Microsoft.Insights/components@2020-02-02' = {
name: resourceName
location: azureRegion
kind: 'web'
properties: {
Application_Type: 'web'
WorkspaceResourceId: workspaceResourceId
}
}
Das folgende ARM-(JSON-)Beispiel verwendet den Ressourcentyp Microsoft.Insights/components.
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"subscriptionId": {
"type": "string",
"defaultValue": "<SubscriptionId>"
},
"resourceGroupName": {
"type": "string",
"defaultValue": "<ResourceGroupName>"
},
"resourceName": {
"type": "string",
"defaultValue": "<ResourceName>"
},
"azureRegion": {
"type": "string",
"defaultValue": "<AzureRegion>"
},
"workspaceName": {
"type": "string",
"defaultValue": "<WorkspaceName>"
}
},
"variables": {
"workspaceResourceId": "[format('/subscriptions/{0}/resourceGroups/{1}/providers/Microsoft.OperationalInsights/workspaces/{2}', parameters('subscriptionId'), parameters('resourceGroupName'), parameters('workspaceName'))]"
},
"resources": [
{
"type": "Microsoft.Insights/components",
"apiVersion": "2020-02-02",
"name": "[parameters('resourceName')]",
"location": "[parameters('azureRegion')]",
"kind": "web",
"properties": {
"Application_Type": "web",
"WorkspaceResourceId": "[variables('workspaceResourceId')]"
}
}
]
}
Nach dem Erstellen einer Application Insights-Ressource konfigurieren Sie die Überwachung.
Abrufen der Verbindungszeichenfolge
Die Verbindungszeichenfolge identifiziert die Ressource, der Sie Ihre Telemetriedaten zuordnen möchten. Sie können damit auch die Endpunkte ändern, die Ihre Ressource als Ziel für die Telemetrie verwendet. Sie müssen die Verbindungszeichenfolge kopieren und dem Code Ihrer Anwendung oder einer Umgebungsvariable hinzufügen.
So rufen Sie die Verbindungszeichenfolge Ihrer Application Insights-Ressource ab:
- Öffnen Sie die Application Insights-Ressource im Azure-Portal.
- Suchen Sie im Bereich "Übersicht" in der Essentials-Sektion nach der Verbindungszeichenfolge.
- Wenn Sie mit dem Mauszeiger auf die Verbindungszeichenfolge zeigen, wird ein Symbol angezeigt, mit dem Sie sie in die Zwischenablage kopieren können.
Im folgenden Azure CLI-Beispiel wird der Befehl az monitor app-insights component show verwendet.
# Set variables
resourceGroupName="<ResourceGroupName>"
resourceName="<ResourceName>"
# Retrieve the Application Insights component
az monitor app-insights component show \
--resource-group "$resourceGroupName" \
--app "$resourceName"
Suchen Sie nach dem connectionString Feld in der JSON-Antwort.
Im folgenden Azure PowerShell Beispiel wird das Cmdlet Get-AzApplicationInsights verwendet.
# Set variables
$resourceGroupName = "<ResourceGroupName>"
$resourceName = "<ResourceName>"
# Define parameters for Get-AzApplicationInsights
$getAzApplicationInsightsParams = @{
ResourceGroupName = $resourceGroupName
Name = $resourceName
}
# Retrieve the Application Insights component
Get-AzApplicationInsights @getAzApplicationInsightsParams
Suchen Sie in der Ausgabe nach der Eigenschaft ConnectionString.
Im folgenden REST-Beispiel wird der REST-API-Vorgang Components - Get verwendet.
GET https://management.azure.com/subscriptions/{SubscriptionId}/resourceGroups/{ResourceGroupName}/providers/Microsoft.Insights/components/{ResourceName}?api-version=2020-02-02
Authorization: Bearer {AccessToken}
Suchen Sie nach dem properties.connectionString Feld in der JSON-Antwort.
Gilt nicht für Bicep-Vorlagen.
Gilt nicht für ARM-Vorlagen.
Anwendungsüberwachung mit OpenTelemetry
Installieren Sie für die Anwendungsüberwachung mit OpenTelemetry die entsprechende Azure Monitor OpenTelemetry Distro, und verweisen Sie die Verbindungszeichenfolge auf Ihre neu erstellte Ressource.
Informationen zum Einrichten der Anwendungsüberwachung mit OpenTelemetry finden Sie in der folgenden sprachspezifischen Dokumentation:
Automatische Instrumentierung
Für Überwachungsdienste wie Azure Functions und Azure App Service können Sie zuerst Ihre Application Insights-Ressource erstellen und dann darauf zeigen, wenn Sie die Überwachung aktivieren. Alternativ können Sie während des Aktivierungsprozesses eine neue Application Insights-Ressource erstellen.
Ändern des zugeordneten Arbeitsbereichs
Nachdem Sie eine Application Insights-Ressource erstellt haben, können Sie den zugeordneten Log Analytics-Arbeitsbereich ändern.
Von Bedeutung
REST-Aufrufe, ARM-Vorlagen und Bicep Vorlagen verwenden create-or-update (PUT)-Semantik. Wenn Sie eine Application Insights-Komponente mithilfe dieser Methoden aktualisieren, schließen Sie alle erforderlichen Eigenschaften ein, die Sie beibehalten möchten. Eigenschaften, die nicht enthalten sind, können zurückgesetzt oder entfernt werden.
Wählen Sie in Ihrer "Application Insights"-Ressource die Option Eigenschaften>Arbeitsbereich ändern>Log Analytics-Arbeitsbereiche.
Im folgenden Azure CLI Beispiel wird der Befehl az monitor app-insights component update verwendet.
# Set variables
resourceGroupName="<ResourceGroupName>"
resourceName="<ResourceName>"
workspaceName="<WorkspaceName>"
# Get the subscription ID from the current Azure CLI context
subscriptionId=$(az account show --query id --output tsv)
# Build the full resource ID for the Log Analytics workspace
workspaceResourceId="/subscriptions/$subscriptionId/resourceGroups/$resourceGroupName/providers/Microsoft.OperationalInsights/workspaces/$workspaceName"
# Update a workspace-based Application Insights resource
az monitor app-insights component update \
--resource-group "$resourceGroupName" \
--app "$resourceName" \
--workspace "$workspaceResourceId"
Im folgenden Azure PowerShell Beispiel wird das Cmdlet Update-AzApplicationInsights verwendet.
# Set variables
$resourceGroupName = "<ResourceGroupName>"
$resourceName = "<ResourceName>"
$workspaceName = "<WorkspaceName>"
# Get the subscription ID from the current Azure PowerShell context
$subscriptionId = (Get-AzContext).Subscription.Id
# Build the full resource ID for the Log Analytics workspace
$workspaceResourceId = "/subscriptions/$subscriptionId/resourceGroups/$resourceGroupName/providers/Microsoft.OperationalInsights/workspaces/$workspaceName"
# Define the parameters for the Application Insights resource
$updateAzApplicationInsightsParams = @{
ResourceGroupName = $resourceGroupName
Name = $resourceName
WorkspaceResourceId = $workspaceResourceId
}
# Update a workspace-based Application Insights resource
Update-AzApplicationInsights @updateAzApplicationInsightsParams
Im folgenden REST-Beispiel wird der Vorgang "Components - Create Or Update REST API" verwendet.
PUT https://management.azure.com/subscriptions/{SubscriptionId}/resourceGroups/{ResourceGroupName}/providers/Microsoft.Insights/components/{ResourceName}?api-version=2020-02-02
Authorization: Bearer {AccessToken}
Content-Type: application/json
{
"location": "<AzureRegion>",
"kind": "web",
"properties": {
"Application_Type": "web",
"WorkspaceResourceId": "/subscriptions/<SubscriptionId>/resourceGroups/<ResourceGroupName>/providers/Microsoft.OperationalInsights/workspaces/<WorkspaceName>"
}
}
Im folgenden Bicep-Beispiel wird der Ressourcentyp Microsoft.Insights components verwendet.
param subscriptionId string = '<SubscriptionId>'
param resourceGroupName string = '<ResourceGroupName>'
param resourceName string = '<ResourceName>'
param azureRegion string = '<AzureRegion>'
param workspaceName string = '<WorkspaceName>'
var workspaceResourceId = '/subscriptions/${subscriptionId}/resourceGroups/${resourceGroupName}/providers/Microsoft.OperationalInsights/workspaces/${workspaceName}'
resource applicationInsightsComponent 'Microsoft.Insights/components@2020-02-02' = {
name: resourceName
location: azureRegion
kind: 'web'
properties: {
Application_Type: 'web'
WorkspaceResourceId: workspaceResourceId
}
}
Im folgenden ARM (JSON)-Beispiel wird der Microsoft.Insights components-Ressourcentyp verwendet.
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"subscriptionId": {
"type": "string",
"defaultValue": "<SubscriptionId>"
},
"resourceGroupName": {
"type": "string",
"defaultValue": "<ResourceGroupName>"
},
"resourceName": {
"type": "string",
"defaultValue": "<ResourceName>"
},
"azureRegion": {
"type": "string",
"defaultValue": "<AzureRegion>"
},
"workspaceName": {
"type": "string",
"defaultValue": "<WorkspaceName>"
}
},
"variables": {
"workspaceResourceId": "[format('/subscriptions/{0}/resourceGroups/{1}/providers/Microsoft.OperationalInsights/workspaces/{2}', parameters('subscriptionId'), parameters('resourceGroupName'), parameters('workspaceName'))]"
},
"resources": [
{
"type": "Microsoft.Insights/components",
"apiVersion": "2020-02-02",
"name": "[parameters('resourceName')]",
"location": "[parameters('azureRegion')]",
"kind": "web",
"properties": {
"Application_Type": "web",
"WorkspaceResourceId": "[variables('workspaceResourceId')]"
}
}
]
}
Exportieren von Telemetriedaten
Die Legacyfunktion für den fortlaufenden Export wird für arbeitsbereichsbasierte Ressourcen nicht unterstützt. Verwenden Sie stattdessen Diagnoseeinstellungen.
Hinweis
Der Export von Diagnoseeinstellungen kann die Kosten erhöhen. Weitere Informationen finden Sie unter Exportieren von Telemetrie aus Application Insights.
Preisinformationen für dieses Feature finden Sie auf der Seite Azure Monitor – Preise. Vor Beginn der Abrechnung werden Benachrichtigungen gesendet. Wenn Sie den Telemetrieexport über den Benachrichtigungszeitraum hinaus weiter verwenden, wird Ihnen dies mit dem entsprechenden Tarif in Rechnung gestellt.
Wählen Sie in Ihrer Ressource "Application Insights" die Option "Diagnoseeinstellungen>hinzufügen" aus.
Sie können alle Tabellen oder eine Teilmenge von Tabellen auswählen, die in einem Speicherkonto archiviert werden sollen. Sie können auch auf einen Event Hub streamen.
Im folgenden Azure CLI Beispiel wird der Befehl az monitor diagnostic-settings create verwendet. Es erstellt eine Diagnoseeinstellung, die Protokolle und Metriken aus einer Application Insights-Ressource an ein Speicherkonto sendet.
# Set variables
resourceGroupName="<ResourceGroupName>"
resourceName="<ResourceName>"
storageAccountName="<StorageAccountName>"
diagnosticSettingName="<DiagnosticSettingName>"
# Get the subscription ID from the current Azure CLI context
subscriptionId=$(az account show --query id --output tsv)
# Build the full resource ID for the Application Insights component
resourceId="/subscriptions/$subscriptionId/resourceGroups/$resourceGroupName/providers/Microsoft.Insights/components/$resourceName"
# Build the full resource ID for the storage account
storageAccountId="/subscriptions/$subscriptionId/resourceGroups/$resourceGroupName/providers/Microsoft.Storage/storageAccounts/$storageAccountName"
# Create the diagnostic setting
az monitor diagnostic-settings create \
--name "$diagnosticSettingName" \
--resource "$resourceId" \
--storage-account "$storageAccountId" \
--logs '[{"category":"AppRequests","enabled":true}]' \
--metrics '[{"category":"AllMetrics","enabled":true}]'
Im folgenden Azure PowerShell Beispiel wird das Cmdlet New-AzDiagnosticSetting verwendet. Es erstellt eine Diagnoseeinstellung, die Protokolle und Metriken aus einer Application Insights-Ressource an ein Speicherkonto sendet.
# Set variables
$resourceGroupName = "<ResourceGroupName>"
$resourceName = "<ResourceName>"
$storageAccountName = "<StorageAccountName>"
$diagnosticSettingName = "<DiagnosticSettingName>"
# Get the subscription ID from the current Azure PowerShell context
$subscriptionId = (Get-AzContext).Subscription.Id
# Build the full resource ID for the Application Insights component
$resourceId = "/subscriptions/$subscriptionId/resourceGroups/$resourceGroupName/providers/Microsoft.Insights/components/$resourceName"
# Build the full resource ID for the storage account
$storageAccountId = "/subscriptions/$subscriptionId/resourceGroups/$resourceGroupName/providers/Microsoft.Storage/storageAccounts/$storageAccountName"
# Create log and metric settings objects
$log = New-AzDiagnosticSettingLogSettingsObject `
-Category 'AppRequests' `
-Enabled $true
$metric = New-AzDiagnosticSettingMetricSettingsObject `
-Category 'AllMetrics' `
-Enabled $true
# Define parameters for New-AzDiagnosticSetting
$newAzDiagnosticSettingParams = @{
Name = $diagnosticSettingName
ResourceId = $resourceId
StorageAccountId = $storageAccountId
Log = @($log)
Metric = @($metric)
}
# Create the diagnostic setting
New-AzDiagnosticSetting @newAzDiagnosticSettingParams
Im folgenden REST-Beispiel wird der Vorgang "Diagnoseeinstellungen – Erstellen oder Aktualisieren der REST-API" verwendet. Es erstellt eine Diagnoseeinstellung, die Protokolle und Metriken aus einer Application Insights-Ressource an ein Speicherkonto sendet.
PUT https://management.azure.com/subscriptions/{SubscriptionId}/resourceGroups/{ResourceGroupName}/providers/Microsoft.Insights/components/{ResourceName}/providers/Microsoft.Insights/diagnosticSettings/{DiagnosticSettingName}?api-version=2021-05-01-preview
Authorization: Bearer {AccessToken}
Content-Type: application/json
{
"properties": {
"storageAccountId": "/subscriptions/<SubscriptionId>/resourceGroups/<ResourceGroupName>/providers/Microsoft.Storage/storageAccounts/<StorageAccountName>",
"logs": [
{
"category": "AppRequests",
"enabled": true
}
],
"metrics": [
{
"category": "AllMetrics",
"enabled": true
}
]
}
}
Im folgenden Bicep-Beispiel wird der Ressourcentyp Microsoft.Insights diagnosticSettings verwendet. Es erstellt eine Diagnoseeinstellung, die Protokolle und Metriken aus einer Application Insights-Ressource an ein Speicherkonto sendet.
param subscriptionId string = '<SubscriptionId>'
param resourceGroupName string = '<ResourceGroupName>'
param resourceName string = '<ResourceName>'
param storageAccountName string = '<StorageAccountName>'
param diagnosticSettingName string = '<DiagnosticSettingName>'
resource applicationInsightsComponent 'Microsoft.Insights/components@2020-02-02' existing = {
name: resourceName
}
var storageAccountId = '/subscriptions/${subscriptionId}/resourceGroups/${resourceGroupName}/providers/Microsoft.Storage/storageAccounts/${storageAccountName}'
resource diagnosticSetting 'Microsoft.Insights/diagnosticSettings@2021-05-01-preview' = {
name: diagnosticSettingName
scope: applicationInsightsComponent
properties: {
storageAccountId: storageAccountId
logs: [
{
category: 'AppRequests'
enabled: true
}
]
metrics: [
{
category: 'AllMetrics'
enabled: true
}
]
}
}
Im folgenden ARM-Vorlagenbeispiel wird der Ressourcentyp Microsoft.Insights diagnosticSettings verwendet. Es erstellt eine Diagnoseeinstellung, die Protokolle und Metriken aus einer Application Insights-Ressource an ein Speicherkonto sendet.
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"subscriptionId": {
"type": "string",
"defaultValue": "<SubscriptionId>"
},
"resourceGroupName": {
"type": "string",
"defaultValue": "<ResourceGroupName>"
},
"resourceName": {
"type": "string",
"defaultValue": "<ResourceName>"
},
"storageAccountName": {
"type": "string",
"defaultValue": "<StorageAccountName>"
},
"diagnosticSettingName": {
"type": "string",
"defaultValue": "<DiagnosticSettingName>"
}
},
"variables": {
"storageAccountId": "[format('/subscriptions/{0}/resourceGroups/{1}/providers/Microsoft.Storage/storageAccounts/{2}', parameters('subscriptionId'), parameters('resourceGroupName'), parameters('storageAccountName'))]"
},
"resources": [
{
"type": "Microsoft.Insights/components/providers/diagnosticSettings",
"apiVersion": "2021-05-01-preview",
"name": "[format('{0}/Microsoft.Insights/{1}', parameters('resourceName'), parameters('diagnosticSettingName'))]",
"properties": {
"storageAccountId": "[variables('storageAccountId')]",
"logs": [
{
"category": "AppRequests",
"enabled": true
}
],
"metrics": [
{
"category": "AllMetrics",
"enabled": true
}
]
}
}
]
}
Festlegen der Datenaufbewahrung
Im folgenden Bicep-Beispiel wird der Ressourcentyp Microsoft.OperationalInsights workspaces verwendet. Er legt den Datenaufbewahrungszeitraum für den zugeordneten Log Analytics Arbeitsbereich fest.
param workspaceName string = '<WorkspaceName>'
param azureRegion string = '<AzureRegion>'
param retentionInDays int = <RetentionInDays>
resource logAnalyticsWorkspace 'Microsoft.OperationalInsights/workspaces@2025-07-01' = {
name: workspaceName
location: azureRegion
properties: {
retentionInDays: retentionInDays
}
}
Im folgenden ARM-(JSON-)Beispiel wird der Ressourcentyp Microsoft.OperationalInsights workspaces verwendet. Er legt den Datenaufbewahrungszeitraum für den zugeordneten Log Analytics Arbeitsbereich fest.
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"workspaceName": {
"type": "string",
"defaultValue": "<WorkspaceName>"
},
"azureRegion": {
"type": "string",
"defaultValue": "<AzureRegion>"
},
"retentionInDays": {
"type": "int",
"defaultValue": <RetentionInDays>
}
},
"resources": [
{
"type": "Microsoft.OperationalInsights/workspaces",
"apiVersion": "2025-07-01",
"name": "[parameters('workspaceName')]",
"location": "[parameters('azureRegion')]",
"properties": {
"retentionInDays": "[parameters('retentionInDays')]"
}
}
]
}
Festlegen der täglichen Obergrenze
Die tägliche Obergrenze muss unabhängig für Application Insights und den zugrunde liegenden Log Analytics-Arbeitsbereich festgelegt werden. Die effektive Tagesgrenze ist das Minimum der beiden Einstellungen.
Hinweis
Derzeit bietet Azure keine Möglichkeit, die tägliche Obergrenze für Application Insights über die Azure CLI festzulegen.
Log Analytics:
Im folgenden Azure CLI Beispiel wird der Befehl az monitor log-analytics workspace update verwendet.
# Set variables
resourceGroupName="<ResourceGroupName>"
workspaceName="<WorkspaceName>"
dailyCapInGb="<DailyCapInGb>"
# Update the daily cap for the Log Analytics workspace
az monitor log-analytics workspace update \
--resource-group "$resourceGroupName" \
--workspace-name "$workspaceName" \
--set workspaceCapping.dailyQuotaGb=$dailyCapInGb
In den folgenden Azure PowerShell Beispielen werden die Cmdlets Set-AzApplicationInsightsDailyCap und Set-AzOperationalInsightsWorkspace verwendet.
Application Insights:
In den folgenden Azure PowerShell Beispielen wird das Cmdlet Set-AzApplicationInsightsDailyCap verwendet.
# Set variables
$resourceGroupName = "<ResourceGroupName>"
$resourceName = "<ResourceName>"
$dailyCapInGb = "<DailyCapInGb>"
# Define the parameters for the daily cap
$setAzApplicationInsightsDailyCapParams = @{
ResourceGroupName = $resourceGroupName
Name = $resourceName
DailyCapGB = $dailyCapInGb
}
# Set the daily cap for the Application Insights resource
Set-AzApplicationInsightsDailyCap @setAzApplicationInsightsDailyCapParams
Log Analytics:
Die folgenden Azure PowerShell Beispiele verwenden das Cmdlet Set-AzOperationalInsightsWorkspace.
# Set variables
$resourceGroupName = "<ResourceGroupName>"
$workspaceName = "<WorkspaceName>"
$dailyCapInGb = "<DailyCapInGb>"
# Define the parameters for the daily cap
$setAzOperationalInsightsWorkspaceParams = @{
ResourceGroupName = $resourceGroupName
Name = $workspaceName
DailyQuotaGb = $dailyCapInGb
}
# Set the daily cap for the Log Analytics workspace
Set-AzOperationalInsightsWorkspace @setAzOperationalInsightsWorkspaceParams
Hinweis
Derzeit bietet Azure keine Möglichkeit, die tägliche Obergrenze für Application Insights über die REST-API festzulegen.
Log Analytics:
Im folgenden REST-Beispiel wird der Vorgang "Workspaces - Update REST API" verwendet.
PATCH https://management.azure.com/subscriptions/{SubscriptionId}/resourceGroups/{ResourceGroupName}/providers/Microsoft.OperationalInsights/workspaces/{WorkspaceName}?api-version=2025-07-01
Authorization: Bearer {AccessToken}
Content-Type: application/json
{
"properties": {
"workspaceCapping": {
"dailyQuotaGb": <DailyCapInGb>
}
}
}
Hinweis
Derzeit bietet Azure keine Möglichkeit, die tägliche Obergrenze für Application Insights mit einer Bicep-Vorlage festzulegen.
Log Analytics:
Im folgenden Bicep-Beispiel wird der Ressourcentyp Microsoft.OperationalInsights workspaces verwendet.
param workspaceName string = '<WorkspaceName>'
param azureRegion string = '<AzureRegion>'
param dailyCapInGb int
resource logAnalyticsWorkspace 'Microsoft.OperationalInsights/workspaces@2025-07-01' = {
name: workspaceName
location: azureRegion
properties: {
workspaceCapping: {
dailyQuotaGb: dailyCapInGb
}
}
}
Hinweis
Derzeit bietet Azure keine Möglichkeit, die tägliche Obergrenze für Application Insights mithilfe einer ARM-Vorlage festzulegen.
Log Analytics:
Im folgenden ARM-(JSON-)Beispiel wird der Ressourcentyp Microsoft.OperationalInsights workspaces verwendet.
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"workspaceName": {
"type": "string",
"defaultValue": "<WorkspaceName>"
},
"azureRegion": {
"type": "string",
"defaultValue": "<AzureRegion>"
},
"dailyCapInGb": {
"type": "int"
}
},
"resources": [
{
"type": "Microsoft.OperationalInsights/workspaces",
"apiVersion": "2025-07-01",
"name": "[parameters('workspaceName')]",
"location": "[parameters('azureRegion')]",
"properties": {
"workspaceCapping": {
"dailyQuotaGb": "[parameters('dailyCapInGb')]"
}
}
}
]
}
Festlegen des Tarifs
Der Preisplan für Application Insights-Ressourcen kann im zugeordneten Log Analytics-Arbeitsbereich festgelegt werden. Weitere Informationen zu verfügbaren Preisplänen finden Sie unter Azure Monitor Protokolliert Kostenberechnungen und -optionen.
Hinweis
Wenn unerwartete Gebühren oder hohe Kosten in Application Insights angezeigt werden, kann dieser Leitfaden hilfreich sein. Es deckt häufige Ursachen wie hohes Telemetrievolumen, Datenaufnahmespitzen und falsch konfiguriertes Sampling ab. Es ist besonders hilfreich, wenn Sie Probleme im Zusammenhang mit Kostenspitzen, Telemetrievolumen, nicht funktionierendem Sampling, Datenobergrenzen, hohem Dateninput oder unerwarteter Abrechnung beheben. Informationen zu den ersten Schritten finden Sie unter "Problembehandlung bei der Erfassung von hohen Daten in Application Insights".
Die folgenden Azure CLI Beispiele verwenden den Befehl az monitor log-analytics workspace update.
Nutzungsbasierte Bezahlung:
# Set variables
resourceGroupName="<ResourceGroupName>"
workspaceName="<WorkspaceName>"
# Set the pricing plan to pay-as-you-go
az monitor log-analytics workspace update \
--resource-group "$resourceGroupName" \
--workspace-name "$workspaceName" \
--set PerGB2018
Verpflichtungsstufe:
# Set variables
resourceGroupName="<ResourceGroupName>"
workspaceName="<WorkspaceName>"
capacityReservationInGb="<CapacityReservationInGb>"
# Set the pricing plan to commitment tier
az monitor log-analytics workspace update \
--resource-group "$resourceGroupName" \
--workspace-name "$workspaceName" \
--set CapacityReservation \
--level "$capacityReservationInGb"
Die folgenden Azure PowerShell Beispiele verwenden das Cmdlet Set-AzOperationalInsightsWorkspace.
Nutzungsbasierte Bezahlung:
# Set variables
$resourceGroupName = "<ResourceGroupName>"
$workspaceName = "<WorkspaceName>"
# Define the parameters for the pricing plan
$setAzOperationalInsightsWorkspaceParams = @{
ResourceGroupName = $resourceGroupName
Name = $workspaceName
Sku = "PerGB2018"
}
# Set the pricing plan to pay-as-you-go
Set-AzOperationalInsightsWorkspace @setAzOperationalInsightsWorkspaceParams
Verpflichtungsstufe:
# Set variables
$resourceGroupName = "<ResourceGroupName>"
$workspaceName = "<WorkspaceName>"
$capacityReservationInGb = "<CapacityReservationInGb>"
# Define the parameters for the pricing plan
$setAzOperationalInsightsWorkspaceParams = @{
ResourceGroupName = $resourceGroupName
Name = $workspaceName
Sku = "CapacityReservation"
SkuCapacity = $capacityReservationInGb
}
# Set the pricing plan to commitment tier
Set-AzOperationalInsightsWorkspace @setAzOperationalInsightsWorkspaceParams
Die folgenden REST-Beispiele verwenden den REST-API-Vorgang Pricing Plan - Update.
Nutzungsbasierte Bezahlung:
PUT https://management.azure.com/subscriptions/{SubscriptionId}/resourceGroups/{ResourceGroupName}/providers/Microsoft.OperationalInsights/workspaces/{WorkspaceName}/pricingPlans/current?api-version=2017-10-01
Authorization: Bearer {AccessToken}
Content-Type: application/json
{
"properties": {
"sku": {
"name": "pergb2018"
}
}
}
Verpflichtungsstufe:
PUT https://management.azure.com/subscriptions/{SubscriptionId}/resourceGroups/{ResourceGroupName}/providers/Microsoft.OperationalInsights/workspaces/{WorkspaceName}/pricingPlans/current?api-version=2017-10-01
Authorization: Bearer {AccessToken}
Content-Type: application/json
{
"properties": {
"sku": {
"name": "capacityreservation",
"capacityReservationLevel": <CapacityReservationInGb>
}
}
}
Die folgenden Bicep-Beispiele verwenden den Ressourcentyp Microsoft.OperationalInsights workspaces.
Nutzungsbasierte Bezahlung:
param workspaceName string = '<WorkspaceName>'
param azureRegion string = '<AzureRegion>'
resource logAnalyticsWorkspace 'Microsoft.OperationalInsights/workspaces@2025-07-01' = {
name: workspaceName
location: azureRegion
properties: {
sku: {
name: 'pergb2018'
}
}
}
Verpflichtungsstufe:
param workspaceName string = '<WorkspaceName>'
param azureRegion string = '<AzureRegion>'
param capacityReservationInGb int
resource logAnalyticsWorkspace 'Microsoft.OperationalInsights/workspaces@2025-07-01' = {
name: workspaceName
location: azureRegion
properties: {
sku: {
name: 'capacityreservation'
capacityReservationLevel: capacityReservationInGb
}
}
}
In den folgenden ARM-Beispielen (JSON) wird der Ressourcentyp Microsoft.OperationalInsights workspaces verwendet.
Nutzungsbasierte Bezahlung:
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"workspaceName": {
"type": "string",
"defaultValue": "<WorkspaceName>"
},
"azureRegion": {
"type": "string",
"defaultValue": "<AzureRegion>"
}
},
"resources": [
{
"type": "Microsoft.OperationalInsights/workspaces",
"apiVersion": "2025-07-01",
"name": "[parameters('workspaceName')]",
"location": "[parameters('azureRegion')]",
"properties": {
"sku": {
"name": "pergb2018"
}
}
}
]
}
Verpflichtungsstufe:
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"workspaceName": {
"type": "string",
"defaultValue": "<WorkspaceName>"
},
"azureRegion": {
"type": "string",
"defaultValue": "<AzureRegion>"
},
"capacityReservationInGb": {
"type": "int"
}
},
"resources": [
{
"type": "Microsoft.OperationalInsights/workspaces",
"apiVersion": "2025-07-01",
"name": "[parameters('workspaceName')]",
"location": "[parameters('azureRegion')]",
"properties": {
"sku": {
"name": "capacityreservation",
"capacityReservationLevel": "[parameters('capacityReservationInGb')]"
}
}
}
]
}
IP-Maskierung deaktivieren
Standardmäßig speichert Application Insights keine IP-Adressen. Informationen zum Deaktivieren der IP-Maskierung finden Sie unter Geolocation und IP-Adressbehandlung.
Erstellen zusätzlicher Ressourcen
Verfügbarkeitstest erstellen
Im folgenden Azure CLI-Beispiel wird der Befehl az monitor app-insights web-test create verwendet. Er erstellt einen Standardverfügbarkeitstest mit Standardeinstellungen.
# Set variables
resourceGroupName="<ResourceGroupName>"
resourceName="<ResourceName>"
azureRegion="<AzureRegion>"
webTestName="<WebTestName>"
requestUrl="<RequestUrl>"
# Get the subscription ID from the current Azure CLI context
subscriptionId=$(az account show --query id --output tsv)
# Create a standard availability test
az monitor app-insights web-test create \
--resource-group "$resourceGroupName" \
--location "$azureRegion" \
--web-test-kind standard \
--name "$webTestName" \
--defined-web-test-name "$webTestName" \
--request-url "$requestUrl" \
--retry-enabled true \
--ssl-check true \
--ssl-lifetime-check 7 \
--frequency 300 \
--locations Id="us-ca-sjc-azr" \
--locations Id="apac-sg-sin-azr" \
--locations Id="us-il-ch1-azr" \
--locations Id="us-va-ash-azr" \
--locations Id="emea-au-syd-edge" \
--http-verb GET \
--timeout 120 \
--expected-status-code 200 \
--enabled true \
--tags "hidden-link:/subscriptions/$subscriptionId/resourceGroups/$resourceGroupName/providers/microsoft.insights/components/$resourceName=Resource"
Hinweis
Die Webtestregion (--location) unterscheidet sich von dem geografischen Standort (--locationsbeachten Sie die Pluralform), von der mehrere ausgewählt werden können.
--location bezieht sich auf die Azure-Region, in der der Webtest erstellt und gehostet wird, während --locations es sich auf den geografischen Standort oder die Standorte bezieht, von denen der Webtest ausgeführt wird. Eine vollständige Liste aller geografischen Standorte finden Sie unter Application Insights-Verfügbarkeitstests.
Im folgenden Azure PowerShell Beispiel wird das Cmdlet New-AzApplicationInsightsWebTest verwendet. Er erstellt einen Standardverfügbarkeitstest mit Standardeinstellungen.
# Set variables
$resourceGroupName = "<ResourceGroupName>"
$resourceName = "<ResourceName>"
$azureRegion = "<AzureRegion>"
$webTestName = "<WebTestName>"
$requestUrl = "<RequestUrl>"
# Get the subscription ID from the current Azure PowerShell context
$subscriptionId = (Get-AzContext).Subscription.Id
# Define the geographic locations from which the web test is executed
$geoLocation = @()
$geoLocation += New-AzApplicationInsightsWebTestGeolocationObject -Location "us-ca-sjc-azr"
$geoLocation += New-AzApplicationInsightsWebTestGeolocationObject -Location "apac-sg-sin-azr"
$geoLocation += New-AzApplicationInsightsWebTestGeolocationObject -Location "us-il-ch1-azr"
$geoLocation += New-AzApplicationInsightsWebTestGeolocationObject -Location "us-va-ash-azr"
$geoLocation += New-AzApplicationInsightsWebTestGeolocationObject -Location "emea-au-syd-edge"
# Define parameters for New-AzApplicationInsightsWebTest
$newAzApplicationInsightsWebTestParams = @{
ResourceGroupName = $resourceGroupName
Location = $azureRegion
Name = $webTestName
TestName = $webTestName
Kind = "standard"
RequestUrl = $requestUrl
RetryEnabled = $true
RuleSslCheck = $true
RuleSslCertRemainingLifetimeCheck = 7
Frequency = 300
GeoLocation = $geoLocation
RequestHttpVerb = "GET"
Timeout = 120
RuleExpectedHttpStatusCode = 200
Enabled = $true
Tag = @{
"hidden-link:/subscriptions/$subscriptionId/resourceGroups/$resourceGroupName/providers/microsoft.insights/components/$resourceName" = "Resource"
}
}
# Create a standard availability test
New-AzApplicationInsightsWebTest @newAzApplicationInsightsWebTestParams
Hinweis
Die Webtestregion (-Location) unterscheidet sich von dem geografischen Standort (-GeoLocation), von dem mehrere ausgewählt werden können.
-Location bezieht sich auf die Azure-Region, in der der Webtest erstellt und gehostet wird, während -GeoLocation es sich auf den geografischen Standort oder die Standorte bezieht, von denen der Webtest ausgeführt wird. Eine vollständige Liste aller geografischen Standorte finden Sie unter Application Insights-Verfügbarkeitstests.
Im folgenden REST-Beispiel wird der REST-API-Vorgang Web Tests – Create Or Update verwendet. Er erstellt einen Standardverfügbarkeitstest mit Standardeinstellungen.
PUT https://management.azure.com/subscriptions/{SubscriptionId}/resourceGroups/{ResourceGroupName}/providers/Microsoft.Insights/webtests/{WebTestName}?api-version=2022-06-15
Authorization: Bearer {AccessToken}
Content-Type: application/json
{
"location": "<AzureRegion>",
"tags": {
"hidden-link:/subscriptions/<SubscriptionId>/resourceGroups/<ResourceGroupName>/providers/microsoft.insights/components/<ResourceName>": "Resource"
},
"properties": {
"Name": "<WebTestName>",
"SyntheticMonitorId": "<WebTestName>",
"Enabled": true,
"Frequency": 300,
"Timeout": 120,
"Kind": "standard",
"RetryEnabled": true,
"Request": {
"RequestUrl": "<RequestUrl>",
"HttpVerb": "GET"
},
"ValidationRules": {
"ExpectedHttpStatusCode": 200,
"SSLCheck": true,
"SSLCertRemainingLifetimeCheck": 7
},
"Locations": [
{ "Id": "us-ca-sjc-azr" },
{ "Id": "apac-sg-sin-azr" },
{ "Id": "us-il-ch1-azr" },
{ "Id": "us-va-ash-azr" },
{ "Id": "emea-au-syd-edge" }
]
}
}
Hinweis
Die Webtestregion (location) unterscheidet sich von dem geografischen Standort (Locationsbeachten Sie die Pluralform), von der mehrere ausgewählt werden können.
location bezieht sich auf die Azure-Region, in der der Webtest erstellt und gehostet wird, während Locations es sich auf den geografischen Standort oder die Standorte bezieht, von denen der Webtest ausgeführt wird. Eine vollständige Liste aller geografischen Standorte finden Sie unter Application Insights-Verfügbarkeitstests.
Im folgenden Bicep-Beispiel wird der Ressourcentyp Microsoft.Insights webtests verwendet. Er erstellt einen Standardverfügbarkeitstest mit Standardeinstellungen.
param subscriptionId string = '<SubscriptionId>'
param resourceGroupName string = '<ResourceGroupName>'
param resourceName string = '<ResourceName>'
param azureRegion string = '<AzureRegion>'
param webTestName string = '<WebTestName>'
param requestUrl string = '<RequestUrl>'
resource webTest 'Microsoft.Insights/webtests@2022-06-15' = {
name: webTestName
location: azureRegion
tags: {
'hidden-link:/subscriptions/${subscriptionId}/resourceGroups/${resourceGroupName}/providers/microsoft.insights/components/${resourceName}': 'Resource'
}
properties: {
SyntheticMonitorId: webTestName
Name: webTestName
Enabled: true
Frequency: 300
Timeout: 120
Kind: 'standard'
RetryEnabled: true
Locations: [
{ Id: 'us-ca-sjc-azr' }
{ Id: 'apac-sg-sin-azr' }
{ Id: 'us-il-ch1-azr' }
{ Id: 'us-va-ash-azr' }
{ Id: 'emea-au-syd-edge' }
]
Request: {
RequestUrl: requestUrl
HttpVerb: 'GET'
}
ValidationRules: {
ExpectedHttpStatusCode: 200
SSLCheck: true
SSLCertRemainingLifetimeCheck: 7
}
}
}
Hinweis
Die Webtestregion (location) unterscheidet sich von dem geografischen Standort (Locations), von dem mehrere ausgewählt werden können.
location bezieht sich auf die Azure-Region, in der der Webtest erstellt und gehostet wird, während Locations es sich auf den geografischen Standort oder die Standorte bezieht, von denen der Webtest ausgeführt wird. Eine vollständige Liste aller geografischen Standorte finden Sie unter Application Insights-Verfügbarkeitstests.
Weitere Informationen zum Erstellen von Verfügbarkeitstests mit Bicep finden Sie unter Microsoft.Insights Webtests.
Im folgenden ARM-(JSON-)Beispiel wird der Ressourcentyp Microsoft.Insights webtests verwendet. Er erstellt einen Standardverfügbarkeitstest mit Standardeinstellungen.
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"subscriptionId": {
"type": "string",
"defaultValue": "<SubscriptionId>"
},
"resourceGroupName": {
"type": "string",
"defaultValue": "<ResourceGroupName>"
},
"resourceName": {
"type": "string",
"defaultValue": "<ResourceName>"
},
"azureRegion": {
"type": "string",
"defaultValue": "<AzureRegion>"
},
"webTestName": {
"type": "string",
"defaultValue": "<WebTestName>"
},
"requestUrl": {
"type": "string",
"defaultValue": "<RequestUrl>"
}
},
"resources": [
{
"type": "Microsoft.Insights/webtests",
"apiVersion": "2022-06-15",
"name": "[parameters('webTestName')]",
"location": "[parameters('azureRegion')]",
"tags": {
"[format('hidden-link:/subscriptions/{0}/resourceGroups/{1}/providers/microsoft.insights/components/{2}', parameters('subscriptionId'), parameters('resourceGroupName'), parameters('resourceName'))]": "Resource"
},
"properties": {
"SyntheticMonitorId": "[parameters('webTestName')]",
"Name": "[parameters('webTestName')]",
"Enabled": true,
"Frequency": 300,
"Timeout": 120,
"Kind": "standard",
"RetryEnabled": true,
"Locations": [
{ "Id": "us-ca-sjc-azr" },
{ "Id": "apac-sg-sin-azr" },
{ "Id": "us-il-ch1-azr" },
{ "Id": "us-va-ash-azr" },
{ "Id": "emea-au-syd-edge" }
],
"Request": {
"RequestUrl": "[parameters('requestUrl')]",
"HttpVerb": "GET"
},
"ValidationRules": {
"ExpectedHttpStatusCode": 200,
"SSLCheck": true,
"SSLCertRemainingLifetimeCheck": 7
}
}
}
]
}
Hinweis
Die Webtestregion (location) unterscheidet sich von dem geografischen Standort (Locations), von dem mehrere ausgewählt werden können.
location bezieht sich auf die Azure-Region, in der der Webtest erstellt und gehostet wird, während Locations es sich auf den geografischen Standort oder die Standorte bezieht, von denen der Webtest ausgeführt wird. Eine vollständige Liste aller geografischen Standorte finden Sie unter Application Insights-Verfügbarkeitstests.
Hinzufügen einer Metrikwarnung
Tipp
Jede Application Insights-Ressource umfasst Metriken, die vordefiniert verfügbar sind. Wenn separate Komponenten an dieselbe Application Insights-Ressource berichten, ist es möglicherweise nicht sinnvoll, bei diesen Metriken Alarme auszulösen.
Eine Liste der verschiedenen REST-API-Aufrufbeispiele zum Erstellen einer metriken Warnung finden Sie in der REST-API-Dokumentation.
Informationen zum Automatisieren der Erstellung von Metrikwarnungen finden Sie im Artikel Vorlage für eine Metrikwarnung.
Erstellen weiterer Application Insights-Ressourcen
Wie viele Application Insights-Ressourcen sollte ich bereitstellen?
Wenn Sie die nächste Version einer Webanwendung entwickeln, sollten Sie die Application Insights-Telemetriedaten der neuen Version nicht mit denen der bereits veröffentlichten Version verwechseln.
Um Verwirrung zu vermeiden, senden Sie die Telemetriedaten aus verschiedenen Entwicklungsphasen mit separaten Verbindungszeichenfolgen an getrennte Application Insights-Ressourcen.
Wenn Ihr System eine Instanz von Azure Cloud Services ist, gibt es eine andere Methode zum Festlegen separater Verbindungszeichenfolgen.
Wann sollte eine einzelne Application Insights-Ressource verwendet werden?
Verwenden Sie eine einzelne Application Insights-Ressource für Folgendes:
- Optimieren der DevOps/ITOps-Verwaltung für gemeinsam bereitgestellte Anwendungen, die in der Regel vom selben Team entwickelt und verwaltet werden
- Standardmäßiges Zentralisieren von Key Performance Indicators (KPI), z. B. Antwortzeiten und Fehlerraten, auf einem Dashboard. Segmentieren Sie im Metrik-Explorer bei Bedarf nach Rollennamen.
- Wenn keine unterschiedliche Verwaltung der rollenbasierten Zugriffssteuerung in Azure zwischen den Anwendungskomponenten erforderlich ist
- Wenn identische Metrtikwarnungskriterien, fortlaufende Exporte und Abrechnungs-/Kontingentverwaltung komponentenübergreifend ausreichen
- Wenn es für einen API-Schlüssel akzeptabel ist, auf Daten aus allen Komponenten gleichermaßen zuzugreifen und 10 API-Schlüssel die Anforderungen für alle Komponenten erfüllen
- Wenn die gleichen Einstellungen für die intelligente Erkennung und Arbeitselementintegration für alle Rollen geeignet sind
Hinweis
Wenn Sie mehrere Application Insights-Ressourcen konsolidieren möchten, können Sie Ihre vorhandenen Anwendungskomponenten auf eine neue, konsolidierte Application Insights-Ressource verweisen. Die in Ihrer alten Ressource gespeicherte Telemetrie wird nicht an die neue Ressource übertragen. Löschen Sie die alte Ressource also erst, wenn Sie über genügend Telemetriedaten zur Geschäftskontinuität in der neuen Ressource verfügen.
Weitere Überlegungen
Um Portaloberflächen zu aktivieren, fügen Sie benutzerdefinierten Code hinzu, um dem Attribut Cloud_RoleName aussagekräftige Werte zuzuweisen. Ohne diese Werte funktionieren Portalfeatures nicht.
Bei Azure Service Fabric-Anwendungen und klassischen Clouddiensten konfiguriert das SDK automatisch Dienste, indem es aus der Azure-Rollenumgebung liest. Bei anderen App-Typen müssen Sie sie in der Regel festlegen.
Livemetriken können Daten nicht nach Rollenname teilen.
Versions- und Releasenachverfolgung
Wenn Sie eine neue Version Ihrer Anwendung veröffentlichen, möchten Sie die Telemetrie von verschiedenen Builds trennen können. Sie können die Eigenschaft "Anwendungsversion " festlegen, sodass Sie Die Ergebnisse des Such - und Metrik-Explorers filtern können.
Es gibt mehrere unterschiedliche Methoden, um die Eigenschaft Anwendungsversion festzulegen.
Option 1: Direktes Festlegen der Version
Legen Sie für die auf OpenTelemetry basierende Instrumentierung Anwendungsmetadaten konsistent mithilfe von Ressourcenattributen fest.
Option 2: Festlegen der Version in BuildInfo.config (nur ASP.NET)
Das Application Insights-Webmodul nimmt die Version vom BuildLabel Knoten auf. Schließen Sie diese Datei in Ihr Projekt ein, und denken Sie daran, die Eigenschaft Immer kopieren im Projektmappen-Explorer festzulegen.
<?xml version="1.0" encoding="utf-8"?>
<DeploymentEvent xmlns:xsi="https://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="https://www.w3.org/2001/XMLSchema" xmlns="http://schemas.microsoft.com/VisualStudio/DeploymentEvent/2013/06">
<ProjectName>AppVersionExpt</ProjectName>
<Build type="MSBuild">
<MSBuild>
<BuildLabel kind="label">1.0.0.2</BuildLabel>
</MSBuild>
</Build>
</DeploymentEvent>
Generieren Sie BuildInfo.config automatisch im Microsoft Build Engine. Fügen Sie die folgenden Zeilen zu Ihrer .csproj Datei hinzu:
<PropertyGroup>
<GenerateBuildInfoConfigFile>true</GenerateBuildInfoConfigFile>
<IncludeServerNameInBuildInfo>true</IncludeServerNameInBuildInfo>
</PropertyGroup>
Durch diesen Schritt wird eine Datei namens NameIhresProjekts.BuildInfo.config generiert. Der Veröffentlichungsprozess benennt diese Datei in BuildInfo.config um.
Die Buildbezeichnung enthält einen Platzhalter (*AutoGen_...*), wenn Sie den Build mit Visual Studio erstellen. Bei der Erstellung mit dem Microsoft Build-Modul wird der Platzhalter mit der richtigen Versionsnummer aufgefüllt.
Damit die Microsoft-Build-Engine Versionsnummern generieren kann, legen Sie die Version wie 1.0.* in AssemblyReference.cs fest.
Veröffentlichungshinweise
Bei Verwendung von Azure DevOps können Sie Ihren Diagrammen einen Anmerkungsmarker hinzufügen lassen, wenn Sie eine neue Version veröffentlichen.
Automatisieren des Ressourcenerstellungsprozesses
Der Ressourcenerstellungsprozess kann mithilfe von Bicep- oder JSON-Vorlagen mit Azure Resource Manager automatisiert werden. Sie können mehrere Ressourcen zusammen packen, um sie in einer Bereitstellung zu erstellen. Sie können beispielsweise eine Application Insights-Ressource mit Verfügbarkeitstests, Metrikwarnungen und einer Diagnoseeinstellung erstellen, um Telemetrie an ein Azure Storage-Konto zu senden.
Generieren einer Vorlage im Azure-Portal
Sie können eine Vorlage aus vorhandenen Ressourcen generieren.
Nur Application Insights
- Wechseln Sie zur Ressource "Application Insights" im Azure-Portal.
- Öffnen Sie Exportvorlage, die unter Automatisierung in der linken Navigationsleiste aufgeführt ist.
- (Optional): Wenn Sie Ihre eigenen Parameter verwenden möchten, deaktivieren Sie "Parameter einschließen".
-
Laden Sie die Vorlagendatei herunter, oder stellen Sie sie direkt im Azure-Portal bereit.
Mehrere Ressourcen
- Wechseln Sie zur Ressourcengruppe Ihrer Application Insights-Ressource.
- Markieren Sie im Bereich "Übersicht " alle Ressourcen, die sie in die Vorlage einbeziehen möchten, und wählen Sie dann in der oberen Navigationsleiste die Option "Vorlage exportieren" aus.
- (Optional): Wenn Sie Ihre eigenen Parameter verwenden möchten, deaktivieren Sie "Parameter einschließen".
-
Laden Sie die Vorlagendatei herunter, oder stellen Sie sie direkt im Azure-Portal bereit.
Erstellen einer Vorlage von Grund auf
Wenn Sie erfahren möchten, wie Sie eine ARM-Vorlage von Grund auf neu erstellen können, besuchen Sie unsere ARM-Vorlagendokumentation , die Lernprogramme zum Erstellen einer Vorlage, zum Hinzufügen von Ressourcen, zum Hinzufügen von Parametern und vieles mehr.
Verfügbare Eigenschaften für Application Insights, Verfügbarkeitstests, Metrikwarnungen, Diagnoseeinstellungen und andere Ressourcen finden Sie in unserer Azure-Ressourcenreferenzdokumentation unter dem Knoten "Reference>Monitor>Insights ".
Tipp
Sie können auch Schnellstartvorlagen verwenden, die am Ende jeder Azure-Ressourcenreferenzdokumentationsseite verfügbar sind, die in diesem Abschnitt verknüpft ist. Informationen zum Verwenden von Vorlagen finden Sie im Lernprogramm: Verwenden von Azure-Schnellstartvorlagen.
Nächste Schritte