Project

General

Profile

Tâche #17426

Scénario #17425: L'agent Zéphir d'"État de démarrage du serveur" ne doit jamais être en erreur injustement

Faire en sorte que l'agent Zéphir ne soit pas en erreur si le serveur est en cours de démarrage.

Added by Emmanuel GARETTE over 3 years ago. Updated about 3 years ago.

Status:
Fermé
Priority:
Normal
Assigned To:
Start date:
10/07/2016
Due date:
% Done:

100%

Estimated time:
2.00 h
Spent time:
Remaining (hours):
0.0

Description

Voir la proposition du scénario.

Associated revisions

Revision 1ddb5972 (diff)
Added by Benjamin Bohard about 3 years ago

Redéfinir les statuts rapportés par l’agent zephir diagnostiquant l’état du serveur.

Ref #17426

History

#1 Updated by Benjamin Bohard about 3 years ago

  • Status changed from Nouveau to En cours
  • Assigned To set to Benjamin Bohard
  • Remaining (hours) changed from 2.0 to 1.83

La sonde donnant l’état de démarrage du serveur utilise la sous-commande is-system-running de systemctl.
Cette commande renvoie normalement la réponse « degraded » si tous les services ne sont pas démarrés au moment de son exécution.

Ne faudrait-il pas regarder si c’est bien cette réponse qui est fournie lors du premier appel pour ne pas temporiser dans le cas des autres réponses également associées au status Error de la sonde.

#2 Updated by Benjamin Bohard about 3 years ago

Le délai par défaut de la sonde est de 3600 secondes.

Son premier relevé se fait alors que le système est en cours de démarrage. systemctl is-system-running renvoie normalement starting qui est associé au statut d’erreur pour la sonde.
Le second relevé n’est opéré que 3600 secondes plus tard par défaut.

On peut décrire le problème comme suit :
- problème d’ordonnancement, z_stats ne devant utiliser les sondes que lorsque le système a fini sa séquence de démarrage pour ne pas renvoyer de faux négatifs prématurément ;
- problème d’intervalle d’exécution des sondes, un statut négatif restant longtemps affiché même si il ne correspond plus à l’état du serveur ;
- problème de correspondance entre le statut rapporté par la sonde et l’état du serveur, le statut Error étant peut-être utilisé dans trop de cas.

#3 Updated by Benjamin Bohard about 3 years ago

  • Remaining (hours) changed from 1.83 to 1.0

La solution qui me semble la plus logique consiste à associer un statut différent de Error quand systemctl is-system-running renvoie starting, éventuellement en regardant depuis combien de temps le système est dans la phase de démarrage. Ceci pour éviter d’avoir une dépendance du comportement à la valeur de l’intervalle de mesure (comme ce serait le cas avec l’ajout d’un fichier dont la présence lors de la seconde mesure détermine le comportement de la sonde).

#4 Updated by Benjamin Bohard about 3 years ago

  • Remaining (hours) changed from 1.0 to 0.17

Il semble que toute tentative d’effectuer un traitement pour calculer le temps depuis le début de la séquence de démarrage rallonge suffisamment le temps nécessaire à la mesure par la sonde pour que le serveur atteigne l’état running.

#5 Updated by Benjamin Bohard about 3 years ago

  • % Done changed from 0 to 90
  • Remaining (hours) changed from 0.17 to 0.3

Deux statuts retenus pour un serveur en cours de démarrage selon le temps écoulé depuis le début de la séquence de boot.

Le seuil de temps reste à spécifier (constante déclarée dans le code de l’agent et non paramétrable).

#6 Updated by Scrum Master about 3 years ago

  • Status changed from En cours to Résolu

#7 Updated by Benjamin Bohard about 3 years ago

  • % Done changed from 90 to 100
  • Remaining (hours) changed from 0.3 to 0.25

Délai de boot « raisonnable » fixé à 6 minutes.

#8 Updated by Joël Cuissinat about 3 years ago

Pas de problème particulier constaté.

#9 Updated by Joël Cuissinat about 3 years ago

  • Status changed from Résolu to Fermé
  • Remaining (hours) changed from 0.25 to 0.0

Also available in: Atom PDF