FastAPI 中间件:添加 Prometheus 检测包时出现性能问题 - 增加 REST api 的延迟

Ril*_*Hun 5 metrics middleware datadog prometheus fastapi

我们正在尝试减少使用 FastAPI 部署的 BERT 模型预测服务的延迟。通过端点调用预测/predict。我们研究了跟踪,发现瓶颈之一是prometheus-fastapi-instrumentator. 大约 1% 的请求会这样做,timeout因为它们超过了 10 秒。

我们还发现,某些指标未在每秒 4 个请求上报告。有些请求需要 30-50 秒,甚至需要starlette/fastapi很长时间。因此,在高使用率下,/metrics端点似乎无法获得足够的资源,因此所有/metrics请求都会等待一段时间并最终失败。因此,拥有单独的指标容器可能会有所帮助。或者如果可能的话,在高负载下延迟/暂停指标。任何见解/指导将不胜感激。

在此输入图像描述

在此输入图像描述

在此输入图像描述

代码示例:

这是我用来构建 FastAPI 预测服务的模板。唯一的区别是我使用的是基于 BERT 的模型,而不是模板中使用的简单模型。