Risorse di Application Insights basate sull’area di lavoro

Le risorse basate sull'area di lavoro di Application Insights di Monitoraggiodi 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 Log Analytics comune, offrendo l'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 comune degli accessi in base al ruolo di Azure tra le risorse ed elimina la necessità di query tra app/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.
  • Bring Your Own Storage (BYOS) 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.

Screenshot che mostra una risorsa di Application Insights basata sull'area di lavoro.

Se non si dispone di un'area di lavoro Log Analytics esistente, vedere la documentazione sulla creazione dell'area di lavoro Log Analytics.

Le risorse basate sull'area di lavoro sono attualmente disponibili in tutte le aree commerciali e 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, nel riquadro Panoramica verranno visualizzate le informazioni corrispondenti sull'area di lavoro.

Screenshot che mostra un nome dell'area di lavoro.

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 della tabella basata 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.

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 usati dalla risorsa come destinazione per i dati di telemetria. È necessario copiare il stringa di connessione e aggiungerlo 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 il 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:

Monitoraggio senza codice e creazione di risorse di Visual Studio

Per il monitoraggio senza codice di servizi come Funzioni di Azure e servizi app Azure, creare prima di tutto la risorsa di Application Insights basata sull'area di lavoro. Quindi si punta a tale risorsa quando si configura il monitoraggio.

Questi servizi offrono la possibilità di creare una nuova risorsa di Application Insights all'interno del proprio processo di creazione delle risorse. Tuttavia, le risorse create tramite queste opzioni dell'interfaccia utente sono attualmente limitate all'esperienza classica di Application Insights.

La stessa restrizione si applica all'esperienza di creazione delle risorse di Application Insights in Visual Studio per ASP.NET e ASP.NET Core. È necessario selezionare una risorsa basata sull'area di lavoro esistente nell'interfaccia utente di Visual Studio in cui si abilita il monitoraggio. Selezionando Crea nuova risorsa in Visual Studio è possibile creare una risorsa di Application Insights classica.

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 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'.

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 la documentazione completa dell'interfaccia della riga di comando di Azure per 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 il 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://learn.microsoft.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 delle risorse di Application Insights selezionare Proprietà>Cambia area di lavoro Aree di lavoro> 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 di Application Insights è necessario distribuire?

Quando si sviluppa la versione successiva di un'applicazione Web, non si vuole combinare i dati di telemetria di Application Insights dalla nuova versione e dalla versione già rilasciata.

Per evitare confusione, inviare i dati di telemetria da diverse fasi di sviluppo per separare le risorse di Application Insights con stringa di connessione separate.

Se il sistema è un'istanza di Azure Servizi cloud, esiste un altro metodo per impostare stringa di connessione separate.

Informazioni su risorse e stringa di connessione

Quando si configura il monitoraggio di Application Insights per l'app Web, si crea 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. Un stringa di connessione identifica la risorsa. Quando si installa il pacchetto di Application Insights per monitorare l'app, è necessario configurarlo con il stringa di connessione in modo che sappia dove inviare i dati di telemetria.

Ogni risorsa di Application Insights include 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 altre 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

Il stringa di connessione identifica la risorsa creata.

Sono necessari i stringa 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, si vuole essere in grado di separare i dati di telemetria da compilazioni diverse.

È possibile impostare la proprietà Versione applicazione in modo che sia possibile filtrare i risultati di Esplora metriche e di ricerca.

Esistono diversi metodi per impostare la proprietà Application Version .

  • 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 TelemetryClient istanze siano impostate in modo coerente.

  • ASP.NET: impostare la versione in BuildInfo.config. Il modulo Web preleva 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>
    
    
  • ASP.NET: genera BuildInfo.config automaticamente nel motore di compilazione Microsoft. Aggiungere alcune righe al .csproj file:

    <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_...*) quando si compila con 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.* in AssemblyReference.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 contiene le informazioni di compilazione, aggiunge automaticamente la versione dell'applicazione come proprietà a ogni elemento 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 il stringa di connessione della nuova risorsa di 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, ma non sono limitate a:

  • Ricreare dashboard e cartelle di lavoro personalizzati.
  • Ricreare o aggiornare l'ambito di eventuali avvisi di log/metrica personalizzati.
  • Ricreare gli avvisi di disponibilità.
  • Ricreare le impostazioni personalizzate di 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 versione e canale di controllo sicuro delle metriche attive. È 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 sull'area di lavoro devono essere configurate di nuovo.

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 le 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.

Passaggi successivi