如何在Flask应用程序中收集性能指标?

she*_*eki 4 python flask

收集针对烧瓶应用程序的所有HTTP请求的指标的最佳方法是什么.

我想测量的是:

  • 延迟 - 每个请求的时间.
  • 费率 - 每分钟请求数等
  • 没有失败 - 如果有失败,有多少等

另外,我想将请求分组为一个变量路径.例如,应该针对名为"RESOURCE"的度量来测量对路由'/ resource /'的所有请求,而不是针对每个资源单独测量.

我打算通过写一个装饰器来做到这一点.缺点是我需要为每个方法添加装饰器.有没有方法可以让Flask为我提供自动测量这些钩子的钩子.

Sea*_*ira 6

查看flask.Flask.before_requestflask.Flask.teardown_request装饰器的文档.您需要一些简单快速的指标来发送指标 - 查看石墨缩放以获得示例合适的后端.

一旦你的日志聚合后端,那么在每个请求之前和之后注册两个函数来执行是一件简单的事情.