Abilitare e visualizzare dati di telemetria avanzati in Application Insights per flussi di lavoro Standard in App per la logica di Azure

Si applica: App per la logica di Azure (Standard)

Questa guida pratica illustra come attivare la raccolta di dati di telemetria avanzata in Application Insights per la risorsa dell'app per la logica Standard e visualizzare i dati raccolti al termine dell'esecuzione del flusso di lavoro.

Prerequisiti

  • Account e sottoscrizione di Azure. Se non si ha una sottoscrizione, è possibile iscriversi per creare un account Azure gratuito.

  • Istanza di Application Insights. Questa risorsa viene creata in anticipo quando si crea l'app per la logica Standard o dopo la distribuzione dell'app per la logica.

  • Un'app per la logica Standard e un flusso di lavoro, nel portale di Azure o in Visual Studio Code.

    • La risorsa o il progetto dell'app per la logica devono usare il runtime di Funzioni di Azure v4, che è abilitato per impostazione predefinita.

    • L'app per la logica deve avere abilitato Application Insights per la registrazione e la traccia di diagnostica. È possibile farlo quando si crea l'app per la logica o dopo la distribuzione.

Abilitare i dati di telemetria avanzati in Application Insights

  1. Nel portale di Azure, aprire la risorsa dell’app per la logica Standard.

  2. Nel menu dell'app per la logica, in Strumenti di sviluppo selezionare Strumenti avanzati. Nella pagina Strumenti avanzati selezionare Vai per aprire gli strumenti Kudu.

  3. Nella pagina Kudu selezionare CMD nel menu Console di debug. Nella tabella della directory delle cartelle andare al file seguente e selezionare Modifica: site/wwwroot/host.json

  4. Nel file host.json aggiungere il codice JSON seguente:

    {
       "version": "2.0",
       "extensionBundle": {
          "id": "Microsoft.Azure.Functions.ExtensionBundle.Workflows",
          "version": "[1, 2.00]"
       },
       "extensions": {
          "workflow": {
             "Settings": {
                "Runtime.ApplicationInsightTelemetryVersion": "v2"
             }
          }
       }
    }
    

    Questa configurazione abilita il livello predefinito di dettaglio. Per altre opzioni, vedere Applicare il filtro all'origine.

Apri Application Insights

Al termine dell'esecuzione del flusso di lavoro e dopo alcuni minuti, aprire la risorsa di Application Insights.

  1. Nel menu dell'app per la logica del portale di Azure selezionare Application Insights in Impostazioni.

  2. Nel menu delle risorse di Application Insights, in Monitoraggio selezionare Log.

Visualizzare i log avanzati in Application Insights

Le sezioni seguenti descrivono le tabelle in Application Insights in cui è possibile trovare e visualizzare i dati di telemetria avanzati generati dall'esecuzione del flusso di lavoro.

Nome tabella Descrizione
Richieste Dettagli sugli eventi seguenti nelle esecuzioni del flusso di lavoro:

- Eventi di attivazione e azione
- Numero di tentativi
- Utilizzo dei connettori
Tracce Dettagli sugli eventi seguenti nelle esecuzioni del flusso di lavoro:

- Eventi di inizio e fine del flusso di lavoro
- Eventi di invio batch e ricezione batch
Eccezioni Dettagli sugli eventi di eccezione nelle esecuzioni del flusso di lavoro
Dipendenze Dettagli sugli eventi di dipendenza nelle esecuzioni del flusso di lavoro

Tabella di richieste

La tabella Richieste contiene campi che tengono traccia dei dati sugli eventi seguenti nelle esecuzioni del flusso di lavoro Standard:

  • Eventi di attivazione e azione
  • Tentativi
  • Utilizzo dei connettori

Per mostrare il modo in cui i dati vengono inseriti in questi campi, si supponga di avere il flusso di lavoro Standard di esempio seguente che inizia con il trigger Richiedi seguito dall'azione Componi e Risposta.

Screenshot che mostra il portale di Azure e la finestra di progettazione del flusso di lavoro Standard con trigger e azioni.

Le impostazioni del trigger hanno un parametro denominato ID di traccia personalizzato. Il valore del parametro è impostato su un'espressione che esegue il pull del valore della proprietà orderId dal corpo di un messaggio in arrivo:

Screenshot che mostra il portale di Azure, il flusso di lavoro Standard, il trigger Richiedi selezionato, la scheda Impostazioni e l'ID di traccia personalizzato.

Successivamente, le impostazioni dell'azione Componi del flusso di lavoro hanno una proprietà rilevata aggiunta denominata solutionName. Il valore della proprietà viene impostato sul nome della risorsa dell'app per la logica.

Screenshot che mostra il portale di Azure, il flusso di lavoro Standard, l'azione Componi selezionata, la scheda Impostazioni e la proprietà rilevata.

L'azione Componi è seguita da un'azione Risposta che restituisce una risposta al chiamante.

L'elenco seguente include query di esempio che è possibile creare ed eseguire nella tabella Richieste:

Attività Passaggi
Visualizzare tutti gli eventi di attivazione e azione Eseguire una query per tutti gli eventi di attivazione e azione
Visualizzare solo eventi di attivazione o eventi di azione Eseguire una query solo per eventi di attivazione o azione
Visualizzare eventi di trigger o azioni con un tipo di operazione specifico Eseguire una query su eventi di attivazione o azione in base al tipo di operazione
Visualizzare eventi di attivazione e azione con un ID di esecuzione del flusso di lavoro specifico Eseguire una query su eventi di attivazione o azione in base all'ID di esecuzione del flusso di lavoro
Visualizzare eventi di attivazione e azione con un ID di traccia client specifico Eseguire una query su eventi di attivazione o azione in base all'ID di traccia clienti
Visualizzare eventi di attivazione e azione con un nome di soluzione specifico Eseguire una query su eventi di attivazione o azione in base al nome della soluzione
Visualizzare eventi di attivazione e azione con tentativi di ripetizione Eseguire una query su eventi di attivazione o azione per i numeri di nuovi tentativi
Visualizzare eventi di attivazione e azione con l'utilizzo dei connettori Eseguire una query per eventi di attivazione o azione per l'uso dei connettori

Eseguire una query per tutti gli eventi di attivazione e azione

Dopo l'esecuzione del flusso di lavoro e alcuni minuti, è possibile creare una query sulla tabella Richieste per visualizzare tutti gli eventi dell'operazione.

  1. Se necessario, selezionare l'intervallo di tempo da esaminare. Per impostazione predefinita, questo valore è le ultime 24 ore.

  2. Per visualizzare tutti gli eventi di trigger e azione, creare ed eseguire la query seguente:

    requests
    | sort by timestamp desc
    | take 10
    

    L'esempio seguente mostra la scheda Risultati con le colonne e i dati annotati in ogni riga:

    Screenshot che mostra Application Insights, query, la scheda Risultati ed eventi operativi dall'esecuzione del flusso di lavoro.

    Colonna Descrizione Esempio
    name Nome dell'operazione del flusso di lavoro Per questo esempio, le righe mostrano manuale (trigger Richiedi), Componi e Risposta.
    operazione riuscita Stato di esecuzione dell'operazione Per questo esempio, tutte le righe mostrano Vero per un'esecuzione riuscita. Se si è verificato un errore, il valore è Falso.
    resultCode Codice di stato dell'esecuzione dell'operazione Per questo esempio, tutte le righe mostrano Eseguito con successo (200).
    duration Durata dell'esecuzione dell'operazione Varia per ogni operazione.
  3. Per visualizzare i dettagli per un'operazione specifica, espandere la riga per il trigger o l'azione:

    L'esempio seguente mostra i dettagli espansi per il trigger Richiedi:

    Screenshot che mostra Application Insights, la scheda Risultati per Il trigger Richiedi e i dettagli.

    Proprietà Descrizione Esempio
    Categoria Categoria di operazioni, che è sempre Workflow.Operations.Triggers o Workflow.Operations.Actions, in base all'operazione Workflow.Operations.Triggers.
    clientTrackingId ID di traccia personalizzato, se specificato 123456
    runId ID per l'istanza di esecuzione del flusso di lavoro 08585358375819913417237801890CU00
    triggerName Nome trigger manuale
    workflowId ID per il flusso di lavoro che ha eseguito il trigger c7711d107e6647179c2e15fe2c2720ce
    workflowName Nome del flusso di lavoro che ha eseguito il trigger Richiedi-Risposta-Flusso di lavoro
    operation_Name Nome dell'operazione che ha eseguito il trigger. In questo caso, questo nome corrisponde al nome del flusso di lavoro. Richiedi-Risposta-Flusso di lavoro
    operation_Id ID per il componente o il flusso di lavoro appena eseguito. Questo ID corrisponde al valore runId per l'istanza di esecuzione del flusso di lavoro. Se esistono eccezioni o dipendenze, questo valore supera le tabelle in modo da poter collegare questo record di trigger a tali eccezioni o dipendenze. 08585358375819913417237801890CU00
    operation_ParentId ID collegabile per il flusso di lavoro che ha chiamato il trigger f95138daff8ab129

    L'esempio seguente mostra i dettagli espansi per l'azione Componi:

    Screenshot che mostra Application Insights, la scheda Risultati per l'azione Componi e i dettagli.

    Proprietà Descrizione Esempio
    Categoria Categoria di operazioni, che è sempre Workflow.Operations.Triggers o Workflow.Operations.Actions, in base all'operazione Workflow.Operations.Actions
    clientTrackingId ID di traccia personalizzato, se specificato 123456
    actionName Nome azione Compose.
    runId ID per l'istanza di esecuzione del flusso di lavoro 08585358375819913417237801890CU00
    workflowId ID per il flusso di lavoro che ha eseguito l'azione c7711d107e6647179c2e15fe2c2720ce
    workflowName Nome del flusso di lavoro che ha eseguito l'azione Richiedi-Risposta-Flusso di lavoro
    solutionName Nome della proprietà tracciata, se specificato LA-AppInsights
    operation_Name Nome dell'operazione che ha eseguito l'azione. In questo caso, questo nome corrisponde al nome del flusso di lavoro. Richiedi-Risposta-Flusso di lavoro
    operation_Id ID per il componente o il flusso di lavoro appena eseguito. Questo ID corrisponde al valore runId per l'istanza di esecuzione del flusso di lavoro. Se esistono eccezioni o dipendenze, questo valore supera le tabelle in modo da poter collegare questo record di azione a tali eccezioni o dipendenze. 08585358375819913417237801890CU00
    operation_ParentId ID collegabile per il flusso di lavoro che ha chiamato l'azione f95138daff8ab129

Eseguire una query solo per eventi di attivazione o azione

È possibile creare una query sulla tabella Richieste per visualizzare un subset di eventi dell'operazione, in base alla categoria di operazioni e al nome del flusso di lavoro.

  1. Se necessario, selezionare l'intervallo di tempo da esaminare. Per impostazione predefinita, questo valore è le ultime 24 ore.

  2. Per visualizzare tutti gli eventi trigger in un flusso di lavoro specifico, creare ed eseguire una query con il valore della proprietà customDimensions.Category impostato su Workflow.Operations.Triggers e operation_Name impostato sul nome del flusso di lavoro, ad esempio:

    requests
    | where customDimensions.Category == "Workflow.Operations.Triggers" and operation_Name == "Request-Response-Workflow"
    

    Screenshot che mostra la query della tabella Richieste solo per i trigger.

  3. Per visualizzare tutti gli eventi di azione in un flusso di lavoro specifico, creare una query con il valore della proprietà customDimensions.Category impostato su Workflow.Operations.Actions e operation_Name impostato sul nome del flusso di lavoro, ad esempio:

    requests
    | where customDimensions.Category == "Workflow.Operations.Actions" and operation_Name == "Request-Response-Workflow"
    

    Screenshot che mostra la query della tabella Richieste solo per le azioni.

Eseguire una query per eventi di attivazione o azione in base al tipo di operazione

È possibile creare una query sulla tabella Richieste per visualizzare gli eventi per un trigger o un tipo di azione specifico.

  1. Se necessario, selezionare l'intervallo di tempo da esaminare. Per impostazione predefinita, questo valore è le ultime 24 ore.

  2. Per visualizzare tutti gli eventi dell'operazione con un tipo di trigger specifico, creare ed eseguire una query con il valore customDimensions.triggerType impostato sul tipo di trigger desiderato, ad esempio:

    requests
    | where customDimensions.triggerType == "Request"
    

    Screenshot che mostra la query della tabella Richieste per il tipo di trigger Richiesta.

  3. Per visualizzare tutti gli eventi dell'operazione con un tipo di azione specifico, creare ed eseguire una query con il valore customDimensions.actionType impostato sul tipo di azione desiderato, ad esempio:

    requests
    | where customDimensions.actionType == "Compose"
    

    Screenshot che mostra la query della tabella Richieste per il tipo di azione Componi.

Eseguire una query su eventi di attivazione o azione in base all'ID di esecuzione del flusso di lavoro

È possibile creare una query sulla tabella Richieste per visualizzare un subset di eventi dell'operazione, in base all'ID di esecuzione del flusso di lavoro. Questo ID di esecuzione del flusso di lavoro è lo stesso ID che è possibile trovare nella cronologia di esecuzione del flusso di lavoro.

  1. Se necessario, selezionare l'intervallo di tempo da esaminare. Per impostazione predefinita, questo valore è le ultime 24 ore.

  2. Per visualizzare tutti gli eventi dell'operazione con un ID di esecuzione del flusso di lavoro specifico, creare ed eseguire una query con il valore operation_Id impostato sull'ID di esecuzione del flusso di lavoro, ad esempio:

    requests
    | where operation_Id == "08585287554177334956853859655CU00"
    

    Screenshot che mostra la query della tabella Richieste in base all'ID di esecuzione del flusso di lavoro.

Eseguire query su eventi trigger ed azioni in base all'ID di traccia client

È possibile creare una query sulla tabella Richieste per visualizzare un subset di eventi dell'operazione, in base al nome del flusso di lavoro e all'ID di traccia client.

  1. Se necessario, selezionare l'intervallo di tempo da esaminare. Per impostazione predefinita, questo valore è le ultime 24 ore.

  2. Per visualizzare tutti gli eventi dell'operazione con un ID di traccia client specifico in un flusso di lavoro specifico, creare ed eseguire una query con il valore operation_Name impostato sul nome del flusso di lavoro e il valore della proprietà clientTrackingId impostato sul valore desiderato, ad esempio:

    requests
    | where operation_Name == "Request-Response-Workflow"
    | extend correlation = todynamic(tostring(customDimensions.correlation))
    | where correlation.clientTrackingId == "123456"
    

    Screenshot che mostra i risultati della query usando il nome dell'operazione e l'ID di traccia client.

Eseguire una query su eventi di attivazione o azione in base al nome della soluzione

È possibile creare una query sulla tabella Richieste per visualizzare un subset di eventi dell'operazione, in base al nome del flusso di lavoro e al nome della soluzione.

  1. Se necessario, selezionare l'intervallo di tempo da esaminare. Per impostazione predefinita, questo valore è le ultime 24 ore.

  2. Per visualizzare tutti gli eventi dell'operazione con un ID di traccia client specifico in un flusso di lavoro specifico, creare ed eseguire una query con il valore operation_Name impostato sul nome del flusso di lavoro e il valore della proprietà solutionName impostato sul valore desiderato, ad esempio:

    requests
    | where operation_Name == "Request-Response-Workflow" and customDimensions has "trackedProperties"
    | extend trackedProperties = todynamic(tostring(customDimensions.trackedProperties))
    | where trackedProperties.solutionName == "LA-AppInsights"
    

    Screenshot che mostra i risultati della query usando il nome dell'operazione e il nome della soluzione.

Tentativi

Per illustrare come questi dati vengono inseriti nella tabella Richieste, il flusso di lavoro Standard di esempio seguente usa un'azione HTTP che chiama un URL, che non viene risolto. Il flusso di lavoro ha anche un criterio di ripetizione dei tentativi impostato su un intervallo fisso che ritenta tre volte, una volta ogni 60 secondi.

Screenshot che mostra il portale di Azure, il flusso di lavoro Standard, l'azione HTTP selezionata, la scheda Impostazioni e i criteri di ripetizione dei tentativi.

Eseguire una query su eventi di attivazione o azione per i nuovi tentativi

È possibile creare una query sulla tabella Richieste per visualizzare un subset di eventi dell'operazione con tentativi di ripetizione.

  1. Se necessario, selezionare l'intervallo di tempo da esaminare. Per impostazione predefinita, questo valore è le ultime 24 ore.

  2. Per visualizzare solo gli eventi di attivazione e azione con cronologia dei tentativi, creare ed eseguire la query seguente in Application Insights:

    requests
    | extend retryHistory = tostring(tostring(customDimensions.retryHistory))
    | where isnotempty(retryHistory)
    
  3. Per visualizzare i tentativi per un'operazione specifica con un criterio di ripetizione dei tentativi, espandere la riga per tale operazione.

    L'esempio seguente mostra i dettagli espansi per l'azione HTTP:

    Screenshot che mostra Application Insights, la scheda Risultati per l'azione HTTP e i dettagli.

    I valori della proprietà successo e resultCode indicano che l'azione HTTP non è riuscita. Insieme alle proprietà descritte in Eseguire una query nella tabella Richieste per tutti gli eventi di attivazione e azione, il record contiene le informazioni seguenti, che includono tre tentativi:

    Proprietà Descrizione Esempio
    retryHistory Dettagli della cronologia per uno o più tentativi
    code Tipo di errore per un tentativo di ripetizione specifico
    error Dettagli sull'errore specifico che si è verificato

Eseguire una query su eventi di attivazione o azione per l'utilizzo dei connettori

È possibile creare una query sulla tabella Richieste per visualizzare un subset di eventi dell'operazione, in base a un utilizzo specifico dei connettori.

  1. Se necessario, selezionare l'intervallo di tempo da esaminare. Per impostazione predefinita, questo valore è le ultime 24 ore.

  2. Per visualizzare tutti gli eventi trigger usando un tipo di connettore specifico, creare ed eseguire una query con le proprietà e i valori seguenti:

    requests
    | where customDimensions.Category == "Workflow.Operations.Triggers" and customDimensions.triggerType =="ApiConnectionWebhook" and customDimensions.apiName =="commondataservice"
    
    Proprietà Valore di esempio
    customDimensions.Category Workflow.Operations.Triggers
    customDimensions.triggerType Tipo di operazione, ad esempio ApiConnectionWebhook
    customDimensions.apiName Nome API del connettore in formato JSON, ad esempio commondataservice per il connettore Microsoft Dataverse

    Screenshot che mostra Application Insights, scheda Risultati per gli eventi trigger di Microsoft Dataverse con connessione ApiConnectionWebhook.

  3. Per visualizzare tutti gli eventi di azione con un utilizzo specifico dei connettori, creare ed eseguire una query con il valore customDimensions.Category impostato su Workflow.Operations.Actions, il valore customDimensions.triggerType impostato sul tipo di operazione e customDimensions.apiName impostato sul nome API del connettore in formato JSON, ad esempio:

    Proprietà Valore di esempio
    customDimensions.Category Workflow.Operations.Actions
    customDimensions.triggerType Tipo di operazione, ad esempio ApiConnection
    customDimensions.apiName Il nome dell'API del connettore in formato JSON, ad esempio office365 per il connettore Microsoft Office 365 Outlook
    requests
    | where customDimensions.Category == "Workflow.Operations.Actions" and customDimensions.actionType == "ApiConnection" and customDimensions.apiName == "office365"
    

    Screenshot che mostra Application Insights, scheda Risultati per gli eventi di azione di Outlook di Microsoft Office 365 con connessione ApiConnection.

Per i trigger e le azioni, Application Insights distingue tra i tipi di connessioni esistenti. È possibile visualizzare valori diversi nei campi actionType e triggerType in base al fatto che la connessione abbia ApiConnection, ApiConnectionWebhook, il tipo di base predefinito, ad esempio Richiedi o il tipo ServiceProvider predefinito basato sul provider di servizi.

Tabella delle tracce

La tabella Tracce contiene campi che tengono traccia dei dati relativi agli eventi seguenti nelle esecuzioni del flusso di lavoro Standard:

L'elenco seguente include query di esempio che è possibile creare ed eseguire sulla tabella Tracce:

Attività Passaggi
Visualizzare gli eventi di inizio e fine in tutte le esecuzioni del flusso di lavoro Eseguire una query per gli eventi di inizio e fine in tutte le esecuzioni del flusso di lavoro
Visualizzare gli eventi di inizio e fine in un'esecuzione del flusso di lavoro specifica Eseguire una query per gli eventi di inizio e fine in un'esecuzione del flusso di lavoro
Visualizzare eventi di invio e ricezione batch in tutte le esecuzioni del flusso di lavoro Eseguire una query per l'invio e la ricezione batch di eventi in tutte le esecuzioni del flusso di lavoro

Eseguire una query per gli eventi di inizio e fine in tutte le esecuzioni del flusso di lavoro

È possibile creare una query sulla tabella Tracce per visualizzare tutti gli eventi di inizio e fine per tutte le esecuzioni del flusso di lavoro.

  1. Se necessario, selezionare l'intervallo di tempo da esaminare. Per impostazione predefinita, questo valore è le ultime 24 ore.

  2. Creare ed eseguire una query con il valore customDimensions.Category impostato su Workflow.Operations.Runs, ad esempio:

    traces
    | where customDimensions.Category == "Workflow.Operations.Runs"
    

    Screenshot che mostra Application Insights, scheda Risultati per l'avvio e gli eventi in tutte le esecuzioni del flusso di lavoro.

Eseguire una query per gli eventi di inizio e fine in un'esecuzione specifica del flusso di lavoro

È possibile creare una query sulla tabella Tracce per visualizzare gli eventi di inizio e fine per un'esecuzione specifica del flusso di lavoro.

  1. Se necessario, selezionare l'intervallo di tempo da esaminare. Per impostazione predefinita, questo valore è le ultime 24 ore.

  2. Creare ed eseguire una query con il valore customDimensions.Category impostato su Workflow.Operations.Runs e il valore operation_Id impostato sull'ID di esecuzione del flusso di lavoro, ad esempio:

    traces
    | where customDimensions.Category == "Workflow.Operations.Runs"
    | and operation_Id == "08585287571846573488078100997CU00"
    

    Screenshot che mostra Application Insights, la scheda Risultati per l'avvio e gli eventi per un'esecuzione specifica.

Eseguire una query per l'invio e la ricezione batch di eventi in tutte le esecuzioni del flusso di lavoro

È possibile creare una query sulla tabella Tracce per visualizzare gli eventi di invio batch e ricezione batch in tutte le esecuzioni del flusso di lavoro.

  1. Se necessario, selezionare l'intervallo di tempo da esaminare. Per impostazione predefinita, questo valore è le ultime 24 ore.

  2. Creare ed eseguire una query con il valore customDimensions.Category impostato su Workflow.Operations.Runs e il valore operation_Id impostato sull'ID di esecuzione del flusso di lavoro, ad esempio:

    traces
    | where customDimensions.Category == "Workflow.Operations.Batch"
    

    Screenshot che mostra Application Insights, la scheda Risultati per gli eventi di invio batch e ricezione batch in tutte le esecuzioni del flusso di lavoro.

Tabelle delle eccezioni

La tabella Eccezioni contiene campi che tengono traccia dei dati relativi agli eventi di eccezione nelle esecuzioni del flusso di lavoro Standard. Per mostrare il modo in cui i dati vengono inseriti in questi campi, si supponga di avere il flusso di lavoro Standard di esempio seguente che inizia con il trigger Richiedi seguito dall'azione Componi e Risposta. L'azione Componi usa un'espressione che divide un valore per zero, che genera un'eccezione:

Screenshot che mostra il portale di Azure, la finestra di progettazione del flusso di lavoro Standard, il trigger Richiedi, l'azione Componi con un'espressione che genera eccezioni e l'azione Risposta.

Eseguire una query per gli eventi di eccezione in tutte le esecuzioni del flusso di lavoro

È possibile creare una query sulla tabella Eccezioni per visualizzare gli eventi di eccezione in tutte le esecuzioni del flusso di lavoro.

  1. Se necessario, selezionare l'intervallo di tempo da esaminare. Per impostazione predefinita, questo valore è le ultime 24 ore.

  2. Per visualizzare tutti gli eventi di eccezione, creare ed eseguire la query seguente in Application Insights:

    exceptions
    | sort by timestamp desc
    
  3. Per visualizzare i dettagli per un'eccezione specifica, espandere la riga per tale eccezione:

    L'esempio seguente mostra l'eccezione espansa per l'azione Componi e i dettagli sull'eccezione:

    Screenshot che mostra Application Insights, la scheda Risultati per gli eventi di eccezione con l'evento di eccezione per l'azione Componi espansa e i dettagli dell'eccezione.

    Proprietà Descrizione
    problemId Tipo di eccezione o breve descrizione dell'eccezione che si è verificata
    outerMessage Descrizione più dettagliata dell'eccezione
    details Informazioni dettagliate e più complete sull'eccezione
    clientTrackingId ID di traccia client, se specificato
    workflowId ID per il flusso di lavoro che ha riscontrato l'eccezione
    workflowName Nome del flusso di lavoro che ha riscontrato l'eccezione
    runId ID per l'istanza di esecuzione del flusso di lavoro
    actionName Nome dell'azione non riuscita con l'eccezione
    operation_Name Nome del flusso di lavoro che ha riscontrato l'eccezione
    operation_Id ID per il componente o il flusso di lavoro appena eseguito. Questo ID corrisponde al valore runId per l'istanza di esecuzione del flusso di lavoro. Questo valore trascende le tabelle in modo da poter collegare questo record di eccezione all'istanza di esecuzione del flusso di lavoro.
    operation_ParentId ID per il flusso di lavoro che ha chiamato l'azione, che è possibile collegare all'ID dell'azione nella tabella Richieste
  4. Per visualizzare le eccezioni per un flusso di lavoro specifico, creare ed eseguire la query seguente:

    exceptions
    | where operation_Name contains "Request-Response-Workflow-Exception"
    

Tabella delle dipendenze

La tabella Dipendenze contiene campi che tengono traccia dei dati sugli eventi di dipendenza nelle esecuzioni del flusso di lavoro Standard. Questi eventi vengono generati quando una risorsa chiama un'altra risorsa e quando entrambe le risorse usano Application Insights. Esempi per App per la logica di Azure includono un servizio che chiama un altro servizio su HTTP, un database o un file system. Application Insights misura la durata delle chiamate di dipendenza e se tali chiamate hanno esito positivo o negativo, insieme a informazioni, ad esempio il nome della dipendenza. È possibile analizzare chiamate di dipendenza specifiche e correlarle a richieste ed eccezioni.

Per illustrare il modo in cui i dati vengono inseriti in questi campi, si supponga di avere il flusso di lavoro padre Standard seguente che chiama un flusso di lavoro figlio su HTTP usando l'azione HTTP :

Screenshot che mostra il portale di Azure, la finestra di progettazione del flusso di lavoro Standard con il flusso di lavoro padre usando l'azione HTTP per chiamare un flusso di lavoro figlio.

Eseguire una query per gli eventi di dipendenza in un flusso di lavoro specifico

È possibile creare una query sulla tabella Dipendenze per visualizzare gli eventi di dipendenza in un'esecuzione specifica del flusso di lavoro.

  1. Se necessario, selezionare l'intervallo di tempo da esaminare. Per impostazione predefinita, questo valore è le ultime 24 ore.

  2. Per visualizzare gli eventi di dipendenza tra il flusso di lavoro padre e il flusso di lavoro figlio, creare ed eseguire la query seguente:

    union requests, dependencies
    | where operation_Id contains "<runId>"
    

    Questa query usa l'operatore unione per restituire record dalla tabella Richieste e dalla tabella Dipendenze. La query usa anche il valore della proprietà operation_Id per fornire il collegamento tra i record specificando il valore runId del flusso di lavoro desiderato, ad esempio:

    union requests, dependencies
    | where operation_Id contains "08585355753671110236506928546CU00"
    

    Nell'esempio seguente viene illustrato un evento di dipendenza per il flusso di lavoro specificato, inclusi i record per gli eventi dell'operazione nel flusso di lavoro padre dalla tabella Richieste e quindi un record di dipendenza dalla tabella Dipendenze:

    Screenshot che mostra Application Insights, scheda Risultati con eventi di dipendenza per un flusso di lavoro specifico.

    Per i record dell'evento dell'operazione, la colonna itemType mostra i relativi tipi di record come richiesta. Per il record di dipendenza, la colonna itemType indica il tipo di record come dipendenza.

    Proprietà Descrizione
    runId ID per l'istanza di esecuzione del flusso di lavoro
    actionName Nome dell'azione in cui si verifica l'evento di dipendenza
    operation_Id ID per il flusso di lavoro specificato. Questo ID corrisponde al valore runId per l'istanza di esecuzione del flusso di lavoro. Questo valore supera le tabelle in modo da poter collegare questo record di dipendenza all'istanza di esecuzione del flusso di lavoro.
    operation_ParentId ID per l'azione in cui si verifica l'evento di dipendenza, che collega anche il record dell'evento dell'operazione e il record dell'evento di dipendenza insieme

Con la query, è anche possibile visualizzare la chiamata di dipendenza da un flusso di lavoro padre a un flusso di lavoro figlio quando si usa la mappa dell'applicazione in Application Insights. Il valore operation_Id nella query fornisce il collegamento che rende possibile questa visualizzazione.

Per aprire la mappa dell'applicazione, nel menu delle risorse di Application Insights, in Indagaselezionare Mappa delle applicazioni.

Screenshot che mostra Application Insights e la mappa delle applicazioni con dipendenza tra il flusso di lavoro padre e il flusso di lavoro figlio.

Filtrare gli eventi

In Application Insights è possibile filtrare gli eventi nei modi seguenti:

  • Creare ed eseguire query come descritto nelle sezioni precedenti.

  • Filtrare all'origine specificando i criteri da valutare prima di generare eventi.

    Applicando filtri all'origine, è possibile ridurre la quantità di spazio di archiviazione necessaria e, di conseguenza, i costi operativi.

Applicare il filtro all'origine

Nella tabella Requests o Tracce un record ha un nodo denominato customDimensions, che contiene una proprietà Categoria. Nella tabella Richieste, ad esempio, il record della richiesta per un evento trigger batch è simile all'esempio seguente:

Screenshot che mostra Application Insights con la tabella Richieste e il record per un evento trigger di messaggi batch.

Nella tabella Richieste i valori delle proprietà Categoria seguenti consentono di distinguere e associare livelli di dettaglio diversi:

Valore categoria Descrizione
Workflow.Operations.Triggers Identifica un record di richiesta per un evento trigger
Workflow.Operations.Actions Identifica un record di richiesta per un evento di azione

Per ogni valore Categoria, è possibile impostare in modo indipendente il livello di dettaglio nel file di host.json per la risorsa o il progetto dell'app per la logica. Ad esempio, per restituire solo i record per gli eventi di attivazione o azione che contengono errori, nel file host.json è possibile aggiungere l'oggetto JSON di registrazione seguente, che contiene un oggetto JSON logLevel con i livelli di dettaglio desiderati:

{
   "logging": {
      "logLevel": {
         "Workflow.Operations.Actions": "Error",
         "Workflow.Operations.Triggers": "Error"
      }
   }
}

Per i record di tabella Tracce, gli esempi seguenti illustrano i modi in cui è possibile modificare il livello di dettaglio per gli eventi:

{
   "logging": {
      "logLevel": {
         "Workflow.Host": "Warning",
         "Workflow.Jobs": "Warning",
         "Workflow.Runtime": "Warning"
      }
   }
}

L'esempio seguente imposta il livello di dettaglio predefinito del log su Avviso, ma mantiene il livello di dettaglio a Informazioni per gli eventi di attivazione, azione ed esecuzione del flusso di lavoro:

{
   "logging": {
      "logLevel": {
         "default": "Warning",
         "Workflow.Operations.Actions": "Information",
         "Workflow.Operations.Runs": "Information",
         "Workflow.Operations.Triggers": "Information"
      }
   }
}

Se non si specifica alcun valore logLevel, il livello di dettaglio predefinito è Informazioni. Per altre informazioni, vedere Configurare i livelli di log.

  1. Nel portale di Azure, aprire la risorsa dell’app per la logica Standard.

  2. Nel menu dell'app per la logica, in Strumenti di sviluppo selezionare Strumenti avanzati. Nella pagina Strumenti avanzati selezionare Vai per aprire gli strumenti Kudu.

  3. Nella pagina Kudu selezionare CMD nel menu Console di debug. Nella tabella della directory delle cartelle andare al file seguente e selezionare Modifica: site/wwwroot/host.json

  4. Nel file host.json aggiungere l'oggetto JSON di registrazione con i valori logLevel impostati sui livelli di dettaglio desiderati:

    {
       "logging": {
          "logLevel": {
             "Workflow.Operations.Actions": "<verbosity-level>",
             "Workflow.Operations.Triggers": "<verbosity-level>"
          }
       }
    }
    

Visualizzare le metriche del flusso di lavoro in Application Insights

Con i miglioramenti dei dati di telemetria in Application Insights, è anche possibile ottenere informazioni dettagliate sul flusso di lavoro nel dashboard delle metriche.

Aprire il dashboard Metriche e configurare i filtri di base

  1. Nel portale di Azure aprire la risorsa di Application Insights, se non è già aperta.

  2. Nel menu delle risorse di Application Insights, in Monitoraggio selezionare Metriche.

  3. Nell'elenco Ambito selezionare l'istanza di Application Insights.

  4. Nell'elenco Spazio dei nomi delle metriche selezionare workflow.operations.

  5. Nell'elenco Metrica selezionare una metrica, ad esempio Esecuzioni completate.

  6. Nell'elenco Aggregazione selezionare un tipo, ad esempio Conteggio o Media.

    Al termine, il dashboard Metriche mostra un grafico con le esecuzioni completate del flusso di lavoro.

    Screenshot che mostra Application Insights con il dashboard delle metriche e il grafico che mostra il numero di esecuzioni del flusso di lavoro completate nel tempo.

Filtrare in base a un flusso di lavoro specifico

Quando si abilitano le metriche multidimensionali nel dashboard metriche, è possibile specificare come destinazione un subset degli eventi complessivi acquisiti in Application Insights e filtrare gli eventi in base a un flusso di lavoro specifico.

  1. Nella risorsa di Application Insights abilitare le metriche multidimensionali.

  2. In Application Insights aprire il dashboard Metriche.

  3. Sulla barra degli strumenti del grafico selezionare Aggiungi filtro.

  4. Nell'elenco Proprietà selezionare Flusso di lavoro.

  5. Nell'elenco Operatore selezionare il segno di uguale (=).

  6. Nell'elenco Valori selezionare i flussi di lavoro desiderati.

    Screenshot che mostra Application Insights con dashboard delle metriche e grafico con metriche multidimensionali.

Visualizzare i dati e le metriche di log "live"

Con i dati di telemetria avanzati di Application Insights abilitati, è possibile visualizzare i dati di log quasi in tempo reale e altre metriche dell'istanza di Application Insights nel portale di Azure. È possibile usare questa visualizzazione per tracciare le richieste in ingresso, le richieste in uscita e l'integrità complessiva. Si ottiene anche una tabella per la diagnostica a livello di traccia.

  1. Nel portale di Azure aprire la risorsa di Application Insights, se non è già aperta.

  2. Nel menu delle risorse di Application Insights, in Indaga, selezionare Metriche attive.

    La pagina Metriche attive mostra i dati di log e altre metriche, ad esempio:

    Screenshot che mostra il portale di Azure e il menu di Application Insights con la voce selezionata denominata Metriche attive.

Per altre informazioni, vedere Live Metrics: Monitoraggio e diagnosi con latenza di 1 secondo.

Nota

Poiché i flussi di lavoro delle app per la logica Standard si basano su Funzioni di Azure, Metriche attive supporta questi flussi di lavoro delle app per la logica.

Trasmettere e visualizzare l'output di debug dai file di log dell'applicazione

Con i dati di telemetria avanzati di Application Insights abilitati, è possibile trasmettere informazioni dettagliate sul debug nel portale di Azure per i file di log dell'applicazione. Queste informazioni sono equivalenti all'output generato dal debug del flusso di lavoro nell'ambiente Visual Studio Code locale.

  1. Nel portale di Azure, aprire la risorsa dell’app per la logica Standard.

  2. Nel menu delle risorse dell'app per la logica, in Monitoraggio selezionare Flusso di log.

    La pagina Flusso di log si connette all'istanza di Application Insights e mostra l'output di debug. Ad esempio, l'output seguente include chiamate di richiesta e risposta tra le altre informazioni:

    Screenshot che mostra il portale di Azure e il menu dell'app per la logica Standard con la voce selezionata denominata Flusso di log.

Passaggi successivi

Abilitare o aprire Application Insights