使用 Flask 的 prometheus_client 自定义指标

Posted

技术标签:

【中文标题】使用 Flask 的 prometheus_client 自定义指标【英文标题】:prometheus_client custom metrics with Flask 【发布时间】:2021-01-06 01:46:32 【问题描述】:

我正在尝试通过 Flask 为自定义 Prometheus 指标提供服务。看着https://github.com/prometheus/client_python,我的代码类似于:

from flask import Flask
from werkzeug.middleware.dispatcher import DispatcherMiddleware
from prometheus_client import make_wsgi_app

# Create my app
app = Flask(__name__)

# Add prometheus wsgi middleware to route /metrics requests
app.wsgi_app = DispatcherMiddleware(app.wsgi_app, 
    '/metrics': make_wsgi_app()
)

使用此设置,我不确定我应该在哪里声明我的自定义指标?

【问题讨论】:

您的自定义指标在您创建它们时会自动注册,它们将在/metrics 中公开。你的问题到底是什么? 【参考方案1】:

通过将我的自定义收集器注册到 REGISTRY 解决了这个问题

REGISTRY.register(CustomCollector())

然后使用

DispatcherMiddleware(
    app.wsgi_app, "/metrics": make_wsgi_app(REGISTRY),
)

【讨论】:

以上是关于使用 Flask 的 prometheus_client 自定义指标的主要内容,如果未能解决你的问题,请参考以下文章

flask使用websocket

Python之Flask框架使用

Flask初识

[Python][flask][flask-login]关于flask-login中各种API使用实例

使用flask进行前端后台的数据交互

flask的使用