Ранее в этой серии мы рассматривали ключевые метрики для мониторинга производительности в Databricks и обсуждали встроенные ресурсы Databricks для доступа к этим метрикам и другим важным данным наблюдаемости, таким как логи и происхождение данных (data lineage).
В этой статье мы расскажем, как использовать интеграцию с Databricks для передачи этих данных в Datadog и мониторинга ваших аналитических и AI/ML-рабочих нагрузок в Databricks наряду с остальными компонентами ваших сквозных конвейеров данных и распределенной инфраструктуры. Мы покажем вам, как:
- Мониторить и оптимизировать ваши задания и кластеры
Мониторить и оптимизировать ваши задания и кластеры
- Выявлять и устранять проблемы с качеством данных с помощью Data Observability
Выявлять и устранять проблемы с качеством данных с помощью Data Observability
- Мониторить конечные точки Model Serving
Мониторить конечные точки Model Serving
- Отслеживать и распределять затраты на Databricks с помощью Cloud Cost Management
Отслеживать и распределять затраты на Databricks с помощью Cloud Cost Management
- Контекстуализировать ваши телеметрические данные с помощью справочных таблиц (Reference Tables)
Контекстуализировать ваши телеметрические данные с помощью справочных таблиц (Reference Tables)
Мониторить и оптимизировать ваши задания и кластеры Databricks
Интеграция Datadog с Databricks использует три взаимодополняющих пути сбора данных для обеспечения сквозной видимости с низкой задержкой для ваших аналитических, инженерных задач по работе с данными и рабочих нагрузок Model Serving:
- В классических вычислительных кластерах Databricks агент Datadog собирает Spark-метрики в реальном времени, данные об использовании ресурсов хоста, а также логи драйверов и исполнителей (executors).
В классических вычислительных кластерах Databricks агент Datadog собирает Spark-метрики в реальном времени, данные об использовании ресурсов хоста, а также логи драйверов и исполнителей (executors).
- Опрос API Databricks позволяет получать данные о выполнении заданий и задач практически в реальном времени, включая длительность, статусы, сообщения об ошибках и метаданные тегов.
Опрос API Databricks позволяет получать данные о выполнении заданий и задач практически в реальном времени, включая длительность, статусы, сообщения об ошибках и метаданные тегов.
- Запросы к системным таблицам на выделенном SQL-складе Databricks позволяют собирать данные о затратах и происхождении данных.
Запросы к системным таблицам на выделенном SQL-складе Databricks позволяют собирать данные о затратах и происхождении данных.
Интеграция использует Data Observability: Jobs Monitoring, чтобы помочь вам отслеживать состояние, производительность, инфраструктуру и затраты ваших заданий по обработке данных. Помимо Databricks и Spark, Jobs Monitoring интегрируется с Azure Data Factory и dbt, что позволяет одновременно отслеживать оркестрацию и задания обработки, расположенные выше и ниже ваших рабочих областей Databricks.
На вкладках Batch Jobs и Streaming Jobs вы можете отслеживать совокупные метрики затрат и производительности, а также переключаться между представлениями Health (состояние) и Cost (затраты) списка заданий, что позволяет быстро просматривать ключевые данные профилирования.
Наряду со списком заданий, интерфейс Jobs Monitoring автоматически выявляет сбои заданий, а также тенденции затрат и производительности, аномалии и рекомендации. При необходимости он включает данные из Datadog Cloud Cost Management (CCM), чтобы вы могли видеть затраты в единицах Databricks (DBU) вместе с соответствующими расходами на облако. Вы также можете использовать Jobs Monitoring для настройки оповещений о сбоях или задержках заданий, отслеживания и анализа производительности как классических, так и вычислительных заданий и SQL-складов, а также для сбора логов драйверов и исполнителей Spark с ваших кластеров Databricks для отладки.
Например, вы можете использовать мониторы заданий Data Observability, которые корректно обрабатывают повторные попытки, чтобы минимизировать ложные оповещения при сбоях. Оповещение о производительности заданий, кластеров и инфраструктуры помогает обеспечить быстрое реагирование на проблемы обработки данных и предотвратить их влияние на последующих потребителей.
Вы можете устранять неполадки в заданиях, выбирая их из списка Jobs Monitoring, чтобы получить доступ к их историческим данным о производительности и затратах, а также изучить трассировки на уровне заданий, этапов и задач Spark для отдельных запусков. Вы также можете отлаживать сбойные или низкопроизводительные задания, просматривать связанные ошибки, логи и данные инфраструктуры, а также быстро переходить к Error Tracking, Log Management и специализированным дашбордам хостов для более детального анализа.
Для низкопроизводительных заданий вы можете углубиться в планы запросов Spark SQL, чтобы точно определить «узкие места», как показано на следующем скриншоте:
Когда первопричина проблемы находится за пределами Databricks, интеграции Datadog с AWS, Azure и Google Cloud помогут вам глубже изучить состояние вашей инфраструктуры. Вы можете использовать эти интеграции для проверки соответствующей телеметрии виртуальных машин, хранилищ и сетей, а также для отправки журналов аудита, собранных в Amazon S3, Azure Data Lake Storage и Google Cloud Storage (GCS), в Datadog для корреляции с остальной телеметрией.
Тем временем, когда ваши задания работают стабильно, Jobs Monitoring поможет вам контролировать их затраты. Например, вы можете выбрать любое задание из списка, чтобы спросить Bits AI, как оптимизировать его производительность:
На вкладке Clusters вы можете отслеживать использование ресурсов и затраты каждого из ваших кластеров Databricks, что позволяет оптимизировать производительность и сократить расходы за счет быстрого выявления конкуренции за ресурсы или избыточного выделения мощностей.
Вы также можете углубиться в любой кластер из списка, выбрав его и получив доступ к готовому дашборду, который включает широкий спектр метрик производительности заданий Databricks и Spark, а также использования ресурсов.
Jobs Monitoring предоставляет практические рекомендации по оптимизации размера для каждого кластера — такие как прогнозируемая ежемесячная экономия, конкретные изменения типов экземпляров и данные об использовании вычислительных ресурсов, лежащие в основе этих предложений, — и позволяет напрямую преобразовывать их в задачи Jira или устранять проблемы в консоли Databricks.
Выявлять и устранять проблемы с качеством данных с помощью Data Observability
Наряду с Jobs Monitoring, Datadog Quality Monitoring помогает отслеживать качество и происхождение данных в ваших таблицах Delta Lake и Unity Catalog, чтобы обнаруживать и устранять изменения в шаблонах данных, которые могут не отображаться на уровне заданий или кластеров. Благодаря этому мониторингу вы можете предотвратить влияние таких изменений на ваши модели машинного обучения, дашборды и другие последующие системы. Quality Monitoring предоставляет мониторы Data Observability для непрерывного сквозного отслеживания свежести данных, объема, метрик столбцов и нарушений пользовательских правил. Эти мониторы используют как обнаружение аномалий, так и правила, основанные на пороговых значениях.
Quality Monitoring также собирает данные о происхождении данных Databricks через таблицу system.query.history. Интеграция OpenLineage Spark, установленная в ваших классических вычислительных кластерах Databricks, добавляет происхождение данных на уровне Spark через Jobs Monitoring, чтобы вы могли проследить оповещения о качестве до ответственных заданий и преобразований Spark.
Для потоковых конвейеров данных вы можете использовать Datadog Data Streams Monitoring (DSM). DSM автоматически отображает сервисы и очереди в ваших потоковых конвейерах и отслеживает сквозную производительность, поэтому вы можете быстро оценить задержку между любыми двумя точками, определить неисправные потребители, производители и очереди, а также устранить «узкие места».
Карта DSM также отображает сбойные задания Spark, поэтому, когда задержка Kafka или изменения схемы приводят к сбоям заданий Databricks, вы можете немедленно сопоставить эти события без переключения контекста.
Мониторинг конечных точек Databricks Model Serving
Конечные точки Model Serving отвечают на запросы логического вывода в режиме реального времени и должны эластично масштабироваться в зависимости от нагрузки. Нестабильная работа конечных точек может напрямую повлиять на зависящие от них приложения.
Интеграция с Databricks позволяет отслеживать состояние конечных точек Model Serving с помощью таких метрик, как задержка конечной точки, пропускная способность, количество ошибок 4xx и 5xx, использование CPU и памяти, а также использование GPU и его памяти. Эти метрики поступают на предварительно настроенную панель мониторинга Model Serving.
Вы можете настроить оповещения по этим сигналам, чтобы отслеживать ошибки на стороне сервера (5xx), указывающие на сбои моделей или инфраструктуры, задержки в «хвосте» распределения (p99), указывающие на задержки автомасштабирования или перегрузку конечной точки, а также переполнение памяти GPU, которое может привести к сбоям из-за нехватки памяти (OOM). Поскольку метрики хранятся вместе с данными о ваших заданиях и кластерах, вы можете сопоставить проблемы конечных точек с запусками, которые стоят за ними. Например, вы можете отследить скачки задержки до заданий обновления моделей или достижения пределов памяти GPU во время всплесков трафика, не покидая Datadog. Интеграция также включает шаблоны мониторов Model Serving, поэтому вы можете начать получать оповещения о проблемах с состоянием конечных точек, не создавая мониторы с нуля.
Наконец, вы можете инструментировать приложения, вызывающие ваши конечные точки Model Serving, с помощью Datadog Agent Observability для сбора промптов и ответов, использования токенов и задержки.
Отслеживание и атрибуция затрат Databricks с помощью Cloud Cost Management
Databricks позволяет отслеживать расходы с помощью системных таблиц, но при масштабировании легко упустить из виду, что именно влияет на потребление DBU.
Ранее в этой статье мы затронули тему использования Jobs Monitoring для контроля экономической эффективности использования ресурсов Databricks. Datadog CCM дополняет эту видимость, помещая расходы на Databricks в контекст ваших общих затрат на облачные и SaaS-решения. Система учитывает ваши скидки, чтобы потребление DBU отражало то, что вы платите на самом деле, а не прейскурантную цену, распределяет расходы по командам на основе ваших тегов, выявляет аномалии затрат и предоставляет рекомендации по оптимизации, включая те, что получены из Jobs Monitoring.
Вы можете использовать пользовательские метрики для отслеживания затрат на каждый запуск обучения ML или ETL-запрос, легко определяя, что именно влияет на расходы. Например, вы можете использовать пользовательскую метрику для количества выводов, возвращаемых конкретной конечной точкой Model Serving, а затем рассчитать стоимость каждого вывода, разделив затраты на DBU и базовую инфраструктуру этой конечной точки на это значение на панели мониторинга. Разбивая затраты по версиям моделей, вы можете сразу заметить, когда новая версия модели приводит к росту расходов на логический вывод. Вы также можете использовать CCM, чтобы предотвратить непредвиденные расходы: используйте мониторы Cloud Cost для обнаружения отклонений и CCM Forecasting для прогнозирования затрат по мере масштабирования рабочих нагрузок.
Контекстуализация телеметрических данных с помощью Reference Tables
Таблицы ссылок (Reference Tables) в Datadog позволяют обогащать телеметрические данные путем импорта метаданных из ваших рабочих областей Databricks и сопоставления бизнес-данных (таких как команда, клиент, checkout_id или бизнес-единица) или операционных идентификаторов (ID кластеров и заданий) с вашими логами, метриками и событиями. Вы также можете объединять Reference Tables с метриками и запрашивать их в Sheets, редакторе DDSQL и Notebooks.
Reference Tables дополняют в остальном непрозрачные сигналы подробным контекстом, по которому можно выполнять фильтрацию, группировку и маршрутизацию. Вы можете использовать этот контекст, чтобы определить, с кем связаться в случае инцидента, распределить затраты, ограничить панели мониторинга и оповещения соответствующими командами, а также обнаружить отклонения в правах доступа и ошибки конфигурации.
Комплексный мониторинг данных и рабочих нагрузок ИИ/ML с помощью Datadog
В этой статье мы показали, как использовать Datadog для комплексного мониторинга производительности, затрат и инфраструктуры Databricks. Благодаря интеграции с Databricks, Data Observability и Cloud Cost Management вы можете отслеживать свои задания, кластеры, конвейеры и конечные точки Model Serving наряду с телеметрией из входящих и исходящих конвейеров данных и остальными компонентами ваших распределенных систем. Чтобы начать работу, ознакомьтесь с документацией по интеграции с Databricks. Если вы впервые в Datadog, вы можете зарегистрироваться для получения 14-дневной бесплатной пробной версии.








