Aller au contenu

Métriques

Note

Dans cette documentation :

  • monitoring/caascad désigne le regroupement des outils destinés au monitoring de vos clusters K8s par Caascad
  • monitoring/user désigne le regroupement des outils qui vous sont dédiés pour effectuer votre monitoring (applications, infra...)

Prometheus-operator

L'opérateur Prometheus est un opérateur Kubernetes. Il est déployé sur le cluster Kubernetes et il opère Prometheus.

Déployé dans :

  • l'environnement Client dans le namespace caascad-monitoring
  • l'environnement d'administration

Prometheus

Prometheus est l'outil de surveillance. Il scrape tout ce qu'il peut. Puis il stocke les métriques et les règles de vérification pour les alertes. Prometheus est déployé comme une CRD Kubernetes (CustomResourceDefinition) et Prometheus-operator déploie un statefulset.app et des pods.

Déployé dans :

  • chaque environnement client dans le namespace caascad-monitoring
  • l'environnement d'administration, pour les équipes Caascad dans monitoring/caascad
  • l'environnement d'administration, pour vous dans monitoring/user

Le Prometheus déployé dans monitoring/caascad fédère les métriques K8s du Prometheus déployé dans l'environnement client.

Le Prometheus déployé dans monitoring/user fédère les métriques K8s et les métriques applicatives du Prometheus déployé dans l'environnement client.

How to

Pour ajouter des métriques applicatives dans le Prometheus monitoring/user consultez How to : ajouter servicemonitor.

Important

Toutes les métriques des Prometheus déployés dans l'environnement d'administration (monitoring/caascad et monitoring/user) portent les labels suivants :

  • cc_prom_source : la valeur est CLUSTER_NAME, permet d'identifier l'environnement client
  • cc_prom : indique quel Alertmanager envoie l'alerte (monitoring/caascad ou monitoring/user)
  • cc_client : la valeur est ZONE_NAME

Thanos

Thanos est la solution de stockage à long terme pour Prometheus. Les données sont stockées dans un bucket S3.

Thanos est constitué de plusieurs composants :

  • un sidecar pour Prometheus : récupère les métriques de Prometheus et les stocke dans le bucket S3.
  • une store gateway (passerelle de stockage): c'est la passerelle pour toutes les opérations qui ont besoin d'accéder au bucket S3 (expecté pour le stockage initial : c'est le sidecar qui s'en charge)
  • un querier : il écoute les requêtes (il s'agit d'une source de données pour Grafana) et interroge tous les emplacements de stockage (le sidecar et la passerelle de stockage).
  • un compactor : charge les données stockées dans S3
    • les compacte
    • génère des données sous-échantillonnées
    • stocke à nouveau les résultats dans S3.

Note

Il existe d'autres composants Thanos mais qui ne sont pas déployés.

Vous pouvez trouver un schéma sur https://github.com/thanos-io/thanos.

Déployé dans :

  • l'environnement d'administration, pour les équipes Caascad dans monitoring/caascad
  • l'environnement d'administration, pour vous dans monitoring/user

Chaque regroupement d'outils à sa propre politique de rétention des métriques.

Consultez :

Exporters

Les exporters sont des sources de métriques. Ils sont des indépendants du service et ont 2 fonctions :

  1. rassembler les métriques des différentes provenances (métriques système, Postgresql, NGinx...)
  2. exposer les métriques sur un serveur HTTP

Prometheus les scrape en se connectant au serveur HTTP des exporteurs.

Il existe de nombreux exporteurs. Ce sont les applications qui, normalement, les déploient. Cependant, certains exporteurs de base sont déployés avec la stack :

  • node exporter : fournit les métriques du systeème d'exploitation (CPU, mémoire...)
  • kubelet
  • ...

Plusieurs exporteurs Prometheus sont déployés.

Node-exporter

Deployé dans l'environnement client, namespace caascad-monitoring

Consultez :

Kube-state-metrics

Déployé dans l'environnement client, namespace caascad-monitoring.

Permet d'obtenir des métriques en provenance des objets Kubernetes telq que les pods, configmaps...

Consultez :

Blackbox-exporter

Déployé dans l'environnement client, namespace caascad-monitoring.

Permet de superviser les services externes (dans Blackbox-exporter ils sont nommés targets).

Il y a 4 sondes :

  • http requests
  • tcp requests
  • dns requests
  • icmp

Pour ajouter un service externe à monitorer, vous devez :

  • définir une cible
  • define un module qui utilise l'une des 4 sondes

Consultez :

S3-usage-exporter

Limitation

Pour le moment cette fonctionnalité est uniquement disponible sur Flexible Engine.

S3-usage-exporter est un exporteur Prometheus développé par l'équipe Caascad.

Déployé dans l'environnement d'administration.

Permet d'obtenir la taille et le nombre d'objets du bucket S3 pour :

  • le backend de stockage du registre Docker
  • le backend de stockage des logs
  • le backend de stockage des métriques

Note

les métriques S3 sont uniquement disponibles sur la datasource Thanos.

Consultez :

Grafana

Déployé dans la zone d'administration.

Connecté à :

  • Thanos déployé dans monitoring/caascad, métriques visibles à partir de la datasource Thanos
  • Thanos déployé dans monitoring/user, métriques visibles à partir de la datasource Thanos-app

Plusieurs dashboards sont déployés par défaut :

  • General/Storage S3 : pour visualiser les métriques S3
  • General/Blackbox-exporter : pour visualiser les métriques des sondes
  • Kubernetes/... : pour visualiser les métriques Kubernetes (node-exporter, kubelet, kube-state-metrics ...).

Voir :

Alertmanager

L'Alertmanager est un routeur pour les alertes. Il écoute les alertes (généralement en provenance de Prometheus). Certaines règles de routage sont appliquées et les alertes sont transmises à d'autres outils (comme les mails, les sms...).

Déployé et connecté à Prometheus dans :

  • l'environnement d'administration, pour les équipes Caascad dans monitoring/caascad
  • l'environnement d'administration, pour vous dans monitoring/user

PrometheusRules

Plusieurs règles d'alerting sont déployées par défaut dans l'environnement d'administration : gérées par Prometheus/Alertmanager et utilisées par les équipes Caascad pour surveiller vos environnements (déployées dans monitoring/caascad)

Plusieurs règles de recording sont déployées par défaut dans l'environnement d'administration : gérées par Prometheus et utilisées dans les dashboards Grafana de K8s (déployées dans monitoring/caascad).

How to

Pour écrire des PrometheusRules dans monitoring/user, consultez How to : écrire une PrometheusRule.

Karma

Karma est une interface utilisateur conviviale pour Alertmanager. Elle affiche les alertes et aide à ajouter des silences sur les alertes.

Deployé et connecté à Alertmanager : monitoring/user

Consultez :

Kthxbye

Kthxbye est une application qui permet de créer des silences renouvelables.

Deployée et connectée à Alertmanager dans monitoring/user.

How to

Pour ajouter un silence, consultez How to : mettre un silence sur une alerte.

Politique de rétention

Thanos conserve les données métriques comme suit :

  • les points de mesure avec le même intervalle que celui qui a été scrapé au moment de l'ingestion des données, configurés avec la rétention raw.
  • les points de mesure avec un intervalle de 5 minutes sont disponibles x jours, configurés avec la rétention 5m.
  • les points de mesure avec un intervalle d'1 heure sont disponibles y jours, configurés avec la rétention 1h.

Note

Lors du provisionnement de l'environnement d'administration, une durée de rétention spécifique client est appliquée à monitoring/user.

Si aucune rétention spécifique n'est spécifiée, la période de rétention par défaut sera appliquée : 15 jours pour raw, 30 jours pour 5m, 60 jours pour 1h.

Cette durée de rétention peut être modifiée à tout moment via une demande de changement (Change Request) au support Caascad.

Durée de la rétention par défaut appliquée à monitoring/caascad : 15 jours pour raw, 92 jours pour 5m, 190 jours pour 1h.

Liens utiles