Vue d'ensemble du monitoring

Le système de monitoring de VoxelBench reçoit chaque minute les chiffres de votre serveur, avec un heartbeat et les événements détectés par le plugin, les conserve, les affiche en graphiques et y applique vos règles d'alerte. Cette page dit ce qui est envoyé, combien de temps c'est gardé et comment l'activer.

Architecture

Serveur Minecraft (plugin)
  │
  ├── Heartbeat (toutes les 30 s)
  │     POST /api/v1/monitoring/heartbeat
  │
  ├── Relevés de métriques (pris toutes les 60 s, envoyés toutes les 60 s)
  │     POST /api/v1/monitoring/metrics
  │
  └── Événements (au fil de l'eau)
        POST /api/v1/monitoring/events
        │
        ▼
   voxelbench.com
        │
        ├── Relevés bruts (conservés 48 h)
        ├── Agrégats 5 minutes (conservés 7 jours)
        ├── Agrégats 1 heure (conservés 30 jours)
        ├── Agrégats 1 jour (conservés 1 an)
        ├── Événements (90 jours ; sécurité et modération : durée de consultation de votre offre)
        └── Évaluation des alertes et notifications

Chaque requête porte le jeton de liaison du serveur. Les intervalles sont des réglages du plugin : remote-monitoring.collect-interval (60 secondes par défaut, 30 au minimum) fixe la fréquence des relevés, et remote-monitoring.send-interval (60 secondes par défaut, 60 au minimum) celle des envois, jusqu'à 60 relevés par requête. Quand voxelbench.com est injoignable, le plugin garde les relevés qu'il n'a pas pu envoyer (120 par défaut) et les envoie dès que le site répond de nouveau. L'intervalle du heartbeat est fixe. Les réglages sont décrits dans Configuration.

Métriques collectées

Un relevé décrit tout l'intervalle écoulé depuis le précédent, pas un instant isolé :

MétriqueDescription
TPSTicks par seconde sur l'intervalle (cible : 20)
MSPTDurée moyenne d'un tick en millisecondes, avec le pire tick et le 95e percentile
Ticks au-delà de 50 ms, retardTicks qui ont dépassé le budget de 50 ms, et secondes passées sous 18 TPS
JoueursJoueurs en ligne, et nombre de places du serveur
Entités, tile entities, chunks chargésCe que contiennent les mondes
RAMHeap de la JVM utilisé et maximal (Mo), et heap encore occupé après le garbage collector
Mémoire du processusMémoire occupée par tout le processus Java, et limite mémoire du conteneur (Linux)
CPULe processus Java (en % de toute la machine), la machine entière (en % de tous les processus), et les cœurs disponibles
Garbage collectorTemps de pause et nombre de collectes sur l'intervalle, et temps de pause stop-the-world
Ping, mondes les plus chargésPing moyen des joueurs, et les trois mondes les plus chargés

Sur Folia, le TPS et les durées de tick portent la pire région, à côté de la moyenne de toutes les régions et du détail de chaque région. Un serveur que Minecraft met en pause parce qu'il est vide le signale, et ses chiffres de tick sont écartés des graphiques et des alertes TPS et MSPT. Les relevés ne contiennent jamais de nom de joueur. Certains de ces champs exigent un plugin récent ; une version plus ancienne en envoie moins. La liste exacte des champs est dans Monitoring.

Rétention des données

Les données sont automatiquement agrégées et nettoyées pour optimiser le stockage :

GranularitéRésolutionRétention
Brut~1 point/minute48 heures
5 minutes1 point/5min7 jours
1 heure1 point/heure30 jours
1 jour1 point/jour1 an

Vous avez donc une précision à la minute sur les 48 dernières heures (un point par relevé, toutes les 60 secondes par défaut), à cinq minutes sur la dernière semaine, à l'heure sur le dernier mois, et un point par jour sur un an. Jusqu'où vous pouvez remonter dépend de votre offre (voir Plans et limites).

Événements

ÉvénementsConservation
Cycle de vie, performance, benchmark, personnalisés90 jours
Sécurité et modération (ils nomment des joueurs)7 jours en Pro, 30 jours en Enterprise, 7 jours une fois votre plan échu

Sur un compte hébergeur, les événements de sécurité et de modération sont conservés 30 jours.

Les alertes résolues sont conservées 90 jours. Le contenu de chaque notification (email ou Discord) n’est conservé que jusqu’à sa livraison, 24 heures au plus ; la trace de son envoi (canal, statut, heure) est conservée 30 jours. Si votre plan est échu et que VoxelBench n'a rien accepté d'un serveur depuis 30 jours, toutes ses mesures et tous ses événements sont supprimés. Supprimer un serveur, ou votre compte, supprime d'un coup toutes ses données de monitoring.

Détection en ligne/hors ligne

Le plugin envoie un heartbeat léger toutes les 30 secondes. Quand aucun heartbeat n'est arrivé depuis 90 secondes (trois heartbeats manqués), le serveur apparaît hors ligne : assez vite pour repérer un plantage, sans s'alarmer d'une brève coupure réseau.

Le heartbeat indique aussi depuis combien de temps le thread principal n'a pas tiqué : le tableau de bord distingue ainsi un serveur qui s'est tu d'un serveur figé (les heartbeats arrivent encore, mais aucun tick depuis 10 secondes), en pause parce que Minecraft suspend un serveur vide, arrêté volontairement, ou dont le monitoring a été mis en pause depuis le jeu. Voir Dashboard de monitoring pour l'affichage de chaque état, et Alertes métriques pour être prévenu.

Activer le monitoring

Le monitoring exige une offre qui le comprend (Pro, Enterprise ou un compte hébergeur) et deux interrupteurs : un sur VoxelBench, un dans le plugin. L'ordre n'a pas d'importance.

  1. Liez votre serveur à votre compte avec /bench link (voir Liaison de serveur).

  2. Activez-le sur VoxelBench. Ouvrez Tableau de bord → Monitoring : sous Mettre en place le monitoring, chaque serveur lié figure avec son interrupteur. Le même interrupteur se trouve dans l'onglet Monitoring des paramètres de chaque serveur (Tableau de bord → Serveurs → Gérer).

  3. Activez-le dans le plugin. Tapez ceci dans la console du serveur, ou en jeu avec la permission voxelbench.monitor.web :

    /bench monitor remote on
    

    La commande écrit remote-monitoring.enabled: true dans la configuration du plugin, démarre les envois et vous dit dans le chat ce qu'il reste à faire. Vous pouvez aussi modifier vous-même plugins/VoxelBench/config.yml :

    remote-monitoring:
      enabled: true
    

    puis lancer /bench reload, qui l'applique : aucun redémarrage n'est nécessaire.

Si le plugin commence à envoyer avant l'étape 2, voxelbench.com refuse ses données : le plugin se met en pause et vérifie de nouveau chaque minute (toutes les 10 minutes tant que votre offre ne comprend pas le monitoring), puis démarre de lui-même. /bench monitor remote status indique où il en est.

La page Monitoring montre, pour chaque serveur, trois étapes (Lié à votre compte, Activé sur VoxelBench, Le plugin envoie ses données), leur état réel et ce qui manque encore. Dès que les données arrivent, le serveur apparaît sous Serveurs surveillés ; ouvrez-le pour accéder à son dashboard.

Pour arrêter, lancez /bench monitor remote off : le plugin prévient voxelbench.com que le monitoring a été mis en pause volontairement, pour qu'il ne soit pas pris pour un plantage, puis cesse d'envoyer.

Plugin antérieur à la 1.9.0

Ces versions n'ont pas /bench monitor remote on, et ne démarrent le monitoring distant qu'au démarrage du serveur : /bench reload ne le démarre pas. Activez d'abord le monitoring sur VoxelBench, puis mettez enabled: true dans config.yml et redémarrez le serveur. Un plugin qui envoie alors que le monitoring est encore désactivé sur VoxelBench est refusé, réécrit enabled: false dans sa configuration et s'arrête ; si c'est arrivé, remettez true et redémarrez. Mettre le plugin à jour lève ces deux contraintes.