烧瓶监控模块

flask-monitor的Python项目详细描述


烧瓶监测器

生成执行时间并在多个目标上发送数据

  • 日志
  • 内流b(和so grafana)
  • 拉比特mq
  • 零MQ
  • statsd

安装

pip install flask-monitor

git clone https://github.com/fraoustin/flask-monitor.git
cd flask-monitor
python setup.py install

使用量

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)

您可以添加事件的筛选器

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)

您可以创建自己的观察者

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)

内流b

pip install influxdb

用法

from flask_monitor.influxdb import ObserverInfluxdb
monitor.add_observer(ObserverInfluxdb(host='127.0.0.1',
                                    port=8086,
                                    user='root',
                                    password='root',
                                    db='mydb'))

拉比特mq

pip install pika

用法

from flask_monitor.rabbitmq import ObserverRabbit
import pika

monitor.add_observer(ObserverRabbit(host='127.0.0.1',
                            credentials = pika.PlainCredentials('guest', 'guest')))

零mq

pip install zmq

用法

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

用法

from flask_monitor.statsd import ObserverStatsd
monitor.add_observer(ObserverStatsd(host='127.0.0.1', port=8125, format="{RequestUrl}"))

第0.2.6节

  • 热修复问题5管理导入量db

0.2.5伏

  • 热修复要求

第0.2.4节

  • 添加ssl,验证ssl作为observerinfloxdb的选项

第0.2.3节

  • sujaymansingh的correction setup.py

第0.2.2节

  • Sujaymansingh的修正值

第0.2.1节

  • 为开始-结束-完成请求添加记录器调试

0.2.0伏

  • 更改ObserverMetrics的管理记录器

第0.1.3节

  • 名称包的修补程序

第0.1.2节

  • 管理记录器默认值

第0.1.1节

  • 管理setup.py generic

0.1.0伏

  • 初始化

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java如何解决这个索引越界问题   HQL表达式中的java Null   未使用mongojackson删除java文档   windows Java编译了我的程序,但我无法运行它   java获取泛型T的类型   用于非IBM Windows计算机的java IBM SDK 7?   java数据库上多线程插入(更新)和单线程顺序插入(更新)的性能比较?   集合是否存在只接受一个条目并允许从映射中获取值的Java映射?   带有共享主键的JavaSpring数据JPA:OneToOne似乎不起作用   java与<>的区别?方法和变量声明中的超级/扩展字符串>   java从终端以调试模式运行jar   java如何找出谁破坏了密钥类型的事件?   osgi在Java中访问一个包的多个版本   如果输入不是整数,java会反复请求用户输入   在java中导入本地库错误   JavaE(fx)剪辑:带有javafx的首选项页面   基本Java映射的orm对象哈希映射(将POJO映射为映射)