parent
927084106d
commit
39dc4c7d8d
2 changed files with 17 additions and 7 deletions
7
app.py
7
app.py
|
@ -142,11 +142,12 @@ dex_login = DexOAuthConfig(app.config, 'DEX_LOGIN_CONFIG')
|
||||||
|
|
||||||
oauth_apps = [github_login, github_trigger, gitlab_trigger, google_login, dex_login]
|
oauth_apps = [github_login, github_trigger, gitlab_trigger, google_login, dex_login]
|
||||||
|
|
||||||
image_diff_queue = WorkQueue(app.config['DIFFS_QUEUE_NAME'], tf)
|
image_diff_queue = WorkQueue(app.config['DIFFS_QUEUE_NAME'], tf, metric_queue=metric_queue)
|
||||||
image_replication_queue = WorkQueue(app.config['REPLICATION_QUEUE_NAME'], tf)
|
image_replication_queue = WorkQueue(app.config['REPLICATION_QUEUE_NAME'], tf, metric_queue=metric_queue)
|
||||||
dockerfile_build_queue = WorkQueue(app.config['DOCKERFILE_BUILD_QUEUE_NAME'], tf,
|
dockerfile_build_queue = WorkQueue(app.config['DOCKERFILE_BUILD_QUEUE_NAME'], tf,
|
||||||
|
metric_queue=metric_queue,
|
||||||
reporter=MetricQueueReporter(metric_queue))
|
reporter=MetricQueueReporter(metric_queue))
|
||||||
notification_queue = WorkQueue(app.config['NOTIFICATION_QUEUE_NAME'], tf)
|
notification_queue = WorkQueue(app.config['NOTIFICATION_QUEUE_NAME'], tf, metric_queue=metric_queue)
|
||||||
|
|
||||||
database.configure(app.config)
|
database.configure(app.config)
|
||||||
model.config.app_config = app.config
|
model.config.app_config = app.config
|
||||||
|
|
|
@ -26,9 +26,10 @@ class MetricQueueReporter(object):
|
||||||
|
|
||||||
class WorkQueue(object):
|
class WorkQueue(object):
|
||||||
def __init__(self, queue_name, transaction_factory,
|
def __init__(self, queue_name, transaction_factory,
|
||||||
canonical_name_match_list=None, reporter=None):
|
canonical_name_match_list=None, reporter=None, metric_queue=None):
|
||||||
self._queue_name = queue_name
|
self._queue_name = queue_name
|
||||||
self._reporter = reporter
|
self._reporter = reporter
|
||||||
|
self._metric_queue = metric_queue
|
||||||
self._transaction_factory = transaction_factory
|
self._transaction_factory = transaction_factory
|
||||||
self._currently_processing = False
|
self._currently_processing = False
|
||||||
|
|
||||||
|
@ -86,12 +87,20 @@ class WorkQueue(object):
|
||||||
return (running_count, available_not_running_count, available_count)
|
return (running_count, available_not_running_count, available_count)
|
||||||
|
|
||||||
def update_metrics(self):
|
def update_metrics(self):
|
||||||
if self._reporter is None:
|
if self._reporter is None and self._metric_queue is None:
|
||||||
return
|
return
|
||||||
|
|
||||||
(running_count, available_not_running_count, available_count) = self.get_metrics()
|
(running_count, available_not_running_count, available_count) = self.get_metrics()
|
||||||
self._reporter(self._currently_processing, running_count,
|
|
||||||
running_count + available_not_running_count)
|
if self._metric_queue:
|
||||||
|
dim = {'queue': self._queue_name}
|
||||||
|
self._metric_queue.put('Running', running_count, dimensions=dim)
|
||||||
|
self._metric_queue.put('AvailableNotRunning', available_not_running_count, dimensions=dim)
|
||||||
|
self._metric_queue.put('Available', available_count, dimensions=dim)
|
||||||
|
|
||||||
|
if self._reporter:
|
||||||
|
self._reporter(self._currently_processing, running_count,
|
||||||
|
running_count + available_not_running_count)
|
||||||
|
|
||||||
def has_retries_remaining(self, item_id):
|
def has_retries_remaining(self, item_id):
|
||||||
""" Returns whether the queue item with the given id has any retries remaining. If the
|
""" Returns whether the queue item with the given id has any retries remaining. If the
|
||||||
|
|
Reference in a new issue