Автоматизация настраиваемых отчетов с использованием данных Application Insights

Периодические отчеты помогают команде информироваться о том, как работают критически важные для бизнеса службы. Разработчики, команды DevOps/SRE и их руководители могут эффективно работать с автоматизированными отчетами, которые надежно предоставляют аналитические сведения, не требуя от всех пользователей входа на портал. Такие отчеты также могут помочь определить постепенное увеличение задержки, нагрузки или частоты сбоев, которые могут не активировать правила генерации оповещений.

В каждой организации есть свои уникальные потребности в отчетности, например следующие:

  • Агрегаты определенных процентилей метрик или пользовательских метрик в отчете.
  • Различные отчеты для ежедневных, еженедельных и ежемесячных сверток данных для разных аудиторий.
  • Сегментация по пользовательским атрибутам, таким как регион или среда.
  • Ресурсы ИИ, сгруппированные в одном отчете, даже если они могут находиться в разных подписках или группах ресурсов.
  • Отдельные отчеты, содержащие конфиденциальные метрики, отправляемые выборочной аудитории.
  • Отчеты заинтересованным лицам, у которых, возможно, нет доступа к ресурсам портала.

Примечание

Еженедельное дайджест-письмо Application Insights не допускает никаких настроек и будет прекращено в пользу пользовательских параметров, перечисленных здесь. Последнее еженедельное дайджест-письмо было отправлено 11 июня 2018 года. Настройте один из следующих параметров, чтобы получить похожие пользовательские отчеты. Используйте запрос, предложенный в этой статье.

Автоматизация сообщений электронной почты пользовательских отчетов

Вы можете программно запрашивать данные Application Insights для создания пользовательских отчетов по расписанию. Указанные ниже варианты помогут быстро приступить к работе.

Пример запроса для сообщения электронной почты еженедельного дайджеста

В следующем запросе показано объединение нескольких наборов данных для еженедельного дайджест-отчета, подобного электронной почте. Настройте его по мере необходимости и используйте с любым из перечисленных ранее параметров для автоматизации еженедельного отчета.

let period=7d;
requests
| where timestamp > ago(period)
| summarize Row = 1, TotalRequests = sum(itemCount), FailedRequests = sum(toint(success == 'False')),
    RequestsDuration = iff(isnan(avg(duration)), '------', tostring(toint(avg(duration) * 100) / 100.0))
| join (
dependencies
| where timestamp > ago(period)
| summarize Row = 1, TotalDependencies = sum(itemCount), FailedDependencies = sum(success == 'False'),
    DependenciesDuration = iff(isnan(avg(duration)), '------', tostring(toint(avg(duration) * 100) / 100.0))
) on Row | join (
pageViews
| where timestamp > ago(period)
| summarize Row = 1, TotalViews = sum(itemCount)
) on Row | join (
exceptions
| where timestamp > ago(period)
| summarize Row = 1, TotalExceptions = sum(itemCount)
) on Row | join (
availabilityResults
| where timestamp > ago(period)
| summarize Row = 1, OverallAvailability = iff(isnan(avg(toint(success))), '------', tostring(toint(avg(toint(success)) * 10000) / 100.0)),
    AvailabilityDuration = iff(isnan(avg(duration)), '------', tostring(toint(avg(duration) * 100) / 100.0))
) on Row
| project TotalRequests, FailedRequests, RequestsDuration, TotalDependencies, FailedDependencies, DependenciesDuration, TotalViews, TotalExceptions, OverallAvailability, AvailabilityDuration

Отчет дайджеста планирования Application Insights

  1. Создайте приложение Функции Azure. Application Insights On требуется только в том случае, если вы хотите отслеживать новое приложение Функции Azure с помощью Application Insights.

    Сведения о создании приложения-функции см. в документации по Функции Azure.

  2. После завершения развертывания нового приложения Функции Azure выберите Перейти к ресурсу.

  3. Выберите Новая функция.

    Снимок экрана: создание функции.

  4. Выберите шаблон запланированного дайджеста Application Insights .

    Примечание

    По умолчанию приложения-функции создаются с помощью среды выполнения версии 3.x. Чтобы использовать шаблон дайджеста планирования Application Insights, выберите среду выполнения Функций Azure версии1.x. Перейдите в раздел Конфигурация>Параметры среды выполнения функции , чтобы изменить версию среды выполнения. Снимок экрана: вкладка

    Снимок экрана: новый шаблон Application Insights для функции.

  5. Введите соответствующий адрес электронной почты получателя для отчета и нажмите кнопку Создать.

    Снимок экрана: параметры функции.

  6. Выберите Функции Приложения-функции>Платформа>Конфигурация.

    Снимок экрана: параметры приложения-функции Azure.

  7. Создайте три новых параметра приложения с соответствующими значениями AI_APP_ID, AI_APP_KEYи SendGridAPI. Щелкните Сохранить.

    Снимок экрана: интерфейс интеграции функций.

    Значения AI_ можно найти в разделе Доступ к API для ресурса Application Insights, о который вы хотите сообщить. Если у вас нет ключа API Application Insights, используйте параметр Создать ключ API .

    • AI_APP_ID = идентификатор приложения

    • AI_APP_KEY = ключ API

    • SendGridAPI = ключ API SendGrid

      Примечание

      Если у вас нет учетной записи SendGrid, ее можно создать. Дополнительные сведения см. в разделе Функции Azure привязки SendGrid для документации по SendGrid для Функции Azure. Краткое описание настройки SendGrid и создания ключа API приведено в конце этой статьи.

  8. Выберите Интеграция. В разделе Выходные данные выберите SendGrid ($return).

    Снимок экрана: выходные данные.

  9. В разделе SendGridAPI Key App Setting (Ключ SendGridAPI) выберите только что созданный параметр приложения SendGridAPI.

    Снимок экрана: SendGridAPI.

  10. Запустите и протестируйте приложение-функцию.

    Снимок экрана: тест.

  11. Проверьте сообщение электронной почты, чтобы убедиться, что сообщение было успешно отправлено или получено.

    Снимок экрана: строка темы сообщения электронной почты.

SendGrid с Azure

Эти действия применяются только в том случае, если у вас еще нет учетной записи SendGrid.

  1. На портале Azure выберите Создать ресурс. Найдите SendGrid Email Delivery и выберите Создать. Заполните инструкции SendGrid.

    Снимок экрана: кнопка SendGrid Create (Создать)

  2. В разделе SendGrid Accounts (Учетные записи SendGrid) выберите Manage (Управление).

    Снимок экрана: кнопка

  3. Это действие открывает сайт SendGrid. Выберите Параметры>Ключи API.

    Снимок экрана, на котором показаны ключи API в разделе

  4. Чтобы создать ключ API, выберите Создать представление &. Ознакомьтесь с документацией SendGrid по ограниченному доступу, чтобы определить, какой уровень разрешений подходит для ключа API. Полный доступ здесь выбран только в качестве примера.

    Снимок экрана: полный доступ.

  5. Скопируйте весь ключ. Это значение необходимо в параметрах приложения-функции в качестве значения для SendGridAPI.

    Снимок экрана: область