Add repo-specific reporting of repository builds
This commit is contained in:
parent
c8a1b8abab
commit
818ea38dac
3 changed files with 15 additions and 4 deletions
|
@ -72,6 +72,11 @@ class BuildJob(object):
|
||||||
""" Returns the namespace under which this build is running. """
|
""" Returns the namespace under which this build is running. """
|
||||||
return self.repo_build.repository.namespace_user.username
|
return self.repo_build.repository.namespace_user.username
|
||||||
|
|
||||||
|
@property
|
||||||
|
def repo_name(self):
|
||||||
|
""" Returns the name of the repository under which this build is running. """
|
||||||
|
return self.repo_build.repository.name
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def repo_build(self):
|
def repo_build(self):
|
||||||
return self._load_repo_build()
|
return self._load_repo_build()
|
||||||
|
|
|
@ -17,7 +17,6 @@ from buildman.jobutil.buildstatus import StatusHandler
|
||||||
from buildman.jobutil.buildjob import BuildJob, BuildJobLoadException
|
from buildman.jobutil.buildjob import BuildJob, BuildJobLoadException
|
||||||
from data import database
|
from data import database
|
||||||
from app import app, metric_queue
|
from app import app, metric_queue
|
||||||
from app import app
|
|
||||||
|
|
||||||
logger = logging.getLogger(__name__)
|
logger = logging.getLogger(__name__)
|
||||||
|
|
||||||
|
@ -153,7 +152,7 @@ class BuilderServer(object):
|
||||||
if self._current_status == BuildServerStatus.SHUTDOWN and not self._job_count:
|
if self._current_status == BuildServerStatus.SHUTDOWN and not self._job_count:
|
||||||
self._shutdown_event.set()
|
self._shutdown_event.set()
|
||||||
|
|
||||||
report_completion_status(job_status)
|
_report_completion_status(build_job, job_status)
|
||||||
|
|
||||||
@trollius.coroutine
|
@trollius.coroutine
|
||||||
def _work_checker(self):
|
def _work_checker(self):
|
||||||
|
@ -230,7 +229,10 @@ class BuilderServer(object):
|
||||||
# Initialize the work queue checker.
|
# Initialize the work queue checker.
|
||||||
yield From(self._work_checker())
|
yield From(self._work_checker())
|
||||||
|
|
||||||
def report_completion_status(status):
|
def _report_completion_status(build_job, status):
|
||||||
|
metric_queue.build_counter.Inc(labelvalues=[status])
|
||||||
|
metric_queue.repository_build_completed.Inc(labelvalues=[build_job.namespace, build_job.repo_name,
|
||||||
|
status])
|
||||||
if status == BuildJobResult.COMPLETE:
|
if status == BuildJobResult.COMPLETE:
|
||||||
status_name = 'CompleteBuilds'
|
status_name = 'CompleteBuilds'
|
||||||
elif status == BuildJobResult.ERROR:
|
elif status == BuildJobResult.ERROR:
|
||||||
|
@ -241,4 +243,3 @@ def report_completion_status(status):
|
||||||
return
|
return
|
||||||
|
|
||||||
metric_queue.put_deprecated(status_name, 1, unit='Count')
|
metric_queue.put_deprecated(status_name, 1, unit='Count')
|
||||||
metric_queue.build_counter.Inc(labelvalues=[status_name])
|
|
||||||
|
|
|
@ -52,6 +52,11 @@ class MetricQueue(object):
|
||||||
self.repository_push = prom.create_counter('repository_push', 'Repository Push Count',
|
self.repository_push = prom.create_counter('repository_push', 'Repository Push Count',
|
||||||
labelnames=['namespace', 'repo_name', 'protocol'])
|
labelnames=['namespace', 'repo_name', 'protocol'])
|
||||||
|
|
||||||
|
self.repository_build_completed = prom.create_counter('repository_build_completed',
|
||||||
|
'Repository Build Complete Count',
|
||||||
|
labelnames=['namespace', 'repo_name',
|
||||||
|
'status'])
|
||||||
|
|
||||||
# Deprecated: Define an in-memory queue for reporting metrics to CloudWatch or another
|
# Deprecated: Define an in-memory queue for reporting metrics to CloudWatch or another
|
||||||
# provider.
|
# provider.
|
||||||
self._queue = None
|
self._queue = None
|
||||||
|
|
Reference in a new issue