Use prometheus as a metric backend
This entails writing a metric aggregation program since each worker has its own memory, and thus own metrics because of python gunicorn. The python client is a simple wrapper that makes web requests to it.
This commit is contained in:
parent
781f2eec72
commit
3d9acf2fff
10 changed files with 502 additions and 0 deletions
|
@ -17,8 +17,11 @@ from buildman.jobutil.buildstatus import StatusHandler
|
|||
from buildman.jobutil.buildjob import BuildJob, BuildJobLoadException
|
||||
from data import database
|
||||
from app import app, metric_queue
|
||||
from app import app
|
||||
from util.prometheus import Counter
|
||||
|
||||
logger = logging.getLogger(__name__)
|
||||
build_counter = Counter('builds', 'Number of builds', labelnames=['name'])
|
||||
|
||||
WORK_CHECK_TIMEOUT = 10
|
||||
TIMEOUT_PERIOD_MINUTES = 20
|
||||
|
@ -238,3 +241,4 @@ def report_completion_status(status):
|
|||
return
|
||||
|
||||
metric_queue.put(status_name, 1, unit='Count')
|
||||
build_counter.Inc(labelvalues=[status_name])
|
||||
|
|
Reference in a new issue