Application Insights si integra con Log Analytics e invia dati di telemetria a un'area di lavoro Log Analytics comune. Questa configurazione consente l'accesso completo alle funzionalità di Log Analytics, consolida i log in un'unica posizione e consente il controllo unificato degli accessi in base al ruolo di Azure che elimina la necessità di query tra app e aree di lavoro.
Le funzionalità avanzate includono:
-
Chiavi - Crittografare i dati inattivi con chiavi accessibili solo all'utente.
-
Collegamento - Connettere in modo sicuro i servizi PaaS di Azure alla rete virtuale usando endpoint privati.
-
Bring Your Own Storage (BYOS) - Gestire i dati da .NET Profiler e Snapshot Debugger con criteri per la crittografia, la durata e l'accesso alla rete.
-
Livelli di impegno - Risparmia fino al 30% sui prezzi con pagamento in base al consumo.
Questo articolo illustra come creare e configurare le risorse di Application Insights. Insieme alla risorsa di Application Insights stessa, è possibile aggiungere diverse configurazioni, ad esempio l'impostazione del limite giornaliero e il piano tariffario. È anche possibile creare test di disponibilità, configurare gli avvisi delle metriche e automatizzare il processo usando Azure Resource Manager.
Note
L'inserimento e la conservazione di dati per le risorse di Application Insights basate sull'area di lavoro vengono fatturate tramite l'area di lavoro Log Analytics in cui si trovano i dati. Per altre informazioni sulla fatturazione, vedere Dettagli sui prezzi dei log di Monitoraggio di Azure.
Prerequisiti
- Una sottoscrizione di Azure attiva.
- Autorizzazioni necessarie per creare risorse.
Requisiti aggiuntivi
Nessun requisito aggiuntivo.
Per accedere ai comandi dell'interfaccia della riga di comando di Azure di Application Insights, è prima necessario eseguire:
az extension add -n application-insights
Se non si esegue il az extension add comando, viene visualizzato un messaggio di errore che indica: az : ERROR: az monitor: 'app-insights' is not in the 'az monitor' command group. See 'az monitor --help'.
È possibile distribuire modelli Bicep tramite l'interfaccia della riga di comando di Azure, Azure PowerShell e nel portale di Azure. Controllare le rispettive schede per i requisiti aggiuntivi.
È possibile distribuire modelli ARM tramite l'interfaccia della riga di comando di Azure, Azure PowerShell e nel portale di Azure. Controllare le rispettive schede per i requisiti aggiuntivi.
Crea una risorsa Application Insights
Note
Se non ci si connette a un'area di lavoro Log Analytics esistente durante la creazione di risorse, viene creata automaticamente una nuova risorsa di Log Analytics insieme alla risorsa di Application Insights.
- Accedi al portale di Azure.
- Selezionare Crea una risorsa.
- Aprire la categoria Monitoraggio e diagnostica, quindi selezionare Application Insights.
- Immettere tutte le informazioni pertinenti, quindi Rivedi e crea la risorsa di Application Insights.
Dopo aver creato la risorsa, è possibile trovare le informazioni corrispondenti sull'area di lavoro nel riquadro Panoramica di Application Insights.
Selezionare il testo del collegamento in blu per passare all'area di lavoro Log Analytics associata in cui è possibile sfruttare il nuovo ambiente di query unificato dell'area di lavoro.
Note
Microsoft offre comunque la piena compatibilità con le versioni precedenti per le query di risorse classiche, le cartelle di lavoro e gli avvisi basati su log di Application Insights. Per eseguire query o visualizzare la nuova struttura di tabella o lo schema basati sull'area di lavoro è prima necessario passare all'area di lavoro Log Analytics. Selezionare Log (Analisi) nei riquadri di Application Insights per accedere all'esperienza di query classica di Application Insights.
L'esempio di interfaccia della riga di comando di Azure seguente usa il comando az monitor app-insights component create.
# 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"
Note
I comandi di interfaccia della riga di comando di Azure usano l'endpoint di Azure Resource Manager dal contesto CLI corrente, quindi non è necessario specificare management.azure.com nella sintassi del comando.
Nell'esempio di Azure PowerShell seguente viene usato il cmdlet New-AzApplicationInsights.
# 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
Note
Azure PowerShell cmdlet usano l'endpoint Azure Resource Manager dal contesto Az corrente, quindi non è necessario specificare management.azure.com nella sintassi del cmdlet.
Nell'esempio REST seguente viene usata l'operazione Components - Create Or Update REST API .The following REST example uses the Components - Create Or Update REST API operation.
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>"
}
}
L'esempio di Bicep seguente usa il tipo di risorsa Microsoft.Insights/components.
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
}
}
L'esempio ARM (JSON) seguente usa il tipo di risorsa 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')]"
}
}
]
}
Dopo aver creato una risorsa di Application Insights, configurare il monitoraggio.
Ottenere la stringa di connessione
La stringa di connessione identifica la risorsa a cui si vuole associare i dati di telemetria. È inoltre possibile usarlo per modificare gli endpoint che la risorsa usa come destinazione per la telemetria. È necessario copiare la stringa di connessione e aggiungerla al codice dell'applicazione o a una variabile di ambiente.
Per ottenere la stringa di connessione della risorsa di Application Insights:
- Aprire la risorsa Application Insights nel portale di Azure.
- Nel riquadro Panoramica della sezione Essenziali, cercare Stringa di connessione.
- Se si passa il puntatore del mouse sulla stringa di connessione, viene visualizzata un'icona che consente di copiarla negli Appunti.
L'esempio seguente di interfaccia della riga di comando di Azure utilizza il comando az monitor app-insights component show.
# Set variables
resourceGroupName="<ResourceGroupName>"
resourceName="<ResourceName>"
# Retrieve the Application Insights component
az monitor app-insights component show \
--resource-group "$resourceGroupName" \
--app "$resourceName"
Cercare il connectionString campo nella risposta JSON.
Nell'esempio Azure PowerShell seguente viene usato il cmdlet Get-AzApplicationInsights.
# Set variables
$resourceGroupName = "<ResourceGroupName>"
$resourceName = "<ResourceName>"
# Define parameters for Get-AzApplicationInsights
$getAzApplicationInsightsParams = @{
ResourceGroupName = $resourceGroupName
Name = $resourceName
}
# Retrieve the Application Insights component
Get-AzApplicationInsights @getAzApplicationInsightsParams
Cercare la ConnectionString proprietà nell'output.
Nell'esempio REST seguente viene usata l'operazione Components - Get REST API .The following REST example uses the Components - Get REST API operation.
GET https://management.azure.com/subscriptions/{SubscriptionId}/resourceGroups/{ResourceGroupName}/providers/Microsoft.Insights/components/{ResourceName}?api-version=2020-02-02
Authorization: Bearer {AccessToken}
Cercare il properties.connectionString campo nella risposta JSON.
Non applicabile ai modelli Bicep.
Non applicabile ai modelli ARM.
Monitoraggio delle applicazioni con OpenTelemetry
Per il monitoraggio delle applicazioni con OpenTelemetry, installare la distribuzione OpenTelemetry di Monitoraggio di Azure appropriata e impostare la stringa di connessione sulla risorsa appena creata.
Per informazioni su come configurare il monitoraggio delle applicazioni con OpenTelemetry, vedere la documentazione specifica del linguaggio seguente:
Strumentazione automatica
Per i servizi di monitoraggio come Funzioni di Azure e Servizio app di Azure, è prima possibile creare la risorsa di Application Insights, quindi puntare a tale risorsa quando si abilita il monitoraggio. In alternativa, è possibile creare una nuova risorsa di Application Insights durante il processo di abilitazione.
Modificare l'area di lavoro associata
Dopo aver creato una risorsa di Application Insights, è possibile modificare l'area di lavoro Log Analytics associata.
Importante
Le chiamate REST, i modelli ARM e i modelli Bicep utilizzano la semantica create-or-update (PUT). Quando si aggiorna un componente di Application Insights tramite questi metodi, è necessario includere tutte le proprietà necessarie che si desidera mantenere. Le proprietà non incluse potrebbero essere reimpostate o rimosse.
Nella risorsa di Application Insights selezionare Proprietà>Modifica area di lavoro>Aree di lavoro di Log Analytics.
L'esempio di interfaccia della riga di comando di Azure seguente usa il comando az monitor app-insights component update.
# 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"
Nell'esempio di Azure PowerShell seguente viene usato il cmdlet Update-AzApplicationInsights.
# 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
Nell'esempio REST seguente viene usata l'operazione Components - Create Or Update REST API .The following REST example uses the Components - Create Or Update REST API operation.
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>"
}
}
L'esempio seguente di Bicep usa il tipo di risorsa Microsoft.Insights components.
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
}
}
Nel seguente esempio ARM (JSON) viene usato il tipo di risorsa 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')]"
}
}
]
}
Esportare i dati di telemetria
La funzionalità di esportazione continua legacy non è supportata per risorse basate su area di lavoro. Usare invece le impostazioni di diagnostica.
Note
L'esportazione delle impostazioni di diagnostica potrebbe aumentare i costi. Per altre informazioni, vedere Esportare la telemetria da Application Insights.
Per informazioni sui prezzi per questa funzionalità, vedere la pagina dei prezzi di Monitoraggio di Azure. Prima dell'inizio della fatturazione, le notifiche vengono inviate. Se continui a usare l'esportazione dei dati di telemetria dopo il periodo di notifica, verrà avviata la fatturazione in base alle tariffe applicabili.
Nella risorsa di Application Insights selezionare Impostazioni> didiagnostica Aggiungi impostazione di diagnostica.
È possibile selezionare tutte le tabelle o un subset di tabelle da archiviare in un account di archiviazione. È anche possibile eseguire lo streaming in un hub eventi.
Nell'esempio di interfaccia della riga di comando di Azure seguente viene usato il comando az monitor diagnostic-settings create. Crea un'impostazione di diagnostica che invia log e metriche da una risorsa di Application Insights a un account di archiviazione.
# 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}]'
Nell'esempio Azure PowerShell seguente viene usato il cmdlet New-AzDiagnosticSetting. Crea un'impostazione di diagnostica che invia log e metriche da una risorsa di Application Insights a un account di archiviazione.
# 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
Nell'esempio REST seguente viene usata l'operazione Impostazioni di diagnostica - Creare o aggiornare l'API REST. Crea un'impostazione di diagnostica che invia log e metriche da una risorsa di Application Insights a un account di archiviazione.
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
}
]
}
}
L'esempio di Bicep seguente usa il tipo di risorsa Microsoft.Insights diagnosticSettings. Crea un'impostazione di diagnostica che invia log e metriche da una risorsa di Application Insights a un account di archiviazione.
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
}
]
}
}
L'esempio seguente di modello ARM usa il tipo di risorsa Microsoft.Insights diagnosticSettings. Crea un'impostazione di diagnostica che invia log e metriche da una risorsa di Application Insights a un account di archiviazione.
{
"$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
}
]
}
}
]
}
Impostare la conservazione dei dati
L'esempio di Bicep seguente usa il tipo di risorsa Microsoft.OperationalInsights workspaces. Imposta il periodo di conservazione dei dati per l'area di lavoro Log Analytics associata.
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
}
}
L'esempio ARM (JSON) seguente usa il tipo di risorsa Microsoft.OperationalInsights workspaces. Imposta il periodo di conservazione dei dati per l'area di lavoro Log Analytics associata.
{
"$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')]"
}
}
]
}
Impostare il limite giornaliero
Il limite giornaliero deve essere impostato in modo indipendente sia per Application Insights che per l'area di lavoro Log Analytics sottostante. Il limite giornaliero effettivo è il minimo delle due impostazioni.
Note
Attualmente, Azure non offre un modo per impostare il limite giornaliero per Application Insights tramite l'interfaccia della riga di comando di Azure.
Log Analytics:
L'esempio di interfaccia della riga di comando di Azure seguente usa il comando az monitor log-analytics workspace update.
# 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
Gli esempi di Azure PowerShell seguenti usano i cmdlet Set-AzApplicationInsightsDailyCap e Set-AzOperationalInsightsWorkspace.
Application Insights:
Gli esempi di Azure PowerShell seguenti usano il cmdlet Set-AzApplicationInsightsDailyCap.
# 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:
Gli esempi di Azure PowerShell seguenti usano il 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
Note
Attualmente, Azure non offre un modo per impostare il limite giornaliero per Application Insights tramite l'API REST.
Log Analytics:
Nell'esempio REST seguente viene usata l'operazione Workspaces - Update REST API .The following REST example uses the Workspaces - Update REST API operation.
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>
}
}
}
Note
Attualmente, Azure non offre un modo per impostare il limite giornaliero per Application Insights con un modello Bicep.
Log Analytics:
L'esempio di Bicep seguente usa il tipo di risorsa Microsoft.OperationalInsights workspaces.
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
}
}
}
Note
Attualmente, Azure non offre un modo per impostare il limite giornaliero per Application Insights usando un modello ARM.
Log Analytics:
L'esempio ARM (JSON) seguente usa il tipo di risorsa Microsoft.OperationalInsights workspaces.
{
"$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')]"
}
}
}
]
}
Impostare il piano tariffario
Il piano tariffario per le risorse di Application Insights può essere impostato nell'area di lavoro Log Analytics associata. Per altre informazioni sui piani tariffari disponibili, vedere Calcoli e opzioni dei costi dei log di Monitoraggio di Azure.
Note
Se vengono visualizzati addebiti imprevisti o costi elevati in Application Insights, questa guida può essere utile. Vengono illustrate le cause comuni, ad esempio volumi di telemetria elevati, picchi di inserimento dati e campionamento non configurato correttamente. È particolarmente utile se si stanno risolvendo problemi relativi a picchi di costo, volume di telemetria, campionamento non funzionante, limiti di dati, inserimento elevato o fatturazione imprevista. Per iniziare, vedere Risolvere i problemi relativi all'inserimento dati elevato in Application Insights.
Gli esempi di interfaccia della riga di comando di Azure seguenti usano il comando az monitor log-analytics workspace update.
Pagamento in base al consumo:
# 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
Livello di impegno:
# 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"
Gli esempi di Azure PowerShell seguenti usano il cmdlet Set-AzOperationalInsightsWorkspace.
Pagamento in base al consumo:
# 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
Livello di impegno:
# 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
Gli esempi REST seguenti usano l'operazione Piano tariffario - Aggiornare l'API REST.
Pagamento in base al consumo:
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"
}
}
}
Livello di impegno:
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>
}
}
}
I seguenti esempi di Bicep usano il tipo di risorsa Microsoft.OperationalInsights workspaces.
Pagamento in base al consumo:
param workspaceName string = '<WorkspaceName>'
param azureRegion string = '<AzureRegion>'
resource logAnalyticsWorkspace 'Microsoft.OperationalInsights/workspaces@2025-07-01' = {
name: workspaceName
location: azureRegion
properties: {
sku: {
name: 'pergb2018'
}
}
}
Livello di impegno:
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
}
}
}
I seguenti esempi ARM (JSON) usano il tipo di risorsa Microsoft.OperationalInsights workspaces.
Pagamento in base al consumo:
{
"$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"
}
}
}
]
}
Livello di impegno:
{
"$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')]"
}
}
}
]
}
Disabilitare la maschera IP
Per impostazione predefinita, Application Insights non archivia gli indirizzi IP. Per informazioni su come disabilitare la maschera IP, vedere Georilevazione e gestione degli indirizzi IP.
Creare risorse aggiuntive
Creare un test di disponibilità
L'esempio di interfaccia della riga di comando di Azure seguente usa il comando az monitor app-insights web-test create. Crea un test di disponibilità standard con le impostazioni predefinite.
# 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"
Note
L'area di test Web (--location) è diversa dalla posizione geografica (--locations, si noti il formato plurale) di cui è possibile selezionare più.
--location fa riferimento all'area di Azure in cui viene creato e ospitato il test Web, mentre --locations fa riferimento alla posizione geografica o alle posizioni da cui viene eseguito il test Web. Per un elenco completo di tutte le posizioni geografiche, vedere Test di disponibilità di Application Insights.
Nell'esempio Azure PowerShell seguente viene usato il cmdlet New-AzApplicationInsightsWebTest. Crea un test di disponibilità standard con le impostazioni predefinite.
# 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
Note
L'area di test Web (-Location) è diversa dalla posizione geografica (-GeoLocation) di cui è possibile selezionare più.
-Location fa riferimento all'area di Azure in cui viene creato e ospitato il test Web, mentre -GeoLocation fa riferimento alla posizione geografica o alle posizioni da cui viene eseguito il test Web. Per un elenco completo di tutte le posizioni geografiche, vedere Test di disponibilità di Application Insights.
Nell'esempio REST seguente viene usata l'operazione Web Tests - Create Or Update REST API .The following REST example uses the Web Tests - Create Or Update REST API operation. Crea un test di disponibilità standard con le impostazioni predefinite.
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" }
]
}
}
Note
L'area di test Web (location) è diversa dalla posizione geografica (Locations, si noti il formato plurale) di cui è possibile selezionare più.
location fa riferimento all'area di Azure in cui viene creato e ospitato il test Web, mentre Locations fa riferimento alla posizione geografica o alle posizioni da cui viene eseguito il test Web. Per un elenco completo di tutte le posizioni geografiche, vedere Test di disponibilità di Application Insights.
L'esempio Bicep seguente usa il tipo di risorsa Microsoft.Insights webtests. Crea un test di disponibilità standard con le impostazioni predefinite.
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
}
}
}
Note
L'area di test Web (location) è diversa dalla posizione geografica (Locations) di cui è possibile selezionare più.
location fa riferimento all'area di Azure in cui viene creato e ospitato il test Web, mentre Locations fa riferimento alla posizione geografica o alle posizioni da cui viene eseguito il test Web. Per un elenco completo di tutte le posizioni geografiche, vedere Test di disponibilità di Application Insights.
Per altre informazioni sulla creazione di test di disponibilità con Bicep, vedere Microsoft.Insights webtests.
L'esempio arm (JSON) seguente usa il Microsoft. Insights webtests tipo di risorsa. Crea un test di disponibilità standard con le impostazioni predefinite.
{
"$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
}
}
}
]
}
Note
L'area di test Web (location) è diversa dalla posizione geografica (Locations) di cui è possibile selezionare più.
location fa riferimento all'area di Azure in cui viene creato e ospitato il test Web, mentre Locations fa riferimento alla posizione geografica o alle posizioni da cui viene eseguito il test Web. Per un elenco completo di tutte le posizioni geografiche, vedere Test di disponibilità di Application Insights.
Aggiungere un avviso per la metrica
Suggerimento
Ogni risorsa di Application Insights viene fornita con metriche disponibili. Se componenti separati inviano riportano alla stessa risorsa di Application Insights, potrebbe non essere sensato usare queste metriche per gli avvisi.
Per automatizzare la creazione di avvisi delle metriche, vedere l'articolo Modello di avvisi della metrica.
Creare altre risorse di Application Insights
Quante risorse Application Insights è necessario distribuire?
Quando si sviluppa la versione successiva di un'applicazione Web, non è desiderabile combinare la telemetria di Application Insights della nuova versione con quella della versione già rilasciata.
Per evitare confusione, inviare i dati di telemetria da diverse fasi di sviluppo per separare le risorse di Application Insights, con stringhe di connessione separate.
Se il sistema è un'istanza di Servizi cloud di Azure, esiste un altro metodo per impostare stringhe di connessione separate.
Quando usare una singola risorsa di Application Insights
Usare una singola risorsa di Application Insights per:
- Semplificare la gestione di DevOps/ITOps per le applicazioni distribuite insieme, in genere sviluppate e gestite dallo stesso team.
- Centralizzare gli indicatori di prestazioni chiave, ad esempio tempi di risposta e percentuali di errore, in un dashboard per impostazione predefinita. Segmentare in base al nome del ruolo in Esplora metriche, se necessario.
- Quando non è necessaria una gestione diversa del controllo degli accessi in base al ruolo di Azure tra i componenti dell'applicazione.
- Quando sono sufficienti criteri di avviso per le metriche identiche, esportazioni continue e gestione delle quote/fatturazione tra componenti.
- Quando è accettabile che una chiave API acceda ai dati da tutti i componenti in modo uniforme e 10 chiavi API soddisfino le esigenze in tutti i componenti.
- Quando le stesse impostazioni di rilevamento intelligente e integrazione degli elementi di lavoro sono adatte a tutti i ruoli.
Note
Se si vogliono consolidare più risorse di Application Insights, è possibile puntare i componenti dell'applicazione esistenti a una nuova risorsa di Application Insights consolidata. I dati di telemetria archiviati nella risorsa precedente non vengono trasferiti alla nuova risorsa. Eliminare la risorsa precedente solo quando si dispone di dati di telemetria sufficienti nella nuova risorsa per la continuità aziendale.
Altre considerazioni
Per attivare le esperienze del portale, aggiungere codice personalizzato per assegnare valori significativi all'attributo Cloud_RoleName. Senza questi valori, le funzionalità del portale non funzionano.
Per le applicazioni di Azure Service Fabric e i servizi cloud classici, l'SDK configura automaticamente i servizi leggendo dall'ambiente del ruolo di Azure. Per altri tipi di app, in genere è necessario impostarlo in modo esplicito.
Le metriche attive non possono suddividere i dati in base al nome del ruolo.
Verifica della versione
Quando si pubblica una nuova versione dell'applicazione, si vuole essere in grado di separare i dati di telemetria da compilazioni diverse. È possibile impostare la proprietà Versione applicazione in modo da filtrare i risultati della ricerca e di Esplora metriche .
Esistono diversi metodi di impostazione della proprietà della versione dell'applicazione.
Opzione 1: Impostare direttamente la versione
Per la strumentazione basata su OpenTelemetry, impostare i metadati dell'applicazione in modo coerente usando gli attributi delle risorse.
Opzione 2: Impostare la versione in BuildInfo.config (solo ASP.NET)
Il modulo Web di Application Insights seleziona la versione dal BuildLabel nodo. Includere questo file nel progetto e ricordarsi di impostare la proprietà Copia sempre in Esplora soluzioni.
<?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>
Generare BuildInfo.config automaticamente nel motore di compilazione Microsoft. Aggiungere la riga seguente al file .csproj:
<PropertyGroup>
<GenerateBuildInfoConfigFile>true</GenerateBuildInfoConfigFile>
<IncludeServerNameInBuildInfo>true</IncludeServerNameInBuildInfo>
</PropertyGroup>
Questo passaggio genera un file denominato yourProjectName.BuildInfo.config. Il processo di pubblicazione lo rinomina in BuildInfo.config.
L'etichetta di compilazione contiene un segnaposto (*AutoGen_...*) se la compilazione viene eseguita in Visual Studio. Se compilato con Microsoft Build Engine, il segnaposto viene popolato con il numero di versione corretto.
Per consentire al motore di Microsoft Build di generare numeri di versione, impostare la versione come 1.0.* in AssemblyReference.cs.
Annotazioni sulle versioni
Se si usa Azure DevOps, è possibile visualizzare un marcatore di annotazione aggiunto ai grafici quando si rilascia una nuova versione.
Automatizzare il processo di creazione delle risorse
Il processo di creazione delle risorse può essere automatizzato usando modelli Bicep o JSON con Azure Resource Manager. È possibile raggruppare diverse risorse per crearle in un'unica distribuzione. Ad esempio, è possibile creare una risorsa di Application Insights con test di disponibilità, avvisi delle metriche e un'impostazione di diagnostica per inviare dati di telemetria a un account di archiviazione di Azure.
Generare un modello nel portale di Azure
È possibile generare un modello da risorse esistenti.
Solo Application Insights
- Passare alla risorsa di Application Insights nel portale di Azure.
- Aprire Esporta modello elencato in Automazione nella barra di navigazione a sinistra.
- (Facoltativo): per usare i propri parametri, deselezionare Includi parametri.
-
Scaricare il file modello o Distribuirlo direttamente nel portale di Azure.
Più risorse
- Passare al gruppo di risorse della risorsa di Application Insights.
- Nel riquadro Panoramica contrassegnare tutte le risorse che si desidera includere nel modello, quindi selezionare Esporta modello nella barra di spostamento superiore.
- (Facoltativo): per usare i propri parametri, deselezionare Includi parametri.
-
Scaricare il file modello o Distribuirlo direttamente nel portale di Azure.
Creare un modello da zero
Per informazioni su come creare un modello di Resource Manager da zero, visitare la documentazione del modello di Resource Manager che include esercitazioni per creare un modello, aggiungere risorse, aggiungere parametri e altro ancora.
Le proprietà disponibili per Application Insights, i test di disponibilità, gli avvisi delle metriche, le impostazioni di diagnostica e altre risorse possono essere trovate nella documentazione di riferimento delle risorse di Azure sotto il nodo Reference>Monitor>Insights.
Suggerimento
È anche possibile usare i modelli di avvio rapido, disponibili nella parte inferiore della pagina della documentazione di riferimento delle risorse di Azure collegata in questa sezione. Per informazioni su come usare i modelli, vedere Esercitazione: Usare modelli di avvio rapido di Azure.
Passaggi successivi