Поделиться через


Отслеживание и экспорт метрик работоспособности конечной точки обслуживания в 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.

  1. 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"]
    
  2. Запустите Prometheus локально с помощью следующей команды:

       docker run \
       -p 9090:9090 \
       -v /path/to/prometheus.yml:/etc/prometheus/prometheus.yml \
       prom/prometheus
    
  3. Перейдите, чтобы http://localhost:9090 проверить, работает ли локальная служба Prometheus.

  4. Проверьте состояние скребка Prometheus и ошибки отладки из: http://localhost:9090/targets?search=

  5. После полного и запуска целевого объекта можно запросить предоставленные метрики, например cpu_usage_percentage или mem_usage_percentageв пользовательском интерфейсе.

Интеграция Datadog

Примечание.

Предварительная настройка для этого примера основана на бесплатном выпуске.

Datadog имеет различные агенты, которые могут быть развернуты в разных средах. В целях демонстрации в следующем примере запускается агент Mac OS локально, который удаляет конечную точку метрик в узле Databricks. Конфигурация для использования других агентов должна находиться в аналогичном шаблоне.

  1. Зарегистрируйте учетную запись datadog.

  2. Установите интеграцию OpenMetrics на панели мониторинга учетной записи, чтобы Datadog может принимать и обрабатывать данные OpenMetrics.

  3. Следуйте документации по Datadog, чтобы получить агент Datadog и запустить его. В этом примере используйте параметр пакета DMG, чтобы установить все, включая launchctl и datadog-agent.

  4. Найдите конфигурацию 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
    
  5. Запустите агент datadog с помощью launchctl start com.datadoghq.agent.

  6. Каждый раз, когда необходимо внести изменения в конфигурацию, необходимо перезапустить агент, чтобы забрать изменения.

     launchctl stop com.datadoghq.agent
     launchctl start com.datadoghq.agent
    
  7. Проверьте работоспособность агента с datadog-agent healthпомощью .

  8. Проверьте состояние агента с 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)
    
  9. Состояние агента также можно увидеть из пользовательского интерфейса в:http://127.0.0.1:5002/.

    Если агент полностью запущен и запущен, вы можете вернуться к панели мониторинга Datadog, чтобы запросить метрики. Вы также можете создать монитор или оповещение на основе данных метрик:https://app.datadoghq.com/monitors/create/metric.