Development #59923
utils: mesurer et logger le temps pris par les requêtes HTTPs
0%
Description
Ça permettrait de pointer plus facilement un truc qui marche vraiment mal avec des chiffres, on pourrait même fournir un graphe, un jour.
Fichiers
Révisions associées
Historique
Mis à jour par Benjamin Dauvergne il y a plus de 2 ans
- Fichier 0001-utils-measure-and-log-HTTP-request-s-elapsed-time-59.patch 0001-utils-measure-and-log-HTTP-request-s-elapsed-time-59.patch ajouté
- Statut changé de Nouveau à Solution proposée
- Patch proposed changé de Non à Oui
Mis à jour par Thomas Noël il y a plus de 2 ans
Je me demandais si "send" comprenait la partie "établissement la connexion"... Et je me demande pourquoi tu calcules le temps passé ici et pas dans la méthode request ? (peut-être qu'il faut que je révise l'usage de ces deux méthodes request et send)
Dans jsonresponse : en cas de pépin réseau/DNS, e.response est None, donc duration=e.response.elapsed.total_seconds() ça ne va pas aller, il faut être un peu plus fin.
Mis à jour par Benjamin Dauvergne il y a plus de 2 ans
Thomas Noël a écrit :
Je me demandais si "send" comprenait la partie "établissement la connexion"... Et je me demande pourquoi tu calcules le temps passé ici et pas dans la méthode request ? (peut-être qu'il faut que je révise l'usage de ces deux méthodes request et send)
Ça dépend, si le pooling est effectif ou pas, les HTTPAdapter étant partagés pour un même type de connecteur1, mais je ne pense pas que ça ait grande importance.
Dans jsonresponse : en cas de pépin réseau/DNS, e.response est None, donc duration=e.response.elapsed.total_seconds() ça ne va pas aller, il faut être un peu plus fin.
HTTPError n'est jamais un pépin réseau/DNS, c'est produit uniquement par raise_for_status() (erreur HTTP 4xx ou 5xx) mais c'est produit par Session.request() et pas Session.send() et donc ce n'est pas loggé au niveau de la classe Requests.
[1]:
class Requests: def __init__(....): ... adapter = Request.ADAPTER_REGISTRY.setdefault(type(self.resource), HTTPAdapter())
Mis à jour par Thomas Noël il y a plus de 2 ans
- Statut changé de Solution proposée à Solution validée
Ca roule alors
Mis à jour par Benjamin Dauvergne il y a plus de 2 ans
- Statut changé de Solution validée à Résolu (à déployer)
commit 239aee2adde4ea6237048373d58e28af4868e016 Author: Benjamin Dauvergne <bdauvergne@entrouvert.com> Date: Mon Dec 20 14:30:50 2021 +0100 utils: measure and log HTTP request's elapsed time (#59923)
Mis à jour par Frédéric Péters il y a plus de 2 ans
- Statut changé de Résolu (à déployer) à Solution déployée
utils: measure and log HTTP request's elapsed time (#59923)