Supervision
Vuisio expose ses métriques au format Prometheus et fournit un tableau de bord Grafana prêt à l’emploi.
L’endpoint /metrics
Section intitulée « L’endpoint /metrics »Le SFU expose un endpoint /metrics au format Prometheus. Il est désactivé
par défaut : il n’apparaît que si le jeton VUISIO_METRICS_TOKEN est
configuré. Les requêtes doivent porter l’en-tête Authorization: Bearer <jeton>
(comparaison à temps constant). Sans jeton configuré, l’endpoint répond 404 ;
avec un mauvais jeton, 403.
Les métriques exposées
Section intitulée « Les métriques exposées »Compteurs (cumuls depuis le démarrage) :
| Métrique | Mesure |
|---|---|
vuisio_packets_received_total | paquets UDP reçus |
vuisio_packets_sent_total | paquets UDP envoyés aux clients |
vuisio_packets_dropped_total | paquets abandonnés (aucun destinataire) |
vuisio_media_forwarded_total | paquets média retransmis |
vuisio_audio_forwarded_total | paquets audio retransmis |
vuisio_rooms_created_total | salles créées |
vuisio_participants_joined_total | participants ayant rejoint |
vuisio_datachannel_send_failures_total | échecs d’envoi sur datachannel |
vuisio_audio_packets_without_level_total | paquets audio reçus sans l’extension de niveau audio. La détection de parole ne lit que celle-ci : leur émetteur n’est jamais entendu parler, et son temps de parole reste à zéro |
vuisio_talk_turns_started_total | tours de parole ouverts |
vuisio_talk_turns_ended_total | tours de parole fermés. Un temps de parole n’est crédité qu’à la fermeture d’un tour : des ouvertures qui prennent durablement de l’avance sur les fermetures veulent dire que les bilans mesurent une présence et l’appellent parole |
vuisio_video_layer_gaps_total | couches vidéo reçues qui ont perdu pour de bon une image dont les suivantes dépendent. Le SFU les retient jusqu’à la prochaine image clé, qu’il demande à l’émetteur : les participants gardent la dernière image nette au lieu d’afficher une mosaïque. Une hausse régulière désigne un émetteur dont la connexion décroche |
vuisio_video_temporal_gaps_total | couches vidéo reçues qui ont pu perdre une image secondaire. Seules les images qui n’en dépendent pas passent jusqu’à la prochaine image de synchronisation, soit une fluidité réduite pendant environ un quart de seconde |
vuisio_video_frames_held_after_gap_total | images vidéo retenues pour l’une de ces deux raisons, pour tous les participants à la fois |
vuisio_video_relay_gaps_total | participants mis en attente d’une image clé parce que des images de la vidéo qu’ils regardaient n’ont pas pu passer d’un thread du SFU à un autre, un thread saturé. Chaque hausse accompagne une hausse de vuisio_cross_thread_media_dropped_total et signale un serveur à la limite de sa capacité |
Jauges (valeurs instantanées) :
| Métrique | Mesure |
|---|---|
vuisio_rooms_active | salles actives |
vuisio_participants_active | participants actifs |
vuisio_moderators_active | modérateurs actifs |
vuisio_cameras_active | caméras activées |
vuisio_mics_active | micros activés |
vuisio_screen_shares_active | partages d’écran actifs |
vuisio_speakers_active | salles avec un orateur actif |
vuisio_sfu_threads | nombre de threads SFU |
vuisio_max_participants_per_room | plafond de participants par salle |
vuisio_process_cpu_seconds_total | temps CPU du processus |
vuisio_process_resident_memory_bytes | mémoire résidente |
vuisio_process_open_fds | descripteurs de fichiers ouverts |
vuisio_sfu_thread_cpu_seconds_total | temps CPU par thread SFU (label thread) |
vuisio_cross_thread_queue_depth | profondeur de la file inter-threads (label thread) |
Le tableau de bord fourni
Section intitulée « Le tableau de bord fourni »L’installeur peut déployer une pile de supervision complète (Prometheus +
Grafana), désactivée par défaut. Vous l’activez pendant l’installation (ou plus
tard avec vuisio reconfigure).
- Prometheus scrute le SFU (
/metrics) toutes les 15 secondes en passant le jeton en bearer, et collecte aussi les métriques de l’hôte (node exporter, process exporter). - Grafana charge automatiquement un tableau de bord « Vuisio overview ».
- Grafana est servi derrière nginx sur le chemin
/grafana/, restreint aux plages d’adresses (CIDR) que vous autorisez.
Si vous avez déjà votre propre Prometheus, il suffit de scruter l’endpoint
/metrics avec le jeton.
Accéder à Grafana
Section intitulée « Accéder à Grafana »Une fois la pile activée, ouvrez https://<votre-domaine>/grafana/ depuis une
adresse autorisée, puis sélectionnez le tableau de bord « Vuisio overview ». Il
se remplit dès que des réunions ont lieu.
Lire le tableau de bord
Section intitulée « Lire le tableau de bord »Le tableau de bord regroupe trois familles d’informations. Chaque panneau porte une icône d’aide : survolez son titre pour afficher un rappel de ce qu’il montre.
Activité en cours
Section intitulée « Activité en cours »- Vue d’ensemble des salles : évolution du nombre de salles, de participants, de caméras, de micros, de personnes qui parlent et de partages d’écran.
- Salles actives et Participants actifs : les valeurs du moment.
- Max salles et Max participants simultanés : les pics atteints sur la période affichée, utiles pour dimensionner le serveur.
- Partages d’écran : nombre de partages en cours.
Santé de la machine
Section intitulée « Santé de la machine »- Charge processeur (CPU) : part de processeur consommée par chaque brique (le serveur Vuisio, Redis, l’interface web, etc.). 100 % correspond à un cœur entier ; le total peut dépasser 100 % puisqu’un serveur a plusieurs cœurs. Les lignes « SFU » détaillent la charge des fils d’exécution internes du serveur.
- Mémoire vive (RAM) : mémoire consommée par chaque brique. Une courbe qui monte sans jamais redescendre signale une fuite de mémoire à surveiller.
- Espace disque libre : stockage restant par disque. Un disque plein bloque le serveur.
- Bande passante réseau : débit entrant (flux reçus des participants qui publient) et sortant (flux redistribués à toute la salle). Le sortant est normalement bien supérieur, puisque chaque flux publié est renvoyé à tout le monde.
Signes d’alerte en temps réel
Section intitulée « Signes d’alerte en temps réel »- Saturation interne du serveur : messages en attente entre les rouages internes. Proche de zéro au repos. S’ils s’accumulent durablement, le serveur n’absorbe plus la charge : c’est le premier signe, avant la latence ressentie par les participants.
- Paquets réseau perdus : morceaux d’audio ou de vidéo qui n’ont pas pu être transmis. Quelques pertes ponctuelles sont normales ; une valeur élevée et durable annonce des coupures de son ou d’image.
- Échecs d’envoi de messages : messages de service (chat, réactions, présence) non délivrés. Doit rester à zéro.
- Trafic réseau temps réel : paquets audio et vidéo reçus, envoyés et perdus par seconde. Le volume suit directement le nombre de caméras et de micros actifs.