Risorse di Application Insights basate sull’area di lavoro
Le risorse basate sull'area di lavoro di Application Insight di Monitoraggio di Azure integrano Application Insights e Log Analytics.
Con le risorse basate sull'area di lavoro, Application Insights invia dati di telemetria a un'area di lavoro comune Log Analytics, offrendo accesso completo a tutte le funzionalità di Log Analytics mantenendo al tempo stesso i log dell'applicazione, dell'infrastruttura e della piattaforma in un'unica posizione consolidata. Questa integrazione consente il controllo degli accessi in base al ruolo di Azure comune tra le risorse ed elimina la necessità di query tra app o aree di lavoro.
Nota
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 per le risorse di Application Insights basate sull'area di lavoro, vedere Dettagli sui prezzi dei log di Monitoraggio di Azure.
Nuove funzionalità
Application Insights basato sull'area di lavoro si integra con Monitoraggio di Azure e Log Analytics per migliorare le funzionalità:
- La chiave gestita dal cliente crittografa i dati inattivi solo con le chiavi a cui si accede.
- Collegamento privato di Azure connette in modo sicuro i servizi PaaS di Azure alla rete virtuale usando endpoint privati.
- Usare risorse di archiviazione personali (BYOS - Bring Your Own Storage) per Profiler e Snapshot Debugger consente di gestire i dati da Application Insights Profiler e Snapshot Debugger con criteri per la crittografia, la durata e l'accesso alla rete.
- I livelli di impegno offrono fino a un risparmio del 30% rispetto ai prezzi con pagamento in base al consumo.
- Il flusso di Log Analytics elabora i dati più rapidamente.
Creare una risorsa basata sull'area di lavoro
Accedere al portale di Azure e creare una risorsa di Application Insights.
Se non si dispone di un'area di lavoro Log Analytics esistente, vedere la documentazione relativa alla creazione dell'area di lavoro Log Analytics.
Le risorse basate sull'area di lavoro sono attualmente disponibili in tutte le aree commerciali e in Azure per enti pubblici. La presenza di Application Insights e Log Analytics in due aree diverse può influire sulla latenza e ridurre l'affidabilità complessiva della soluzione di monitoraggio.
Dopo aver creato la risorsa, verranno visualizzate le informazioni corrispondenti sull'area di lavoro nel riquadro Panoramica.
Selezionare il testo del collegamento blu per passare all'area di lavoro Log Analytics associata in cui è possibile sfruttare il nuovo ambiente di query dell'area di lavoro unificata.
Nota
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 o schema di tabella basati sull'area di lavoro, è necessario passare prima all'area di lavoro Log Analytics. Selezionare Log (Analisi) nei riquadri di Application Insights per accedere all'esperienza di query classica di Application Insights.
Copiare la stringa di connessione
La stringa di connessione identifica la risorsa a cui si vuole associare i dati di telemetria. È anche possibile usarlo per modificare gli endpoint che la risorsa utilizza come destinazione per i dati di telemetria. È necessario copiare la stringa di connessione e aggiungerla al codice dell'applicazione o a una variabile di ambiente.
Configurare il monitoraggio
Dopo aver creato una risorsa di Application Insights basata sull'area di lavoro, configurare il monitoraggio.
Monitoraggio basato su codice delle applicazioni
Per il monitoraggio delle applicazioni basato su codice, installare l'SDK di Application Insights appropriato e puntare la stringa di connessione alla risorsa appena creata.
Per informazioni su come configurare Application Insights SDK per il monitoraggio basato su codice, vedere la documentazione seguente specifica del linguaggio o del framework:
- ASP.NET
- ASP.NET Core
- Attività in background e applicazioni console moderne (.NET/.NET Core)
- Applicazioni console classiche (.NET)
- Java
- JavaScript
- Node.js
- Python
Monitoraggio senza codice
Per il monitoraggio senza codice di servizi come Funzioni di Azure e Servizi app di Azure, è prima possibile creare la risorsa di Application Insights basata sull'area di lavoro. Quindi si punta a tale risorsa quando si configura il monitoraggio. In alternativa, è possibile creare una nuova risorsa di Application Insights come parte dell'abilitazione di Application Insights.
Creare automaticamente una risorsa
Interfaccia della riga di comando di Azure
Per accedere all'anteprima 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 comando az extension add
, 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'
.
A questo punto è possibile eseguire il codice seguente per creare la risorsa di Application Insights:
az monitor app-insights component create --app
--location
--resource-group
[--application-type]
[--ingestion-access {Disabled, Enabled}]
[--kind]
[--only-show-errors]
[--query-access {Disabled, Enabled}]
[--tags]
[--workspace]
Esempio
az monitor app-insights component create --app demoApp --location eastus --kind web -g my_resource_group --workspace "/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/test1234/providers/microsoft.operationalinsights/workspaces/test1234555"
Per informazioni dettagliate su questo comando, vedere la documentazione dell'interfaccia della riga di comando di Azure.
Azure PowerShell
Creare una nuova risorsa di Application Insights basata sull'area di lavoro.
New-AzApplicationInsights -Name <String> -ResourceGroupName <String> -Location <String> -WorkspaceResourceId <String>
[-SubscriptionId <String>]
[-ApplicationType <ApplicationType>]
[-DisableIPMasking]
[-DisableLocalAuth]
[-Etag <String>]
[-FlowType <FlowType>]
[-ForceCustomerStorageForProfiler]
[-HockeyAppId <String>]
[-ImmediatePurgeDataOn30Day]
[-IngestionMode <IngestionMode>]
[-Kind <String>]
[-PublicNetworkAccessForIngestion <PublicNetworkAccessType>]
[-PublicNetworkAccessForQuery <PublicNetworkAccessType>]
[-RequestSource <RequestSource>]
[-RetentionInDays <Int32>]
[-SamplingPercentage <Double>]
[-Tag <Hashtable>]
[-DefaultProfile <PSObject>]
[-Confirm]
[-WhatIf]
[<CommonParameters>]
Esempio
New-AzApplicationInsights -Kind java -ResourceGroupName testgroup -Name test1027 -location eastus -WorkspaceResourceId "/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/test1234/providers/microsoft.operationalinsights/workspaces/test1234555"
Per la documentazione completa di PowerShell per questo cmdlet e per informazioni su come recuperare la stringa di connessione, vedere la documentazione di Azure PowerShell.
Modelli di Gestione risorse di Azure
@description('Name of Application Insights resource.')
param name string
@description('Type of app you are deploying. This field is for legacy reasons and will not impact the type of App Insights resource you deploy.')
param type string
@description('Which Azure Region to deploy the resource to. This must be a valid Azure regionId.')
param regionId string
@description('See documentation on tags: https://video2.skills-academy.com/azure/azure-resource-manager/management/tag-resources.')
param tagsArray object
@description('Source of Azure Resource Manager deployment')
param requestSource string
@description('Log Analytics workspace ID to associate with your Application Insights resource.')
param workspaceResourceId string
resource component 'Microsoft.Insights/components@2020-02-02' = {
name: name
location: regionId
tags: tagsArray
kind: 'other'
properties: {
Application_Type: type
Flow_Type: 'Bluefield'
Request_Source: requestSource
WorkspaceResourceId: workspaceResourceId
}
}
File di parametri
{
"$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentParameters.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"name": {
"value": "my_workspace_based_resource"
},
"type": {
"value": "web"
},
"regionId": {
"value": "westus2"
},
"tagsArray": {
"value": {}
},
"requestSource": {
"value": "CustomDeployment"
},
"workspaceResourceId": {
"value": "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourcegroups/testxxxx/providers/microsoft.operationalinsights/workspaces/testworkspace"
}
}
}
Modificare l'area di lavoro associata
Dopo aver creato una risorsa di Application Insights basata sull'area di lavoro, è possibile modificare l'area di lavoro Log Analytics associata.
Nel riquadro della risorsa di Application Insights selezionare Proprietà>Cambia l'area di lavoro>Aree di lavoro di Log Analytics.
Esportare i dati di telemetria
La funzionalità di esportazione continua legacy non è supportata per le risorse basate sull'area di lavoro. Selezionare invece Impostazioni di diagnostica>Aggiungi impostazione di diagnostica nella risorsa di Application Insights. È 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 di Azure.
Nota
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 verranno inviate. Se si continua a usare l'esportazione dei dati di telemetria dopo il periodo di preavviso, la fattura verrà addebitata alla tariffa applicabile.
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.
Informazioni sulle risorse e sulle stringhe di connessione
Quando si configura il monitoraggio di Application Insights per l'app Web, viene creata una risorsa di Application Insights in Azure. Aprire la risorsa nel portale di Azure per visualizzare e analizzare i dati di telemetria raccolti dall'app. Una stringa di connessione identifica la risorsa. Quando si installa il pacchetto Application Insights per monitorare l'applicazione, questo viene configurato con la stringa di connessione, in modo che sappia dove inviare la telemetria.
Ogni risorsa di Application Insights viene fornita con metriche disponibili per la configurazione predefinita. Se i componenti separati segnalano alla stessa risorsa di Application Insights, potrebbe non essere opportuno inviare avvisi su queste metriche.
Quando usare una singola risorsa di Application Insights
Usare una singola risorsa di Application Insights per:
- Semplificando la gestione di DevOps/ITOps per le applicazioni distribuite insieme, in genere sviluppate e gestite dallo stesso team.
- Centralizzazione degli 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.
Nota
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 verranno 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.
Creare più risorse di Application Insights
Per creare una risorsa di Application Insights, vedere Creare una risorsa di Application Insights.
Avviso
È possibile che si verifichino costi di rete aggiuntivi se la risorsa di Application Insights sta monitorando una risorsa di Azure (ad esempio, il producer di telemetria) in un'area diversa. I costi variano a seconda dell'area da cui provengono i dati di telemetria e da dove si trova. Per informazioni dettagliate, vedere Prezzi della larghezza di banda di Azure.
Ottenere la stringa di connessione
La stringa di connessione identifica la risorsa creata.
Sono necessarie le stringhe di connessione di tutte le risorse a cui l'app invia i dati.
Filtrare in base al numero di build
Quando si pubblica una nuova versione dell'app, potrebbe essere opportuno separare i dati telemetrici delle diverse build.
È possibile impostare la proprietà della versione dell'applicazione in modo che sia possibile filtrare i risultati della ricerca e di Esplora metriche.
Esistono diversi metodi di impostazione della proprietà della versione dell'applicazione.
Impostare direttamente:
telemetryClient.Context.Component.Version = typeof(MyProject.MyClass).Assembly.GetName().Version;
Eseguire il wrapping di tale riga in un inizializzatore di telemetria per assicurarsi che tutte le istanze di
TelemetryClient
siano impostate in modo coerente.ASP.NET: impostare la versione in
BuildInfo.config
. Il modulo Web preleva la versione dal nodoBuildLabel
. 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>
ASP.NET: genera
BuildInfo.config
automaticamente nel motore di compilazione Microsoft. Aggiungere alcune righe 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 inBuildInfo.config
.L'etichetta di compilazione contiene un segnaposto
(*AutoGen_...*)
se la compilazione viene eseguita in Visual Studio. Tuttavia, quando viene compilato con il motore di compilazione Microsoft, viene popolato con il numero di versione corretto.Per consentire al motore di compilazione Microsoft di generare numeri di versione, impostare la versione come
1.0.*
inAssemblyReference.cs
.
Verifica della versione
Per tenere traccia della versione dell'applicazione, assicurarsi che il processo di Microsoft Build Engine generi buildinfo.config
. Nel file .csproj
aggiungere:
<PropertyGroup>
<GenerateBuildInfoConfigFile>true</GenerateBuildInfoConfigFile>
<IncludeServerNameInBuildInfo>true</IncludeServerNameInBuildInfo>
</PropertyGroup>
Quando il modulo Web di Application Insights ha le informazioni di compilazione, aggiunge automaticamente la versione dell'applicazione come proprietà a ogni elemento dei dati di telemetria. Per questo motivo, è possibile filtrare in base alla versione quando si eseguono ricerche di diagnostica o quando si esplorano le metriche.
Il motore di compilazione Microsoft genera esclusivamente il numero di versione di build, non la build per sviluppatori da Visual Studio.
Annotazioni sulle versioni
Se si usa Azure DevOps, è possibile visualizzare un marcatore di annotazione aggiunto ai grafici quando si rilascia una nuova versione.
Domande frequenti
Questa sezione fornisce le risposte alle domande comuni.
Come si sposta una risorsa Application Insights in una nuova area?
Il trasferimento di risorse di Application Insights esistenti tra aree non è supportato e non è possibile eseguire la migrazione dei dati cronologici a una nuova area. La soluzione alternativa prevede:
- Creazione di una nuova risorsa di Application Insights basata sull'area di lavoro nell'area desiderata.
- Ricreando eventuali personalizzazioni univoche dalla risorsa originale nella nuova.
- Aggiornamento dell'applicazione con la stringa di connessione della nuova risorsa dell'area.
- Test per assicurarsi che tutto funzioni come previsto con la nuova risorsa di Application Insights.
- Decidere di mantenere o eliminare la risorsa originale di Application Insights. L'eliminazione di una risorsa classica significa perdere tutti i dati cronologici. Se la risorsa è basata sull'area di lavoro, i dati rimangono in Log Analytics, consentendo l'accesso ai dati cronologici fino alla scadenza del periodo di conservazione.
Le personalizzazioni univoche che in genere devono essere ricreate o aggiornate manualmente per la risorsa nella nuova area includono, ad esempio:
- Ricreare dashboard e cartelle di lavoro personalizzati.
- Ricreare o aggiornare l'ambito di tutti gli avvisi di log/metriche personalizzati.
- Ricreare gli avvisi di disponibilità.
- Ricreare le impostazioni personalizzate del controllo degli accessi in base al ruolo di Azure necessarie per consentire agli utenti di accedere alla nuova risorsa.
- Replicare le impostazioni che includono il campionamento per inserimento, la conservazione dei dati, il limite giornaliero e l'abilitazione delle metriche personalizzate. Queste impostazioni sono controllate tramite il riquadro Utilizzo e costi stimati.
- Qualsiasi integrazione basata su chiavi API, ad esempio annotazioni di rilascio e canale di controllo sicuro per le metriche in tempo reale. È necessario generare nuove chiavi API e aggiornare l'integrazione associata.
- L'esportazione continua nelle risorse classiche deve essere configurata di nuovo.
- Le impostazioni di diagnostica nelle risorse basate su area di lavoro devono essere configurate nuovamente.
Nota
Se la risorsa che si sta creando in una nuova area sostituisce una risorsa classica, è consigliabile esplorare i vantaggi della creazione di una nuova risorsa basata sull'area di lavoro. In alternativa, eseguire la migrazione della risorsa esistente in base all'area di lavoro.
È possibile usare provider('Microsoft.Insights', 'components').apiVersions[0] nelle distribuzioni di Azure Resource Manager?
Non è consigliabile usare questo metodo per popolare la versione dell'API. La versione più recente può rappresentare versioni di anteprima che potrebbero contenere modifiche di rilievo. Anche con versioni non preliminari più recenti, le versioni API non sono sempre compatibili con le versioni precedenti con i modelli esistenti. In alcuni casi, la versione dell'API potrebbe non essere disponibile per tutte le sottoscrizioni.