Further updates to the Prometheus client code
This commit is contained in:
parent
668a8edc50
commit
713ba3abaf
9 changed files with 165 additions and 127 deletions
|
@ -15,21 +15,23 @@ class NoopWith:
|
|||
pass
|
||||
|
||||
|
||||
class MetricQueueReporter(object):
|
||||
class BuildMetricQueueReporter(object):
|
||||
""" Metric queue reporter for the build system. """
|
||||
def __init__(self, metric_queue):
|
||||
self._metric_queue = metric_queue
|
||||
|
||||
def __call__(self, currently_processing, running_count, total_count):
|
||||
need_capacity_count = total_count - running_count
|
||||
self._metric_queue.put('BuildCapacityShortage', need_capacity_count, unit='Count')
|
||||
self._metric_queue.put_deprecated('BuildCapacityShortage', need_capacity_count, unit='Count')
|
||||
self._metric_queue.build_capacity_shortage.Set(need_capacity_count)
|
||||
|
||||
building_percent = 100 if currently_processing else 0
|
||||
self._metric_queue.put('PercentBuilding', building_percent, unit='Percent')
|
||||
self._metric_queue.put_deprecated('PercentBuilding', building_percent, unit='Percent')
|
||||
self._metric_queue.percent_building.Set(building_percent)
|
||||
|
||||
|
||||
class WorkQueue(object):
|
||||
""" Work queue defines methods for interacting with a queue backed by the database. """
|
||||
def __init__(self, queue_name, transaction_factory,
|
||||
canonical_name_match_list=None, reporter=None, metric_queue=None):
|
||||
self._queue_name = queue_name
|
||||
|
@ -107,9 +109,13 @@ class WorkQueue(object):
|
|||
|
||||
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)
|
||||
self._metric_queue.put_deprecated('Running', running_count, dimensions=dim)
|
||||
self._metric_queue.put_deprecated('AvailableNotRunning', available_not_running_count,
|
||||
dimensions=dim)
|
||||
self._metric_queue.put_deprecated('Available', available_count, dimensions=dim)
|
||||
|
||||
self._metric_queue.work_queue_running.set(running_count, labelvalues=[self._queue_name])
|
||||
self._metric_queue.work_queue_available.set(available_count, labelvalues=[self._queue_name])
|
||||
|
||||
if self._reporter:
|
||||
self._reporter(self._currently_processing, running_count,
|
||||
|
@ -141,8 +147,10 @@ class WorkQueue(object):
|
|||
|
||||
with self._transaction_factory(db):
|
||||
r = str(QueueItem.create(**params).id)
|
||||
|
||||
if self._metric_queue:
|
||||
self._metric_queue.put('Added', 1, dimensions={'queue': self._queue_name})
|
||||
self._metric_queue.put_deprecated('Added', 1, dimensions={'queue': self._queue_name})
|
||||
|
||||
return r
|
||||
|
||||
def get(self, processing_time=300, ordering_required=False):
|
||||
|
|
Reference in a new issue