Skip to main content

Prometheus metrics exporter for Flask

Project description

Prometheus Flask exporter
=========================

|Travis| |PyPI| |PyPI| |Coverage Status| |Code Climate|

This library provides HTTP request metrics to export into
`Prometheus <https://prometheus.io/>`__. It can also track method
invocations using convenient functions.

Usage
-----

.. code:: python

from flask import Flask, request
from prometheus_flask_exporter import PrometheusMetrics

app = Flask(__name__)
metrics = PrometheusMetrics(app)

@app.route('/')
def main():
pass # requests tracked by default

@app.route('/skip')
@metrics.do_not_track()
def skip():
pass # default metrics are not collected

@app.route('/<item_type>')
@metrics.do_not_track()
@metrics.counter('invocation_by_type', 'Number of invocations by type',
labels={'item_type': lambda: request.view_args['type']})
def by_type(item_type):
pass # only the counter is collected, not the default metrics

@app.route('/long-running')
@metrics.gauge('in_progress', 'Long running requests in progress')
def long_running():
pass

@app.route('/status/<int:status>')
@metrics.do_not_track()
@metrics.summary('requests_by_status', 'Request latencies by status',
labels={'status': lambda r: r.status_code})
@metrics.histogram('requests_by_status_and_path', 'Request latencies by status and path',
labels={'status': lambda r: r.status_code, 'path': lambda: request.path})
def echo_status(status):
return 'Status: %s' % status, status

License
-------

MIT

.. |Travis| image:: https://img.shields.io/travis/rycus86/prometheus_flask_exporter.svg
:target: https://travis-ci.org/rycus86/prometheus_flask_exporter
.. |PyPI| image:: https://img.shields.io/pypi/v/prometheus-flask-exporter.svg
:target: https://pypi.python.org/pypi/prometheus-flask-exporter
.. |PyPI| image:: https://img.shields.io/pypi/pyversions/prometheus-flask-exporter.svg
:target: https://pypi.python.org/pypi/prometheus-flask-exporter
.. |Coverage Status| image:: https://coveralls.io/repos/github/rycus86/prometheus_flask_exporter/badge.svg?branch=master
:target: https://coveralls.io/github/rycus86/prometheus_flask_exporter?branch=master
.. |Code Climate| image:: https://codeclimate.com/github/rycus86/prometheus_flask_exporter/badges/gpa.svg
:target: https://codeclimate.com/github/rycus86/prometheus_flask_exporter

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

prometheus_flask_exporter-0.0.4.tar.gz (4.6 kB view hashes)

Uploaded Source

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page