Sdílet prostřednictvím


Sledování a export metrik stavu koncových bodů do služby Prometheus a Datadog

Tento článek obsahuje přehled poskytování metrik stavu koncových bodů a ukazuje, jak pomocí rozhraní API pro export metriky exportovat metriky koncových bodů do služby Prometheus a Datadog.

Metriky stavu koncového bodu měří infrastrukturu a metriky, jako je latence, frekvence požadavků, míra chyb, využití procesoru, využití paměti atd. To vám řekne, jak se vaše obslužná infrastruktura chová.

Požadavky

  • Přístup pro čtení k požadovanému koncovému bodu a tokenu PAT, který je možné vygenerovat v Nastavení v uživatelském rozhraní Databricks Mosaic AI pro přístup ke koncovému bodu.

  • Existující model obsluhující koncový bod Můžete to ověřit tak, že zkontrolujete stav koncového bodu následujícím způsobem:

    curl -n -X GET -H "Authorization: Bearer [PAT]" https://[DATABRICKS_HOST]/api/2.0/serving-endpoints/[ENDPOINT_NAME]
    
  • Ověřte rozhraní API pro export metrik:

    curl -n -X GET -H "Authorization: Bearer [PAT]" https://[DATABRICKS_HOST]/api/2.0/serving-endpoints/[ENDPOINT_NAME]/metrics
    

Obsluha definic metrik koncových bodů

Metrický Popis
Latence (ms) Zaznamenává medián (P50) a 99. percentil (P99) doby odezvy odezvy v Rámci Azure Databricks. Nezahrnuje další latence související s Databricks, jako je ověřování a omezování rychlosti.
Frekvence požadavků (za sekundu) Měří počet zpracovaných požadavků za sekundu. Tato sazba se počítá součtem počtu požadavků během minuty a následným dělením 60 (počet sekund za minutu).
Míra chyb požadavků (za sekundu) Sleduje rychlost chybových odpovědí HTTP 4xx a 5xx za sekundu. Podobně jako u sazby požadavků se počítá agregací celkového počtu neúspěšných požadavků během minuty a vydělením 60.
Využití procesoru (%) Zobrazuje průměrné procento využití procesoru ve všech replikách serveru. V kontextu infrastruktury Databricks odkazuje replika na uzly virtuálních počítačů. V závislosti na nakonfigurovaných nastaveních souběžnosti vytvoří Databricks několik replik pro efektivní správu provozu modelu.
Využití paměti (%) Zobrazuje průměrné procento využití paměti ve všech replikách serveru.
Zřízená souběžnost Zřízená souběžnost je maximální počet paralelních požadavků, které může systém zpracovat. Zřízená souběžnost se dynamicky upravuje v rámci minimálních a maximálních limitů rozsahu škálování výpočetních prostředků, které se liší v reakci na příchozí provoz.
Využití GPU (%) Představuje průměrné využití GPU, jak je hlášeno vývozcem NVIDIA DCGM . Pokud má typ instance více GPU, každý se sleduje samostatně (například, , gpu0, gpu1..., gpuN). Využití se průměruje napříč všemi replikami serveru a vzorkuje se jednou za minutu. Poznámka: Vzorkování s nízkou frekvencí znamená, že tato metrika je nejpřesnější při konstantním zatížení.

Tuto metriku si můžete prohlédnout z uživatelského rozhraní obsluhy na kartě Metriky vašeho koncového bodu obsluhy.
Využití paměti GPU (%) Určuje průměrné procento využité paměti vyrovnávací paměti rámce na každém GPU na základě dat vývozce NVIDIA DCGM. Stejně jako u využití GPU se tato metrika průměruje napříč replikami a vzorkuje se každou minutu. Je nejspolehlivější za konzistentních podmínek zatížení.

Tuto metriku si můžete prohlédnout z uživatelského rozhraní obsluhy na kartě Metriky vašeho koncového bodu obsluhy.

Integrace prometheus

Poznámka:

Bez ohledu na to, jaký typ nasazení máte v produkčním prostředí, by měla být konfigurace výstřižku podobná.

Pokyny v této části se řídí dokumentací k Systému Prometheus pro místní spuštění služby Prometheus pomocí Dockeru.

  1. Zapište yaml konfigurační soubor a pojmenujte ho prometheus.yml. Následuje příklad:

     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. Spusťte Prometheus místně pomocí následujícího příkazu:

       docker run \
       -p 9090:9090 \
       -v /path/to/prometheus.yml:/etc/prometheus/prometheus.yml \
       prom/prometheus
    
  3. Přejděte a http://localhost:9090 zkontrolujte, jestli je vaše místní služba Prometheus spuštěná.

  4. Zkontrolujte stav výstřižku Prometheus a chyby ladění z: http://localhost:9090/targets?search=

  5. Jakmile je cíl plně spuštěný, můžete zadat dotaz na poskytnuté metriky, například cpu_usage_percentage nebo mem_usage_percentage, v uživatelském rozhraní.

Integrace služby Datadog

Poznámka:

Předběžná verze set v tomto příkladu je založená na edici zdarma.

Datadog má řadu agentů, které je možné nasadit v různých prostředích. Pro demonstrační účely spustíme agenta Mac OS místně, který v hostiteli Databricks našrotuje koncový bod metrik. Konfigurace pro použití jiných agentů by měla být v podobném vzoru.

  1. Registrace účtu datadog

  2. Nainstalujte integraci OpenMetrics do řídicího panelu účtu, aby datadog mohl přijímat a zpracovávat data OpenMetrics.

  3. Postupujte podle dokumentace k Datadog a get k uvedení agenta Datadog do provozu. V tomto příkladu použijte možnost balíčku DMG mít vše nainstalované včetně launchctl a datadog-agent.

  4. Vyhledejte konfiguraci OpenMetrics. V tomto příkladu je konfigurace v ~/.datadog-agent/conf.d/openmetrics.d/conf.yaml.default. Následuje příklad konfiguračního yaml souboru.

    
     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. Spusťte agenta datadog pomocí launchctl start com.datadoghq.agent.

  6. Pokaždé, když potřebujete provést změny konfigurace, musíte agenta restartovat, aby změnu vyzvedli.

     launchctl stop com.datadoghq.agent
     launchctl start com.datadoghq.agent
    
  7. Zkontrolujte stav agenta pomocí datadog-agent healthnástroje .

  8. Zkontrolujte stav agenta pomocí datadog-agent status. Měla by se zobrazit odpověď podobná následující. Pokud ne, proveďte ladění s chybovou zprávou. Možné problémy můžou být způsobené vypršením platnosti tokenu PAT nebo nesprávnou adresou 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. Stav agenta lze také zobrazit v uživatelském rozhraní na adrese:http://127.0.0.1:5002/.

    Pokud je váš agent plně spuštěný, můžete přejít zpět na řídicí panel Datadog a dotazovat se na metriky. Můžete také vytvořit monitorování nebo výstrahu na základě dat metriky:https://app.datadoghq.com/monitors/create/metric