Merge pull request #601 from coreos-inc/remove-transaction

Remove transaction from metric reporting
This commit is contained in:
Matt Jibson 2015-10-06 01:31:36 -04:00
commit e2c6113455
2 changed files with 12 additions and 14 deletions

View file

@ -65,7 +65,7 @@ class BuilderServer(object):
@controller_app.route('/status') @controller_app.route('/status')
def status(): def status():
metrics = server._queue.get_metrics(require_transaction=False) metrics = server._queue.get_metrics()
(running_count, available_not_running_count, available_count) = metrics (running_count, available_not_running_count, available_count) = metrics
workers = [component for component in server._current_components workers = [component for component in server._current_components

View file

@ -67,22 +67,20 @@ class WorkQueue(object):
def _item_by_id_for_update(self, queue_id): def _item_by_id_for_update(self, queue_id):
return db_for_update(QueueItem.select().where(QueueItem.id == queue_id)).get() return db_for_update(QueueItem.select().where(QueueItem.id == queue_id)).get()
def get_metrics(self, require_transaction=True): def get_metrics(self):
guard = self._transaction_factory(db) if require_transaction else NoopWith() now = datetime.utcnow()
with guard: name_match_query = self._name_match_query()
now = datetime.utcnow()
name_match_query = self._name_match_query()
running_query = self._running_jobs(now, name_match_query) running_query = self._running_jobs(now, name_match_query)
running_count = running_query.distinct().count() running_count = running_query.distinct().count()
available_query = self._available_jobs(now, name_match_query) available_query = self._available_jobs(now, name_match_query)
available_count = available_query.select(QueueItem.queue_name).distinct().count() available_count = available_query.select(QueueItem.queue_name).distinct().count()
available_not_running_query = self._available_jobs_not_running(now, name_match_query, available_not_running_query = self._available_jobs_not_running(now, name_match_query,
running_query) running_query)
available_not_running_count = (available_not_running_query.select(QueueItem.queue_name) available_not_running_count = (available_not_running_query.select(QueueItem.queue_name)
.distinct().count()) .distinct().count())
return (running_count, available_not_running_count, available_count) return (running_count, available_not_running_count, available_count)