Логотип Зефирнет

Улучшите мониторинг и отладку заданий AWS Glue, используя новые метрики наблюдения за заданиями. Часть 3. Визуализация и анализ тенденций с помощью Amazon QuickSight | Веб-сервисы Amazon

Дата:

In Часть 2 этой серии мы обсудили, как включить Клей AWS метрики наблюдения за заданиями и интегрируйте их с Grafana для мониторинга в реальном времени. Grafana предоставляет мощные настраиваемые информационные панели для просмотра состояния конвейера. Однако для анализа тенденций с течением времени, агрегирования результатов из разных измерений и обмена информацией по всей организации можно воспользоваться специальным инструментом бизнес-аналитики (BI), например Amazon QuickSight может быть более эффективным для вашего бизнеса. QuickSight позволяет бизнес-пользователям легко визуализировать данные на интерактивных панелях мониторинга и в отчетах.

В этой статье мы рассмотрим, как подключить QuickSight к Amazon CloudWatch метрики и стройте графики, чтобы выявить тенденции в показателях наблюдаемости заданий AWS Glue. Анализ исторических закономерностей позволяет оптимизировать производительность, заранее выявлять проблемы и улучшать планирование. Мы рассмотрим процесс загрузки метрик CloudWatch в QuickSight с помощью потока метрик CloudWatch и QuickSight SPICE. Благодаря этой интеграции вы можете использовать линейные диаграммы, гистограммы и другие типы графиков, чтобы выявить ежедневные, еженедельные и ежемесячные закономерности. QuickSight позволяет выполнять совокупные расчеты показателей для более глубокого анализа. Вы можете разрезать данные по различным параметрам, например по названию задания, видеть аномалии и безопасно обмениваться отчетами по всей организации. Благодаря этой информации команды могут сделать конвейеры интеграции данных более эффективными.

Обзор решения

Следующая схема архитектуры иллюстрирует рабочий процесс реализации решения.

Рабочий процесс включает в себя следующие шаги:

  1. Задания AWS Glue передают метрики наблюдаемости в метрики CloudWatch.
  2. CloudWatch передает данные метрик через поток метрик в Пожарный шланг данных Amazon.
  3. Data Firehose использует AWS Lambda функция для преобразования данных и приема преобразованных записей в Простой сервис хранения Amazon (Amazon S3) ведро.
  4. Сканер AWS Glue сканирует данные в корзине S3 и заполняет метаданные таблиц в каталоге данных AWS Glue.
  5. QuickSight периодически запускается Амазонка Афина запросы для загрузки результатов запроса в SPICE и последующей визуализации последних данных метрик.

Все ресурсы определены в образце. Комплект для разработки облачных сервисов AWS (AWS CDK). Вы можете развернуть комплексное решение для визуализации и анализа тенденций показателей наблюдаемости.

Пример шаблона AWS CDK

В этом посте представлен пример шаблона AWS CDK для информационной панели с использованием метрик наблюдаемости AWS Glue.

Обычно у вас есть несколько учетных записей для управления и запуска ресурсов вашего конвейера данных.

В этом шаблоне мы предполагаем следующие учетные записи:

  • Мониторинговый аккаунт – Здесь размещается центральный сегмент S3, центральный каталог данных и ресурсы, связанные с QuickSight.
  • Исходный аккаунт – Здесь размещаются отдельные ресурсы конвейера данных на AWS Glue и ресурсы для отправки показателей в учетную запись мониторинга.

Шаблон работает, даже если учетная запись мониторинга и исходная учетная запись совпадают.

Этот пример шаблона состоит из четырех стопок:

  • Стек Amazon S3 – Это подготавливает корзину S3
  • Стек каталога данных – При этом подготавливается база данных, таблица и сканер AWS Glue.
  • Стек QuickSight – Это обеспечивает источник данных QuickSight, набор данных и анализ.
  • Стек отправителя метрик – Это обеспечивает поток метрик CloudWatch, поток доставки Firehose и функцию Lambda для преобразования.

Предпосылки

У вас должны быть следующие предпосылки:

  • Python 3.9 или новее
  • Учетные записи AWS для учетной записи мониторинга и исходной учетной записи
  • An Именованный профиль AWS для учетной записи мониторинга и исходной учетной записи
  • Ассоциация Инструментарий AWS CDK 2.87.0 или более поздняя версия

Инициализировать проект CDK

Чтобы инициализировать проект, выполните следующие шаги:

  1. Клонировать шаблон компакт-диска на свое рабочее место:
    $ git clone git@github.com:aws-samples/aws-glue-cdk-baseline.git 
    
    $ cd aws-glue-cdk-baseline.git

  2. Создать Python виртуальная среда конкретно для проекта на клиентской машине:
    $ python3 -m venv .venv

Мы используем виртуальную среду, чтобы изолировать среду Python для этого проекта и не устанавливать программное обеспечение глобально.

  1. Активируйте виртуальную среду в соответствии с вашей ОС:
    • В MacOS и Linux используйте следующий код:
      $ source .venv/bin/activate

    • На платформе Windows используйте следующий код:
      % .venvScriptsactivate.bat

После этого шага последующие шаги выполняются в пределах виртуальной среды на клиентском компьютере и при необходимости взаимодействуют с учетной записью AWS.

  1. Установите необходимые зависимости, описанные в requirements.txt в виртуальную среду:
    $ pip install -r requirements.txt

  2. Отредактируйте файл конфигурации default-config.yaml в зависимости от вашей среды (замените каждый идентификатор учетной записи на свой собственный.
    create_s3_stack: false
    create_metrics_sender_stack: false
    create_catalog_stack: false
    create_quicksight_stack: true
    
    s3_bucket_name: glue-observability-demo-dashboard
    
    firehose_log_group_name: /aws/kinesisfirehose/observability-demo-metric-stream
    firehose_lambda_buffer_size_mb: 2
    firehose_lambda_buffer_interval_seconds: 60
    firehose_s3_buffer_size_mb: 128
    firehose_s3_buffer_interval_seconds: 300
    
    glue_database_name: observability_demo_db
    glue_table_name: metric_data
    glue_crawler_name: observability_demo_crawler
    glue_crawler_cron_schedule: "cron(42 * * * ? *)"
    
    athena_workgroup_name: primary

Загрузите свои среды AWS

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

  1. В учетной записи мониторинга укажите номер своей учетной записи мониторинга, регион AWS и профиль мониторинга:
    $ cdk bootstrap aws://<MONITORING-ACCOUNT-NUMBER>/<REGION> --profile <MONITORING-PROFILE> 
    --cloudformation-execution-policies arn:aws:iam::aws:policy/AdministratorAccess

  2. В исходной учетной записи укажите номер исходной учетной записи, регион и исходный профиль: x
    $ cdk bootstrap aws://<SOURCE-ACCOUNT-NUMBER>/<REGION> --profile <SOURCE-PROFILE> 
    --cloudformation-execution-policies arn:aws:iam::aws:policy/AdministratorAccess

Когда вы используете только одну учетную запись для всех сред, вы можете просто запуститьcdk bootstrapкоманда один раз.

Разверните свои ресурсы AWS

Выполните следующие команды для развертывания ресурсов AWS:

  1. Запустите следующую команду, используя учетную запись мониторинга, для развертывания ресурсов, определенных в шаблоне AWS CDK:
    $ cdk deploy '*' --profile <MONITORING-PROFILE>

  2. Выполните следующую команду, используя исходную учетную запись, для развертывания ресурсов, определенных в шаблоне AWS CDK:
    $ cdk deploy MetricSenderStack --profile <SOURCE-PROFILE>

Настройка разрешений QuickSight

Первоначально новые ресурсы QuickSight, включая набор данных и анализ, созданные с помощью шаблона AWS CDK, не видны вам, поскольку разрешения QuickSight еще не настроены.

Чтобы сделать набор данных и анализ видимыми для вас, выполните следующие шаги:

  1. На консоли QuickSight перейдите в меню пользователя и выберите Управление QuickSight.
  2. На панели навигации выберите Управление активами.
  3. Под Просмотр активов, выберите Анализ.
  4. Найдите GlueObservabilityAnaанализ и выберите его.
  5. Выберите ПОДЕЛИТЕСЬ.
  6. Что касается Пользователь или группа, выберите своего пользователя, затем выберите ПОДЕЛИТЬСЯ (1).
  7. Подождите, пока общий доступ будет завершен, затем выберите ЗАВЕРШЕНО.
  8. На Управление активами выберите страницу Datasets.
  9. Найдите observability_demo.metrics_data и выберите его.
  10. Выберите ПОДЕЛИТЕСЬ.
  11. Что касается Пользователь или группа, выберите своего пользователя, затем выберите ПОДЕЛИТЬСЯ (1).
  12. Подождите, пока общий доступ будет завершен, затем выберите ЗАВЕРШЕНО.

Изучите анализ QuickSight по умолчанию

Теперь ваш анализ QuickSight и набор данных видны вам. Вы можете вернуться в консоль QuickSight и выбрать GlueObservabilityAnaанализ в разделе Анализ. На следующем снимке экрана показана ваша панель управления.

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

  • [Надежность] Распределение ошибок при выполнении задания
  • [Надежность] Ошибки выполнения заданий (всего)
  • [Производительность] Работа с асимметрией
  • [Производительность] Асимметрия каждого задания

  • [Использование ресурсов] Использование рабочих
  • [Использование ресурсов] Использование работников на одно задание
  • [Пропускная способность] BytesRead, RecordsRead, FilesRead, PartitionRead (среднее)
  • [Пропускная способность] BytesWritten, RecordsWritten, FilesWritten (среднее)

  • [Доступное использование ресурсов на диске, ГБ (мин)
  • [Макс. использование ресурсов. % использования диска (макс.)

  • [Драйвер OOM] Счетчик ошибок OOM
  • [Driver OOM] Максимальное использование кучи памяти, % (макс.)
  • [Executor OOM] Счетчик ошибок OOM
  • [Executor OOM] Максимальное использование кучи памяти, % (Макс.)

По умолчанию, Инсайты Вкладка содержит следующую информацию:

  • Использование работников с самым низким рейтингом
  • Самая популярная работа по асимметрии

  • Прогноз использования работников
  • Лидер продаж readBytes

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

Публикация панели мониторинга QuickSight

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

  1. Выберите ПУБЛИКОВАТЬ.
  2. Выберите Опубликовать новую панель как, и введите GlueObservabilityDashboard.
  3. Выберите Опубликовать панель инструментов.

Затем вы можете просмотреть и поделиться панелью мониторинга.

Визуализация и анализ с помощью метрик наблюдения за заданиями AWS Glue

Давайте воспользуемся информационной панелью, чтобы сделать использование AWS Glue более эффективным.

Глядя на Асимметрия Количество заданий на задание визуализации, 1 ноября 2023 года был всплеск. Метрика асимметрии задания multistage-demo показала 9.53, что значительно выше, чем у других.

Давайте углубимся в детали. Ты можешь выбрать Настройкии изменяйте условия фильтрации на основе даты и времени, региона, идентификатора учетной записи AWS, имени задания AWS Glue, идентификатора выполнения задания, а также источника и приемника хранилищ данных. А пока давайте отфильтруем задание по имени multistage-demo.

Отфильтрованный Использование работников на работу визуализация показывает 0.5, а его минимальное значение составило 0.16. Кажется, что есть возможности для улучшения использования ресурсов. Это наблюдение поможет вам включить автоматическое масштабирование для этого задания, чтобы увеличить использование работников.

Убирать

Выполните следующие команды, чтобы очистить ресурсы AWS:

  1. Запустите следующую команду, используя учетную запись мониторинга, чтобы очистить ресурсы:
    $ cdk destroy '*' --profile <MONITORING-PROFILE>

    Запустите следующую команду, используя исходную учетную запись, чтобы очистить ресурсы:

    $ cdk destroy MetricSenderStack --profile <SOURCE-PROFILE>

Соображения

Интеграция QuickSight предназначена для анализа и большей гибкости. Вы можете агрегировать показатели по любым полям. При одновременной работе с множеством заданий данные QuickSight помогают выявить проблемные задания.

Интеграция QuickSight достигается за счет большего количества ресурсов в вашей среде. Учетной записи мониторинга необходима база данных, таблица, сканер и корзина S3 AWS Glue, а также возможность запускать запросы Athena для визуализации метрик в QuickSight. В каждом исходном аккаунте должен быть один поток показателей и один поток доставки Firehose. Это может повлечь за собой дополнительные расходы.

Все необходимые ресурсы представлены в виде шаблонов в AWS CDK.

Заключение

В этом посте мы рассмотрели, как визуализировать и анализировать метрики наблюдения за заданиями AWS Glue в QuickSight с использованием потоков метрик CloudWatch и SPICE. Подключив новые показатели наблюдаемости к интерактивным панелям мониторинга QuickSight, вы сможете выявить ежедневные, еженедельные и ежемесячные закономерности для оптимизации использования заданий AWS Glue. Богатые возможности визуализации QuickSight позволяют анализировать тенденции таких показателей, как загрузка сотрудников, категории ошибок, пропускная способность и многое другое. Агрегирование показателей и разделение данных по различным параметрам, таким как название должности, может обеспечить более глубокое понимание.

Образец информационной панели отображал показатели с течением времени, основные ошибки и сравнительную аналитику вакансий. Этими визуализациями и отчетами можно безопасно делиться с командами во всей организации. Благодаря полученной на основе данных информации о метриках наблюдаемости AWS Glue вы можете получить более глубокое представление об узких местах производительности, распространенных ошибках и многом другом.


Об авторах

Норитака Сэкияма является главным архитектором больших данных в команде AWS Glue. Он отвечает за создание артефактов программного обеспечения, чтобы помочь клиентам. В свободное время он любит кататься на велосипеде на своем новом дорожном велосипеде.

Чухан ЛюЧухан Лю — инженер-разработчик программного обеспечения в команде AWS Glue. Он увлечен созданием масштабируемых распределенных систем для обработки, анализа и управления большими данными. В свободное время он любит играть в теннис.

СяоРун Юй — инженер-разработчик программного обеспечения в команде AWS Glue. Он работает над созданием новых функций для AWS Glue, чтобы помочь клиентам. Помимо работы Сяорунь любит исследовать новые места в районе залива.

Шон Ма — главный менеджер по продукту в команде AWS Glue. Он имеет более чем 18-летний опыт внедрения инноваций и предоставления корпоративных продуктов, которые раскрывают возможности данных для пользователей. Помимо работы, Шон увлекается подводным плаванием и студенческим футболом.

Мохит Саксена — старший менеджер по разработке программного обеспечения в команде AWS Glue. Его команда занимается созданием распределенных систем, которые позволят клиентам с помощью интерактивных и простых в использовании интерфейсов эффективно управлять и беспрепятственно преобразовывать петабайты данных в озерах данных на Amazon S3, в базах данных и хранилищах данных в облаке.

Spot_img

Последняя разведка

Spot_img