-
Notifications
You must be signed in to change notification settings - Fork 31
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Plug pour vérifier le bon fonctionnement du worker #4399
Conversation
Je vais voir pour ajouter une metric dans AppSignal ensuite https://docs.appsignal.com/metrics/custom.html Ou voir si le plugin Oban fait l'affaire, sans être cher. |
Merci - je vérifie auprès de l'hébergeur qu'un 503 est bien comme on s'y attend tous les deux, un indicateur qu'ils vont respecter à 100% pour redémarrer. |
En regardant la doc AppSignal pour Oban et les metrics en particulier, je pense que j'activerais bien la configuration, pour les metrics et en limitant le bruit pour les erreurs uniquement aux jobs qui ont vraiment échoué (et non une nouvelle tentative). Soit # See https://docs.appsignal.com/elixir/integrations/oban.html
instrument_oban: true,
# Report errors when the job is discarded due to the error.
# Use this option to only report errors when all job retries have been exhausted.
report_oban_errors: "discard", On pourra alors regarder le graph de
et éventuellement ajouter une alerte en plus |
Si besoin ->
|
On n'a pas activé le logging moderne non plus qui est dans la documentation. Par contre un peu préoccupé que ça perturbe le système si on change trop de choses, je me demande si rester sur un simple restart, qui aide à passer les fêtes, n'est pas suffisant ; est-ce que tu veux passer le reste avant les fêtes aussi ? |
@thbar Non, peut-être trop gourmand. Restart peut-être suffisant, avec une distribution uniquement. Pour pas ajouter trop de choses dans AppSignal ou avoir des listeners de partout. Mais dans une PR à suivre. Pour vérifier le bon fonctionnement en conditions réelles le plus vite possible (c'est déjà OK en staging depuis ce matin). |
Je partage aussi les réponses de l'auteur d'Oban en chat:
|
Yes faut qu'on plug le logger par défaut d'Oban pour capturer les erreurs dans AppSignal, mais ça semble être un problème de pool Ecto qui est plein ou lent et qui déconnecte le scheduler. Surement expliqué par la pression de la validation NeTEx et du trafic sur le proxy GTFS-RT. |
J'ai mis quelques tests en plus 35f64e7 |
J'ai ajouté la metric, j'ai push la branche sur staging, j'irai vérifier que ça remonte bien dans AppSignal. |
apps/transport/test/transport_web/plugs/worker_healthcheck_test.exs
Outdated
Show resolved
Hide resolved
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Top, c'est cool d'avoir un hot-fix pour les vacances, merci beaucoup.
Deux remarques mineures mais ça me paraît cool, et Clever Cloud a confirmé que HTTP 503 était fiable à utiliser car ils redémarrent bien avec ça.
Top ! On pourra se mettre une alerte sur seuil je pense. Ou bien j'ajoute dans updown avec notification dans Mattermost... |
Ajoute un plug pour vérifier que notre worker fonctionne correctement.
Le plug répond pour toutes les requêtes HTTP sur le worker, il répond un statut 200 si :
Si ces 2 conditions sont fausses alors le plug répond un statut 503, ce qui causera un redémarrage de l'application par le monitoring de notre hébergeur.
PS : cette branche est déployée sur prochainement depuis quelques heures