cron: log basic resource usage summary (#89037) #1432

Merged
fpeters merged 1 commits from wip/89037-cron-resource-usage-summary into main 2024-04-26 15:23:59 +02:00
Owner
No description provided.
fpeters added 1 commit 2024-04-21 16:56:26 +02:00
gitea/wcs/pipeline/head There was a failure building this commit Details
c65e226a6b
cron: log basic resource usage summary (#89037)
bdauvergne reviewed 2024-04-21 20:32:41 +02:00
@ -129,1 +129,4 @@
CronJob.log('running jobs: %r' % sorted([x.name or x for x in jobs]))
import wcs.sql
queries = []
Owner

J'ai peur que ça fasse exploser la consommation de mémoire et fausse les mesures, si le besoin est juste d'avoir un compteur du nombre de requête, juste faire self.query_count += 1 dans LogginCursor.execute() et ne pas poser queries ici.

J'ai peur que ça fasse exploser la consommation de mémoire et fausse les mesures, si le besoin est juste d'avoir un compteur du nombre de requête, juste faire self.query_count += 1 dans LogginCursor.execute() et ne pas poser queries ici.
fpeters marked this conversation as resolved
fpeters force-pushed wip/89037-cron-resource-usage-summary from c65e226a6b to 6bf2da6bc1 2024-04-22 14:33:41 +02:00 Compare
fpeters force-pushed wip/89037-cron-resource-usage-summary from 6bf2da6bc1 to 13818facd2 2024-04-22 14:46:44 +02:00 Compare
fpeters force-pushed wip/89037-cron-resource-usage-summary from 13818facd2 to 5957f9e844 2024-04-22 15:00:32 +02:00 Compare
fpeters force-pushed wip/89037-cron-resource-usage-summary from 5957f9e844 to 107a47eb18 2024-04-22 15:51:52 +02:00 Compare
fpeters force-pushed wip/89037-cron-resource-usage-summary from 107a47eb18 to c18c85c6f4 2024-04-26 11:24:04 +02:00 Compare
fpeters reviewed 2024-04-26 11:29:08 +02:00
@ -76,3 +76,3 @@
os.makedirs(log_dir, exist_ok=True)
with open(os.path.join(log_dir, 'cron.log-%s' % now.strftime('%Y%m%d')), 'a+') as fd:
fd.write('%s [%s] %s\n' % (now.isoformat(), os.getpid(), message))
fd.write('%s [%s] %s\n' % (now.isoformat(), os.getpid(), message.replace('\n', ' ')))
Author
Owner

Pour obtenir sur une seule l'SQL qui contient des retours à la ligne.

Pour obtenir sur une seule l'SQL qui contient des retours à la ligne.
@ -130,0 +134,4 @@
import wcs.sql
if get_publisher().get_site_option('cron-log-level') == 'debug':
wcs.sql.LoggingCursor.queries_log_function = CronJob.log_sql
Author
Owner

Quand on est en mode log-level debug, logguer toutes les requêtes.

Quand on est en mode log-level debug, logguer toutes les requêtes.
@ -142,0 +154,4 @@
process_end = time.process_time()
memory_end = psutil.Process().memory_info().rss / (1024 * 1024)
CronJob.log(
'resource usage summary: CPU time: %.2fs / Memory: %.2fM / SQL queries: %s'
Author
Owner

À la fin l'info de ce qui a été consommé, par rapport au ticket il faudra créer un ticket adminsys pour la partie extraction pour prometheus, et il n'y a pas la partie sur le nombre de pickles accédés, qui pourrait venir plus tard.

À la fin l'info de ce qui a été consommé, par rapport au ticket il faudra créer un ticket adminsys pour la partie extraction pour prometheus, et il n'y a pas la partie sur le nombre de pickles accédés, qui pourrait venir plus tard.
wcs/sql.py Outdated
@ -99,0 +103,4 @@
queries_log_function = None
def execute(self, query, vars=None):
LoggingCursor.queries_count += 1
Author
Owner

Pour tout le temps avoir le compte en fin de cron, dans une variable de la classe (pas de l'instance).

Pour tout le temps avoir le compte en fin de cron, dans une variable de la classe (pas de l'instance).
wcs/sql.py Outdated
@ -99,0 +105,4 @@
def execute(self, query, vars=None):
LoggingCursor.queries_count += 1
if self.queries_log_function:
self.queries_log_function(query)
Author
Owner

Pour le log debug.

Pour le log debug.
wcs/sql.py Outdated
@ -99,0 +107,4 @@
if self.queries_log_function:
self.queries_log_function(query)
if self.queries is not None:
self.queries.append(query)
Author
Owner

Pour avoir toutes les requêtes, ça correspond à ce qui était utilisé dans les tests.

Pour avoir toutes les requêtes, ça correspond à ce qui était utilisé dans les tests.
fpeters force-pushed wip/89037-cron-resource-usage-summary from c18c85c6f4 to dc274aa649 2024-04-26 11:29:13 +02:00 Compare
fpeters changed title from WIP: cron: log basic resource usage summary (#89037) to cron: log basic resource usage summary (#89037) 2024-04-26 11:40:34 +02:00
tnoel approved these changes 2024-04-26 15:13:22 +02:00
tnoel left a comment
Owner

Rien à dire, ça me semble tout bon.

Rien à dire, ça me semble tout bon.
fpeters merged commit cc0f8dda1c into main 2024-04-26 15:23:59 +02:00
fpeters deleted branch wip/89037-cron-resource-usage-summary 2024-04-26 15:23:59 +02:00
Sign in to join this conversation.
No reviewers
No Label
No Milestone
No Assignees
3 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#1432
No description provided.