Dela via


Spåra och exportera mått för slutpunktshälsa till Prometheus och Datadog

Den här artikeln innehåller en översikt över servering av slutpunktshälsomått och visar hur du använder måttexport-API:et för att exportera slutpunktsmått till Prometheus och Datadog.

Slutpunktshälsomått mäter infrastruktur och mått, till exempel svarstid, begärandefrekvens, felfrekvens, CPU-användning, minnesanvändning osv. Detta visar hur din betjänande infrastruktur fungerar.

Krav

  • Läs åtkomst till önskad slutpunkt och personlig åtkomsttoken (PAT) som kan genereras i Inställningar i Databricks Mosaic AI-användargränssnittet för att få åtkomst till slutpunkten.

  • En befintlig modell som betjänar slutpunkten. Du kan verifiera detta genom att kontrollera slutpunktshälsan med följande:

    curl -n -X GET -H "Authorization: Bearer [PAT]" https://[DATABRICKS_HOST]/api/2.0/serving-endpoints/[ENDPOINT_NAME]
    
  • Verifiera API:et för exportmått:

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

Hantera definitioner av slutpunktsmått

Mätvärde Beskrivning
Svarstid (ms) Samlar in medianen (P50) och den 99:e percentilen (P99) svarstider för tur och retur i Azure Databricks. Detta inkluderar inte ytterligare Databricks-relaterade svarstider som autentisering och hastighetsbegränsning
Begärandefrekvens (per sekund) Mäter antalet begäranden som bearbetas per sekund. Den här frekvensen beräknas genom att totalt antal begäranden inom en minut och sedan divideras med 60 (antalet sekunder på en minut).
Felfrekvens för begäran (per sekund) Spårar http-felsvaren 4xx och 5xx per sekund. På samma sätt som förfrågningsfrekvensen beräknas den genom att det totala antalet misslyckade begäranden sammanställs inom en minut och divideras med 60.
CPU-användning (%) Visar den genomsnittliga cpu-användningsprocenten för alla serverrepliker. I samband med Databricks-infrastrukturen refererar en replik till noder för virtuella datorer. Beroende på dina konfigurerade samtidighetsinställningar skapar Databricks flera repliker för att effektivt hantera modelltrafik.
Minnesanvändning (%) Visar den genomsnittliga minnesanvändningsprocenten för alla serverrepliker.
Etablerad samtidighet Etablerad samtidighet är det maximala antalet parallella begäranden som systemet kan hantera. Etablerad samtidighet justeras dynamiskt inom minimi- och maxgränserna för utskalningsintervallet för beräkning, varierande som svar på inkommande trafik.
GPU-användning (%) Representerar den genomsnittliga GPU-användningen, enligt rapporter från NVIDIA DCGM-exportören . Om instanstypen har flera GPU:er spåras var och en separat (till exempel , gpu0, gpu1..., gpuN). Användningen är genomsnittlig för alla serverrepliker och samplas en gång i minuten. Obs! Den ovanliga samplingen innebär att det här måttet är mest exakt under en konstant belastning.
GPU-minnesanvändning (%) Anger den genomsnittliga procentandelen använt rambuffertminne på varje GPU baserat på NVIDIA DCGM-exporterdata. Precis som med GPU-användning är det här måttet medelvärdet för repliker och samplas varje minut. Det är mest tillförlitligt under konsekventa belastningsförhållanden.

Prometheus-integrering

Kommentar

Oavsett vilken typ av distribution du har i produktionsmiljön bör avskrapningskonfigurationen vara liknande.

Vägledningen i det här avsnittet följer Prometheus-dokumentationen för att starta en Prometheus-tjänst lokalt med docker.

  1. Skriv en yaml konfigurationsfil och ge den prometheus.ymlnamnet . Följande utgör ett exempel:

     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. Starta Prometheus lokalt med följande kommando:

       docker run \
       -p 9090:9090 \
       -v /path/to/prometheus.yml:/etc/prometheus/prometheus.yml \
       prom/prometheus
    
  3. Gå till för att http://localhost:9090 kontrollera om din lokala Prometheus-tjänst är igång.

  4. Kontrollera Status för Prometheus-skrapning och felsökningsfel från: http://localhost:9090/targets?search=

  5. När målet är helt igång kan du köra frågor mot de angivna måtten, t.ex cpu_usage_percentage . eller mem_usage_percentage, i användargränssnittet.

Datadog-integrering

Kommentar

Den preliminära konfigurationen för det här exemplet baseras på den kostnadsfria utgåvan.

Datadog har en mängd olika agenter som kan distribueras i olika miljöer. I demonstrationssyfte startar följande en Mac OS-agent lokalt som skrapar måttslutpunkten i Databricks-värden. Konfigurationen för att använda andra agenter bör vara i ett liknande mönster.

  1. Registrera ett datadog-konto.

  2. Installera OpenMetrics-integrering på din kontoinstrumentpanel så att Datadog kan acceptera och bearbeta OpenMetrics-data.

  3. Följ Datadog-dokumentationen för att få igång din Datadog-agent. I det här exemplet använder du alternativet DMG-paket för att installera allt, inklusive launchctl och datadog-agent.

  4. Leta upp din OpenMetrics-konfiguration. I det här exemplet är konfigurationen på ~/.datadog-agent/conf.d/openmetrics.d/conf.yaml.default. Följande är en exempelkonfigurationsfil 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. Starta datadog-agenten med .launchctl start com.datadoghq.agent

  6. Varje gång du behöver göra ändringar i konfigurationen måste du starta om agenten för att hämta ändringen.

     launchctl stop com.datadoghq.agent
     launchctl start com.datadoghq.agent
    
  7. Kontrollera agenthälsan med datadog-agent health.

  8. Kontrollera agentstatus med datadog-agent status. Du bör kunna se ett svar som liknar följande. Om inte kan du felsöka med felmeddelandet. Potentiella problem kan bero på en pat-token som har upphört att gälla eller på en felaktig 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. Agentstatus kan också visas från användargränssnittet på:http://127.0.0.1:5002/.

    Om din agent är helt igång kan du gå tillbaka till din Datadog-instrumentpanel för att fråga måtten. Du kan också skapa en övervakare eller avisering baserat på måttdata:https://app.datadoghq.com/monitors/create/metric.