我正在嘗試使用 prometheus 監控應用程序的延遲。有一個裝飾器函數可以計算函數執行所需的時間。現在,當我用一個暴露的櫻桃樹端點包裝它時,它沒有任何響應。我還嘗試在我的裝飾器上使用@cherrypy.tools.register('before_handler'),然后將其附加為@cherrypy.tools.monitor_request(),但由于裝飾器接受一個函數,它將通過參數異常。def monitor_request(func): def inner1(*args, **kwargs): begin = time.time() func(*args, **kwargs) end = time.time() diff = end-begin REQUEST_LATENCY.labels(func.__name__).observe(diff) REQUEST_COUNT.labels(func.__name__).inc() return [email protected]@monitor_requestdef health1(self): """Give back health status""" return "is_healthy"
1 回答

qq_笑_17
TA貢獻1818條經驗 獲得超7個贊
我沒有返回來自cherrypy端點的響應結果,這是問題。正確的代碼應該是。
def inner1(*args, **kwargs):
begin = time.time()
x = func(*args, **kwargs)
end = time.time()
diff = end-begin
REQUEST_LATENCY.labels(func.__name__).observe(diff)
REQUEST_COUNT.labels(func.__name__).inc()
return x
return inner1
添加回答
舉報
0/150
提交
取消