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.
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
http://localhost:9090
för att kontrollera om din lokala Prometheus-tjänst fungerar.Kontrollera Prometheus-skraparens status och avhjälp fel från:
http://localhost:9090/targets?search=
När målet är helt igång kan du ställa frågor mot de angivna måtten, t.ex.
cpu_usage_percentage
ellermem_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.
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, 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)
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.