【发布时间】:2012-05-30 21:19:30
【问题描述】:
收集对烧瓶应用程序发出的所有 HTTP 请求的指标的最佳方法是什么。
我想测量的东西是:
- 延迟 - 每个请求的时间。
- 速率 - 每分钟的请求数等。
- 没有失败 - 如果有失败,有多少等。
我还想将对可变路径的请求分组为一个。例如,对路由“/resource/”的所有请求都应针对名为“RESOURCE”的指标进行测量,而不是针对每个资源单独进行测量。
我目前计划通过编写一个装饰器来做到这一点。缺点是我需要为每种方法添加装饰器。 Flask 有没有办法为我提供钩子来自动测量这些。
【问题讨论】:
-
这不是您应该在应用程序级别执行的操作,而是在网络服务器级别执行的操作。不,内置网络服务器不应该在生产中使用。
-
我想在框架(flask/wsgi)级别执行此操作。我没有使用内置的网络服务器。
-
@ThiefMaster 在应用程序中收集指标并将其导出到 Prometheus 是一个有效的解决方案 - WSGI 服务器或代理没有所有重要的信息,您无法细分用户、收集业务指标、将速度分开视图(仅通过 URL 解析)等。这种方法有很多优点。