{ "info": { "author": "Viktor Adam", "author_email": "rycus86@gmail.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 4 - Beta", "Intended Audience :: Developers", "Intended Audience :: System Administrators", "License :: OSI Approved :: MIT License", "Programming Language :: Python :: 2", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.4", "Programming Language :: Python :: 3.5", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: 3.7", "Topic :: System :: Monitoring" ], "description": "# Prometheus Flask exporter\n\n[![PyPI](https://img.shields.io/pypi/v/prometheus-flask-exporter.svg)](https://pypi.python.org/pypi/prometheus-flask-exporter)\n[![PyPI](https://img.shields.io/pypi/pyversions/prometheus-flask-exporter.svg)](https://pypi.python.org/pypi/prometheus-flask-exporter)\n[![PyPI - Downloads](https://img.shields.io/pypi/dm/prometheus-flask-exporter.svg)](https://pypi.python.org/pypi/prometheus-flask-exporter)\n[![Travis](https://img.shields.io/travis/rycus86/prometheus_flask_exporter.svg)](https://travis-ci.org/rycus86/prometheus_flask_exporter)\n[![Coverage Status](https://coveralls.io/repos/github/rycus86/prometheus_flask_exporter/badge.svg?branch=master)](https://coveralls.io/github/rycus86/prometheus_flask_exporter?branch=master)\n[![Code Climate](https://codeclimate.com/github/rycus86/prometheus_flask_exporter/badges/gpa.svg)](https://codeclimate.com/github/rycus86/prometheus_flask_exporter)\n\nThis library provides HTTP request metrics to export into\n[Prometheus](https://prometheus.io/).\nIt can also track method invocations using convenient functions.\n\n## Usage\n\n```python\nfrom flask import Flask, request\nfrom prometheus_flask_exporter import PrometheusMetrics\n\napp = Flask(__name__)\nmetrics = PrometheusMetrics(app)\n\n# static information as metric\nmetrics.info('app_info', 'Application info', version='1.0.3')\n\n@app.route('/')\ndef main():\n pass # requests tracked by default\n\n@app.route('/skip')\n@metrics.do_not_track()\ndef skip():\n pass # default metrics are not collected\n\n@app.route('/')\n@metrics.do_not_track()\n@metrics.counter('invocation_by_type', 'Number of invocations by type',\n labels={'item_type': lambda: request.view_args['type']})\ndef by_type(item_type):\n pass # only the counter is collected, not the default metrics\n\n@app.route('/long-running')\n@metrics.gauge('in_progress', 'Long running requests in progress')\ndef long_running():\n pass\n\n@app.route('/status/')\n@metrics.do_not_track()\n@metrics.summary('requests_by_status', 'Request latencies by status',\n labels={'status': lambda r: r.status_code})\n@metrics.histogram('requests_by_status_and_path', 'Request latencies by status and path',\n labels={'status': lambda r: r.status_code, 'path': lambda: request.path})\ndef echo_status(status):\n return 'Status: %s' % status, status\n```\n\n## Default metrics\n\nThe following metrics are exported by default\n(unless the `export_defaults` is set to `False`).\n\n- `flask_http_request_duration_seconds` (Histogram)\n Labels: `method`, `path` and `status`.\n Flask HTTP request duration in seconds for all Flask requests.\n- `flask_http_request_total` (Counter)\n Labels: `method` and `status`.\n Total number of HTTP requests for all Flask requests.\n- `flask_exporter_info` (Gauge)\n Information about the Prometheus Flask exporter itself (e.g. `version`).\n\nThe prefix for the default metrics can be controlled by the `defaults_prefix` parameter.\nIs you don't want to use any prefix, pass the `prometheus_flask_exporter.NO_PREFIX` value in.\n\nTo register your own *default* metrics that will track all registered\nFlask view functions, use the `register_default` function.\n\n```python\napp = Flask(__name__)\nmetrics = PrometheusMetrics(app)\n\n@app.route('/simple')\ndef simple_get():\n pass\n \nmetrics.register_default(\n metrics.counter(\n 'by_path_counter', 'Request count by request paths',\n labels={'path': lambda: request.path}\n )\n)\n```\n\n*Note:* register your default metrics after all routes have been set up.\nAlso note, that Gauge metrics registered as default will track the\n`/metrics` endpoint, and this can't be disabled at the moment.\n\nIf you want to apply the same metric to multiple (but not all) endpoints,\ncreate its wrapper first, then add to each function.\n\n```python\napp = Flask(__name__)\nmetrics = PrometheusMetrics(app)\n\nby_path_counter = metrics.counter(\n 'by_path_counter', 'Request count by request paths',\n labels={'path': lambda: request.path}\n)\n\n@app.route('/simple')\n@by_path_counter\ndef simple_get():\n pass\n \n@app.route('/plain')\n@by_path_counter\ndef plain():\n pass\n \n@app.route('/not/tracked/by/path')\ndef not_tracked_by_path():\n pass\n```\n\nYou can avoid recording metrics on individual endpoints\nby decorating them with `@metrics.do_not_track()`, or use the \n`excluded_paths` argument when creating the `PrometheusMetrics` instance\nthat takes a regular expression (either a single string, or a list) and\nmatching paths will be excluded.\n\n## Configuration\n\nBy default, the metrics are exposed on the same Flask application on the\n`/metrics` endpoint and using the core Prometheus registry.\nIf this doesn't suit your needs, set the `path` argument to `None` and/or\nthe `export_defaults` argument to `False` plus change the `registry`\nargument if needed.\n\nThe `group_by` constructor argument controls what\nthe default request duration metric is tracked by: endpoint (function)\ninstead of URI path (the default). This parameter also accepts a function\nto extract the value from the request, or a name of a property of the request object.\nExamples:\n\n```python\nPrometheusMetrics(app, group_by='path') # the default\nPrometheusMetrics(app, group_by='endpoint') # by endpoint\nPrometheusMetrics(app, group_by='url_rule') # by URL rule\n\ndef custom_rule(req): # the Flask request object\n \"\"\" The name of the function becomes the label name. \"\"\"\n return '%s::%s' % (req.method, req.path)\n\nPrometheusMetrics(app, group_by=custom_rule) # by a function\n\n# Error: this is not supported:\nPrometheusMetrics(app, group_by=lambda r: r.path)\n```\n\n> The `group_by_endpoint` argument is deprecated since 0.4.0,\n> please use the new `group_by` argument.\n\nThe `register_endpoint` allows exposing the metrics endpoint on a specific path.\nIt also allows passing in a Flask application to register it on but defaults\nto the main one if not defined.\n\nSimilarly, the `start_http_server` allows exposing the endpoint on an\nindependent Flask application on a selected HTTP port.\nIt also supports overriding the endpoint's path and the HTTP listen address.\n\nYou can also set static labels to add to every request managed by\na `PrometheusMetrics` instance, using the `static_labels` argument.\nThis needs to be a dictionary, where each key will become a metric\nlabel name, and the values their (static) values.\n\n## Labels\n\nWhen defining labels for metrics on functions,\nthe following values are supported in the dictionary:\n\n- A simple static value\n- A no-argument callable\n- A single argument callable that will receive the Flask response\n as the argument\n\nLabel values are evaluated within the request context.\nThe `static_labels` labels are excepted from this,\nthose need to be static values.\n\n## Application information\n\nThe `PrometheusMetrics.info(..)` method provides a way to expose\ninformation as a `Gauge` metric, the application version for example.\n\nThe metric is returned from the method to allow changing its value\nfrom the default `1`:\n\n```python\nmetrics = PrometheusMetrics(app)\ninfo = metrics.info('dynamic_info', 'Something dynamic')\n...\ninfo.set(42.1)\n```\n\n## Examples\n\nSee some simple examples visualized on a Grafana dashboard by running\nthe demo in the [examples/sample-signals](https://github.com/rycus86/prometheus_flask_exporter/tree/master/examples/sample-signals) folder.\n\n![Example dashboard](https://github.com/rycus86/prometheus_flask_exporter/raw/master/examples/sample-signals/dashboard.png)\n\n## App Factory Pattern\n\nThis library also supports the flask [app factory pattern](http://flask.pocoo.org/docs/1.0/patterns/appfactories/). Use the `init_app` method to attach the library to one or more application objects. Note, that to use this mode, you'll need to pass in `None` for the `app` in the constructor.\n\n```python\nmetrics = PrometheusMetrics(app=None, ...)\n# then later:\nmetrics.init_app(app)\n```\n\n## Debug mode\n\nPlease note, that changes being live-reloaded, when running the Flask\napp with `debug=True`, are not going to be reflected in the metrics.\nSee [https://github.com/rycus86/prometheus_flask_exporter/issues/4](https://github.com/rycus86/prometheus_flask_exporter/issues/4)\nfor more details.\n\nAlternatively - since version `0.5.1` - if you set the `DEBUG_METRICS`\nenvironment variable, you will get metrics for the latest reloaded code.\nThese will be exported on the main Flask app.\nServing the metrics on a different port is not going to work\nmost probably - e.g. `PrometheusMetrics.start_http_server(..)` is not\nexpected to work.\n\n## WSGI\n\nGetting accurate metrics for WSGI apps might require a bit more setup.\nSee a working sample app in the `examples` folder, and also the\n[prometheus_flask_exporter#5](https://github.com/rycus86/prometheus_flask_exporter/issues/5) issue.\n\n### Multiprocess applications\n\nFor multiprocess applications (WSGI or otherwise), you can find some\nhelper classes in the `prometheus_flask_exporter.multiprocess` module.\nThese provide convenience wrappers for exposing metrics in an\nenvironment where multiple copies of the application will run on a single host.\n\n```python\n# an extension targeted at Gunicorn deployments\nfrom prometheus_flask_exporter.multiprocess import GunicornPrometheusMetrics\n\napp = Flask(__name__)\nmetrics = GunicornPrometheusMetrics(app)\n\n# then in the Gunicorn config file:\nfrom prometheus_flask_exporter.multiprocess import GunicornPrometheusMetrics\n\ndef when_ready(server):\n GunicornPrometheusMetrics.start_http_server_when_ready(8080)\n\ndef child_exit(server, worker):\n GunicornPrometheusMetrics.mark_process_dead_on_child_exit(worker.pid)\n```\n\nAlso see the `GunicornInternalPrometheusMetrics` class if you want to have\nthe metrics HTTP endpoint exposed internally, on the same Flask application.\n\n```python\n# an extension targeted at Gunicorn deployments with an internal metrics endpoint\nfrom prometheus_flask_exporter.multiprocess import GunicornInternalPrometheusMetrics\n\napp = Flask(__name__)\nmetrics = GunicornInternalPrometheusMetrics(app)\n\n# then in the Gunicorn config file:\nfrom prometheus_flask_exporter.multiprocess import GunicornInternalPrometheusMetrics\n\ndef child_exit(server, worker):\n GunicornInternalPrometheusMetrics.mark_process_dead_on_child_exit(worker.pid)\n```\n\nThere's a small wrapper available for [Gunicorn](https://gunicorn.org/) and\n[uWSGI](https://uwsgi-docs.readthedocs.io/en/latest/index.html), for everything\nelse you can extend the `prometheus_flask_exporter.multiprocess.MultiprocessPrometheusMetrics` class\nand implement the `should_start_http_server` method at least.\n\n```python\nfrom prometheus_flask_exporter.multiprocess import MultiprocessPrometheusMetrics\n\nclass MyMultiprocessMetrics(MultiprocessPrometheusMetrics):\n def should_start_http_server(self):\n return this_worker() == primary_worker()\n```\n\nThis should return `True` on one process only, and the underlying\n[Prometheus client library](https://github.com/prometheus/client_python)\nwill collect the metrics for all the forked children or siblings.\n\n__Note:__ this needs the `prometheus_multiproc_dir` environment variable\nto point to a valid, writable directory.\n\nYou'll also have to call the `metrics.start_http_server()` function\nexplicitly somewhere, and the `should_start_http_server` takes care of\nonly starting it once.\nThe [examples](https://github.com/rycus86/prometheus_flask_exporter/tree/master/examples) folder\nhas some working examples on this.\n\nPlease also note, that the Prometheus client library does not collect process level\nmetrics, like memory, CPU and Python GC stats when multiprocessing is enabled.\nSee the [prometheus_flask_exporter#18](https://github.com/rycus86/prometheus_flask_exporter/issues/18)\nissue for some more context and details.\n\nA final caveat is that the metrics HTTP server will listen on __any__ paths\non the given HTTP port, not only on `/metrics`, and it is not implemented\nat the moment to be able to change this.\n\n### uWSGI lazy-apps\n\nWhen [uWSGI](https://uwsgi-docs.readthedocs.io/en/latest/) is configured \nto run with [lazy-apps]([lazy-apps](https://uwsgi-docs.readthedocs.io/en/latest/articles/TheArtOfGracefulReloading.html#preforking-vs-lazy-apps-vs-lazy)),\nexposing the metrics endpoint on a separate HTTP server (and port) is not functioning yet.\nA workaround is to register the endpoint on the main Flask application.\n\n```python\napp = Flask(__name__)\nmetrics = UWsgiPrometheusMetrics(app)\nmetrics.register_endpoint('/metrics')\n# instead of metrics.start_http_server(port)\n```\n\nSee [#31](https://github.com/rycus86/prometheus_flask_exporter/issues/31)\nfor context, and please let me know if you know a better way!\n\n## License\n\nMIT", "description_content_type": "text/markdown", "docs_url": null, "download_url": "https://github.com/rycus86/prometheus_flask_exporter/archive/0.11.0.tar.gz", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/rycus86/prometheus_flask_exporter", "keywords": "prometheus,flask,monitoring,exporter", "license": "MIT", "maintainer": "", "maintainer_email": "", "name": "prometheus-flask-exporter", "package_url": "https://pypi.org/project/prometheus-flask-exporter/", "platform": "", "project_url": "https://pypi.org/project/prometheus-flask-exporter/", "project_urls": { "Download": "https://github.com/rycus86/prometheus_flask_exporter/archive/0.11.0.tar.gz", "Homepage": "https://github.com/rycus86/prometheus_flask_exporter" }, "release_url": "https://pypi.org/project/prometheus-flask-exporter/0.11.0/", "requires_dist": null, "requires_python": "", "summary": "Prometheus metrics exporter for Flask", "version": "0.11.0" }, "last_serial": 5923501, "releases": { "0.0.1": [ { "comment_text": "", "digests": { "md5": "da72b147d5c0ce43294c5b807b430567", "sha256": "0438b3b9197c892548b165f996573eefd473d4f6f971a2cba1b2f6849c2b325a" }, "downloads": -1, "filename": "prometheus_flask_exporter-0.0.1.tar.gz", "has_sig": false, "md5_digest": "da72b147d5c0ce43294c5b807b430567", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 2860, "upload_time": "2017-11-24T00:25:05", "url": "https://files.pythonhosted.org/packages/c3/8c/8a1a4899059f52a8767c074201f599fc086c938e8e8103f5bac8ab2f72a8/prometheus_flask_exporter-0.0.1.tar.gz" } ], "0.0.2": [ { "comment_text": "", "digests": { "md5": "f8aa9a67b0e3fa8c554b525499c304f2", "sha256": "d8bbfc55d43fafc9222c2c17afd8e349c037d463ed65878a9f54d5d00a8ded09" }, "downloads": -1, "filename": "prometheus_flask_exporter-0.0.2.tar.gz", "has_sig": false, "md5_digest": "f8aa9a67b0e3fa8c554b525499c304f2", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3569, "upload_time": "2017-11-24T22:36:05", "url": "https://files.pythonhosted.org/packages/b6/ba/3c12204603ba365738a8b04750cc1308e513d77a56c6eb49cbaa23c170fa/prometheus_flask_exporter-0.0.2.tar.gz" } ], "0.0.4": [ { "comment_text": "", "digests": { "md5": "e468f3b846af9e6701b202663f1d5b15", "sha256": "2042a8b6892458d64ec1617165a5b7aa86011ecf76e5451bd453f9147a979363" }, "downloads": -1, "filename": "prometheus_flask_exporter-0.0.4.tar.gz", "has_sig": false, "md5_digest": "e468f3b846af9e6701b202663f1d5b15", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4637, "upload_time": "2017-11-24T23:07:53", "url": "https://files.pythonhosted.org/packages/42/59/56eaa855d349fcc20bad9e43fd55a0b7975fc3e540d3aeff4ad2d9958b5b/prometheus_flask_exporter-0.0.4.tar.gz" } ], "0.0.5": [ { "comment_text": "", "digests": { "md5": "5a405469e3f268e6a2070626dc791970", "sha256": "f4814a6816e2c34b65a2face38f705b0cdc51c62bb35d45b97190ac93fb1f630" }, "downloads": -1, "filename": "prometheus_flask_exporter-0.0.5.tar.gz", "has_sig": false, "md5_digest": "5a405469e3f268e6a2070626dc791970", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5504, "upload_time": "2017-11-25T22:22:10", "url": "https://files.pythonhosted.org/packages/2f/d8/391411ca50d312f805dbd65a9e9f3994c6fbd5d285a3b575773dffad9629/prometheus_flask_exporter-0.0.5.tar.gz" } ], "0.0.6": [ { "comment_text": "", "digests": { "md5": "0cb59e927f5a4341f57f8d32e6d71181", "sha256": "4e0a9998d6cba20a4eab9f05a6ca50e14a12f185af41a5c2d021dbcdbb834adf" }, "downloads": -1, "filename": "prometheus_flask_exporter-0.0.6.tar.gz", "has_sig": false, "md5_digest": "0cb59e927f5a4341f57f8d32e6d71181", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5558, "upload_time": "2017-11-29T23:36:44", "url": "https://files.pythonhosted.org/packages/50/45/4931de0ce6570d0c51cc3e07d6f6665c74ea7ba813e04817493701cbe44a/prometheus_flask_exporter-0.0.6.tar.gz" } ], "0.0.7": [ { "comment_text": "", "digests": { "md5": "d95cc7184735ac6d94de2253a96813c1", "sha256": "7f00bfa3577e352286c05907fb27b9da232b40e60e0cf00815aa6d75903a46fc" }, "downloads": -1, "filename": "prometheus_flask_exporter-0.0.7.tar.gz", "has_sig": false, "md5_digest": "d95cc7184735ac6d94de2253a96813c1", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5774, "upload_time": "2017-11-29T23:52:45", "url": "https://files.pythonhosted.org/packages/c6/c0/d159129298f541f8b43379e99ce16fcdad77c84423e792097a150739c9ac/prometheus_flask_exporter-0.0.7.tar.gz" } ], "0.0.8": [ { "comment_text": "", "digests": { "md5": "4138f3d40f82d181efcc9429bf47ca05", "sha256": "39b75191ed94f126f39c5d2f6ce42c3b31020180f99b228d7fb88c8bb98094b6" }, "downloads": -1, "filename": "prometheus_flask_exporter-0.0.8.tar.gz", "has_sig": false, "md5_digest": "4138f3d40f82d181efcc9429bf47ca05", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5776, "upload_time": "2017-11-30T00:05:09", "url": "https://files.pythonhosted.org/packages/b8/ea/399527d10cd53b730f399b2c916ea597766d87f1526a25d1270a49ad5730/prometheus_flask_exporter-0.0.8.tar.gz" } ], "0.0.9": [ { "comment_text": "", "digests": { "md5": "949dbebe6b552ac503b4689fd8e1eead", "sha256": "4776fa7107971d38ab3914a362c02796b90068b9e542931a37dabcf6cbc109ef" }, "downloads": -1, "filename": "prometheus_flask_exporter-0.0.9.tar.gz", "has_sig": false, "md5_digest": "949dbebe6b552ac503b4689fd8e1eead", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6156, "upload_time": "2017-12-04T08:41:24", "url": "https://files.pythonhosted.org/packages/a6/95/f9251e91267d6205a31565bdf050726b5d8647292368bff92ab305f2ed47/prometheus_flask_exporter-0.0.9.tar.gz" } ], "0.1.0": [ { "comment_text": "", "digests": { "md5": "a0d897f8937851c85697759ab1c5fb24", "sha256": "e33dd61be04f06203d4658b4042202514343a157dd5ba1729308e112e8efb6f9" }, "downloads": -1, "filename": "prometheus_flask_exporter-0.1.0.tar.gz", "has_sig": false, "md5_digest": "a0d897f8937851c85697759ab1c5fb24", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6490, "upload_time": "2017-12-04T17:52:02", "url": "https://files.pythonhosted.org/packages/5d/39/4b837066277dd44591bed52d206b5582f5919f62233b5a9a48742cf72c2b/prometheus_flask_exporter-0.1.0.tar.gz" } ], "0.1.1": [ { "comment_text": "", "digests": { "md5": "12782d15f4f3980948e6827ccfc8a4b8", "sha256": "867dd5b2b099f71a27a108b9f5c52435b57770b3936348dda2b168fc1b58a603" }, "downloads": -1, "filename": "prometheus_flask_exporter-0.1.1.tar.gz", "has_sig": false, "md5_digest": "12782d15f4f3980948e6827ccfc8a4b8", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6495, "upload_time": "2017-12-04T21:16:50", "url": "https://files.pythonhosted.org/packages/67/5b/6f937cb69856f665d0ecde87102fe90b07a49ce51aa7243709dbef59ac90/prometheus_flask_exporter-0.1.1.tar.gz" } ], "0.1.2": [ { "comment_text": "", "digests": { "md5": "7e81e764ff33eaa6458cacfcf4545e01", "sha256": "44b2d7db897cf066ddb5ba7bbf2ca0361d74e51188c379749a395b25ceb78d67" }, "downloads": -1, "filename": "prometheus_flask_exporter-0.1.2.tar.gz", "has_sig": false, "md5_digest": "7e81e764ff33eaa6458cacfcf4545e01", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6637, "upload_time": "2017-12-29T21:00:09", "url": "https://files.pythonhosted.org/packages/f6/51/bd2724ac3417e896a8ac2718be7f842e61e2e7f42cf700f2a09f5a40c17a/prometheus_flask_exporter-0.1.2.tar.gz" } ], "0.10.0": [ { "comment_text": "", "digests": { "md5": "426e3f863e5a71e132f3aac1c75a3941", "sha256": "91a4ef569c479592ff7057e7e16ce8102556c6a46630870e333507cee28347db" }, "downloads": -1, "filename": "prometheus_flask_exporter-0.10.0.tar.gz", "has_sig": false, "md5_digest": "426e3f863e5a71e132f3aac1c75a3941", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 16830, "upload_time": "2019-09-26T14:23:04", "url": "https://files.pythonhosted.org/packages/6b/e6/2e90727e15d2677dcf17d90e056e2e7c0a33d0cd542789f19a17d28f0ad4/prometheus_flask_exporter-0.10.0.tar.gz" } ], "0.11.0": [ { "comment_text": "", "digests": { "md5": "3b23b1c4621ce887ab0dc344e2f06cd7", "sha256": "4536537eadb5f3a4bf9c295987c8c68e79315d45dfd6d865510e526b64d2a735" }, "downloads": -1, "filename": "prometheus_flask_exporter-0.11.0.tar.gz", "has_sig": false, "md5_digest": "3b23b1c4621ce887ab0dc344e2f06cd7", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 17289, "upload_time": "2019-10-03T13:37:41", "url": "https://files.pythonhosted.org/packages/31/8b/d13d3ec6d63d7f53c8c5334be89d190fe04b413c935ca0a13f1ce8e477a3/prometheus_flask_exporter-0.11.0.tar.gz" } ], "0.2.0": [ { "comment_text": "", "digests": { "md5": "c0aef39f16a275d7a466747c8d49a2dc", "sha256": "5c4f11b7c50f027a05d30b8d1c7d8eb17497c3fa65f2ab4258e1063bb6057a0a" }, "downloads": -1, "filename": "prometheus_flask_exporter-0.2.0.tar.gz", "has_sig": false, "md5_digest": "c0aef39f16a275d7a466747c8d49a2dc", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6799, "upload_time": "2018-02-27T21:28:41", "url": "https://files.pythonhosted.org/packages/72/bf/ea21d7d2fa2e87bcec7f9b611f8c5adac3cb6372ba877d974d1d4c792724/prometheus_flask_exporter-0.2.0.tar.gz" } ], "0.2.1": [ { "comment_text": "", "digests": { "md5": "a8fd6bccdb64448e0c51c571b556b36e", "sha256": "df8bae13a07baa212b648cc5d3f3b2796113fb9127b6a994b5648b879d4688e6" }, "downloads": -1, "filename": "prometheus_flask_exporter-0.2.1.tar.gz", "has_sig": false, "md5_digest": "a8fd6bccdb64448e0c51c571b556b36e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6823, "upload_time": "2018-03-20T21:47:59", "url": "https://files.pythonhosted.org/packages/ac/51/25c2f6d89e8f1f6a7b81681275ffc2ec009a0bbb25d645eafee45c29a4d5/prometheus_flask_exporter-0.2.1.tar.gz" } ], "0.2.2": [ { "comment_text": "", "digests": { "md5": "07cdbffd5db0d1a71a6db0643a7ca867", "sha256": "a939b072b62c80ea80c62a8daad7b6959bfa8457e976a9147141c79664c4b4df" }, "downloads": -1, "filename": "prometheus_flask_exporter-0.2.2.tar.gz", "has_sig": false, "md5_digest": "07cdbffd5db0d1a71a6db0643a7ca867", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6956, "upload_time": "2018-03-22T21:03:49", "url": "https://files.pythonhosted.org/packages/f2/be/6535e6a9f713053984598a923bbb2f2efc9a0cad4ef9179b75ada1279b13/prometheus_flask_exporter-0.2.2.tar.gz" } ], "0.2.3": [ { "comment_text": "", "digests": { "md5": "f3ca63dad544657312ab8a54b03be415", "sha256": "290949669d378d7bf35acedcbff26738c47a5b977ceb9102925ef85e8835cba8" }, "downloads": -1, "filename": "prometheus_flask_exporter-0.2.3.tar.gz", "has_sig": false, "md5_digest": "f3ca63dad544657312ab8a54b03be415", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7303, "upload_time": "2018-08-25T11:34:22", "url": "https://files.pythonhosted.org/packages/43/2b/e4695081ee7918391ef8cc6461d4e5f9620f12df1ff6a8d939b45fad3050/prometheus_flask_exporter-0.2.3.tar.gz" } ], "0.3.0": [ { "comment_text": "", "digests": { "md5": "2b42ef4ccfd915e7780a603d12ac5799", "sha256": "7d4052a0c5149573aa16ee9d8e114db540f10dcd3fcb049b3fc3ca3e1217f00b" }, "downloads": -1, "filename": "prometheus_flask_exporter-0.3.0.tar.gz", "has_sig": false, "md5_digest": "2b42ef4ccfd915e7780a603d12ac5799", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7802, "upload_time": "2018-09-20T09:27:05", "url": "https://files.pythonhosted.org/packages/a8/6b/a4aab309d5154256ee52a26f14c268cc609d11abfc76b1229754fd7474aa/prometheus_flask_exporter-0.3.0.tar.gz" } ], "0.3.1": [ { "comment_text": "", "digests": { "md5": "c099d3dfe8129f9f1472093e41982010", "sha256": "70d5d57a2abebf7ba6de5c8db5f2671e0e7d9b1f4951ca88cfab4c812e52b59e" }, "downloads": -1, "filename": "prometheus_flask_exporter-0.3.1.tar.gz", "has_sig": false, "md5_digest": "c099d3dfe8129f9f1472093e41982010", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7976, "upload_time": "2018-10-23T11:18:47", "url": "https://files.pythonhosted.org/packages/5f/01/0a1aaf7755473c289e84659b44be3e6c7ce01e8fb7391a1c90c729ed1244/prometheus_flask_exporter-0.3.1.tar.gz" } ], "0.3.3": [ { "comment_text": "", "digests": { "md5": "ef406dd80051631693937e03fd757a4e", "sha256": "c2f8889aaed29f2176d23e791703178f0052ac869eea7ff1a3d10c2d61e4aa67" }, "downloads": -1, "filename": "prometheus_flask_exporter-0.3.3.tar.gz", "has_sig": false, "md5_digest": "ef406dd80051631693937e03fd757a4e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7914, "upload_time": "2018-11-10T09:59:53", "url": "https://files.pythonhosted.org/packages/0d/15/ac68c18e8fe48f34c4e84ab62f5709934e84cef67d3a54dcca14a0c46baa/prometheus_flask_exporter-0.3.3.tar.gz" } ], "0.3.4": [ { "comment_text": "", "digests": { "md5": "80b423ca9051bed4c3b3723654ae8640", "sha256": "a91ee981f9b884f803b899fc98f052fe0e2c8fc604aca093dd8166d6bc8932f8" }, "downloads": -1, "filename": "prometheus_flask_exporter-0.3.4.tar.gz", "has_sig": false, "md5_digest": "80b423ca9051bed4c3b3723654ae8640", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7910, "upload_time": "2018-11-13T09:50:14", "url": "https://files.pythonhosted.org/packages/d8/69/b6fefe3d1ff7964d2b8a4e7feb825de591facb4eab4af893205696ce2c0b/prometheus_flask_exporter-0.3.4.tar.gz" } ], "0.4.0": [ { "comment_text": "", "digests": { "md5": "00256c1fe91248acb29020f2da4f8fc2", "sha256": "d20cd2d8896b59ecdfdba2dad2aa83f0821dbfea190f0b49a7d3508fefa55363" }, "downloads": -1, "filename": "prometheus_flask_exporter-0.4.0.tar.gz", "has_sig": false, "md5_digest": "00256c1fe91248acb29020f2da4f8fc2", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9545, "upload_time": "2018-11-13T11:28:06", "url": "https://files.pythonhosted.org/packages/e5/4b/091482fa34db11cf0030c5581ccbdb19def8f692045f0f0b33523ae02f22/prometheus_flask_exporter-0.4.0.tar.gz" } ], "0.4.1": [ { "comment_text": "", "digests": { "md5": "32feae2c37c294811597f6bced668534", "sha256": "9bbdf4470f718ce42482951541c458b9505266f9fbd8daea9dbab1b1b21ad126" }, "downloads": -1, "filename": "prometheus_flask_exporter-0.4.1.tar.gz", "has_sig": false, "md5_digest": "32feae2c37c294811597f6bced668534", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9550, "upload_time": "2018-12-07T12:35:52", "url": "https://files.pythonhosted.org/packages/af/9c/57b8611342fa9a6f955b49879834891ab340f53b0fd444678639fcf73bef/prometheus_flask_exporter-0.4.1.tar.gz" } ], "0.5.0": [ { "comment_text": "", "digests": { "md5": "6883a77fb23adc6a8c4c7f4f38f7cc7c", "sha256": "832e3f7d879f7502f6e56f72f5f02eacb1696edb4b7b46490057597e12cae540" }, "downloads": -1, "filename": "prometheus_flask_exporter-0.5.0.tar.gz", "has_sig": false, "md5_digest": "6883a77fb23adc6a8c4c7f4f38f7cc7c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 12629, "upload_time": "2018-12-17T11:53:20", "url": "https://files.pythonhosted.org/packages/0d/62/79e11ee0130505a51f79c636f522cb04d1e48e6ffaccec2b8002cfa1a2ac/prometheus_flask_exporter-0.5.0.tar.gz" } ], "0.5.1": [ { "comment_text": "", "digests": { "md5": "c0ea17e4c8da8d7067f50e9b0479a221", "sha256": "a7b5e7cf1c45cd8cec20b0afb2f59f63624a69ca1b846b598b0ba4aa2731f492" }, "downloads": -1, "filename": "prometheus_flask_exporter-0.5.1.tar.gz", "has_sig": false, "md5_digest": "c0ea17e4c8da8d7067f50e9b0479a221", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 12971, "upload_time": "2018-12-17T13:04:48", "url": "https://files.pythonhosted.org/packages/56/fc/e1d0a6a0021291913dcc11a05ab2725524ed10f0c7e1e775e5cf4b26a50f/prometheus_flask_exporter-0.5.1.tar.gz" } ], "0.6.0": [ { "comment_text": "", "digests": { "md5": "b8bae58e852944504234edb9ccbe83a6", "sha256": "e25f19b494f0d76fe5c42b4ea0b163590ef3095739d09baf33e2ab8674a14fba" }, "downloads": -1, "filename": "prometheus_flask_exporter-0.6.0.tar.gz", "has_sig": false, "md5_digest": "b8bae58e852944504234edb9ccbe83a6", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 13408, "upload_time": "2019-03-06T11:19:29", "url": "https://files.pythonhosted.org/packages/de/8d/87b072bc3d5e52bfa1edcfe7163c45a356466509e19eec927fb47fa9808a/prometheus_flask_exporter-0.6.0.tar.gz" } ], "0.7.0": [ { "comment_text": "", "digests": { "md5": "422c864f811fabdd01f7528425c35f2a", "sha256": "b49e1e068112f5aae4565f66945d46f7c0072974e647c623c555de23e3f636d7" }, "downloads": -1, "filename": "prometheus_flask_exporter-0.7.0.tar.gz", "has_sig": false, "md5_digest": "422c864f811fabdd01f7528425c35f2a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 13473, "upload_time": "2019-03-21T10:45:10", "url": "https://files.pythonhosted.org/packages/0a/d1/4c807e4b5d906521297ea4b98d3b2d73113a91095bb2359c489e79bea835/prometheus_flask_exporter-0.7.0.tar.gz" } ], "0.7.1": [ { "comment_text": "", "digests": { "md5": "4ea37ab97da21a5018bdd4a34243665f", "sha256": "468deb0aa2155c8a97df201cb7b7b59a8c3dcf2007715a6ff09d57b01cb136ce" }, "downloads": -1, "filename": "prometheus_flask_exporter-0.7.1.tar.gz", "has_sig": false, "md5_digest": "4ea37ab97da21a5018bdd4a34243665f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 13515, "upload_time": "2019-04-03T10:15:12", "url": "https://files.pythonhosted.org/packages/cd/3b/f415bde80abac77f91ba645803b7152516948673b9b1f48684576878a352/prometheus_flask_exporter-0.7.1.tar.gz" } ], "0.7.2": [ { "comment_text": "", "digests": { "md5": "6952d1706b751ad18d3fd2adacfeb2c9", "sha256": "cf9362c90efa691fe327256e835ce7bfc69b606034b9df4523a32f21605987c0" }, "downloads": -1, "filename": "prometheus_flask_exporter-0.7.2.tar.gz", "has_sig": false, "md5_digest": "6952d1706b751ad18d3fd2adacfeb2c9", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 13547, "upload_time": "2019-04-23T11:27:19", "url": "https://files.pythonhosted.org/packages/43/11/bd79e91053df05b732de98ce1d736637a23fb2c0f9a5fb28779b5ebef62a/prometheus_flask_exporter-0.7.2.tar.gz" } ], "0.7.3": [ { "comment_text": "", "digests": { "md5": "d2538f39aa519f179bb23daddf62fcd9", "sha256": "5c239d552164ca14732e0b6041cfc7a7d5e99271da1240964b597ddb0fad6d37" }, "downloads": -1, "filename": "prometheus_flask_exporter-0.7.3.tar.gz", "has_sig": false, "md5_digest": "d2538f39aa519f179bb23daddf62fcd9", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 13606, "upload_time": "2019-05-18T11:51:31", "url": "https://files.pythonhosted.org/packages/27/22/47822dfdf43f8f383f3beff7a684666651c59cfbca8aa150066f67abb3bf/prometheus_flask_exporter-0.7.3.tar.gz" } ], "0.7.4": [ { "comment_text": "", "digests": { "md5": "784ed111909830e14fa9049d0561a667", "sha256": "d07e3b6f61eee1a6a08d5b1cf0040866ba264ba68f62e180d64d146bfcfb6cda" }, "downloads": -1, "filename": "prometheus_flask_exporter-0.7.4.tar.gz", "has_sig": false, "md5_digest": "784ed111909830e14fa9049d0561a667", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 13665, "upload_time": "2019-05-20T11:44:21", "url": "https://files.pythonhosted.org/packages/fc/f3/29f575740b1ce26c2796d4043d0c898619b1853f9ae5a73ae4e08ec0702d/prometheus_flask_exporter-0.7.4.tar.gz" } ], "0.8.0": [ { "comment_text": "", "digests": { "md5": "2c151959d7f5a575bb3b994530170c64", "sha256": "9b5384e965926894862427adbdf503956b62dffcb47a54214a1080473659d74e" }, "downloads": -1, "filename": "prometheus_flask_exporter-0.8.0.tar.gz", "has_sig": false, "md5_digest": "2c151959d7f5a575bb3b994530170c64", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 13783, "upload_time": "2019-05-20T12:48:12", "url": "https://files.pythonhosted.org/packages/db/89/9cb6024bedb7559656840dc4fb2d1e7aeee84dd0d119bfe57bce459a1cc3/prometheus_flask_exporter-0.8.0.tar.gz" } ], "0.8.1": [ { "comment_text": "", "digests": { "md5": "6c07885726e55292e3630b8e64156830", "sha256": "c7376fc431d7b869f999561cf747a69b0bbf0ded174b0d0a993aa4f66b6c3340" }, "downloads": -1, "filename": "prometheus_flask_exporter-0.8.1.tar.gz", "has_sig": false, "md5_digest": "6c07885726e55292e3630b8e64156830", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 14186, "upload_time": "2019-06-13T11:46:52", "url": "https://files.pythonhosted.org/packages/59/01/dae1c3cef6c1e2ee00da88c60207f682dcd31f0aacde2d2a0400ef32f6cf/prometheus_flask_exporter-0.8.1.tar.gz" } ], "0.8.2": [ { "comment_text": "", "digests": { "md5": "692d86ff908fc2f1fcb7926ccff82082", "sha256": "79a85a3f79a45cb93b9f6fafe96964674c3f71660b7801aff201b3106b123ded" }, "downloads": -1, "filename": "prometheus_flask_exporter-0.8.2.tar.gz", "has_sig": false, "md5_digest": "692d86ff908fc2f1fcb7926ccff82082", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 14269, "upload_time": "2019-06-24T11:45:59", "url": "https://files.pythonhosted.org/packages/c6/08/f94086e6f56698a1da821c8b17b439783855d5b6e6cda5ebd865bcee27d4/prometheus_flask_exporter-0.8.2.tar.gz" } ], "0.9.0": [ { "comment_text": "", "digests": { "md5": "bab19e998f1eaebfac5385b126884724", "sha256": "6016d49b161083027f1379706335361fadb597884387f0d19e50d71d6698800e" }, "downloads": -1, "filename": "prometheus_flask_exporter-0.9.0.tar.gz", "has_sig": false, "md5_digest": "bab19e998f1eaebfac5385b126884724", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 15086, "upload_time": "2019-06-24T12:10:28", "url": "https://files.pythonhosted.org/packages/08/d6/a45737736d7e7ee68965c867ff666527002128a380afedef95258e8981b1/prometheus_flask_exporter-0.9.0.tar.gz" } ], "0.9.1": [ { "comment_text": "", "digests": { "md5": "0645f97cf08a2f0a863b82e8533297d0", "sha256": "3e16b2748bc85e528fb6ec97f5ceb1ddb8b9ac6725bae3913c003ec9ab2aee14" }, "downloads": -1, "filename": "prometheus_flask_exporter-0.9.1.tar.gz", "has_sig": false, "md5_digest": "0645f97cf08a2f0a863b82e8533297d0", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 15527, "upload_time": "2019-08-09T11:21:58", "url": "https://files.pythonhosted.org/packages/d2/f4/24ce3c9bf1cc6ceb42d187379ee2090fd4e158aad68a2f64f739234b54e2/prometheus_flask_exporter-0.9.1.tar.gz" } ], "0.9.3": [ { "comment_text": "", "digests": { "md5": "9e767b0e270957401daacd685e1defd3", "sha256": "ac69dad8b2472147f2efcc2a2576877f166f66b120b8a979864242ac0dbc7b34" }, "downloads": -1, "filename": "prometheus_flask_exporter-0.9.3.tar.gz", "has_sig": false, "md5_digest": "9e767b0e270957401daacd685e1defd3", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 15993, "upload_time": "2019-09-26T13:39:56", "url": "https://files.pythonhosted.org/packages/d1/2d/66a5e7b3d3c4e4cb7a87475c4d4cf93151411d967878dd8be16c7636bd4e/prometheus_flask_exporter-0.9.3.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "3b23b1c4621ce887ab0dc344e2f06cd7", "sha256": "4536537eadb5f3a4bf9c295987c8c68e79315d45dfd6d865510e526b64d2a735" }, "downloads": -1, "filename": "prometheus_flask_exporter-0.11.0.tar.gz", "has_sig": false, "md5_digest": "3b23b1c4621ce887ab0dc344e2f06cd7", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 17289, "upload_time": "2019-10-03T13:37:41", "url": "https://files.pythonhosted.org/packages/31/8b/d13d3ec6d63d7f53c8c5334be89d190fe04b413c935ca0a13f1ce8e477a3/prometheus_flask_exporter-0.11.0.tar.gz" } ] }