From 55d295c2a6b986adb1f0eeecbd7d55a04187c59a Mon Sep 17 00:00:00 2001 From: Seth Foster Date: Mon, 15 Aug 2022 12:44:29 -0400 Subject: [PATCH] Add metric to measure task manager transaction, including on_commit calls --- awx/main/analytics/subsystem_metrics.py | 1 + awx/main/scheduler/task_manager.py | 8 ++++++-- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/awx/main/analytics/subsystem_metrics.py b/awx/main/analytics/subsystem_metrics.py index d52e986c63..b404fef6c7 100644 --- a/awx/main/analytics/subsystem_metrics.py +++ b/awx/main/analytics/subsystem_metrics.py @@ -195,6 +195,7 @@ class Metrics: SetIntM('task_manager_running_processed', 'Number of running tasks processed'), SetIntM('task_manager_pending_processed', 'Number of pending tasks processed'), SetIntM('task_manager_tasks_blocked', 'Number of tasks blocked from running'), + SetFloatM('task_manager_commit_seconds', 'Time spent in db transaction, including on_commit calls'), SetFloatM('dependency_manager_get_tasks_seconds', 'Time spent loading pending tasks from db'), SetFloatM('dependency_manager_generate_dependencies_seconds', 'Time spent generating dependencies for pending tasks'), SetFloatM('dependency_manager__schedule_seconds', 'Time spent in running the entire _schedule'), diff --git a/awx/main/scheduler/task_manager.py b/awx/main/scheduler/task_manager.py index b219aaf3b0..157cbb1610 100644 --- a/awx/main/scheduler/task_manager.py +++ b/awx/main/scheduler/task_manager.py @@ -130,8 +130,12 @@ class TaskBase: # if sigterm due to timeout, still record metrics signal.signal(signal.SIGTERM, self.record_aggregate_metrics_and_exit) self._schedule() - self.record_aggregate_metrics() - logger.debug(f"Finishing {self.prefix} Scheduler") + commit_start = time.time() + + if self.prefix == "task_manager": + self.subsystem_metrics.set(f"{self.prefix}_commit_seconds", time.time() - commit_start) + self.record_aggregate_metrics() + logger.debug(f"Finishing {self.prefix} Scheduler") class WorkflowManager(TaskBase):