Suivre et exporter les métriques d’intégrité de mise en service des points de terminaison vers Prometheus et Datadog
Cet article fournit une vue d’ensemble des métriques d’intégrité de mise en service des points de terminaison et montre comment utiliser l’API d’exportation des métriques pour exporter les métriques du point de terminaison vers Prometheus et Datadog.
Les métriques d’intégrité du point de terminaison mesurent l’infrastructure et les métriques telles que la latence, le taux de requête, le taux d’erreur, l’utilisation du processeur, l’utilisation de la mémoire, etc. Cela vous indique comment votre infrastructure de service se comporte.
Spécifications
Accès en lecture au point de terminaison souhaité et au jeton d’accès personnel (PAT) qui peuvent être générés dans Paramètres dans l’interface utilisateur Databricks Mosaic AI pour accéder au point de terminaison.
Un point de terminaison de mise en service de modèle existant. Vous pouvez le valider en vérifiant l’intégrité du point de terminaison avec les éléments suivants :
curl -n -X GET -H "Authorization: Bearer [PAT]" https://[DATABRICKS_HOST]/api/2.0/serving-endpoints/[ENDPOINT_NAME]
Validez l’API d’exportation des métriques :
curl -n -X GET -H "Authorization: Bearer [PAT]" https://[DATABRICKS_HOST]/api/2.0/serving-endpoints/[ENDPOINT_NAME]/metrics
Définitions des métriques de mise en service du point de terminaison
Métrique | Description |
---|---|
Latence (ms) | Capture les temps de latence d’aller-retour médians (P50) et du 99e centile (P99) dans Azure Databricks. Cela n’inclut pas les latences supplémentaires liées à Databricks, comme l’authentification et la limitation du débit |
Taux de requêtes (par seconde) | Mesure le nombre de requêtes traitées chaque seconde. Ce taux est calculé en totalisant le nombre de requêtes par minute et en le divisant par 60 (le nombre de secondes en une minute). |
Taux d’erreur des requêtes (par seconde) | Suit le taux par seconde de réponses d’erreur HTTP 4xx et 5xx. Comme pour le taux de requêtes, il est calculé en agrégeant le nombre total de requêtes infructueuses par minute et en le divisant par 60. |
Utilisation du processeur (%) | Affiche le pourcentage moyen d’utilisation du processeur sur tous les réplicas du serveur. Dans le contexte d’une infrastructure Databricks, un réplica fait référence aux nœuds de la machine virtuelle. Selon vos paramètres configurés d’accès concurrentiel, Databricks crée de multiples réplicas pour gérer efficacement le trafic du modèle. |
Utilisation de la mémoire (%) | Affiche le pourcentage moyen d’utilisation de la mémoire sur tous les réplicas du serveur. |
Accès concurrentiel provisionné | L’accès concurrentiel approvisionnée correspond au nombre maximal de requêtes parallèles que le système peut gérer. L’accès concurrentiel provisionné s’ajuste dynamiquement dans les limites minimales et maximales de la plage de montée en charge du calcul qui varient en fonction du trafic entrant. |
Utilisation du GPU (%) | Représente l’utilisation moyenne du GPU, comme indiqué par l’exportateur NVIDIA DCGM. Si le type d’instance dispose de plusieurs GPU, chacun est suivi séparément (par exemple gpu0 , gpu1 , ..., gpuN ). L’utilisation est moyenne sur tous les réplicas du serveur et échantillonnée chaque minute. Remarque : L’échantillonnage peu fréquent signifie que cette métrique est la plus précise sous une charge constante.Affichez cette métrique à partir de l’interface utilisateur de service sous l’onglet Métriques de votre point de terminaison de service. |
Utilisation de la mémoire GPU (%) | Indique le pourcentage moyen utilisé de mémoire tampon de la trame sur chaque GPU, en fonction des données de l’exportateur NVIDIA DCGM. Comme avec l’utilisation du GPU, cette métrique est une moyenne entre les réplicas et elle est échantillonnée toutes les minutes. Il est le plus fiable dans des conditions de charge cohérentes. Affichez cette métrique à partir de l’interface utilisateur de service sous l’onglet Métriques de votre point de terminaison de service. |
Intégration de Prometheus
Remarque
Quel que soit le type de déploiement que vous avez dans votre environnement de production, la configuration de scraping doit être similaire.
Les instructions de cette section suivent la documentation Prometheus pour démarrer un service Prometheus localement à l’aide de Docker.
Écrivez un fichier de configuration
yaml
et nommez-leprometheus.yml
. Par exemple :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"]
Démarrez Prometheus localement avec la commande suivante :
docker run \ -p 9090:9090 \ -v /path/to/prometheus.yml:/etc/prometheus/prometheus.yml \ prom/prometheus
Accédez à
http://localhost:9090
pour vérifier si votre service Prometheus local est opérationnel.Vérifiez l’état du scraper Prometheus et les erreurs de débogage à partir de :
http://localhost:9090/targets?search=
Une fois que la cible est entièrement opérationnelle, vous pouvez interroger les métriques fournies, comme
cpu_usage_percentage
oumem_usage_percentage
, dans l’interface utilisateur.
Intégration de Datadog
Remarque
La configuration préliminaire de cet exemple est basée sur l’édition gratuite.
Datadog a un large éventail d’agents qui peuvent être déployés dans différents environnements. À des fins de démonstration, le code suivant lance localement un agent Mac OS qui scrape le point de terminaison de métriques dans votre hôte Databricks. La configuration d’utilisation d’autres agents doit se trouver dans un modèle similaire.
Inscrivez un compte Datadog.
Installez l’intégration d’OpenMetrics dans votre tableau de bord de compte afin que Datadog puisse accepter et traiter les données OpenMetrics.
Suivez la documentation Datadog pour démarrer avec votre agent Datadog. Pour cet exemple, utilisez l’option de package DMG pour que tout soit installé, y compris
launchctl
etdatadog-agent
.Recherchez votre configuration OpenMetrics. Pour cet exemple, la configuration se trouve dans
~/.datadog-agent/conf.d/openmetrics.d/conf.yaml.default
. Voici un exemple de fichieryaml
de configuration.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
Démarrez l’agent datadog à l’aide de
launchctl start com.datadoghq.agent
.Chaque fois que vous devez apporter des modifications à votre configuration, vous devez redémarrer l’agent pour récupérer la modification.
launchctl stop com.datadoghq.agent launchctl start com.datadoghq.agent
Vérifiez l’intégrité de l’agent avec
datadog-agent health
.Vérifiez l’état de l’agent avec
datadog-agent status
. Vous devriez être en mesure de voir une réponse semblable à ce qui suit. Si ce n’est pas le cas, déboguez-le avec le message d’erreur. Les problèmes potentiels peuvent être dus à un jeton PAT expiré ou à une URL incorrecte.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)
L’état de l’agent est également visible à partir de l’interface utilisateur à l’adresse suivante :http://127.0.0.1:5002/.
Si votre agent est entièrement opérationnel, vous pouvez revenir à votre tableau de bord Datadog pour interroger les métriques. Vous pouvez également créer un moniteur ou une alerte en fonction des données de métrique :https://app.datadoghq.com/monitors/create/metric.