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 antalet HTTP-felrespons 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.
Förkonfigurerad samtidighet Etablerad samtidighet är det maximala antalet parallella begäranden som systemet kan hantera. Förberedd samtidighet anpassas dynamiskt inom det förberäknade skalningsintervallens minimi- och maxgränser, och varierar beroende 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.
Visa denna mätning från Serving UI på fliken Mått på din serveringsslutpunkt.
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. Den är mest tillförlitlig under konsekventa belastningsförhållanden.
Visa detta mätvärde från serveringsgränssnittet på fliken Mått i din serveringsslutpunkt.

integrering med Prometheus

Kommentar

Oavsett vilken typ av distribution du har i produktionsmiljön bör konfigurationen av datainsamlingen vara likartad.

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 http://localhost:9090 för att kontrollera om din lokala Prometheus-tjänst fungerar.

  4. Kontrollera Prometheus-skraparens status och avhjälp fel från: http://localhost:9090/targets?search=

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

Datadog-integrering

Datadog har en mängd olika agenter som kan distribueras i olika miljöer.

För demonstrationsändamål startar följande en MacOS-agent lokalt som skrapar uppgiftsslutpunkten för mätvärden i din Databricks-värd. Konfigurationen för att använda andra agenter är i ett liknande mönster.

Kommentar

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

Datadog erbjuder också en Azure Databricks-integrering som ansluter Datadog till din modell som betjänar slutpunkter för att övervaka slutpunktsmått utan kod. Se Datadog-dokumentationen för hur du ansluter din modell som hanterar konfiguration till Datadog.

  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, felsök 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 i full gång kan du gå tillbaka till din Datadog-instrumentpanel för att visa metrikdata. Du kan också skapa en övervakare eller avisering baserat på måttdata:https://app.datadoghq.com/monitors/create/metric.