InfraGuard

Vue d'ensemble des services — tableau en direct sélectif

Un tableau de services en direct et sélectif où l'opérateur choisit des services (web, base de données, session, proxy, Docker) sous forme de cartes de priorité et les surveille via une jauge de disponibilité et des séries temporelles en direct.

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 :

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_metric et infr_service (Catalogue).

Quand l'utiliser

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

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

Mode d'emploi

1) Choisir des services

  1. Cliquez sur [Choisir des services] / [Ajouter un service] dans l'en-tête du tableau pour ouvrir la fenêtre de sélection.
  2. La fenêtre regroupe tous les services disponibles par type (web → database → session → proxy → docker).
  3. 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é

3) Changer la fenêtre temporelle

// 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

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 :

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, statusOf renvoie down pour 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é en pending et 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 via ensureFresh(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

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

서비스 개요 — 큐레이션 라이브 보드
서비스 개요 — 큐레이션 라이브 보드