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.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.0.tar.gz
(16.3 kB
view details)
File details
Details for the file flask-monitor-0.2.0.tar.gz.
File metadata
- Download URL: flask-monitor-0.2.0.tar.gz
- Upload date:
- Size: 16.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
47933676774d95a38073ef886a3889baddd0e9fd21ea28f1137dba566e89435c
|
|
| MD5 |
59f458da0453aa1a56f57c57e3593160
|
|
| BLAKE2b-256 |
cb2f47d1d5495cd801c3600b839ecbeaab20955c05e09c8fcaae4253a357d2b5
|