For AI agents: the complete documentation index is available at https://docs.ovhcloud.com/fr/llms.txt, the full documentation bundle is available at https://docs.ovhcloud.com/fr/llms-full.txt, and this page is available as Markdown at https://docs.ovhcloud.com/fr/guides/public-cloud/network-services/loadbalancer-monitoring-prometheus.md.

Surveiller votre Load Balancer Public Cloud avec Prometheus

Voir en Markdown

Découvrez les différentes options disponibles pour surveiller votre Load Balancer Octavia

Objectif

Le Load Balancer Public Cloud peut être surveillé de 2 façons. Vous pouvez soit interroger une API pour obtenir des statistiques d'utilisation, soit configurer un listener Prometheus pouvant être scrapé par votre infrastructure Prometheus pour collecter des métriques.

Ce guide vous explique comment surveiller votre Load Balancer Octavia à l'aide de ces deux méthodes.

Prérequis


Accès à l'espace client OVHcloud

  • Lien direct :
  • Pour accéder à vos services : Public Cloud > Sélectionnez votre projet

Instructions

Surveillance via CLI

Le service Load Balancer agrège ces statistiques et les met à disposition via l'API OpenStack. Ces statistiques sont disponibles au niveau du Load Balancer ou du listener.

Les statistiques du Load Balancer peuvent être interrogées via le Client OpenStack. Elles incluent les métriques de tous les listeners configurés pour le Load Balancer interrogé.

$ openstack loadbalancer stats show <lb id>

+--------------------+-----------+
| Field              | Value     |
+--------------------+-----------+
| active_connections | 0         |
| bytes_in           | 2236722   |
| bytes_out          | 100973832 |
| request_errors     | 0         |
| total_connections  | 3606      |
+--------------------+-----------+

Les statistiques d'un listener individuel peuvent également être interrogées via le Client OpenStack.

$ openstack loadbalancer listener stats show <listener id>

+--------------------+-------+
| Field              | Value |
+--------------------+-------+
| active_connections | 0     |
| bytes_in           | 89    |
| bytes_out          | 237   |
| request_errors     | 0     |
| total_connections  | 1     |
+--------------------+-------+

Surveillance avec Prometheus

Pour ajouter un endpoint Prometheus sur un Load Balancer Public Cloud, créez un listener avec le protocole PROMETHEUS. Cela activera l'endpoint /metrics qui, par défaut, écoute sur toutes les interfaces de votre Load Balancer. Si votre Load Balancer utilise une Floating IP, l'endpoint /metrics sera par défaut ouvert sur Internet. Pour éviter cela, nous recommandons de définir l'option allowed_cidrs afin de protéger vos métriques, par exemple avec le CIDR du sous-réseau où le Load Balancer est déployé.

Ce type de listener offre les mêmes fonctionnalités que les listeners « classiques » mais ne prend pas en charge l'association de pools ni de politiques L7. Toutes les métriques sont identifiées par l'ID d'objet Octavia (UUID) des ressources.

Info

Actuellement, les métriques spécifiques à UDP et SCTP ne sont pas remontées via les endpoints Prometheus.

Créer un listener Prometheus

Espace client OVHcloud
API OVHcloud
Horizon
CLI OpenStack
Terraform
Warning

L'option allowed_cidrs n'est pas encore disponible dans l'espace client OVHcloud : vous pouvez créer le listener ici, mais pour restreindre l'accès à l'endpoint de métriques, définissez allowed_cidrs via l'API OVHcloud, la CLI OpenStack ou Horizon.

Dans la catégorie Network, sélectionnez Load Balancer. Une page listant les Load Balancers s'affiche.

Cliquez sur le nom du Load Balancer.

La page de détails du Load Balancer s'affiche. Cliquez sur l'onglet Listeners puis sur Ajouter un listener.

Dans le formulaire :

  • Renseignez le Nom.
  • Sélectionnez prometheus comme Protocole.
  • Choisissez un port (différent des ports déjà utilisés par les listeners existants de votre Load Balancer).

Le pool par défaut est grisé car le listener prometheus ne nécessite pas de pool, contrairement aux autres types de listeners.

Créer un listener dans l'espace client OVHcloud

Cliquez sur Ajouter pour déclencher la création du listener. Le nouveau listener apparaît dans la liste.

Liste des listeners dans l'espace client OVHcloud

Configurer Prometheus pour collecter vos métriques

Une fois le listener PROMETHEUS à l'état ACTIVE, vous pouvez configurer Prometheus pour collecter les métriques du Load Balancer en mettant à jour le fichier prometheus.yml.

[scrape_configs]
- job_name: 'Octavia LB1'
  static_configs:
  - targets: ['192.0.2.10:9100']

Pour plus d'informations sur la configuration de Prometheus, consultez le site du projet Prometheus.

Vous pouvez connecter Grafana à l'instance Prometheus pour obtenir des capacités graphiques et de tableau de bord supplémentaires. Un tableau de bord Grafana pour les Load Balancers Octavia est disponible ici.

Les métriques ont le format de nommage suivant :

  • Les métriques octavia_loadbalancer_xxx ou octavia_memory_pool_xxx sont globales au Load Balancer
  • Les métriques octavia_listener_xxx sont instanciées par listener via le label {listener=ID}
  • Les métriques octavia_pool_xxx sont instanciées par pool via le label {pool=ID}
  • Les métriques octavia_member_xxx sont instanciées par membre via le label {member=ID}
MétriqueDescription
octavia_loadbalancer_cpuUtilisation CPU du Load Balancer (pourcentage).
octavia_loadbalancer_memoryUtilisation mémoire du Load Balancer (pourcentage).
octavia_memory_pool_allocated_bytesQuantité totale de mémoire allouée dans les pools mémoire (en octets).
octavia_memory_pool_used_bytesQuantité totale de mémoire utilisée dans les pools mémoire (en octets).
octavia_memory_pool_failures_totalNombre total d'échecs d'allocation de pool mémoire.
octavia_loadbalancer_max_connectionsNombre maximum de connexions simultanées.
octavia_loadbalancer_current_connectionsNombre de sessions actives.
octavia_loadbalancer_connections_totalNombre total de sessions créées.
octavia_loadbalancer_requests_totalNombre total de requêtes (TCP ou HTTP).
octavia_loadbalancer_max_ssl_connectionsNombre maximum configuré de connexions SSL simultanées.
octavia_loadbalancer_current_ssl_connectionsNombre de connexions SSL actives.
octavia_loadbalancer_ssl_connections_totalNombre total de connexions SSL ouvertes.
octavia_loadbalancer_current_connection_rateNombre actuel de connexions par seconde sur la dernière seconde écoulée.
octavia_loadbalancer_limit_connection_rateNombre maximum configuré de connexions par seconde.
octavia_loadbalancer_max_connection_rateNombre maximum observé de connexions par seconde.
octavia_loadbalancer_current_session_rateNombre actuel de sessions par seconde sur la dernière seconde écoulée.
octavia_loadbalancer_limit_session_rateNombre maximum configuré de sessions par seconde.
octavia_loadbalancer_max_session_rateNombre maximum observé de sessions par seconde.
octavia_loadbalancer_current_ssl_rateNombre actuel de sessions SSL par seconde sur la dernière seconde écoulée.
octavia_loadbalancer_limit_ssl_rateNombre maximum configuré de sessions SSL par seconde.
octavia_loadbalancer_max_ssl_rateNombre maximum observé de sessions SSL par seconde.
octavia_loadbalancer_current_frontend_ssl_key_rateCalculs de clés SSL frontend actuels par seconde sur la dernière seconde écoulée.
octavia_loadbalancer_max_frontend_ssl_key_rateNombre maximum observé de calculs de clés SSL frontend par seconde.
octavia_loadbalancer_current_backend_ssl_key_rateCalculs de clés SSL backend actuels par seconde sur la dernière seconde écoulée.
octavia_loadbalancer_max_backend_ssl_key_rateNombre maximum observé de calculs de clés SSL backend par seconde.
octavia_loadbalancer_ssl_cache_lookups_totalNombre total de recherches dans le cache SSL.
octavia_loadbalancer_ssl_cache_misses_totalNombre total de ratés dans le cache SSL.
octavia_loadbalancer_http_comp_bytes_in_totalNombre d'octets par seconde sur la dernière seconde, avant compression HTTP.
octavia_loadbalancer_http_comp_bytes_out_totalNombre d'octets par seconde sur la dernière seconde, après compression HTTP.
octavia_loadbalancer_limit_http_compTaux de compression en entrée maximum configuré en octets.
octavia_loadbalancer_listenersNombre actuel de listeners actifs.
octavia_loadbalancer_dropped_logs_totalNombre total de logs abandonnés.
octavia_listener_statusStatut actuel du listener. 0=OFFLINE, 1=ONLINE, 2=DEGRADED.
octavia_listener_current_sessionsNombre actuel de sessions actives.
octavia_listener_max_sessionsNombre maximum observé de sessions actives.
octavia_listener_limit_sessionsLimite de sessions configurée.
octavia_listener_sessions_totalNombre total de sessions.
octavia_listener_limit_session_rateLimite configurée de nouvelles sessions par seconde.
octavia_listener_max_session_rateNombre maximum observé de sessions par seconde.
octavia_listener_connections_rate_maxNombre maximum observé de connexions par seconde.
octavia_listener_connections_totalNombre total de connexions.
octavia_listener_bytes_in_totalTotal actuel des octets entrants.
octavia_listener_bytes_out_totalTotal actuel des octets sortants.
octavia_listener_requests_denied_totalNombre total de requêtes refusées.
octavia_listener_responses_denied_totalNombre total de réponses refusées.
octavia_listener_request_errors_totalNombre total d'erreurs de requête.
octavia_listener_denied_connections_totalNombre total de requêtes refusées par des règles de connexion.
octavia_listener_denied_sessions_totalNombre total de requêtes refusées par des règles de session.
octavia_listener_failed_header_rewriting_totalNombre total d'échecs de réécriture d'en-tête.
octavia_listener_http_requests_rate_maxNombre maximum observé de requêtes HTTP par seconde.
octavia_listener_http_requests_totalNombre total de requêtes HTTP reçues.
octavia_listener_http_responses_totalNombre total de réponses HTTP.
octavia_listener_intercepted_requests_totalNombre total de requêtes HTTP interceptées.
octavia_listener_http_cache_lookups_totalNombre total de recherches dans le cache HTTP.
octavia_listener_http_cache_hits_totalNombre total de succès dans le cache HTTP.
octavia_listener_http_comp_bytes_in_totalNombre total d'octets de réponses HTTP fournis au compresseur.
octavia_listener_http_comp_bytes_out_totalNombre total d'octets de réponses HTTP émis par le compresseur.
octavia_listener_http_comp_bytes_bypassed_totalNombre total d'octets ayant contourné le compresseur HTTP (limite CPU/BW).
octavia_listener_http_comp_responses_totalNombre total de réponses HTTP compressées.
octavia_pool_statusStatut actuel du pool. 0=OFFLINE, 1=ONLINE.
octavia_pool_current_sessionsNombre actuel de sessions actives.
octavia_pool_max_sessionsNombre maximum observé de sessions actives.
octavia_pool_limit_sessionsLimite de sessions configurée.
octavia_pool_sessions_totalNombre total de sessions.
octavia_pool_max_session_rateNombre maximum observé de sessions par seconde.
octavia_pool_last_session_secondsNombre de secondes depuis la dernière session assignée à un membre.
octavia_pool_current_queueNombre actuel de requêtes en file d'attente.
octavia_pool_max_queueNombre maximum observé de requêtes en file d'attente.
octavia_pool_connection_attempts_totalNombre total de tentatives d'établissement de connexion.
octavia_pool_connection_reuses_totalNombre total de réutilisations de connexion.
octavia_pool_bytes_in_totalTotal actuel des octets entrants.
octavia_pool_bytes_out_totalTotal actuel des octets sortants.
octavia_pool_queue_time_average_secondsTemps de file d'attente moyen pour les 1024 dernières connexions réussies.
octavia_pool_connect_time_average_secondsTemps de connexion moyen pour les 1024 dernières connexions réussies.
octavia_pool_response_time_average_secondsTemps de réponse moyen pour les 1024 dernières connexions réussies.
octavia_pool_total_time_average_secondsTemps total moyen pour les 1024 dernières connexions réussies.
octavia_pool_max_queue_time_secondsTemps maximum observé en file d'attente.
octavia_pool_max_connect_time_secondsTemps maximum observé en attente d'une connexion.
octavia_pool_max_response_time_secondsTemps maximum observé en attente d'une réponse de membre.
octavia_pool_max_total_time_secondsTemps total maximum observé (requête+file+connexion+réponse+traitement).
octavia_pool_requests_denied_totalNombre total de requêtes refusées.
octavia_pool_responses_denied_totalNombre total de réponses refusées.
octavia_pool_connection_errors_totalNombre total d'erreurs de connexion.
octavia_pool_response_errors_totalNombre total d'erreurs de réponse.
octavia_pool_retry_warnings_totalNombre total d'avertissements de réessai.
octavia_pool_redispatch_warnings_totalNombre total d'avertissements de redispatch.
octavia_pool_failed_header_rewriting_totalNombre total d'échecs de réécriture d'en-tête.
octavia_pool_client_aborts_totalNombre total de transferts de données interrompus par le client.
octavia_pool_member_aborts_totalNombre total de transferts de données interrompus par le serveur.
octavia_pool_active_membersNombre actuel de membres actifs.
octavia_pool_backup_membersNombre actuel de membres de secours.
octavia_pool_check_up_down_totalNombre total de transitions UP->DOWN.
octavia_pool_check_last_change_secondsNombre de secondes depuis la dernière transition UP<->DOWN.
octavia_pool_downtime_seconds_totalDurée totale d'indisponibilité du pool (en secondes).
octavia_pool_loadbalanced_totalNombre total de fois qu'un pool a été sélectionné.
octavia_pool_http_requests_totalNombre total de requêtes HTTP reçues.
octavia_pool_http_responses_totalNombre total de réponses HTTP.
octavia_pool_http_cache_lookups_totalNombre total de recherches dans le cache HTTP.
octavia_pool_http_cache_hits_totalNombre total de succès dans le cache HTTP.
octavia_pool_http_comp_bytes_in_totalNombre total d'octets de réponses HTTP fournis au compresseur.
octavia_pool_http_comp_bytes_out_totalNombre total d'octets de réponses HTTP émis par le compresseur.
octavia_pool_http_comp_bytes_bypassed_totalNombre total d'octets ayant contourné le compresseur HTTP.
octavia_pool_http_comp_responses_totalNombre total de réponses HTTP compressées.
octavia_member_statusStatut actuel du membre. 0=ERROR, 1=ONLINE, 2=OFFLINE, 3=DRAIN.
octavia_member_current_sessionsNombre actuel de sessions actives.
octavia_member_max_sessionsNombre maximum observé de sessions actives.
octavia_member_limit_sessionsLimite de sessions configurée.
octavia_member_sessions_totalNombre total de sessions.
octavia_member_max_session_rateNombre maximum observé de sessions par seconde.
octavia_member_last_session_secondsNombre de secondes depuis la dernière session assignée au membre.
octavia_member_current_queueNombre actuel de requêtes en file d'attente.
octavia_member_max_queueNombre maximum observé de requêtes en file d'attente.
octavia_member_queue_limitMaxqueue configuré pour le membre (0 = pas de limite).
octavia_member_bytes_in_totalTotal actuel des octets entrants.
octavia_member_bytes_out_totalTotal actuel des octets sortants.
octavia_member_queue_time_average_secondsTemps de file d'attente moyen pour les 1024 dernières connexions réussies.
octavia_member_connect_time_average_secondsTemps de connexion moyen pour les 1024 dernières connexions réussies.
octavia_member_response_time_average_secondsTemps de réponse moyen pour les 1024 dernières connexions réussies.
octavia_member_total_time_average_secondsTemps total moyen pour les 1024 dernières connexions réussies.
octavia_member_max_queue_time_secondsTemps maximum observé en file d'attente.
octavia_member_max_connect_time_secondsTemps maximum observé en attente d'une connexion.
octavia_member_max_response_time_secondsTemps maximum observé en attente d'une réponse de membre.
octavia_member_max_total_time_secondsTemps total maximum observé (requête+file+connexion+réponse+traitement).
octavia_member_connection_attempts_totalNombre total de tentatives d'établissement de connexion.
octavia_member_connection_reuses_totalNombre total de réutilisations de connexion.
octavia_member_responses_denied_totalNombre total de réponses refusées.
octavia_member_connection_errors_totalNombre total d'erreurs de connexion.
octavia_member_response_errors_totalNombre total d'erreurs de réponse.
octavia_member_retry_warnings_totalNombre total d'avertissements de réessai.
octavia_member_redispatch_warnings_totalNombre total d'avertissements de redispatch.
octavia_member_failed_header_rewriting_totalNombre total d'échecs de réécriture d'en-tête.
octavia_member_client_aborts_totalNombre total de transferts de données interrompus par le client.
octavia_member_server_aborts_totalNombre total de transferts de données interrompus par le serveur.
octavia_member_weightPoids du membre.
octavia_member_check_failures_totalNombre total de vérifications échouées (uniquement lorsque le membre est UP).
octavia_member_check_up_down_totalNombre total de transitions UP->DOWN.
octavia_member_downtime_seconds_totalDurée totale d'indisponibilité du membre (en secondes).
octavia_member_check_last_change_secondsNombre de secondes depuis la dernière transition UP<->DOWN.
octavia_member_current_throttlePourcentage de limitation actuel du membre lors d'un slowstart, ou vide si inactif.
octavia_member_loadbalanced_totalNombre total de fois qu'un membre a été sélectionné.
octavia_member_http_responses_totalNombre total de réponses HTTP.
octavia_member_idle_connections_currentNombre actuel de connexions inactives disponibles pour réutilisation.
octavia_member_idle_connections_limitLimite du nombre de connexions inactives disponibles.

Aller plus loin

Si vous souhaitez automatiser ce scénario avec Terraform et notre service Grafana managé, vous trouverez un exemple prêt à l'emploi sur ce dépôt Github.

Rejoignez notre canal Discord dédié : https://discord.gg/ovhcloud. Posez vos questions, donnez votre avis et échangez directement avec l'équipe qui développe nos services de bases de données.

Si vous avez besoin d'une formation ou d'une assistance technique pour mettre en œuvre nos solutions, contactez votre commercial ou consultez notre page Services Professionnels pour obtenir un devis et demander une analyse personnalisée de votre projet par nos experts.

Rejoignez notre communauté d'utilisateurs.

Cette page vous a-t-elle aidé ?