我正在尝试使用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 应用程序向石墨发送指标的不同方法。