0

我正在尝试使用pyformance 指标库将指标添加到基于 sanic 的应用程序中。

import random
import time

from sanic import Sanic
from sanic.response import json

from pyformance import MetricsRegistry
from pyformance.reporters.carbon_reporter import CarbonReporter

registry = MetricsRegistry()
__reporter__ = CarbonReporter(registry=registry,
                          reporting_interval=10,
                          prefix='sanic',
                          server='localhost',
                          port=2003)
__reporter__.start()
app = Sanic()

@app.route("/api/v1/foo", methods=["POST"])
   def foo(request):

      timer = registry.timer(".foo")
         with timer.time():
         time.sleep(random.randint(1, 2))
         return json({"status": True})

if __name__ == "__main__":
     app.run(host='0.0.0.0', port=8080, workers=1, access_log=False, 
     debug=False)

当运行 1 个 worker 时,一切看起来都很好,但是当配置更多 worker 时,没有任何指标被发送到 carbon。

感谢您提供任何帮助,以及从多工人 sanic 应用程序向石墨发送指标的不同方法。

4

1 回答 1

0

因此,多个工作人员基本上会对工作人员进行子处理,这可能是 IPC 回到主流程的事情。

尝试根据此运行多个工作人员,看看是否仍然存在相同的行为?如何在没有 WSGI 的情况下为 Gunicorn 配置 ExecStart?

gunicorn 在这里管理流程。

于 2018-07-31T10:09:44.683 回答