Nachverfolgen und Exportieren von Endpunktintegritätsmetriken in Prometheus und Datadog
Dieser Artikel enthält eine Übersicht über die Bereitstellung von Endpunktintegritätsmetriken und zeigt, wie Sie die Metrikexport-API zum Exportieren von Endpunktmetriken in Prometheus und Datadog verwenden.
Endpunktintegritätsmetriken messen Infrastruktur und Metriken wie die Wartezeit, Anforderungsrate, Fehlerrate, CPU-Auslastung, Arbeitsspeicherauslastung usw. Anhand dieser Daten können Sie das Verhalten Ihrer Bereitstellungsinfrastruktur ermitteln.
Anforderungen
Lesezugriff auf den gewünschten Endpunkt und das persönliche Zugriffstoken (Personal Access Token, PAT), das in den Einstellungen auf der Benutzeroberfläche von Databricks Mosaik AI generiert werden kann, um auf den Endpunkt zuzugreifen.
Einen vorhandenen Endpunkt für die Modellbereitstellung. Das können sie überprüfen, indem Sie die Endpunktintegrität mit den folgenden Schritten überprüfen:
curl -n -X GET -H "Authorization: Bearer [PAT]" https://[DATABRICKS_HOST]/api/2.0/serving-endpoints/[ENDPOINT_NAME]
Überprüfen der Exportmetrik-API:
curl -n -X GET -H "Authorization: Bearer [PAT]" https://[DATABRICKS_HOST]/api/2.0/serving-endpoints/[ENDPOINT_NAME]/metrics
Bereitstellen von Endpunktmetrikendefinitionen
Metrik | Beschreibung |
---|---|
Latenz (ms) | Erfasst die Wechsel-Median-Latenzzeiten (P50) und 99. Perzentil (P99) innerhalb von Azure Databricks. Dies schließt keine zusätzlichen Databricks-bezogenen Latenzen wie Authentifizierung und Ratenlimitierung ein |
Anforderungsrate (pro Sekunde) | Misst die Anzahl der pro Sekunde verarbeiteten Anforderungen. Diese Rate wird berechnet, indem die Gesamtanzahl der Anforderungen innerhalb einer Minute berechnet und dann durch 60 dividiert wird (die Anzahl der Sekunden in einer Minute). |
Anforderungsfehlerrate (pro Sekunde) | Verfolgt die Rate von 4xx- und 5xx HTTP-Fehlerantworten pro Sekunde. Ähnlich wie bei der Anforderungsrate wird es berechnet, indem die Gesamtanzahl der nicht erfolgreichen Anforderungen innerhalb einer Minute aggregiert und durch 60 dividiert wird. |
CPU-Auslastung (%) | Zeigt den durchschnittlichen Prozentsatz der CPU-Auslastung für alle Serverreplikate an. Im Kontext der Databricks-Infrastruktur bezieht sich ein Replikat auf virtuelle Computerknoten. Je nach Ihren konfigurierten Parallelitätseinstellungen erstellt Databricks mehrere Replikate, um den Modelldatenverkehr effizient zu verwalten. |
Speicherauslastung (%) | Zeigt den durchschnittlichen Speicherauslastungsprozentsatz für alle Serverreplikate an. |
Bereitgestellte Parallelität | Bereitgestellte Parallelität ist die maximale Anzahl paralleler Anforderungen, die das System verarbeiten kann. Die bereitgestellte Parallelität passt sich dynamisch innerhalb der Mindest- und Höchstgrenzen des horizontalen Compute-Skalierungsbereichs an, der sich in Reaktion auf eingehenden Datenverkehr ändert. |
GPU-Auslastung (%) | Stellt die durchschnittliche GPU-Auslastung dar, wie vom NVIDIA DCGM -Exporter gemeldet. Wenn der Instanztyp über mehrere GPUs verfügt, wird jeder separat nachverfolgt (z. B. gpu0 , gpu1 , … gpuN ). Die Auslastung wird für alle Serverreplikate gemittelt und es wird einmal pro Minute eine Stichprobe entnommen. Hinweis: Das seltene Sampling bedeutet, dass diese Metrik unter einer konstanten Last am genauesten ist. |
GPU-Speicherauslastung (%) | Gibt den durchschnittlichen Prozentsatz des verwendeten Frame-Pufferspeichers für jede GPU basierend auf NVIDIA DCGM-Exporterdaten an. Wie bei der GPU-Verwendung wird diese Metrik in Replikaten gemittelt und es wird jede Minute eine Stichprobe entnommen. Dies ist unter konsistenten Ladebedingungen am zuverlässigsten. |
Prometheus-Integration
Hinweis
Unabhängig davon, über welchen Bereitstellungstyp Sie in Ihrer Produktionsumgebung verfügen, sollte die Scrapingkonfiguration ähnlich sein.
Der Leitfaden in diesem Abschnitt folgt der Prometheus-Dokumentation, um einen Prometheus-Dienst lokal mit Docker zu starten.
Schreiben Sie eine
yaml
-Konfigurationsdatei namensprometheus.yml
. Es folgt ein Beispiel: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"]
Starten Sie Prometheus lokal mit dem folgenden Befehl:
docker run \ -p 9090:9090 \ -v /path/to/prometheus.yml:/etc/prometheus/prometheus.yml \ prom/prometheus
Navigieren Sie zu
http://localhost:9090
, um zu überprüfen, ob Ihr lokaler Prometheus-Dienst aktiv ist.Überprüfen Sie den Status des Prometheus-Scrapers, und debuggen Sie die Fehler aus:
http://localhost:9090/targets?search=
.Sobald das Ziel vollständig ausgeführt wurde, können Sie die bereitgestellten Metriken wie
cpu_usage_percentage
odermem_usage_percentage
auf der Benutzeroberfläche abfragen.
Datadog-Integration
Hinweis
Die vorläufige Einrichtung für dieses Beispiel basiert auf der kostenlosen Edition.
Datadog verfügt über eine Vielzahl von Agents, die in verschiedenen Umgebungen bereitgestellt werden können. Zu Demonstrationszwecken wird der Mac OS-Agent, der den Metrikendpunkt in Ihrem Databricks-Host ausliest, lokal mit folgenden Schritten gestartet. Die Konfiguration für die Verwendung anderer Agents sollte dem hier beschriebenen Muster ähneln.
Registrieren Sie ein Datadog-Konto.
Installieren Sie die OpenMetrics-Integration in Ihrem Kontodashboard, damit Datadog OpenMetrics-Daten akzeptieren und verarbeiten kann.
Richten Sie Ihren Datadog-Agent anhand der Datadog-Dokumentation ein. Verwenden Sie in diesem Beispiel die DMG-Paketoption, um alles einschließlich
launchctl
unddatadog-agent
zu installieren.Suchen Sie Ihre OpenMetrics-Konfiguration. In diesem Beispiel befindet sich die Konfiguration unter
~/.datadog-agent/conf.d/openmetrics.d/conf.yaml.default
. Das folgende Beispiel stellt eineyaml
-Konfigurationsdatei dar.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
Starten Sie den Datadog-Agent mit dem Befehl
launchctl start com.datadoghq.agent
.Sie müssen den Agent jedes Mal neu starten, wenn Sie Änderungen an Ihrer Konfiguration vornehmen müssen, damit die Änderung übernommen werden.
launchctl stop com.datadoghq.agent launchctl start com.datadoghq.agent
Überprüfen Sie mit dem Befehl
datadog-agent health
die Integrität des Agents.Überprüfen Sie mit dem Befehl
datadog-agent status
den Status des Agents. Die Antwort sollte in etwa folgendermaßen aussehen. Sollte das nicht der Fall sein, debuggen Sie den Agent anhand der Fehlermeldung. Mögliche Probleme können auf ein abgelaufenes PAT-Token oder eine falsche URL zurückzuführen sein.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)
Der Agentstatus kann auch auf der Benutzeroberfläche unter http://127.0.0.1:5002/ angezeigt werden.
Wenn Ihr Agent vollständig ausgeführt wird, können Sie zurück zum Datadog-Dashboard navigieren, um die Metriken abzufragen. Sie können auch einen Monitor oder eine Warnung basierend auf den Metrikdaten unter https://app.datadoghq.com/monitors/create/metric erstellen.