This commit is contained in:
2025-11-22 07:12:04 +01:00
parent d78503c8f2
commit e174b0d308

135
README.md
View File

@@ -3,23 +3,25 @@
## Supervision ## Supervision
La supervision (monitoring) correspond au processus de collecte, danalyse et dutilisation des informations des équipements physiques et logiciels qui composent le SI, afin de suivre les progrès dun programme vers la réalisation de ses objectifs, de détecter les éventuels dysfonctionnements et de garantir son fonctionnement optimal à tout moment. Ce suivi porte sur lobservation de paramètres spécifiques et peut fournir bien des données supplémentaires. Mais il est généralement considéré indépendamment du contexte plus large du système. La supervision (monitoring) correspond au processus de collecte, danalyse et dutilisation des informations des équipements physiques et logiciels qui composent le système d'informations, afin de suivre les progrès dun programme vers la réalisation de ses objectifs, de détecter les éventuels dysfonctionnements et de garantir son fonctionnement optimal à tout moment.
La supervision consiste à surveiller un système à laide dindicateurs connus à lavance. Ce suivi porte sur lobservation de paramètres spécifiques et peut fournir bien des données supplémentaires. Mais il est généralement considéré indépendamment du contexte plus large du système.
La supervision consiste à surveiller un système à laide d**indicateurs connus à lavance**.
Cest une approche réactive : on définit ce quon veut surveiller, puis on vérifie que tout reste dans des valeurs normales. Cest une approche réactive : on définit ce quon veut surveiller, puis on vérifie que tout reste dans des valeurs normales.
Cela repose typiquement sur : Cela repose typiquement sur :
- des métriques (CPU, mémoire, température…), - des métriques,
- des alertes (seuils dépassés), - des alertes (seuils dépassés),
- des dashboards (Grafana, Zabbix…). - des dashboards (dashboards).
## Observabilité ## Observabilité
Lobservabilité désigne quant à elle la capacité de comprendre létat interne dun système en analysant les données observables dont font partie les artefacts numérisés, tels que les journaux, les traces, les appels API, le temps dattente, les téléchargements et les transferts de fichiers, qui sont générés lorsquune partie prenante prend une mesure quelconque. Lobservabilité aide les équipes à analyser ce qui se passe afin de pouvoir détecter et résoudre les causes sous-jacentes des problèmes. Lobservabilité désigne quant à elle la capacité de comprendre létat interne dun système en analysant les données observables dont font partie les artefacts numérisés, tels que les journaux, les traces, les appels API, le temps dattente, les téléchargements et les transferts de fichiers, qui sont générés lorsquune partie prenante prend une mesure quelconque. Lobservabilité aide les équipes à analyser ce qui se passe afin de pouvoir détecter et résoudre les causes sous-jacentes des problèmes.
Si lon devait résumer : la surveillance permet de connaître la situation dun système, tandis que lobservabilité aide à déterminer plus précisément ce qui se passe et ce quil convient de faire. Si lon devait résumer : la supervision permet de connaître la situation dun système, tandis que lobservabilité aide à déterminer plus précisément ce qui se passe et ce quil convient de faire.
## Les 3 piliers de l'observabilité ## Les 3 piliers de l'observabilité
@@ -62,6 +64,76 @@ La plupart des bibliothèques de programmation intègrent des mécanismes pour c
Dans certains environnements, des bibliothèques dédiées aux métriques peuvent envoyer les données vers des endpoints prévus pour la supervision. Dans certains environnements, des bibliothèques dédiées aux métriques peuvent envoyer les données vers des endpoints prévus pour la supervision.
#### Les 4 types de métriques principales
##### Compteur (Counter)
Valeur monotone qui ne peut quaugmenter (sauf remise à zéro). Sert à compter un nombre dévénements.
##### Jauge (Gauge)
Valeur qui peut augmenter ou diminuer librement. Représente un état instantané.
##### Histogramme
C'est un ensemble de valeurs qui sont rangées dans des intervalles fixes (appelés buckets). Sert à analyser la distribution des valeurs. Les histogrammes peuvent être cumulés.
##### Résumé statistique (Summary)
Donne des valeurs précises correspondant à des quantiles.
## Exercice
```
21.4
22.0
22.1
21.8
23.5
24.0
25.2
26.1
24.8
23.9
22.4
21.7
20.9
21.3
22.9
23.1
24.6
25.8
26.3
27.0
26.8
25.4
24.1
23.3
22.7
21.5
20.8
22.2
23.7
24.9
```
Calculer l'histogramme et l'histogramme cumulé pour les bucket suivants :
20-22 ; 22-24 ; 24-26 ; 26-28
Calculer les percentiles p50 (médiane) p90 p95 et p99. Utiliser la méthode 7 de Hyndman & Fan
Les fonctions
- rate() — La vitesse moyenne par seconde
- irate() — La vitesse instantanée
- increase() — Le nombre total durant la fenêtre
- deriv() — Dérivée linéaire dune gauge
- delta() — Différence simple entre deux valeurs (pour gauges)
- idelta() — Delta instantané (deux derniers points)
- resets() — Nombre de resets dun counter
- changes() — Nombre de changements de valeur
### Traçage (chemin d'une requête) ### Traçage (chemin d'une requête)
Le traçage consiste à capturer le parcours dune requête à travers les différents composants dun système. Le traçage consiste à capturer le parcours dune requête à travers les différents composants dun système.
@@ -75,3 +147,56 @@ Des outils de traçage distribué comme Jaeger ou Zipkin permettent de visualise
OpenTelemetry fournit une approche standardisée pour implémenter le traçage dans différents langages de programmation. OpenTelemetry fournit une approche standardisée pour implémenter le traçage dans différents langages de programmation.
Le traçage permet de mettre en évidence des problèmes de performance à divers niveaux de larchitecture des services. Le traçage permet de mettre en évidence des problèmes de performance à divers niveaux de larchitecture des services.
## Collecte de métriques
Deux modèles existent pour récupérer les métriques :
### Modèle Pull
Le collecteur (ex : Prometheus) interroge périodiquement les applications.
#### Fonctionnement
Chaque application expose un endpoint HTTP (ex: /metrics)
Le collecteur (Prometheus) vient lire les métriques sur cet endpoint
Le scraper stocke les données dans la base interne TSDB
#### Avantages
- Contrôle centralisé : cest le collecteur qui décide de la fréquence et des cibles.
- Auto-découverte (service discovery) → énorme avantage en environnement dynamique (Kubernetes, EC2, etc.).
- Pas besoin de “client lourd” côté application.
- Sécurité : pas de flux sortant non contrôlé.
#### Limites
- Ne marche que si le collecteur peut atteindre lapplication (réseau, firewall, privé/public).
- Peu adapté aux environnements IoT, serveurs intermittents, fonctions serverless.
- Difficile si lapplication ne peut pas exposer un endpoint.
### Modèle Push
L'application envoie activement ses métriques vers un collecteur ou une passerelle.
#### Fonctionnement
L'application pousse ses métriques vers un endpoint (ex: Prometheus PushGateway, OTLP/HTTP, StatsD, Telegraf).
Le collecteur stocke ou retransmet les métriques.
#### Avantages
- Fonctionne même si le collecteur ne peut pas joindre les applications (NAT, firewall, IoT derrière 4G, serverless).
- Idéal pour les jobs courts/éphémères (scripts, cronjobs).
- Compatible avec des environnements sans exposition HTTP.
#### Limites
- Perte de contrôle sur la cadence denvoi (risque de flood).
- Nécessite un endpoint push sécurisé.
- Peut compliquer la gestion du multi-tenant.
En Prometheus pur : le PushGateway ne doit pas être utilisé pour des services permanents (risque de données obsolètes).