diff --git a/.travis.yml b/.travis.yml index a5720190..ced1a5ab 100644 --- a/.travis.yml +++ b/.travis.yml @@ -28,13 +28,16 @@ jobs: - pip install -e ".[dev]" script: - export prometheus_multiproc_dir=$(mktemp -d) + - ls -al $prometheus_multiproc_dir - python3 -m pytest --cov=. --cov-report=term-missing:skip-covered + - ls -al $prometheus_multiproc_dir - coverage xml - coveralls - | [ ! -z "${CODACY_PROJECT_TOKEN}" ] && python-codacy-coverage -r coverage.xml || echo "Codacy coverage NOT exported" - pip3 install --editable . - python3 -m kqueen & + - ls -al $prometheus_multiproc_dir - sleep 2 - wget -O - http://localhost:5000/api/v1/health - stage: build diff --git a/kqueen/blueprints/metrics/views.py b/kqueen/blueprints/metrics/views.py index 8830b5c7..17bca617 100644 --- a/kqueen/blueprints/metrics/views.py +++ b/kqueen/blueprints/metrics/views.py @@ -5,12 +5,15 @@ from flask_jwt import _jwt_required from ipaddress import ip_address from ipaddress import ip_network -from prometheus_client import CollectorRegistry +from kqueen.blueprints.metrics.helpers import MetricUpdater from prometheus_client import CONTENT_TYPE_LATEST +from prometheus_client import CollectorRegistry from prometheus_client import generate_latest from prometheus_client import multiprocess +import logging metrics = Blueprint('metrics', __name__) +logger = logging.getLogger('kqueen_api') @metrics.route('/') @@ -20,6 +23,7 @@ def root(): if ip_address(request.remote_addr) not in ip_whitelist: _jwt_required(current_app.config['JWT_DEFAULT_REALM']) + MU = MetricUpdater() registry = CollectorRegistry() multiprocess.MultiProcessCollector(registry) @@ -28,5 +32,7 @@ def root(): response = make_response(data) response.headers['Content-Type'] = CONTENT_TYPE_LATEST response.headers['Content-Length'] = str(len(data)) + logger.info('Kqueen metrics updating') + MU.update_metrics() return response