Отслеживание и экспорт метрик работоспособности конечной точки обслуживания в Prometheus и Datadog
В этой статье представлен обзор метрик работоспособности конечных точек и показано, как использовать API экспорта метрик для экспорта метрик конечных точек в Prometheus и Datadog.
Метрики работоспособности конечных точек измеряют инфраструктуру и метрики, такие как задержка, скорость запросов, частота ошибок, использование ЦП, использование памяти и т. д. Это говорит о том, как работает инфраструктура обслуживания.
Требования
Доступ на чтение к требуемой конечной точке и личному маркеру доступа (PAT), который можно создать в параметрах в пользовательском интерфейсе Databricks Mosaic AI для доступа к конечной точке.
Существующую конечную точку обслуживания модели. Это можно проверить, проверив работоспособность конечной точки следующим образом:
curl -n -X GET -H "Authorization: Bearer [PAT]" https://[DATABRICKS_HOST]/api/2.0/serving-endpoints/[ENDPOINT_NAME]
Проверьте API экспорта метрик:
curl -n -X GET -H "Authorization: Bearer [PAT]" https://[DATABRICKS_HOST]/api/2.0/serving-endpoints/[ENDPOINT_NAME]/metrics
Обслуживание определений метрик конечных точек
Метрическая | Description |
---|---|
Задержка (мс) | Фиксирует время задержки между медианами (P50) и 99-й процентиль (P99) в Azure Databricks. Это не включает дополнительные задержки, связанные с Databricks, такие как проверка подлинности и ограничение скорости |
Частота запросов (в секунду) | Измеряет количество обработанных запросов в секунду. Эта скорость вычисляется путем суммирования количества запросов в течение минуты, а затем деления на 60 (количество секунд в минуту). |
Частота ошибок запроса (в секунду) | Отслеживает частоту ответов на ошибки HTTP 4xx и 5xx в секунду. Аналогично частоте запросов, она вычисляется путем агрегирования общего количества неудачных запросов в течение минуты и деления на 60. |
Использование ЦП (%) | Отображает средний процент использования ЦП во всех репликах сервера. В контексте инфраструктуры Databricks реплика ссылается на узлы виртуальных машин. В зависимости от настроенных параметров параллелизма Databricks создает несколько реплик для эффективного управления трафиком модели. |
Использование памяти (%) | Отображает средний процент использования памяти во всех репликах сервера. |
Подготовленная параллелизм | Подготовленное параллелизм — это максимальное количество параллельных запросов, которые может обрабатывать система. Подготовленная параллелизм динамически настраивается в пределах минимального и максимального пределов диапазона горизонтального масштабирования вычислений, изменяющихся в ответ на входящий трафик. |
Использование GPU (%) | Представляет среднее использование GPU, как сообщает экспортер NVIDIA DCGM . Если тип экземпляра имеет несколько GPU, каждый из них отслеживается отдельно (например, gpu0 , , gpu1 ..., gpuN ). Использование выполняется в среднем по всем репликам сервера и выполняется один раз в минуту. Примечание. Нечастой выборка означает, что эта метрика наиболее точную при постоянной нагрузке. |
Использование памяти GPU (%) | Указывает средний процент используемой памяти буфера кадров на каждом GPU на основе данных экспортера NVIDIA DCGM. Как и при использовании GPU, эта метрика в среднем по репликам и выборка выполняется каждую минуту. Он является наиболее надежным в условиях согласованной нагрузки. |
Интеграция Prometheus
Примечание.
Независимо от типа развертывания, используемого в рабочей среде, конфигурация слома должна быть аналогична.
Руководство в этом разделе следует документации Prometheus, чтобы запустить службу Prometheus локально с помощью docker.
yaml
Напишите файл конфигурации и назовите егоprometheus.yml
. Ниже приведен пример:global: scrape_interval: 1m scrape_timeout: 10s scrape_configs: - job_name: "prometheus" metrics_path: "/api/2.0/serving-endpoints/[ENDPOINT_NAME]/metrics" scheme: "https" authorization: type: "Bearer" credentials: "[PAT_TOKEN]" static_configs: - targets: ["dbc-741cfa95-12d1.dev.databricks.com"]
Запустите Prometheus локально с помощью следующей команды:
docker run \ -p 9090:9090 \ -v /path/to/prometheus.yml:/etc/prometheus/prometheus.yml \ prom/prometheus
Перейдите, чтобы
http://localhost:9090
проверить, работает ли локальная служба Prometheus.Проверьте состояние скребка Prometheus и ошибки отладки из:
http://localhost:9090/targets?search=
После полного и запуска целевого объекта можно запросить предоставленные метрики, например
cpu_usage_percentage
илиmem_usage_percentage
в пользовательском интерфейсе.
Интеграция Datadog
Примечание.
Предварительная настройка для этого примера основана на бесплатном выпуске.
Datadog имеет различные агенты, которые могут быть развернуты в разных средах. В целях демонстрации в следующем примере запускается агент Mac OS локально, который удаляет конечную точку метрик в узле Databricks. Конфигурация для использования других агентов должна находиться в аналогичном шаблоне.
Зарегистрируйте учетную запись datadog.
Установите интеграцию OpenMetrics на панели мониторинга учетной записи, чтобы Datadog может принимать и обрабатывать данные OpenMetrics.
Следуйте документации по Datadog, чтобы получить агент Datadog и запустить его. В этом примере используйте параметр пакета DMG, чтобы установить все, включая
launchctl
иdatadog-agent
.Найдите конфигурацию OpenMetrics. В этом примере конфигурация находится в
~/.datadog-agent/conf.d/openmetrics.d/conf.yaml.default
. Ниже приведен пример файла конфигурацииyaml
.instances: - openmetrics_endpoint: https://[DATABRICKS_HOST]/api/2.0/serving-endpoints/[ENDPOINT_NAME]/metrics metrics: - cpu_usage_percentage: name: cpu_usage_percentage type: gauge - mem_usage_percentage: name: mem_usage_percentage type: gauge - provisioned_concurrent_requests_total: name: provisioned_concurrent_requests_total type: gauge - request_4xx_count_total: name: request_4xx_count_total type: gauge - request_5xx_count_total: name: request_5xx_count_total type: gauge - request_count_total: name: request_count_total type: gauge - request_latency_ms: name: request_latency_ms type: histogram tag_by_endpoint: false send_distribution_buckets: true headers: Authorization: Bearer [PAT] Content-Type: application/openmetrics-text
Запустите агент datadog с помощью
launchctl start com.datadoghq.agent
.Каждый раз, когда необходимо внести изменения в конфигурацию, необходимо перезапустить агент, чтобы забрать изменения.
launchctl stop com.datadoghq.agent launchctl start com.datadoghq.agent
Проверьте работоспособность агента с
datadog-agent health
помощью .Проверьте состояние агента с
datadog-agent status
помощью . Вы должны увидеть ответ, как показано ниже. В противном случае выполните отладку с сообщением об ошибке. Возможные проблемы могут возникнуть из-за истекающего маркера PAT или неправильного URL-адреса.openmetrics (2.2.2) ------------------- Instance ID: openmetrics: xxxxxxxxxxxxxxxx [OK] Configuration Source: file:/opt/datadog-agent/etc/conf.d/openmetrics.d/conf.yaml.default Total Runs: 1 Metric Samples: Last Run: 2, Total: 2 Events: Last Run: 0, Total: 0 Service Checks: Last Run: 1, Total: 1 Average Execution Time : 274ms Last Execution Date : 2022-09-21 23:00:41 PDT / 2022-09-22 06:00:41 UTC (xxxxxxxx) Last Successful Execution Date : 2022-09-21 23:00:41 PDT / 2022-09-22 06:00:41 UTC (xxxxxxx)
Состояние агента также можно увидеть из пользовательского интерфейса в:http://127.0.0.1:5002/.
Если агент полностью запущен и запущен, вы можете вернуться к панели мониторинга Datadog, чтобы запросить метрики. Вы также можете создать монитор или оповещение на основе данных метрик:https://app.datadoghq.com/monitors/create/metric.