Projet

Général

Profil

Development #35380

logger les erreurs connector down au deuxième échec

Ajouté par Benjamin Dauvergne il y a plus de 4 ans. Mis à jour il y a plus de 4 ans.

Statut:
Fermé
Priorité:
Normal
Assigné à:
Version cible:
-
Début:
12 août 2019
Echéance:
% réalisé:

0%

Temps estimé:
Patch proposed:
Oui
Planning:
Non

Description

Certains services sont très instables, avoir "connector down" par jour pour un downtime de moins de 5 minutes n'est pas bien utile. Aussi on a pas la raison de l'échec dans le mail alors qu'on l'a dans la fonction qui émet le log.


Fichiers

0001-utils-move-exception_to_text-in-conversion-35380.patch (2,58 ko) 0001-utils-move-exception_to_text-in-conversion-35380.patch Benjamin Dauvergne, 12 août 2019 18:46
0002-log-errors-for-down-connectors-when-it-persists-3538.patch (7,97 ko) 0002-log-errors-for-down-connectors-when-it-persists-3538.patch Benjamin Dauvergne, 12 août 2019 18:46
downtimes-stats.py (1,45 ko) downtimes-stats.py Benjamin Dauvergne, 13 août 2019 01:43
downtimes-stats.txt (58,7 ko) downtimes-stats.txt Benjamin Dauvergne, 13 août 2019 01:43
0001-utils-move-exception_to_text-in-conversion-35380.patch (2,58 ko) 0001-utils-move-exception_to_text-in-conversion-35380.patch Benjamin Dauvergne, 19 août 2019 19:42
0002-log-errors-for-down-connectors-when-it-persists-3538.patch (8,08 ko) 0002-log-errors-for-down-connectors-when-it-persists-3538.patch Benjamin Dauvergne, 19 août 2019 19:42
0001-utils-move-exception_to_text-in-conversion-35380.patch (2,58 ko) 0001-utils-move-exception_to_text-in-conversion-35380.patch Benjamin Dauvergne, 20 août 2019 17:17
0002-log-errors-for-down-connectors-when-it-persists-3538.patch (14,9 ko) 0002-log-errors-for-down-connectors-when-it-persists-3538.patch Benjamin Dauvergne, 20 août 2019 17:17
0001-utils-move-exception_to_text-in-conversion-35380.patch (2,58 ko) 0001-utils-move-exception_to_text-in-conversion-35380.patch Benjamin Dauvergne, 20 août 2019 18:41
0002-log-errors-for-down-connectors-when-it-persists-3538.patch (21,2 ko) 0002-log-errors-for-down-connectors-when-it-persists-3538.patch Benjamin Dauvergne, 20 août 2019 18:41
0001-utils-move-exception_to_text-in-conversion-35380.patch (2,58 ko) 0001-utils-move-exception_to_text-in-conversion-35380.patch Benjamin Dauvergne, 20 août 2019 18:53
0002-log-errors-for-down-connectors-when-it-persists-3538.patch (22,6 ko) 0002-log-errors-for-down-connectors-when-it-persists-3538.patch Benjamin Dauvergne, 20 août 2019 18:53
0001-utils-move-exception_to_text-in-conversion-35380.patch (2,58 ko) 0001-utils-move-exception_to_text-in-conversion-35380.patch Benjamin Dauvergne, 16 septembre 2019 07:52
0002-log-errors-for-down-connectors-when-it-persists-3538.patch (22 ko) 0002-log-errors-for-down-connectors-when-it-persists-3538.patch Benjamin Dauvergne, 16 septembre 2019 07:52
0001-utils-move-exception_to_text-in-conversion-35380.patch (2,58 ko) 0001-utils-move-exception_to_text-in-conversion-35380.patch Benjamin Dauvergne, 16 septembre 2019 10:06
0002-log-errors-for-down-connectors-when-it-persists-3538.patch (22 ko) 0002-log-errors-for-down-connectors-when-it-persists-3538.patch Benjamin Dauvergne, 16 septembre 2019 10:06

Révisions associées

Révision 2374fed9 (diff)
Ajouté par Benjamin Dauvergne il y a plus de 4 ans

utils: move exception_to_text in conversion (#35380)

Révision 3d98363d (diff)
Ajouté par Benjamin Dauvergne il y a plus de 4 ans

log errors for down connectors when it persists (#35380)

Révision bebce7b3 (diff)
Ajouté par Frédéric Péters il y a plus de 4 ans

tests: update for new status check string (#35380)

Historique

#1

Mis à jour par Benjamin Dauvergne il y a plus de 4 ans

Je continue à penser que ne rien logger quand c'est down n'est pas forcément une excellente idée non plus, ici ça me force à ajouter un paramètre force à ProxyLogger._log.

#2

Mis à jour par Thomas Noël il y a plus de 4 ans

Benjamin Dauvergne a écrit :

Certains services sont très instables

FWIW : de mon "analyse", pas mal de services sont souvent down à une certaine heure de la nuit, systématique, genre entre 22 et 23h, ou 3 ou 4h. L'heure des backups, certainement: on ne pourra pas demander du 24/24. Pour ces cas là, l'idéal serait de pouvoir dire que sur telle instance on ne veut pas de log des erreurs entre telle et telle heure, mais que le reste du temps, on veut tout savoir.

#3

Mis à jour par Benjamin Dauvergne il y a plus de 4 ans

Thomas Noël a écrit :

Benjamin Dauvergne a écrit :

Certains services sont très instables

FWIW : de mon "analyse", pas mal de services sont souvent down à une certaine heure de la nuit, systématique, genre entre 22 et 23h, ou 3 ou 4h. L'heure des backups, certainement: on ne pourra pas demander du 24/24. Pour ces cas là, l'idéal serait de pouvoir dire que sur telle instance on ne veut pas de log des erreurs entre telle et telle heure, mais que le reste du temps, on veut tout savoir.

Ce qui est gênant c'est qu'Arpège fait ses backups en pleine journée à 13h40...

Date: Mon, 12 Aug 2019 13:40:42 +0200
Subject: [passerelle.mesdemarches.saint-lo-agglo.fr] ERROR: connector "arpege" (ArpegeECP) is now down
#4

Mis à jour par Thomas Noël il y a plus de 4 ans

Benjamin Dauvergne a écrit :

Ce qui est gênant c'est qu'Arpège fait ses backups en pleine journée à 13h40...

J'avais pas vu celui-là, mais justement, recevoir ce genre de log tous les jours à 13h40, faudrait pouvoir éviter ; genre de 13h30 à 14h une détection de panne Arpège à Saint Lo ne doit pas nous alerter. Enfin bon bref, de toute façon j'ai pas d'idée pour réaliser ça joliment, c'était surtout pour partager mes points de vues toujours vraiment très très intéressants quand ils ne sont pas passionnants.

#5

Mis à jour par Frédéric Péters il y a plus de 4 ans

(tant que c'est rouge…)

De mon côté j'aime bien la partie de rappeler que c'est down après un certain temps (mais je serais plutôt pour des écarts plus humains, genre monter jusque 1440 minutes / 1 jour et s'arrêter là), mais j'aime bien aussi que ça puisse se déclencher dès que le connecteur est down, pas dans le vide donner un répit de 5 minutes (qui serait ok pour un, de toute façon trop court pour un autre, et qui fera une réaction trop lente pour certains).

Plutôt que le count_checked, je me demande si on ne pourrait pas avoir un last_notification_timestamp, qui permettrait à peu près la même chose, et qui pourrait facilement se combiner avec un paramétrage du connecteur ("notifier en cas d'indisponibilité supérieure à xx minutes"). (options qui pourrait être étendue plus tard avec des tranches/jours d'exclusions, etc. pour suivre Thomas).

#6

Mis à jour par Benjamin Dauvergne il y a plus de 4 ans

J'ai pondu quelques chiffres à partir de la prod, on voit quelques régularités mais pas des masses et vraiment étranges, genre le connecteur au cd80 qui tombe régulièrement à 19h25 ou 18h26, peut-être que ça vient de chez nous aussi, genre mise à jour du firewall (je n'ai pas regardé les messages d'erreur il faudrait fouiller, mais bon j'espère qu'on monitore nos services en matière de connectivité TCP au minimum).

Si rien de tout ça ne vient de nous mon avis vraiment perso c'est qu'on s'en fout un peu en vrai de quand des applis tierces tombent, c'est juste pour se couvrir ensuite en disant, oui c'est tombé de telle heure à telle heure, « ah vous monitorez pas vos applications ? ah ben nous oui. »

#8

Mis à jour par Frédéric Péters il y a plus de 4 ans

Je répète mon commentaire #35380#note-5.

#9

Mis à jour par Benjamin Dauvergne il y a plus de 4 ans

J'ai suivi les remarques de Fred, ça marche désormais via un champ last_notification_timestamp, et on a sur AvailabilityParameter un champ notification_delays qui est une liste de durée en minutes. Par défaut c'est '0', c'est le comportement actuel.

Si on met 0,5,100 on sera notifié au premier check down, puis ensuite après 5 minutes, puis 100 minutes, puis toutes les 100 minutes.

Si on met 5,100 c'est pareil sauf qu'on ne sera pas notifié au premier downtime.

#12

Mis à jour par Frédéric Péters il y a plus de 4 ans

Je ferais bien sans le comportement de AvailabilityParametersForm, que ça reste comme ailleurs, en cas d'erreur l'affichage du formulaire en pleine page, avec les erreurs indiquées dedans; on peut se dire qu'il y a mieux à faire mais que ça soit alors considéré de manière globale, pas différent uniquement pour ces options.

#14

Mis à jour par Frédéric Péters il y a plus de 4 ans

Détail, côté langue,

-                        self.logger.error(u'connector "%s" (%s) is still down %s: %s',
+                        self.logger.error(u'connector "%s" (%s) has been down %s: %s',

Ou "is down since" et la date de début.

#16

Mis à jour par Frédéric Péters il y a plus de 4 ans

  • Statut changé de Solution proposée à Solution validée

Go. (et tu peux retirer l'import de parse_notification_delays dans forms.py)

#17

Mis à jour par Benjamin Dauvergne il y a plus de 4 ans

  • Statut changé de Solution validée à Résolu (à déployer)
commit 3d98363db74c2673f60ff34d3e046a3c0b147900
Author: Benjamin Dauvergne <bdauvergne@entrouvert.com>
Date:   Mon Aug 12 18:17:11 2019 +0200

    log errors for down connectors when it persists (#35380)

commit 2374fed9d9aa874451bd1e39ed282b1052e14aec
Author: Benjamin Dauvergne <bdauvergne@entrouvert.com>
Date:   Mon Aug 12 18:12:10 2019 +0200

    utils: move exception_to_text in conversion (#35380)
#18

Mis à jour par Frédéric Péters il y a plus de 4 ans

Ah bah ça plante.

#19

Mis à jour par Frédéric Péters il y a plus de 4 ans

(j'ai poussé modif de chaine dans les tests)

#20

Mis à jour par Frédéric Péters il y a plus de 4 ans

  • Statut changé de Résolu (à déployer) à Solution déployée
#21

Mis à jour par Nicolas Roche il y a plus de 4 ans

Il semble manquer la migration du message help_text (#36617)

Formats disponibles : Atom PDF