From e174b0d308f8a4e4015ff04bd5aaea6ffcba508a Mon Sep 17 00:00:00 2001 From: medina5 Date: Sat, 22 Nov 2025 07:12:04 +0100 Subject: [PATCH] plus --- README.md | 135 ++++++++++++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 130 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index a9560dc..d90ab87 100644 --- a/README.md +++ b/README.md @@ -3,23 +3,25 @@ ## Supervision -La supervision (monitoring) correspond au processus de collecte, d’analyse et d’utilisation des informations des équipements physiques et logiciels qui composent le SI, afin de suivre les progrès d’un 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 l’observation 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, d’analyse et d’utilisation des informations des équipements physiques et logiciels qui composent le système d'informations, afin de suivre les progrès d’un 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 à l’aide d’indicateurs connus à l’avance. +Ce suivi porte sur l’observation 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 à l’aide d’**indicateurs connus à l’avance**. C’est une approche réactive : on définit ce qu’on veut surveiller, puis on vérifie que tout reste dans des valeurs normales. Cela repose typiquement sur : -- des métriques (CPU, mémoire, température…), +- des métriques, - des alertes (seuils dépassés), -- des dashboards (Grafana, Zabbix…). +- des dashboards (dashboards). ## Observabilité L’observabilité désigne quant à elle la capacité de comprendre l’état interne d’un 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 d’attente, les téléchargements et les transferts de fichiers, qui sont générés lorsqu’une partie prenante prend une mesure quelconque. L’observabilité aide les équipes à analyser ce qui se passe afin de pouvoir détecter et résoudre les causes sous-jacentes des problèmes. -Si l’on devait résumer : la surveillance permet de connaître la situation d’un système, tandis que l’observabilité aide à déterminer plus précisément ce qui se passe et ce qu’il convient de faire. +Si l’on devait résumer : la supervision permet de connaître la situation d’un système, tandis que l’observabilité aide à déterminer plus précisément ce qui se passe et ce qu’il convient de faire. ## 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. +#### Les 4 types de métriques principales + +##### Compteur (Counter) + +Valeur monotone qui ne peut qu’augmenter (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 d’une gauge +- delta() — Différence simple entre deux valeurs (pour gauges) +- idelta() — Delta instantané (deux derniers points) +- resets() — Nombre de resets d’un counter +- changes() — Nombre de changements de valeur + + ### Traçage (chemin d'une requête) Le traçage consiste à capturer le parcours d’une requête à travers les différents composants d’un 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. Le traçage permet de mettre en évidence des problèmes de performance à divers niveaux de l’architecture 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é : c’est 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 l’application (réseau, firewall, privé/public). +- Peu adapté aux environnements IoT, serveurs intermittents, fonctions serverless. +- Difficile si l’application 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 d’envoi (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).