Flask Monitor module
Project description
Flask-monitor
Generate time of execution and send data on multi destination
log
influxdb (and so grafana)
rabbitmq
zeromq
statsd
Installation
pip install flask-monitor
Or
git clone https://github.com/fraoustin/flask-monitor.git cd flask-monitor python setup.py install
Usage
from flask import Flask, request from flask_monitor import Monitor , ObserverLog import logging app = Flask(__name__) monitor = Monitor('monitor', __name__) app.register_blueprint(monitor) monitor.add_observer(ObserverLog()) @app.route("/") def hello(): return "Hello World!" if __name__ == "__main__": app.logger.setLevel(logging.INFO) for h in app.logger.handlers: h.setLevel(logging.INFO) app.run(port=8080)
You can add a filter of event
from flask import Flask, request from flask_monitor import Monitor , ObserverLog def filterExt(event): return event.response.status_code == 400 app = Flask(__name__) monitor = Monitor('monitor', __name__) app.register_blueprint(monitor) monitor.add_observer(ObserverLog(filter=filterExt)) @app.route("/") def hello(): return "Hello World!" if __name__ == "__main__": app.run(port=8080)
You can create your own observer
from flask import Flask, request from flask_monitor import Monitor , ObserverLog class myeventlog(ObserverMetrics): def __init__(self): ObserverMetrics.__init__(self, filter=self.filter) def action(self, event): logging.getLogger().error(event.json) def filter(self, event): return event.response.status_code != 400 app = Flask(__name__) monitor = Monitor('monitor', __name__) app.register_blueprint(monitor) monitor.add_observer(myeventlog()) @app.route("/") def hello(): return "Hello World!" if __name__ == "__main__": app.run(port=8080)
Influxdb
pip install influxdb
Usage
from flask_monitor.influxdb import ObserverInfluxdb monitor.add_observer(ObserverInfluxdb(host='127.0.0.1', port=8086, user='root', password='root', db='mydb'))
RabbitMq
pip install pika
Usage
from flask_monitor.rabbitmq import ObserverRabbit import pika monitor.add_observer(ObserverRabbit(host='127.0.0.1', credentials = pika.PlainCredentials('guest', 'guest')))
ZeroMq
pip install zmq
Usage
from flask_monitor.zeromq import ObserverZmq import zmq monitor.add_observer(ObserverZmq(context=zmq.Context(), addr='tcp://127.0.0.1:8080'))
Statsd
pip install statsd
Usage
from flask_monitor.statsd import ObserverStatsd monitor.add_observer(ObserverStatsd(host='127.0.0.1', port=8125, format="{RequestUrl}"))
V. 0.2.6
hotfix Issue#5 manage import influxdb
V. 0.2.5
hotfix requirement
V. 0.2.4
Add ssl, verify_ssl as options for ObserverInfluxdb
V. 0.2.3
correction setup.py by sujaymansingh
V. 0.2.2
correction statd by sujaymansingh
V. 0.2.1
add logger debug for start end finish request
V. 0.2.0
change manage logger of ObserverMetrics
V. 0.1.3
hotfix for name pkg
V. 0.1.2
manage logger default
V. 0.1.1
manage setup.py generic
V. 0.1.0
init
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
flask-monitor-0.2.6.tar.gz
(13.3 kB
view details)
File details
Details for the file flask-monitor-0.2.6.tar.gz
.
File metadata
- Download URL: flask-monitor-0.2.6.tar.gz
- Upload date:
- Size: 13.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 04a91bd674f685df142d0880cec5c873ee7ec2d4b3b129eb41abaefabedc27a0 |
|
MD5 | 46090ef663288edcac97ab1c02725d28 |
|
BLAKE2b-256 | 32d816e23cd6ac4006253fe38d5ba54f8da1206cb20a96185027b71906e7510d |