Flask Restful API 请求/响应时间监控

问题描述 投票:0回答:1

我有一个 Flask 应用程序,它有多个 REST API。我需要一种方法来跟踪或记录每个 API 请求所花费的时间。我需要一种可以捕获各种请求方法的时间的方法。

python rest flask flask-restful
1个回答
0
投票

有几种不同的方法可以实现这一目标。

a) 编写自己的监控逻辑。例如,您可以利用 Flask 的 @before_request@after_request 挂钩来捕获所有请求的响应时间,将它们写入数据库,然后查询数据库进行分析。

from datetime import datetime
from flask import g

@app.before_request
def start_timer():
    g.start_time = datetime.now()

@app.after_request
def log_time(response):
    elapsed_time = datetime.now() - g.start_time
    # Insert into database ...
    return response

b) 使用简单的 API 流量监控解决方案,例如 Apitally,它可以轻松为您提供所需的见解。

c) 使用更全面的第三方监控解决方案,例如New Relic、Datadog等

d) 设置您自己的监控基础设施,例如使用 Prometheus 和 Grafana。您可以使用 prometheus-flask-exporter 将 Flask 指标导出到 Prometheus。

e) 根据 Flask 应用程序的部署方式,您可以配置 Web 服务器以在请求日志中包含响应时间,然后分析这些时间。

(免责声明:我是 Apitally 的作者)。

© www.soinside.com 2019 - 2024. All rights reserved.