Vue d'ensemble — à quoi sert cet écran
Vue d'ensemble des services est le premier écran du menu principal Service (/service) : un tableau d'exploitation en direct et sélectif pour les services (démons) en fonctionnement. L'opérateur choisit lui-même les services qui l'intéressent et les dispose en cartes de priorité. Chaque carte affiche un jeu de métriques en direct propre à son type, la première carte web/db/session (la plus prioritaire) alimente une jauge de disponibilité, et une bande inférieure trace les séries temporelles en direct des cartes sélectionnées.
Caractéristiques principales :
- La sélection et l'ordre résident dans le navigateur (localStorage) — rien n'est stocké côté serveur. Même pour un même compte, la disposition du tableau peut différer d'un navigateur à l'autre.
- En lecture seule et léger —
ServiceBoardService(cache de 15 secondes) unifie les sous-systèmes sous-jacents (web, BD, session, Catalogue) en une forme de carte canonique unique. L'écran n'ouvre pas de nouvelles connexions directes vers les serveurs distants (à l'exception de l'échantillon de fraîcheur ponctuel de la carte BD — voir plus bas). - Accessibilité logique / charge uniquement. L'analyse physique des ports ouverts et de l'exposition relève du Pare-feu (frontière des rôles).
Ce tableau n'est pas une flotte de démonstration — tout est constitué de données réelles. Les sources des métriques sont les tables que les collecteurs alimentent déjà :
infr_web_metric,infr_db_metric,infr_redis_metricetinfr_service(Catalogue).
Quand l'utiliser
- Pour jeter un œil à une poignée de services essentiels (par exemple votre site web phare, la BD principale, le Redis de sessions) sur un seul écran en début de service.
- Comme tableau de bord NOC / mur d'écrans (le bouton plein écran et les curseurs de hauteur l'adaptent à l'écran).
- Pour consulter la tendance récente d'un service (1h / 6h / 1d) sous forme de série temporelle.
- Comme point de départ : prenez la température ici, puis descendez dans le détail avec Web, Base de données, Sessions ou Catalogue.
Disposition
Bandeau supérieur de KPI
Synthèse à l'échelle de l'entreprise calculée par realKpi() (rafraîchie par le sondage de 30 secondes) :
| KPI | Signification | Source |
|---|---|---|
| Trafic web | RPS total + bande passante sur l'ensemble des services web enregistrés | WebMetricService::kpi(dashboard()) |
| Charge BD | Somme des derniers QPS enregistrés + total des connexions sur les collecteurs access=database | DbCollectorService::latest() |
| Disponibilité web | Disponibilité sur 24 h | WebProbeService::availabilityOrPassive() (sonde active en priorité) |
| Latence | Réponse moyenne de la sonde (ms) | idem |
| Incidents | Incidents ouverts au cours des 7 derniers jours | InfrIncident created_at ≥ now-7d |
La disponibilité web et la latence privilégient la sonde synthétique active. Les compteurs de trafic vts passifs, à eux seuls, diagnostiquent mal les pannes sans trafic, les 5xx dissimulés derrière un 3xx et les remises à zéro de compteur — le tableau utilise donc les résultats de sonde HTTP réels de
WebProbeService. Si la sonde ne s'est pas encore exécutée (aucune couverture), il revient au mode passif (web24h).
Jauge de disponibilité du service
Dessinée à partir de la première carte web/db/session dans l'ordre de priorité (si aucun de ces trois types n'est présent sur le tableau, une indication d'emplacement réservé s'affiche).
| Type de carte | Forme de la jauge | Valeur centrale | Règle de teinte |
|---|---|---|---|
| web | anneau des codes de réponse en 4 segments | REQ (RPS courant) | 2xx=good · 3xx=info · 4xx=warn · 5xx=crit |
| database | arc de saturation des connexions (conn_pct) | QPS | ≥90 crit · ≥70 warn · sinon good |
| session | arc du taux de succès du cache | OPS | ≥90 good · ≥70 warn · sinon crit |
Tableau des services (grille de cartes)
Les services sélectionnés sont disposés en cartes selon l'ordre de priorité. Chaque carte affiche un jeu de KPI différent selon le type :
| Type | Démon par défaut | En-tête (alias) | KPI principaux |
|---|---|---|---|
| web | nginx | domaine représentatif | latence · RPS · sessions ouvertes (connexions actives) · requêtes cumulées sur 24 h · taux d'erreur |
| database | mysql/mariadb/postgres/mongo | alias du collecteur | QPS · places (utilisées/max) · saturation · en cours · verrou (ms moyens de verrou de ligne) · total slow · en attente |
| session | redis | alias du nœud | OPS · taux de succès · clients (sessions en cours) · clés · saturation (% de mémoire utilisée) |
| proxy | software_key/proxy | alias de l'instance | dépendances (+N) · latence · ports en écoute |
| docker | software_key/docker | alias de l'instance | dépendances (+N) · latence · ports en écoute |
- Les cartes se réordonnent par la poignée de glissement (SortableJS) — l'ordre du DOM devient la priorité (
sel) et est persisté dans localStorage. - La ✕ en haut à droite de la carte la retire du tableau.
- Les cartes proxy/docker n'ont ni anneau de disponibilité ni série temporelle (web/db/session uniquement).
Service en direct (série temporelle inférieure)
Les cartes sélectionnées qui disposent d'une série (web/db/session) sont tracées sous forme de mini-graphiques SVG aire+ligne dans une grille à 2 colonnes. Chaque graphique comporte une règle (lignes de grille verticales + libellés HH:MM de début/milieu/fin) permettant de repérer la chronologie. Un sélecteur de plage (1h · 6h · 1d) en haut change la fenêtre (1h par défaut).
Commandes de l'en-tête
- Bascule LIVE — active ou désactive le sondage de 30 secondes.
- Bouton plein écran — masque la barre de navigation supérieure et occupe tout le corps de page (ESC pour quitter · mixin
fullscreen·body.infr-fs). - Deux curseurs de hauteur — hauteur des cartes du tableau (118px par défaut, 90–240) et hauteur des graphiques en direct (50px par défaut, 34–160). Les valeurs d'ajustement sont persistées dans localStorage.
Mode d'emploi
1) Choisir des services
- Cliquez sur [Choisir des services] / [Ajouter un service] dans l'en-tête du tableau pour ouvrir la fenêtre de sélection.
- La fenêtre regroupe tous les services disponibles par type (web → database → session → proxy → docker).
- Activez (✓) ou désactivez les services. La sélection se répercute immédiatement sur le tableau et est enregistrée dans localStorage.
Valeur par défaut à la première visite = le premier élément de web, database et session est sélectionné automatiquement afin que la jauge de disponibilité fonctionne d'emblée. Désélectionnez-les dans la fenêtre si vous n'en voulez pas.
2) Ajuster la priorité
- Saisissez la poignée de glissement d'une carte et déplacez-la. La carte web/db/session la plus en avant devient la cible de la jauge de disponibilité.
3) Changer la fenêtre temporelle
- Utilisez les boutons 1h / 6h / 1d de la bande en direct inférieure. Le changement émet
POST /service/series, qui récupère à nouveau les métriques représentatives des cartes sélectionnées sur cette fenêtre (sous-échantillonnées à 60 points au maximum) ; si la réponse est vide, on revient à la série livrée avec la carte.
// Exemple de requête POST /service/series
{ "keys": ["web:12", "db:db@blue", "session:blue"], "range": "6h" }
Convention de clé de carte :
web:{infr_web_service.id}
db:{infr_collector.key} p. ex. db@blue
session:{node_alias} p. ex. blue
proxy:{infr_service.id}
docker:{infr_service.id}
4) Tableau de situation en plein écran
- Bouton plein écran → ajustez la hauteur des cartes et des graphiques avec les curseurs pour occuper l'écran d'un tableau NOC mural.
Sources de données
| Type de carte | Constructeur | Tables réelles |
|---|---|---|
| web | WebMetricService::dashboard() + WebProbeService::overlayStatus() |
infr_web_metric (compteurs vts) · infr_web_check (sonde active) · infr_web_service |
| database | InfrCollector(access=database) + DbCollectorService::latest()/series() |
infr_db_metric · infr_collector |
| session | RedisMetricService::dashboard() |
infr_redis_metric · infr_instance |
| proxy/docker | InfrService(kind IN proxy,container) |
infr_service · infr_instance |
| Incidents du KPI | — | infr_incident (7 derniers jours) |
Sources des séries temporelles :
- web — delta du
request_counterdu domaine principal / nœud principal dansinfr_web_metric→ RPS (évite de mélanger les compteurs de plusieurs nœuds). - database —
infr_db_metric.qps(métrique enregistrée, sans connexion en direct). - session —
infr_redis_metric.instantaneous_ops_per_sec.
Jetons d'état
| Jeton | Signification |
|---|---|
| up | sain |
| degraded | dégradé |
| down | panne (échec réel de connexion ou de sonde) |
| pending | en attente (jugement différé, p. ex. retard de données) |
Éviter le faux rouge de la carte BD — en mode de collecte economy, si la collecte prend brièvement du retard et que le dernier échantillon date de plus de 5 minutes,
statusOfrenvoiedownpour cause de péremption. La base de données va bien, mais vous verriez une alarme rouge — le tableau rétrograde donc un down périmé enpendinget ne conserve down que pour un véritable échec de connexion (ok=false). De plus, uniquement lorsqu'un utilisateur présent regarde le tableau, si le dernier échantillon date de plus de 45 secondes, un échantillon ponctuel est pris viaensureFresh(45)(sans effet ni connexion si le planificateur est déjà en train de collecter), et cet échantillonneur purge la connexion dans un bloc finally afin d'éviter les fuites.
Accès
- Lecture (consultation) : tout utilisateur authentifié (demo=1 et au-delà).
/servicefait partie du groupeinfr.authsans restriction de niveau supplémentaire. - Aucune écriture : cet écran est purement en lecture. La sélection des cartes, l'ordre, les hauteurs et la plage sont tous stockés uniquement dans le localStorage du navigateur — rien n'est écrit côté serveur. En l'absence d'action destructive, aucun journal d'audit n'est non plus enregistré.
- Les écritures sur les écrans de détail (gestion des sites de Web, Base de données, construction/édition du Catalogue) y sont contrôlées (par exemple, niveau≥2).
Clés localStorage :
infr:svcboard:sel:v1 tableau des clés de service sélectionnées (ordre = priorité)
infr:svcboard:h:v1 valeurs des curseurs de hauteur tableau/direct
infr:range:service-overview plage de la série temporelle inférieure (1h/6h/1d)
Dépannage et FAQ
Le tableau est vide. Utilisez [Ajouter un service] dans l'en-tête pour y placer les services qui vous intéressent. S'il n'existe aucun service disponible (les collecteurs n'ont pas encore alimenté les données), les groupes du sélecteur peuvent sembler vides — vérifiez d'abord l'enregistrement des Collecteurs et la chaîne de collecte.
La jauge de disponibilité n'apparaît pas. La jauge exige une première carte web/db/session dans l'ordre de priorité. Si vous n'avez choisi que proxy/docker, vous verrez une indication d'emplacement réservé. Placez au moins une carte web/db/session vers le début.
La série temporelle inférieure est vide. Seules les cartes web/db/session possèdent une série ; proxy/docker en sont exclues. De plus, si la table source ne contient aucune donnée sur la fenêtre choisie (1h/6h/1d), le graphique restera vide.
Une carte BD est rouge alors que la base de données va bien.
Un retard de données est rétrogradé en pending (gris/en attente). Si elle reste en down, il s'agit d'un véritable échec de connexion — vérifiez l'écran Base de données et l'état du collecteur access=database dans Collecteurs.
Les cartes persistent après un rafraîchissement / s'affichent différemment sur un autre PC. La sélection et l'ordre appartiennent au localStorage du navigateur, et non à un réglage de compte sur le serveur. Ils sont indépendants par navigateur et par appareil.
Je voudrais une fenêtre de 5 minutes. L'implémentation actuelle propose les fenêtres 1h · 6h · 1d (1h par défaut). Pour une observation plus courte, utilisez les écrans dédiés comme Serveurs ou Base de données.
Voir aussi
- Service ▸ Web — supervision vts en direct des sites enregistrés + disponibilité par sonde active
- Service ▸ Base de données — charge de la BD en connexion directe et analyse du schéma
- Service ▸ Sessions — capacité et débit des sessions Redis
- Service ▸ Catalogue — dériver les services du registre des versions (source proxy/docker)
- Administration ▸ Collecteurs — registre des collecteurs (source des métriques)
- Temps réel / sondage — comment fonctionne le rafraîchissement en direct
