Prometheus metrics exporter for Flask
Project description
# Prometheus Flask exporter
[](https://travis-ci.org/rycus86/prometheus_flask_exporter)
[](https://pypi.python.org/pypi/prometheus-flask-exporter)
[](https://pypi.python.org/pypi/prometheus-flask-exporter)
[](https://coveralls.io/github/rycus86/prometheus_flask_exporter?branch=master)
[](https://codeclimate.com/github/rycus86/prometheus_flask_exporter)
This library provides HTTP request metrics to export into
[Prometheus](https://prometheus.io/).
It can also track method invocations using convenient functions.
## Usage
```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
[](https://travis-ci.org/rycus86/prometheus_flask_exporter)
[](https://pypi.python.org/pypi/prometheus-flask-exporter)
[](https://pypi.python.org/pypi/prometheus-flask-exporter)
[](https://coveralls.io/github/rycus86/prometheus_flask_exporter?branch=master)
[](https://codeclimate.com/github/rycus86/prometheus_flask_exporter)
This library provides HTTP request metrics to export into
[Prometheus](https://prometheus.io/).
It can also track method invocations using convenient functions.
## Usage
```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
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
File details
Details for the file prometheus_flask_exporter-0.0.2.tar.gz.
File metadata
- Download URL: prometheus_flask_exporter-0.0.2.tar.gz
- Upload date:
- Size: 3.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d8bbfc55d43fafc9222c2c17afd8e349c037d463ed65878a9f54d5d00a8ded09
|
|
| MD5 |
f8aa9a67b0e3fa8c554b525499c304f2
|
|
| BLAKE2b-256 |
b6ba3c12204603ba365738a8b04750cc1308e513d77a56c6eb49cbaa23c170fa
|