Usare l'analisi di flusso per elaborare dati esportati da Application InsightsUse Stream Analytics to process exported data from Application Insights

L'analisi di flusso di Azure è lo strumento ideale per elaborare dati esportati da Application Insights.Azure Stream Analytics is the ideal tool for processing data exported from Application Insights. L'analisi di flusso può eseguire il pull di dati da un'ampia gamma di origini.Stream Analytics can pull data from a variety of sources. Può trasformare e filtrare i dati e quindi instradarli a molti sink diversi.It can transform and filter the data, and then route it to a variety of sinks.

In questo esempio verrà creato un adattatore che recupera dati da Application Insights, rinomina ed elabora alcuni dei campi e invia tramite pipe i dati in Power BI.In this example, we'll create an adaptor that takes data from Application Insights, renames and processes some of the fields, and pipes it into Power BI.

Avviso

Esistono modi consigliati migliori e più semplici per visualizzare dati di Application Insights in Power BI.There are much better and easier recommended ways to display Application Insights data in Power BI. Il percorso descritto qui è solo un esempio per mostrare come elaborare dati esportati.The path illustrated here is just an example to illustrate how to process exported data.

Diagramma a blocchi per l'esportazione tramite SA in PBI

Creare l'archivio in AzureCreate storage in Azure

L'esportazione continua invia sempre i dati a un account di Archiviazione di Azure, pertanto è prima necessario creare l'archivio.Continuous export always outputs data to an Azure Storage account, so you need to create the storage first.

  1. Creare un account di archiviazione "classico" per la sottoscrizione nel portale di Azure.Create a "classic" storage account in your subscription in the Azure portal.

    Nel portale di Azure scegliere Nuovo, Dati, Archiviazione

  2. Creare un contenitoreCreate a container

    Nel nuovo archivio selezionare Contenitori, fare clic sul riquadro Contenitori e quindi su Aggiungi

  3. Copiare la chiave di accesso alle risorse di archiviazione.Copy the storage access key

    Sarà presto necessaria per configurare l'input per il servizio di analisi di flusso.You'll need it soon to set up the input to the stream analytics service.

    Nella risorsa di archiviazione aprire Impostazioni, Chiavi ed eseguire una copia della chiave di accesso primaria

Avviare l'esportazione continua nell'archiviazione di AzureStart continuous export to Azure storage

Esportazione continua sposta i dati da Application Insights nell'archiviazione di Azure.Continuous export moves data from Application Insights into Azure storage.

  1. Nel portale di Azure passare alla risorsa di Application Insights creata per la propria applicazione.In the Azure portal, browse to the Application Insights resource you created for your application.

    Scegliere Sfoglia, Application Insights e quindi l'applicazione

  2. Creare un'esportazione continua.Create a continuous export.

    Scegliere Impostazioni, Esportazione continua, Aggiungi

    Selezionare l'account di archiviazione creato in precedenza:Select the storage account you created earlier:

    Impostare la destinazione di esportazione

    Impostare i tipi di eventi da visualizzare:Set the event types you want to see:

    Scegliere i tipi di eventi

  3. Lasciare che alcuni dati si accumulino.Let some data accumulate. Attendere che gli utenti usino l'applicazione per qualche tempo.Sit back and let people use your application for a while. Verranno restituiti i dati di telemetria e sarà possibile esaminare i grafici statistici in Esplora metriche e i singoli eventi in Ricerca diagnostica.Telemetry will come in and you'll see statistical charts in metric explorer and individual events in diagnostic search.

    I dati verranno inoltre esportati nell'archivio.And also, the data will export to your storage.

  4. Esaminare i dati esportati.Inspect the exported data. In Visual Studio, scegliere Visualizza/Cloud Explorere aprire Azure/Archiviazione.In Visual Studio, choose View / Cloud Explorer, and open Azure / Storage. (Se non si dispone di tale opzione del menu, è necessario installare l’SDK di Azure: aprire la finestra di dialogo Nuovo progetto, aprire Visual C#/Cloud/Ottieni Microsoft Azure SDK per .NET).(If you don't have this menu option, you need to install the Azure SDK: Open the New Project dialog and open Visual C# / Cloud / Get Microsoft Azure SDK for .NET.)

    Prendere nota della parte comune del nome del percorso, derivata dal nome dell’applicazione e dalla chiave di strumentazione.Make a note of the common part of the path name, which is derived from the application name and instrumentation key.

Gli eventi vengono scritti nei file BLOB in formato JSON.The events are written to blob files in JSON format. Ogni file può contenere uno o più eventi.Each file may contain one or more events. A questo punto sarà possibile leggere i dati degli eventi e filtrare i campi preferiti.So we'd like to read the event data and filter out the fields we want. È possibile eseguire una serie di operazioni sui dati, ma lo scopo di questo articolo è usare l'analisi di flusso per spostare i dati in un Power BI.There are all kinds of things we could do with the data, but our plan today is to use Stream Analytics to pipe the data to Power BI.

Creare un'istanza di analisi di flusso di AzureCreate an Azure Stream Analytics instance

Nel portale di Azure classicoselezionare il servizio di analisi di flusso di Azure e creare un nuovo processo di analisi di flusso:From the Classic Azure Portal, select the Azure Stream Analytics service, and create a new Stream Analytics job:

Quando viene creato il nuovo processo, espanderne i dettagli:When the new job is created, expand its details:

Impostare il percorso BLOBSet blob location

Impostarlo in modo da accettare l'input dal BLOB di esportazione continua:Set it to take input from your Continuous Export blob:

A questo punto è necessaria la chiave di accesso primaria dell'account di archiviazione, di cui si è preso nota in precedenza.Now you'll need the Primary Access Key from your Storage Account, which you noted earlier. Impostarla come chiave dell'account di archiviazione.Set this as the Storage Account Key.

Impostare lo schema prefisso percorsoSet path prefix pattern

Assicurarsi di impostare il formato della data su AAAA-MM-GG (con i trattini).Be sure to set the Date Format to YYYY-MM-DD (with dashes).

Lo schema prefisso percorso specifica dove l'analisi di flusso trova i file di input nell'archivio.The Path Prefix Pattern specifies where Stream Analytics finds the input files in the storage. È necessario configurarlo in modo che corrisponda alla modalità di archiviazione dei dati dell'esportazione continua.You need to set it to correspond to how Continuous Export stores the data. Impostarlo come segue:Set it like this:

webapplication27_12345678123412341234123456789abcdef0/PageViews/{date}/{time}

Esempio:In this example:

  • webapplication27 è il nome della risorsa di Application Insights, tutto minuscolo.webapplication27 is the name of the Application Insights resource all lower case.
  • 1234... è la chiave di strumentazione della risorsa di Application Insights, senza trattini.1234... is the instrumentation key of the Application Insights resource, omitting dashes.
  • PageViews è il tipo di dati da analizzare.PageViews is the type of data you want to analyze. I tipi disponibili dipendono dal filtro impostato nell'esportazione continua.The available types depend on the filter you set in Continuous Export. Esaminare i dati esportati per vedere gli altri tipi disponibili e vedere il modello di dati di esportazione.Examine the exported data to see the other available types, and see the export data model.
  • /{date}/{time} è uno schema scritto letteralmente./{date}/{time} is a pattern written literally.

Nota

Controllare lo spazio di archiviazione per assicurarsi di ottenere il percorso corretto.Inspect the storage to make sure you get the path right.

Completare l'installazione inizialeFinish initial setup

Verificare il formato di serializzazione:Confirm the serialization format:

Confermare e chiudere la procedura guidata

Chiudere la procedura guidata e attendere il completamento dell'installazione.Close the wizard and wait for the setup to complete.

Suggerimento

Utilizzare il comando di esempio per scaricare alcuni dati.Use the Sample command to download some data. Utilizzare come esempio di test per eseguire il debug della query.Keep it as a test sample to debug your query.

Visualizzare l'outputSet the output

Selezionare il processo e impostare l'output.Now select your job and set the output.

Selezionare il nuovo canale, fare clic su Output, su Aggiungi e quindi su Power BI

Fornire l’ account aziendale o dell’istituto di istruzione per autorizzare l'analisi di flusso per l’accesso alla risorsa di Power BI.Provide your work or school account to authorize Stream Analytics to access your Power BI resource. Creare quindi un nome per l'output e per il set di dati Power BI e la tabella di destinazione.Then invent a name for the output, and for the target Power BI dataset and table.

Inventare tre nomi

Impostare la querySet the query

La query gestisce la conversione dall'input all'output.The query governs the translation from input to output.

Selezionare il processo e fare clic su Query.

Utilizzare la funzione Test per verificare di ottenere l'output corretto.Use the Test function to check that you get the right output. Assegnare i dati di esempio presenti nella pagina di input.Give it the sample data that you took from the inputs page.

Query per visualizzare i conteggi degli eventiQuery to display counts of events

Incollare questa query:Paste this query:


    SELECT
      flat.ArrayValue.name,
      count(*)
    INTO
      [pbi-output]
    FROM
      [export-input] A
    OUTER APPLY GetElements(A.[event]) as flat
    GROUP BY TumblingWindow(minute, 1), flat.ArrayValue.name
  • export-input è l'alias assegnato all'input del flussoexport-input is the alias we gave to the stream input
  • pbi-output è l'alias dell'output definitopbi-output is the output alias we defined
  • Utilizziamo OUTER APPLY GetElements perché il nome dell'evento si trova in una matrice JSON annidata.We use OUTER APPLY GetElements because the event name is in a nested JSON arrray. L'istruzione SELECT seleziona quindi il nome dell'evento insieme al conteggio del numero di istanze che presentano tale nome nel periodo di tempo indicato.Then the Select picks the event name, together with a count of the number of instances with that name in the time period. La clausola GROUP BY raggruppa gli elementi in periodi di tempo di 1 minuto.The Group By clause groups the elements into time periods of 1 minute.

Query per visualizzare i valori delle metricheQuery to display metric values


    SELECT
      A.context.data.eventtime,
      avg(CASE WHEN flat.arrayvalue.myMetric.value IS NULL THEN 0 ELSE  flat.arrayvalue.myMetric.value END) as myValue
    INTO
      [pbi-output]
    FROM
      [export-input] A
    OUTER APPLY GetElements(A.context.custom.metrics) as flat
    GROUP BY TumblingWindow(minute, 1), A.context.data.eventtime
  • Questa query entra nella telemetria delle metriche per ottenere l'ora dell'evento e il valore della metrica.This query drills into the metrics telemetry to get the event time and the metric value. I valori delle metriche sono all'interno di una matrice, pertanto si utilizza il modello OUTER APPLY GetElements per estrarre le righe.The metric values are inside an array, so we use the OUTER APPLY GetElements pattern to extract the rows. "myMetric" è il nome della metrica in questo caso."myMetric" is the name of the metric in this case.

Query per includere i valori delle proprietà delle dimensioniQuery to include values of dimension properties


    WITH flat AS (
    SELECT
      MySource.context.data.eventTime as eventTime,
      InstanceId = MyDimension.ArrayValue.InstanceId.value,
      BusinessUnitId = MyDimension.ArrayValue.BusinessUnitId.value
    FROM MySource
    OUTER APPLY GetArrayElements(MySource.context.custom.dimensions) MyDimension
    )
    SELECT
     eventTime,
     InstanceId,
     BusinessUnitId
    INTO AIOutput
    FROM flat
  • Questa query include i valori delle proprietà delle dimensioni senza dipendere da una dimensione specifica in un indice fissato nella matrice di dimensioni.This query includes values of the dimension properties without depending on a particular dimension being at a fixed index in the dimension array.

Eseguire il processoRun the job

Per la data di inizio del processo, è possibile selezionare una data nel passato.You can select a date in the past to start the job from.

Selezionare il processo e fare clic su Query.

Attendere fino al termine dell'esecuzione del processo.Wait until the job is Running.

Visualizzare i risultati in Power BISee results in Power BI

Avviso

Esistono modi consigliati migliori e più semplici per visualizzare dati di Application Insights in Power BI.There are much better and easier recommended ways to display Application Insights data in Power BI. Il percorso descritto qui è solo un esempio per mostrare come elaborare dati esportati.The path illustrated here is just an example to illustrate how to process exported data.

Aprire Power BI con l’account aziendale o dell’istituto di istruzione e selezionare il set di dati e la tabella definiti come output del processo di Analisi di flusso.Open Power BI with your work or school account, and select the dataset and table that you defined as the output of the Stream Analytics job.

In Power BI selezionare il set di dati e i campi.

È ora possibile usare questo set di dati nei report e nei dashboard in Power BI.Now you can use this dataset in reports and dashboards in Power BI.

In Power BI selezionare il set di dati e i campi.

Dati non visualizzatiNo data?

VideoVideo

Noam Ben Zeev mostra come elaborare dati esportati usando l'analisi di flusso.Noam Ben Zeev shows how to process exported data using Stream Analytics.

Passaggi successiviNext steps