Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Questo articolo offre una panoramica della gestione delle metriche di integrità degli endpoint e illustra come usare l'API di esportazione delle metriche per esportare le metriche degli endpoint in Prometheus e Datadog.
Le metriche di integrità degli endpoint misurano l'infrastruttura e le metriche come la latenza, la frequenza delle richieste, la frequenza di errore, l'utilizzo della CPU, l'utilizzo della memoria e così via. In questo modo emerge qual è il comportamento dell'infrastruttura di gestione.
Requisiti
Accesso in lettura all'endpoint desiderato e al token di accesso personale che può essere generato in Impostazioni nell'interfaccia utente di Databricks Mosaic AI per accedere all'endpoint.
Un endpoint Model Serving esistente. È possibile convalidare questa operazione controllando l'integrità dell'endpoint con quanto segue:
curl -n -X GET -H "Authorization: Bearer [PAT]" https://[DATABRICKS_HOST]/api/2.0/serving-endpoints/[ENDPOINT_NAME]Convalidare l'API delle metriche di esportazione:
curl -n -X GET -H "Authorization: Bearer [PAT]" https://[DATABRICKS_HOST]/api/2.0/serving-endpoints/[ENDPOINT_NAME]/metrics
Definizioni delle metriche degli endpoint di servizio
| Metrico | Descrizione |
|---|---|
| Latenza (ms) | Acquisisce i tempi di latenza di round trip mediani (P50) e del 99° percentile (P99) all'interno di Azure Databricks. Ciò non include latenze aggiuntive legate a Databricks come l'autenticazione e la limitazione della velocità |
| Tasso di richieste (al secondo) | Misura il numero di richieste elaborate al secondo. Questo tasso viene calcolato sommando il numero di richieste nel giro di un minuto e dividendo quindi per 60 (il numero di secondi in un minuto). |
| Tasso di errori delle richieste (al secondo) | Monitora la frequenza delle risposte di errore HTTP 4xx e 5xx al secondo. Analogamente alla frequenza delle richieste, viene calcolata aggregando il numero totale di richieste non riuscite entro un minuto e dividendo per 60. |
| Uso della CPU (%) | Mostra la percentuale di utilizzo medio della CPU in tutte le repliche del server. Nel contesto dell'infrastruttura di Databricks, una replica fa riferimento ai nodi della macchina virtuale. A seconda delle impostazioni di concorrenza configurate, Databricks crea più repliche per gestire il traffico dei modelli in modo efficiente. |
| Utilizzo memoria (%) | Mostra la percentuale di utilizzo medio della memoria in tutte le repliche del server. |
| Concorrenza provisionata | La concorrenza fornita è il numero massimo di richieste parallele che il sistema può gestire. La concorrenza con provisioning regola dinamicamente entro i limiti minimi e massimi dell'intervallo di scalabilità orizzontale di calcolo, con variazioni in risposta al traffico in ingresso. |
| Utilizzo GPU (%) | Rappresenta l'utilizzo medio della GPU, come segnalato dall'esportatore NVIDIA DCGM. Se il tipo di istanza ha più GPU, ognuna viene rilevata separatamente (ad esempio, gpu0, gpu1, ..., gpuN). L'utilizzo viene calcolato in media tra tutte le repliche del server e campionato una volta al minuto.
Nota: Il campionamento poco frequente indica che questa metrica è più accurata in un carico costante.Visualizzare questa metrica dall'interfaccia utente Di servizio nella scheda Metriche dell'endpoint di gestione. |
| Utilizzo della memoria GPU (%) | Indica la percentuale media di memoria del buffer dei frame utilizzata in ogni GPU in base ai dati di esportazione NVIDIA DCGM. Analogamente all'utilizzo della GPU, questa metrica viene calcolata in media tra repliche e campionata ogni minuto. È più affidabile in condizioni di carico coerenti. Visualizzare questa metrica dall'interfaccia utente Di servizio nella scheda Metriche dell'endpoint di gestione. |
Integrazione di Prometheus
Nota
Indipendentemente dal tipo di distribuzione presente nell'ambiente di produzione, la configurazione di scorporo dovrebbe essere simile.
Il materiale sussidiario contenuto in questa sezione segue la documentazione di Prometheus per avviare un servizio Prometheus in locale usando Docker.
Scrivere un file di configurazione
yamle denominarloprometheus.yml. Di seguito è riportato un esempio: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']Avviare Prometheus a livello locale con il comando seguente:
docker run \ -p 9090:9090 \ -v /path/to/prometheus.yml:/etc/prometheus/prometheus.yml \ prom/prometheusPassare a
http://localhost:9090per verificare se il servizio Prometheus locale è operativo.Controllare lo stato dello scorporo di Prometheus ed eseguire il debug degli errori da:
http://localhost:9090/targets?search=Una volta che l'obiettivo è completamente operativo, è possibile eseguire query sulle metriche fornite, ad esempio
cpu_usage_percentageomem_usage_percentage, nell'interfaccia utente.
Integrazione di Datadog
Datadog ha un'ampia gamma di agenti che possono essere distribuiti in ambienti diversi.
A scopo dimostrativo, il comando seguente avvia localmente un agente Mac OS che estrae l'endpoint delle metriche dall'host Databricks. La configurazione per l'uso di altri agenti si trova in un modello simile.
Nota
La configurazione preliminare per questo esempio si basa sull'edizione gratuita.
Datadog offre anche un'integrazione di Azure Databricks che connette Datadog al modello che gestisce gli endpoint per monitorare le metriche degli endpoint senza codice. Vedere la documentazione di Datadog per informazioni su come connettere il modello di che gestisce la configurazione a Datadog.
Registrare un account Datadog.
Installare l'integrazione di OpenMetrics nel dashboard dell'account, in modo che Datadog possa accettare ed elaborare i dati OpenMetrics.
Segui la documentazione di Datadog per configurare l'agente Datadog. Per questo esempio, usare l'opzione pacchetto DMG per avere tutti gli elementi installati, inclusi
launchctledatadog-agent.Individua la configurazione di OpenMetrics. Per questo esempio, la configurazione è su
~/.datadog-agent/conf.d/openmetrics.d/conf.yaml.default. Di seguito viene illustrato un esempio del file di configurazioneyaml: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-textAvviare l'agente datadog usando
launchctl start com.datadoghq.agent.Ogni volta che occorre apportare modifiche alla configurazione, è necessario riavviare l'agente per raccogliere la modifica.
launchctl stop com.datadoghq.agent launchctl start com.datadoghq.agentControllare l'integrità dell'agente con
datadog-agent health.Controllare lo stato dell'agente con
datadog-agent status. Si dovrebbe vedere una risposta simile a quella seguente. In caso contrario, eseguire il debug con il messaggio di errore. I potenziali problemi possono essere dovuti a un token di accesso personale scaduto o a un URL non corretto.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)Lo stato dell'agente può essere visualizzato anche dall'interfaccia utente in: http://127.0.0.1:5002/.
Se l'agente è completamente operativo, è possibile tornare al dashboard di Datadog per eseguire query sulle metriche. È anche possibile creare un monitoraggio o un avviso in base ai dati delle metriche: https://app.datadoghq.com/monitors/create/metric.