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 estCLUSTER_NAME
, permet d'identifier l'environnement clientcc_prom
: indique quel Alertmanager envoie l'alerte (monitoring/caascad ou monitoring/user)cc_client
: la valeur estZONE_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 :
- rassembler les métriques des différentes provenances (métriques système, Postgresql, NGinx...)
- 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 S3General/Blackbox-exporter
: pour visualiser les métriques des sondesKubernetes/...
: 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
.