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.
Skriv en
yaml
konfigurationsfil och ge denprometheus.yml
namnet . 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"]
Starta Prometheus lokalt med följande kommando:
docker run \ -p 9090:9090 \ -v /path/to/prometheus.yml:/etc/prometheus/prometheus.yml \ prom/prometheus
Gå till för att
http://localhost:9090
kontrollera om din lokala Prometheus-tjänst är igång.Kontrollera Status för Prometheus-skrapning och felsökningsfel från:
http://localhost:9090/targets?search=
När målet är helt igång kan du köra frågor mot de angivna måtten, t.ex
cpu_usage_percentage
. ellermem_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.
Registrera ett datadog-konto.
Installera OpenMetrics-integrering på din kontoinstrumentpanel så att Datadog kan acceptera och bearbeta OpenMetrics-data.
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
ochdatadog-agent
.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 exempelkonfigurationsfilyaml
.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
Starta datadog-agenten med .
launchctl start com.datadoghq.agent
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
Kontrollera agenthälsan med
datadog-agent health
.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)
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.