From 7aa9da9061756dbed85450826818c932a3a3c7da Mon Sep 17 00:00:00 2001 From: Viktor Adam Date: Thu, 21 Mar 2019 21:34:19 +1100 Subject: [PATCH] Minor docs and test changes --- prometheus_flask_exporter/__init__.py | 13 ++++++++++--- setup.py | 4 ++-- tests/unittest_helper.py | 9 ++++++--- 3 files changed, 18 insertions(+), 8 deletions(-) diff --git a/prometheus_flask_exporter/__init__.py b/prometheus_flask_exporter/__init__.py index 13fa337..8f4a36b 100644 --- a/prometheus_flask_exporter/__init__.py +++ b/prometheus_flask_exporter/__init__.py @@ -11,7 +11,6 @@ from werkzeug.exceptions import HTTPException from prometheus_client import Counter, Histogram, Gauge, Summary from prometheus_client import generate_latest, CONTENT_TYPE_LATEST -import prometheus_client NO_PREFIX = '#no_prefix' @@ -102,9 +101,17 @@ def __init__(self, app, path='/metrics', self._export_defaults = export_defaults self._defaults_prefix = defaults_prefix or 'flask' self.buckets = buckets - self.registry = registry or prometheus_client.REGISTRY self.version = __version__ + if registry: + self.registry = registry + else: + # load the default registry from the underlying + # Prometheus library here for easier unit testing + # see https://github.com/rycus86/prometheus_flask_exporter/pull/20 + from prometheus_client import REGISTRY as DEFAULT_REGISTRY + self.registry = DEFAULT_REGISTRY + if kwargs.get('group_by_endpoint') is True: warnings.warn( 'The `group_by_endpoint` argument of `PrometheusMetrics` is ' @@ -537,4 +544,4 @@ def info(self, name, description, labelnames=None, labelvalues=None, **labels): return gauge -__version__ = '0.6.0' +__version__ = '0.7.0' diff --git a/setup.py b/setup.py index 56f0169..883e3fd 100644 --- a/setup.py +++ b/setup.py @@ -6,7 +6,7 @@ setup( name='prometheus_flask_exporter', packages=['prometheus_flask_exporter'], - version='0.6.0', + version='0.7.0', description='Prometheus metrics exporter for Flask', long_description=long_description, long_description_content_type='text/markdown', @@ -14,7 +14,7 @@ author='Viktor Adam', author_email='rycus86@gmail.com', url='https://github.com/rycus86/prometheus_flask_exporter', - download_url='https://github.com/rycus86/prometheus_flask_exporter/archive/0.6.0.tar.gz', + download_url='https://github.com/rycus86/prometheus_flask_exporter/archive/0.7.0.tar.gz', keywords=['prometheus', 'flask', 'monitoring', 'exporter'], classifiers=[ 'Development Status :: 4 - Beta', diff --git a/tests/unittest_helper.py b/tests/unittest_helper.py index 1d6b2ca..9f04d0d 100644 --- a/tests/unittest_helper.py +++ b/tests/unittest_helper.py @@ -2,8 +2,9 @@ import sys import unittest +import prometheus_client from flask import Flask -from prometheus_client import CollectorRegistry + from prometheus_flask_exporter import PrometheusMetrics @@ -19,9 +20,11 @@ def setUp(self): self.app.testing = True self.client = self.app.test_client() + # reset the underlying Prometheus registry + prometheus_client.REGISTRY = prometheus_client.CollectorRegistry(auto_describe=True) + def metrics(self, **kwargs): - registry = kwargs.pop('registry', CollectorRegistry(auto_describe=True)) - return PrometheusMetrics(self.app, registry=registry, **kwargs) + return PrometheusMetrics(self.app, registry=kwargs.pop('registry', None), **kwargs) def assertMetric(self, name, value, *labels, **kwargs): if labels: