我需要设置一个/metrics
端点,这样普罗米修斯就可以使用一个端点的统计信息。我该怎么做?在
我的烧瓶应用程序中有这个:
@app.route('/metrics')
def metrics():
def generateMetrics():
metrics = ""
... some string builder logic
return metrics
response = make_response(generateMetrics(), 200)
response.mimetype = "text/plain"
return response
这是最好的办法吗?返回字符串(这里只返回metrics
)和返回纯文本有什么区别?我为什么需要这个模版?在
这是最好的方法吗?
有几种方法可以设置MIME类型,可以更好地解释和讨论in this StackOverflow question。你的方式很好,能完成任务。在
返回字符串和返回纯文本有什么区别?
如果返回字符串,烧瓶将自动handle some of the Response logic for you。这意味着使用一些默认值。如果设置了两个不同的端点,您将看到不同之处在于您的代码返回了以下标头:
而只返回字符串(和默认的MIME类型)将返回以下标头:
^{pr2}$为什么我需要缩印机?
您可能会说技术上更正确,因为您的响应只是纯文本,而不是HTML。然而,需要它的一个更强制的原因是,您正在使用的第三方系统(Prometheus)依赖或关心“Content Type”头的内容。如果他们这样做,那么你必须让他们接受它。在
示例代码
对于Content-Type报头演示,我使用了以下示例Python代码:
然后我用Postman查看了返回的正文和邮件头。在
相关问题 更多 >
编程相关推荐