Aller au contenu principal

Moniteurs

Objectifs​

Un moniteur est un healthcheck (contrôle de santé d'une application) HTTP ou TCP qui est executé périodiquement.

Notre système de moniteur permet de :

  • présenter le résultat du contrôle dans notre interface graphique
  • exporter les résultats dans une gauge Prometheus/OpenMetrics disponible via le webservice /v1/metrics de l'API de CWCloud
  • envoyer la métrique via opentelemetry vers un endpoint OTLP/grpc (configuré avec la variable d'environnement OTEL_COLLECTOR_ENDPOINT, pour plus de détail sur cette configuration lire cette documentation for that).

Demo​

Voici une démo de 10 minutes qui démontre comment utiliser cette fonctionnalité avec Quickwit et Grafana :

Création d'un moniteur​

Observability > Monitor

monitors_create_interface

Notes :

  • Dans les dernières versions, vous pouvez également faire des TCP checks pour vos connexions aux bases de données par exemple
  • Pour les codes http retour attendu, vous pouvez utiliser le wildcard * qui sera évalué comme n'importe quel chiffre. Si vous configurez 20*, le moniteur sera en succès si le code retour commence par 20, comme par exemple 200, 201, 202...
  • Le moniteur échoue lorsque vous saisissez le champ response body contain et que la réponse ne contient pas la valeur saisie
  • Vous pouvez configurer une authentification basic auth et des headers
  • Pour les méthodes POST et PUT vous pouvez aussi configurer le body de la requête
  • Vous pouvez utiliser la CLI pour créer les moniteurs, voir cette documentation
  • Vous pouvez exporter également le résultat des checks dans des callbacks de type webhook http, websocket ou MQTT exactement de la même manière que les fonctions serverless

Récupération des métriques Prometheus dans Quickwit​

  • Pour installer Quickwit via CWCloud, lire ce tutoriel
  • Pour configurer Vector et Quickwit pour récupérer et indexer les métriques Prometheus, lire ce blogpost