Observabilité
Dans le cadre de l'offre Cloud-Pi Native, l'observabilité est disponible via plusieurs composants:
- Prometheus pour les métriques et les dashboards de sécurité
- Loki pour les logs
- Grafana pour les dashboard et les alertes
Ces différents services sont accessibles via la console Cloud Pi Native > Projet > Mes Projets > Sélectionner un projet > Services externes
Métrique
Prometheus est utilisé pour récupérer, stocker et visualiser (via Grafana) les métriques d'infrastructure ainsi qu'applicative.
⚠️ Les métriques sont disponibles pendant un an sur les environnements de production et quelques mois pour les environnements hors production.
Pour apprendre à utiliser ce service, cliquer ici
Alerting
AlertManager est utilisé pour gérer les différentes alertes de vos projets.
Par défaut, aucune alerte n'est mise en place.
Pour apprendre à créer une alerte, cliquer ici
Dashboard
Des dashboards Grafana pour consulter les métriques, les logs ainsi que des indicateurs de sécurité sont fournis par défaut pour son projet :
Pour consulter les dashboard de sécurité, cliquer ici
Dashboard as code
À partir de la version 9.4.0 de la console, une fonctionnalité Dashboard as code est disponible.
Lors de la création d'un projet (ou lors du reprovisionnement d'un projet pour les projets créés avant la version 9.4.0 de la console), un nouveau repo de code est automatiquement créé dans gitlab : infra-observability
Ce repo de code contient 2 types de fichiers :
- Des Dashboard grafana sous forme de fichiers .json dans le répertoire "/files/dashboards/"
- Des alertes sous la forme de fichiers .yaml.tpl dans le répertoire /files/rules/
L'ajout de fichier dans ces répertoires sont automatiquements déployés dans grafana (peut prendre jusqu'à 3 minutes pour se synchroniser).
Afin de sauvegarder un dashboard dans Cloud Pi Native, il est nécessaire d'exporter le contenu JSON d'un dashboard depuis Grafana puis de copier le contenu dans un fichier /files/dashboards/mondashboard.json.
Pour cela depuis un dashboard cliquez sur share :
Puis Export et View JSON
Enfin cliquez sur Copy to Clipboard
La synchronisation du repo de code gitlab infra-observability vers Grafana se fait via une Application ArgoCD nommée [env]-[projet]-observability :
Un objet de type Kubernetes GrafanaDashboard est créé pour chaque dashboard créé as code. En cas d'erreur sur le contenu du JSON, les erreurs seront visibles depuis cet objet via ArgoCD.
À noter que seule la branche main est synchronisée
La video suivante illustre cette fonctionnalité
Logs
Le couple Loki/Grafana est utilisé pour vous donner accès à vos logs.
⚠️ Les logs ne sont conservés que sur une durée de 30 jours.
Pour les besoins de conservation au delà de 30 jours, le projet doit mettre en place un collecteur de logs (rsyslog, fluentbit, fluentd, vector, kafka, ...) dans le périmètre de son application afin de récupérer le flux de logs et les stockés sur un autre support (S3 par exemple)
Les logs peuvent être transmises via le protocol HTTP, syslog ou vers un kafka.
Pour bénéficier de ce service, merci de créer un ticket auprès de la ServiceTeam.
Un exemple de mise en place d'un collecteur de log avec le produit vector vers un bucket AWS S3 est disponible ici