Обработка данных, экспортированных из Application Insights, при помощи Stream AnalyticsUse Stream Analytics to process exported data from Application Insights

Azure Stream Analytics — идеальное средство для обработки данных, экспортированных из Application Insights.Azure Stream Analytics is the ideal tool for processing data exported from Application Insights. Stream Analytics может извлекать данные из различных источников.Stream Analytics can pull data from a variety of sources. Это средство может преобразовывать и фильтровать данные и затем отправлять их в различные приемники.It can transform and filter the data, and then route it to a variety of sinks.

В этом примере мы создадим адаптер, который принимает данные из Application Insights, переименовывает и обрабатывает некоторые поля, а затем передает данные в 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.

Предупреждение

Мы рекомендуем использовать более простые и удобные способы отображения данных Application Insights в Power BI.There are much better and easier recommended ways to display Application Insights data in Power BI. Используемый в этой статье способ приведен только в качестве примера, чтобы показать, как можно обрабатывать экспортированные данные.The path illustrated here is just an example to illustrate how to process exported data.

Блок-схема экспорта в PBI через SA

Создание хранилища в AzureCreate storage in Azure

В результате непрерывного экспорта происходит передача данных в учетную запись хранилища Azure, поэтому необходимо сначала создать хранилище.Continuous export always outputs data to an Azure Storage account, so you need to create the storage first.

  1. Создайте "классическую" учетную запись хранения в подписке на портале Azure.Create a "classic" storage account in your subscription in the Azure portal.

    На портале Azure выберите "Создать", "Данные", "Хранилище".

  2. Создание контейнераCreate a container

    В новом хранилище выберите "Контейнеры", щелкните элемент "Контейнеры", а затем — "Добавить".

  3. Скопируйте ключ доступа к хранилищу.Copy the storage access key

    Он вскоре потребуется для настройки входных данных для службы Stream Analytics.You'll need it soon to set up the input to the stream analytics service.

    В хранилище откройте "Параметры", "Ключи" и сделайте копию первичного ключа доступа.

Запуск непрерывного экспорта в службе хранилища AzureStart continuous export to Azure storage

Непрерывный экспорт перемещает данные из Application Insights в хранилище Azure.Continuous export moves data from Application Insights into Azure storage.

  1. На портале Azure перейдите к ресурсу Application Insights, созданному для приложения.In the Azure portal, browse to the Application Insights resource you created for your application.

    Выберите "Обзор", Application Insights, а затем выберите свое приложение.

  2. Создайте непрерывный экспорт.Create a continuous export.

    Выберите "Параметры", "Непрерывный экспорт", "Добавить".

    Выберите учетную запись хранения, созданную ранее:Select the storage account you created earlier:

    Установите место назначения экспорта.

    Задайте необходимые типы событий:Set the event types you want to see:

    Выберите типы событий.

  3. Пусть данные накопятся.Let some data accumulate. Предоставьте пользователям возможность поработать с приложением на протяжении некоторого времени.Sit back and let people use your application for a while. После получения данных телеметрии в обозревателе метрик отобразятся статистические диаграммы, а в разделе поиска по журналу диагностики — отдельные события.Telemetry will come in and you'll see statistical charts in metric explorer and individual events in diagnostic search.

    Данные также будут экспортированы в хранилище.And also, the data will export to your storage.

  4. Проверьте экспортированные данные.Inspect the exported data. В Visual Studio откройте меню "Вид" или "Обозреватель облака"и выберите элемент "Azure" или "Хранилище".In Visual Studio, choose View / Cloud Explorer, and open Azure / Storage. (Если этой команды нет в меню, установите пакет SDK Azure: откройте диалоговое окно "Создание проекта", разверните узел "Visual C#/облако" и выберите "Получить Microsoft Azure SDK для .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.)

    Запишите общую часть имени пути, которое образовано от имени приложения и ключа инструментирования.Make a note of the common part of the path name, which is derived from the application name and instrumentation key.

События записываются в JSON-файлы больших двоичных объектов.The events are written to blob files in JSON format. Каждый файл может содержать одно или несколько событий.Each file may contain one or more events. Поэтому нам нужна возможность считывать данные событий и отфильтровывать необходимые поля.So we'd like to read the event data and filter out the fields we want. С данными можно выполнять любые действия, но сейчас мы будем использовать Stream Analytics для перемещения данных в 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.

Создание экземпляра Azure Stream AnalyticsCreate an Azure Stream Analytics instance

Из портал Azure, выберите службу Azure Stream Analytics и создайте новое задание Stream Analytics:From the Azure portal, select the Azure Stream Analytics service, and create a new Stream Analytics job:

Когда создается новое задание, выберите переход к ресурсу.When the new job is created, select Go to resource.

Добавить новые входные данныеAdd a new input

Задайте расположение для приема входных данных из большого двоичного объекта непрерывного экспорта:Set it to take input from your Continuous Export blob:

Теперь потребуется первичный ключ доступа из вашей учетной записи хранения, указанной ранее.Now you'll need the Primary Access Key from your Storage Account, which you noted earlier. Задайте его в качестве ключа учетной записи хранения.Set this as the Storage Account Key.

Установка шаблона префикса путиSet path prefix pattern

Задайте в поле "Формат даты" значение в формате ГГГГ-ММ-ДД (с дефисами).Be sure to set the Date Format to YYYY-MM-DD (with dashes).

Шаблон префикса пути указывает, где Stream Analytics находит входные файлы в хранилище.The Path Prefix Pattern specifies where Stream Analytics finds the input files in the storage. Вам необходимо настроить это поле в соответствии с тем, как функция непрерывного экспорта сохраняет данные.You need to set it to correspond to how Continuous Export stores the data. Задайте следующее значение:Set it like this:

webapplication27_12345678123412341234123456789abcdef0/PageViews/{date}/{time}

В данном примере:In this example:

  • webapplication27 — имя ресурса Application Insights ( только строчные буквы).webapplication27 is the name of the Application Insights resource all lower case.
  • 1234... — ключ инструментирования ресурса Application Insights с удаленными дефисами.1234... is the instrumentation key of the Application Insights resource, omitting dashes.
  • PageViews — тип данных, которые необходимо проанализировать.PageViews is the type of data you want to analyze. Доступные типы зависят от фильтра, установленного в функции непрерывного экспорта.The available types depend on the filter you set in Continuous Export. Изучите экспортированные данные, чтобы увидеть другие доступные типы, а также ознакомьтесь с моделью экспорта данных.Examine the exported data to see the other available types, and see the export data model.
  • /{date}/{time} – шаблон, записанный буквально./{date}/{time} is a pattern written literally.

Примечание

Проверьте хранилище и убедитесь, что вы получаете нужный путь.Inspect the storage to make sure you get the path right.

Добавить новый выходAdd new output

Теперь выберите задание > выходов > добавить.Now select your job > Outputs > Add.

Выбор нового канала и элементов "Выходные данные", "Добавить", "Power BI".

Предоставьте свою рабочую или учебную учетную запись для обеспечения доступа Stream Analytics к ресурсу Power BI.Provide your work or school account to authorize Stream Analytics to access your Power BI resource. Затем укажите имя для выходных данных, а также для целевого набора данных и таблицы Power BI.Then invent a name for the output, and for the target Power BI dataset and table.

Определение запросаSet the query

Запрос определяет преобразование входных данных в выходные.The query governs the translation from input to output.

Используйте функцию "Проверить" для проверки выходных данных.Use the Test function to check that you get the right output. Предоставьте ей образец данных, полученный на странице входных данных.Give it the sample data that you took from the inputs page.

Запрос для отображения количества событийQuery to display counts of events

Вставьте следующий запрос.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 — это псевдоним, присвоенный входным данным потока.export-input is the alias we gave to the stream input
  • pbi-output — это определенный псевдоним выходных данных.pbi-output is the output alias we defined
  • Мы используем GetElements ВНЕШНЕГО применить так как вложенный массив JSON имя события.We use OUTER APPLY GetElements because the event name is in a nested JSON array. Затем элемент Select выбирает имя события, а также количество экземпляров с этим именем за определенный период времени.Then the Select picks the event name, together with a count of the number of instances with that name in the time period. Group By предложение группирует элементы периодам времени до одной минуты.The Group By clause groups the elements into time periods of one minute.

Запрос для отображения значений метрикиQuery 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
  • Этот запрос позволяет получить время события и значение метрики по телеметрии метрики.This query drills into the metrics telemetry to get the event time and the metric value. Значения метрик находятся в массиве, поэтому мы используем шаблон OUTER APPLY GetElements для извлечения строк.The metric values are inside an array, so we use the OUTER APPLY GetElements pattern to extract the rows. myMetric — это имя метрики."myMetric" is the name of the metric in this case.

Запрос для добавления значений свойств измеренияQuery 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
  • Этот запрос включает в себя значения свойств измерения вне зависимости от того, соответствует ли конкретному измерению фиксированный индекс в массиве.This query includes values of the dimension properties without depending on a particular dimension being at a fixed index in the dimension array.

Выполнение заданияRun the job

Дату запуска задания можно выбрать в прошлом.You can select a date in the past to start the job from.

Выбор задания и элемента "Запрос".

Подождите, пока задание находится в статусе выполнения.Wait until the job is Running.

Просмотр результатов в Power BISee results in Power BI

Предупреждение

Мы рекомендуем использовать более простые и удобные способы отображения данных Application Insights в Power BI.There are much better and easier recommended ways to display Application Insights data in Power BI. Используемый в этой статье способ приведен только в качестве примера, чтобы показать, как можно обрабатывать экспортированные данные.The path illustrated here is just an example to illustrate how to process exported data.

Откройте Power BI с рабочей или учебной учетной записью и выберите набор данных и таблицу, которые были определены как выходные данные задания Stream Analytics.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.

Выбор набора данных и полей в Power BI.

Теперь этот набор данных можно использовать в отчетах и панелях мониторинга в Power BI.Now you can use this dataset in reports and dashboards in Power BI.

Выбор набора данных и полей в Power BI.

Данные отсутствуют?No data?

ВидеоVideo

Ноам Бен Зив (Noam Ben Zeev) показывает, как обрабатывать экспортированные данные с помощью Stream Analytics.Noam Ben Zeev shows how to process exported data using Stream Analytics.

Дальнейшие действияNext steps