Автоматизация настраиваемых отчетов с использованием данных Application Insights
Периодические отчеты помогают команде информироваться о том, как работают критически важные для бизнеса службы. Разработчики, команды DevOps/SRE и их руководители могут эффективно работать с автоматизированными отчетами, которые надежно предоставляют аналитические сведения, не требуя от всех пользователей входа на портал. Такие отчеты также могут помочь определить постепенное увеличение задержки, нагрузки или частоты сбоев, которые могут не активировать правила генерации оповещений.
В каждой организации есть свои уникальные потребности в отчетности, например следующие:
- Агрегаты определенных процентилей метрик или пользовательских метрик в отчете.
- Различные отчеты для ежедневных, еженедельных и ежемесячных сверток данных для разных аудиторий.
- Сегментация по пользовательским атрибутам, таким как регион или среда.
- Ресурсы ИИ, сгруппированные в одном отчете, даже если они могут находиться в разных подписках или группах ресурсов.
- Отдельные отчеты, содержащие конфиденциальные метрики, отправляемые выборочной аудитории.
- Отчеты заинтересованным лицам, у которых, возможно, нет доступа к ресурсам портала.
Примечание
Еженедельное дайджест-письмо Application Insights не допускает никаких настроек и будет прекращено в пользу пользовательских параметров, перечисленных здесь. Последнее еженедельное дайджест-письмо было отправлено 11 июня 2018 года. Настройте один из следующих параметров, чтобы получить похожие пользовательские отчеты. Используйте запрос, предложенный в этой статье.
Автоматизация сообщений электронной почты пользовательских отчетов
Вы можете программно запрашивать данные Application Insights для создания пользовательских отчетов по расписанию. Указанные ниже варианты помогут быстро приступить к работе.
Используйте шаблон запланированного дайджеста Application InsightsФункции Azure в сценарии мониторинга. Для доставки сообщения электронной почты эта функция использует SendGrid.
Пример запроса для сообщения электронной почты еженедельного дайджеста
В следующем запросе показано объединение нескольких наборов данных для еженедельного дайджест-отчета, подобного электронной почте. Настройте его по мере необходимости и используйте с любым из перечисленных ранее параметров для автоматизации еженедельного отчета.
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
Создайте приложение Функции Azure. Application Insights On требуется только в том случае, если вы хотите отслеживать новое приложение Функции Azure с помощью Application Insights.
Сведения о создании приложения-функции см. в документации по Функции Azure.
После завершения развертывания нового приложения Функции Azure выберите Перейти к ресурсу.
Выберите Новая функция.
Выберите шаблон запланированного дайджеста Application Insights .
Примечание
По умолчанию приложения-функции создаются с помощью среды выполнения версии 3.x. Чтобы использовать шаблон дайджеста планирования Application Insights, выберите среду выполнения Функций Azure версии1.x. Перейдите в раздел Конфигурация>Параметры среды выполнения функции , чтобы изменить версию среды выполнения.
Введите соответствующий адрес электронной почты получателя для отчета и нажмите кнопку Создать.
Выберите Функции Приложения-функции>Платформа>Конфигурация.
Создайте три новых параметра приложения с соответствующими значениями
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 приведено в конце этой статьи.
Выберите Интеграция. В разделе Выходные данные выберите SendGrid ($return).
В разделе SendGridAPI Key App Setting (Ключ SendGridAPI) выберите только что созданный параметр приложения SendGridAPI.
Запустите и протестируйте приложение-функцию.
Проверьте сообщение электронной почты, чтобы убедиться, что сообщение было успешно отправлено или получено.
SendGrid с Azure
Эти действия применяются только в том случае, если у вас еще нет учетной записи SendGrid.
На портале Azure выберите Создать ресурс. Найдите SendGrid Email Delivery и выберите Создать. Заполните инструкции SendGrid.
В разделе SendGrid Accounts (Учетные записи SendGrid) выберите Manage (Управление).
Это действие открывает сайт SendGrid. Выберите Параметры>Ключи API.
Чтобы создать ключ API, выберите Создать представление &. Ознакомьтесь с документацией SendGrid по ограниченному доступу, чтобы определить, какой уровень разрешений подходит для ключа API. Полный доступ здесь выбран только в качестве примера.
Скопируйте весь ключ. Это значение необходимо в параметрах приложения-функции в качестве значения для
SendGridAPI
.