misc: record long /live (#83910) #868

Merged
fpeters merged 1 commits from wip/83910-record-errors-on-long-live into main 2023-11-26 12:47:44 +01:00
Owner
No description provided.
Author
Owner

Avec l'accumulation de données dans un dictionnaire timings, qui sera repris dans la trace attachée à l'erreur,

image

Avec l'accumulation de données dans un dictionnaire timings, qui sera repris dans la trace attachée à l'erreur, ![image](/attachments/b5b4ed30-b6a4-414e-9e48-9b3580de9aca)
128 KiB
fpeters force-pushed wip/83910-record-errors-on-long-live from ac4af55b5a to 352ba7a1e3 2023-11-24 14:23:31 +01:00 Compare
fpeters changed title from WIP: misc: record long /live (#83910) to misc: record long /live (#83910) 2023-11-24 14:47:55 +01:00
tnoel requested changes 2023-11-24 14:50:06 +01:00
@ -819,3 +823,4 @@
result = {}
for field in displayed_fields:
result[field.id] = {'visible': field.is_visible(formdata.data, formdata.formdef)}
timings['visibility'] = get_request().get_duration()
Owner

Utiliser toujours « get_request().get_duration() » va donner une liste de temps absolus par rapport à t0, mais on ne verra pas l'ordre des calculs (sans revenir au code) et on aura du mal à calculer ce qui a pris du temps. Je pense qu'il faudrait plutôt à chaque fois enregistrer le délai du calcul, genre ici:

     t0 = time.time()
     result = {}
     ...
     timings['visibility'] = time.time() - t0 

et partout pareil dans la suite... c'est un peu plus pénible mais ça donnera un dictionnaire timings plus simple à exploiter.

Utiliser toujours « get_request().get_duration() » va donner une liste de temps absolus par rapport à t0, mais on ne verra pas l'ordre des calculs (sans revenir au code) et on aura du mal à calculer ce qui a pris du temps. Je pense qu'il faudrait plutôt à chaque fois enregistrer le délai du calcul, genre ici: ``` t0 = time.time() result = {} ... timings['visibility'] = time.time() - t0 ``` et partout pareil dans la suite... c'est un peu plus pénible mais ça donnera un dictionnaire timings plus simple à exploiter.
Author
Owner

Ok pour des temps unitaires, pour l'ordre les dictionnaires sont ordonnés depuis quelques versions de python, ça ne me posait pas de problème.

Ok pour des temps unitaires, pour l'ordre les dictionnaires sont ordonnés depuis quelques versions de python, ça ne me posait pas de problème.
Author
Owner

Fait, mais comme ça mettait des temps formatés façon 2.32e-06 peu comparables entre eux, j'ai modifié en .4f pour faciliter la lecture. (ça peut faire quantité de "0.0000" mais il faut les garder parce qu'ils permettent d'identifier l'ordre.

Fait, mais comme ça mettait des temps formatés façon 2.32e-06 peu comparables entre eux, j'ai modifié en .4f pour faciliter la lecture. (ça peut faire quantité de "0.0000" mais il faut les garder parce qu'ils permettent d'identifier l'ordre.
tnoel marked this conversation as resolved
@ -953,2 +960,4 @@
entry['locked'] = locked
if get_request().get_duration() > 5:
timings['totals'] = get_request().get_duration()
Owner

Ajouter ici un petit commentaire qui rappelle que timings est destiné à être visible dans la trace produite (aussi parce que ce commentaire sera visible dans la partie de code pointée par la trace, et ça nous (m') aidera à nous (me) rappeler qu'il faut regarder timings)

Ajouter ici un petit commentaire qui rappelle que timings est destiné à être visible dans la trace produite (aussi parce que ce commentaire sera visible dans la partie de code pointée par la trace, et ça nous (m') aidera à nous (me) rappeler qu'il faut regarder timings)
Author
Owner

Fait.

Fait.
tnoel marked this conversation as resolved
fpeters force-pushed wip/83910-record-errors-on-long-live from 352ba7a1e3 to b03776a4eb 2023-11-24 15:04:27 +01:00 Compare
fpeters force-pushed wip/83910-record-errors-on-long-live from b03776a4eb to 3e183b85f2 2023-11-24 15:08:45 +01:00 Compare
fpeters requested review from tnoel 2023-11-24 15:34:44 +01:00
tnoel requested changes 2023-11-24 16:36:05 +01:00
@ -841,6 +850,7 @@ class FormStatusPage(Directory, FormTemplateMixin):
for field in displayed_fields:
if field.key in ('item', 'items') and field.data_source:
add_timing(f'item-options-{field.id}')
Owner

Je voyais plutôt ça à la fin du bloc ... non ? parce que ça, le timing de item2 va être le temps de calcul de item1.

Je voyais plutôt ça à la fin du bloc ... non ? parce que ça, le timing de item2 va être le temps de calcul de item1.
tnoel marked this conversation as resolved
@ -878,6 +888,7 @@ class FormStatusPage(Directory, FormTemplateMixin):
for block, block_row, field, widget in get_all_field_widgets(form):
if block:
add_timing(f'field-block-{block.id}-row-{block_row}')
Owner

Pareil, à poser en fin du "if block" ?

Pareil, à poser en fin du "if block" ?
tnoel marked this conversation as resolved
@ -892,3 +903,3 @@
entry['block_row'] = 'element%s' % block_row
else:
add_timing(f'field-{field.id}')
Owner

Et pareil, à déplacer en fin du bloc for ?

Et pareil, à déplacer en fin du bloc for ?
Author
Owner

ok pour les deux.

ok pour les deux.
tnoel marked this conversation as resolved
fpeters force-pushed wip/83910-record-errors-on-long-live from 3e183b85f2 to 9375e18631 2023-11-24 17:03:12 +01:00 Compare
fpeters requested review from tnoel 2023-11-24 17:26:14 +01:00
tnoel approved these changes 2023-11-24 17:32:33 +01:00
tnoel left a comment
Owner

J'aime bien tout ça.

J'aime bien tout ça.
fpeters merged commit 9375e18631 into main 2023-11-26 12:47:44 +01:00
fpeters deleted branch wip/83910-record-errors-on-long-live 2023-11-26 12:47:44 +01:00
Sign in to join this conversation.
No reviewers
No Label
No Milestone
No Assignees
2 Participants
Notifications
Due Date
The due date is invalid or out of range. Please use the format 'yyyy-mm-dd'.

No due date set.

Dependencies

No dependencies set.

Reference: entrouvert/wcs#868
No description provided.