Microsoft AZ-204: Мониторинг, диагностика и интеграция с DevOps в Azure — Руководство по подготовке

Часть Microsoft Azure Developer Associate AZ-204 — Руководство по подготовке. Практикуйтесь с проверенными ответами в центре экзаменов Microsoft, или пройдите тесты на время на ExamRoll.io.

Обзор

Azure Monitor и Application Insights предоставляют единый, ориентированный на разработчиков стек наблюдаемости (observability) для приложений Azure. Application Insights собирает телеметрию приложений, такую как запросы, зависимости, исключения и трассировки, в то время как Azure Monitor агрегирует метрики и журналы со всех ресурсов в рабочую область Log Analytics и управляет оповещениями и интеграциями с DevOps. Глубокое понимание вариантов инструментирования, семантики телеметрии, тестов доступности, Kusto Query Language (KQL), оповещений с использованием групп действий, распределённой трассировки и «инфраструктуры как кода» (Infrastructure as Code) с помощью шаблонов ARM обеспечивает создание надёжных, диагностируемых и автоматизируемых решений.

Инструментирование и телеметрия Application Insights

Ресурсы Application Insights идентифицируются для приёма данных либо с помощью ключа инструментирования (instrumentation key), либо строки подключения (connection string). Ключ инструментирования — это устаревший единый GUID, используемый SDK для маршрутизации телеметрии. Строка подключения — это текущая рекомендация; она включает ключ инструментирования, а также метаданные конечных точек (точек приёма данных и Live Metrics) и позволяет направлять данные в нестандартные конечные точки (например, для суверенных или частных облаков). Используйте строку подключения в новом коде и конфигурациях; это позволит в будущем изменять конечные точки без повторного развёртывания кода. В App Service включение Application Insights на уровне платформы добавит строку подключения в переменные окружения для автоматически определяемых сред выполнения.

Инструментирование можно выполнить с помощью SDK или автоматически (auto-instrumentation). Подход с использованием SDK (например, Microsoft.ApplicationInsights.AspNetCore для .NET, applicationinsights для Node.js и агент Application Insights для Java) предлагает контроль на уровне кода: пользовательские события, метрики и обогащённую телеметрию через TelemetryInitializers и обработчики, включая адаптивную выборку (adaptive sampling). Автоматическое инструментирование (codeless attach) доступно для App Service и некоторых других вычислительных стеков; оно использует расширения сайта/агенты для сбора данных о входящих запросах, зависимостях и исключениях без изменения кода. Используйте инструментирование через SDK, когда вам нужны пользовательские события, бизнес-метрики или явная корреляция в фоновых задачах; используйте codeless attach для быстрого получения данных с минимальными усилиями или для «lift-and-shift» нагрузок. В обоих случаях задавайте имя облачной роли (cloud role name), чтобы различать службы в микросервисной архитектуре, и тщательно настраивайте выборку (sampling) для баланса между точностью данных и затратами.

Application Insights генерирует несколько основных типов телеметрии:

Распределённая трассировка в Application Insights основана на корреляции. Каждая сквозная операция имеет идентификатор операции (operation ID, в терминах W3C — trace ID), который является общим для всей связанной телеметрии; каждый «span» имеет родительско-дочерние отношения, обеспечиваемые через передаваемые заголовки (propagation headers). Современные SDK используют W3C Trace Context (заголовки traceparent, tracestate). Поле Operation_Id в KQL связывает Requests, Dependencies, Exceptions и Traces для одной и той же транзакции. Убедитесь, что исходящие HTTP-клиенты передают эти заголовки; для .NET System.Diagnostics.Activity и SDK Application Insights делают это автоматически. Отслеживание зависимостей инструментирует распространённые клиенты (HTTP, SQL, Service Bus, Storage). Когда службы пересекают границы (например, из App Service в AKS), последовательная передача заголовков позволяет построить единую связанную карту транзакций. Для асинхронных и основанных на сообщениях потоков убедитесь, что SDK фиксируют и передают идентификаторы корреляции в метаданных сообщений; большинство Azure SDK делают это по умолчанию.

Тестирование доступности и синтетический мониторинг

Тесты доступности проверяют внешнюю достижимость и скорость отклика из нескольких географических регионов. Тест «URL ping» отправляет HTTP-запросы с заданной частотой из нескольких точек тестирования и проверяет коды состояния, исправность SSL-сертификата и, опционально, совпадение содержимого ответа. Используйте повторные попытки и несколько местоположений, чтобы уменьшить количество ложных срабатываний, и настройте оповещения на сбои тестов для получения действенных уведомлений.

Многошаговые тесты доступности исторически выполняли записанные последовательности HTTP-запросов с сохранением состояния (stateful cookies) для проверки рабочих процессов. Классические многошаговые веб-тесты были упразднены; для сценариев с несколькими запросами или с аутентификацией реализуйте синтетические тесты, инструментируя собственный клиент или сервис с помощью API TrackAvailability (или экспортёров OpenTelemetry) для отправки AvailabilityTelemetry. Этот подход позволяет реализовать кастомную аутентификацию, передачу данных (payloads) и специфичную для домена проверку, сохраняя при этом централизованную отчётность и систему оповещений.

Пользовательская реализация TrackAvailability даёт вам контроль над:

Сочетайте тесты доступности с телеметрией зависимостей и запросов бэкенда, чтобы быстро отличать проблемы доступности конечной точки (сеть, DNS, TLS) от сбоев приложения (исключения, тайм-ауты) и отказов нижестоящих сервисов (SQL, внешние API). Свяжите сбои тестов доступности с группами действий (action groups) для запуска рабочих процессов по управлению инцидентами.

Данные Azure Monitor, KQL и оповещения с помощью групп действий

Azure Monitor принимает два основных типа данных: метрики и журналы. Метрики — это легковесные числовые временные ряды с приемом данных почти в реальном времени и многомерной детализацией (например, по экземпляру, маршруту API). Они лучше всего подходят для быстрого обнаружения проблем (CPU, память, частота запросов, задержка, доступность) и по умолчанию поддерживают хранение до 93 дней. Журналы — это структурированные, доступные для запросов записи, хранящиеся в рабочей области Log Analytics, и включают данные Application Insights, журналы ресурсов платформы и пользовательские журналы с настраиваемым сроком хранения. Используйте параметры диагностики (Diagnostic settings), чтобы направлять метрики платформы и журналы ресурсов в рабочую область, Event Hub или Storage для архивации и аналитики.

Kusto Query Language (KQL) используется для исследовательского анализа, панелей мониторинга и оповещений по журналам. Основные шаблоны включают:

Оповещения охватывают метрики и журналы. Оповещения по метрикам (Metric alerts) оценивают пороговые значения метрик почти в реальном времени, поддерживают измерения и разделение по измерениям (splitting by dimension), а также могут использовать статические или динамические пороги (на основе ML-базовых линий). Они отслеживают состояние (stateful) и могут срабатывать и автоматически разрешаться в зависимости от результатов оценки, создавая одно уведомление при изменении состояния. Оповещения по журналам (Log alerts или scheduled query alerts) выполняют KQL-запросы по расписанию и срабатывают на основе результатов запроса (количество совпадений или пороговые значения). Используйте оповещения по журналам, когда условия зависят от сложных шаблонов в нескольких таблицах или требуют анализа текста. Интеллектуальное обнаружение (Smart detection) и оповещения об аномалиях в Application Insights могут выявлять регрессии без явных пороговых значений.

Группы действий (Action groups) определяют многократно используемые наборы ответов на оповещения. Типы уведомлений включают email, SMS, голосовые вызовы и push-уведомления в мобильном приложении Azure. Интеграции включают:

Шаблоны ARM для обеспечения наблюдаемости и повторяемых развертываний

Шаблоны Azure Resource Manager (ARM) декларативно определяют ресурсы и конфигурацию мониторинга в виде кода. Структура шаблона включает:

Используйте связанные или вложенные шаблоны для создания сложных развертываний. Ресурс развертывания (Microsoft.Resources/deployments) ссылается на дочерний шаблон через templateLink (внешний URI) или встраивает его напрямую. Передавайте объекты параметров через parameters или parametersLink, определяйте порядок с помощью dependsOn и повторно используйте модули в разных средах. Примеры обеспечения наблюдаемости по умолчанию с помощью ARM:

Используйте условия и циклы копирования для масштабируемых развертываний (например, для применения параметров диагностики к набору идентификаторов ресурсов). Используйте функции ARM, такие как resourceId, subscriptionResourceId, reference, concat и guid, для создания динамических ссылок и стабильных имен. Обеспечивайте согласованность конфигурации телеметрии между службами, централизуя соглашения об именах ролей и выборку в настройках приложения, доставляемых через ARM или ресурсы конфигурации App Service.

Практический сценарий

Компании Adobe требуется сквозная наблюдаемость для нового многорегионального конвейера обработки мультимедиа, построенного на API-интерфейсах Azure App Service и микросервисах AKS. Им требуется быстрое обнаружение регрессий задержек, распределенная трассировка между службами, проактивные проверки доступности для общедоступных конечных точек и автоматизированная маршрутизация инцидентов в их систему дежурств с возможностью воспроизведения по принципу «инфраструктура как код».

  1. Инструментирование служб с помощью Application Insights, используя строки подключения
  1. Включение распределенной трассировки и отслеживания зависимостей
  1. Внедрение тестов доступности и пользовательских синтетических проверок
  1. Централизация данных в рабочей области Log Analytics и маршрутизация платформенных журналов
  1. Создание оповещений по метрикам и журналам с группами действий
  1. Интеграция реагирования на инциденты через группы действий и веб-перехватчики
  1. Кодификация мониторинга с помощью шаблонов ARM
  1. Проверка с помощью панелей мониторинга KQL

Кэширование · Все домены

Отработать эти вопросы → · Тесты на время на ExamRoll.io →

Pass the whole exam — not just this question

You found this answer. Get every verified question and explanation in one place, and save hours of prep. Free to start.

Сдайте экзамен →

Просмотреть Microsoft →

Related guides

Все включено

Одна подписка. Каждый экзамен.

Каждый план открывает неограниченный поиск ответов, практические тесты, объяснения AI и полную библиотеку ресурсов — на более чем 20 языках.

Ежемесячно
24.87
Just €0.83/day
Все включено:
  • Неограниченный поиск ответов
  • Неограниченные практические тесты
  • Объяснения на основе AI
  • Полная библиотека ресурсов
  • 20+ языков
  • Еженедельные обновления контента
  • Награды и рефералы
  • Приоритетная поддержка
Начать бесплатную пробную версию

Кредитная карта не требуется*

Лучшая цена
12 месяцев
179.87
Just €0.49/daySave 40%
Все включено:
  • Неограниченный поиск ответов
  • Неограниченные практические тесты
  • Объяснения на основе AI
  • Полная библиотека ресурсов
  • 20+ языков
  • Еженедельные обновления контента
  • Награды и рефералы
  • Приоритетная поддержка
Начать бесплатную пробную версию

Кредитная карта не требуется*

✓ Включен бесплатный план · ✓ Отмена в любое время · ✓ Все планы открывают полный продукт