cron: log basic resource usage summary (#89037) #1432
Loading…
Reference in New Issue
No description provided.
Delete Branch "wip/89037-cron-resource-usage-summary"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
@ -129,1 +129,4 @@
CronJob.log('running jobs: %r' % sorted([x.name or x for x in jobs]))
import wcs.sql
queries = []
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.
c65e226a6b
to6bf2da6bc1
6bf2da6bc1
to13818facd2
13818facd2
to5957f9e844
5957f9e844
to107a47eb18
107a47eb18
toc18c85c6f4
@ -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', ' ')))
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
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'
À 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.
@ -99,0 +103,4 @@
queries_log_function = None
def execute(self, query, vars=None):
LoggingCursor.queries_count += 1
Pour tout le temps avoir le compte en fin de cron, dans une variable de la classe (pas de l'instance).
@ -99,0 +105,4 @@
def execute(self, query, vars=None):
LoggingCursor.queries_count += 1
if self.queries_log_function:
self.queries_log_function(query)
Pour le log debug.
@ -99,0 +107,4 @@
if self.queries_log_function:
self.queries_log_function(query)
if self.queries is not None:
self.queries.append(query)
Pour avoir toutes les requêtes, ça correspond à ce qui était utilisé dans les tests.
c18c85c6f4
todc274aa649
WIP: cron: log basic resource usage summary (#89037)to cron: log basic resource usage summary (#89037)Rien à dire, ça me semble tout bon.