余尚辉 2 mesi fa
parent
commit
9a7798e3ca
2 ha cambiato i file con 13 aggiunte e 5 eliminazioni
  1. 11 5
      ai-slibra-assistant/api/AiBot.py
  2. 2 0
      ai-slibra-assistant/util/registry.py

+ 11 - 5
ai-slibra-assistant/api/AiBot.py

@@ -23,9 +23,10 @@ from database import *
 from scene import Dialog,Msg
 from scene import Dialog,Msg
 from entity import Error
 from entity import Error
 import traceback
 import traceback
-from util import insert_log, timetic
-from prometheus_fastapi_instrumentator import Instrumentator, metrics
-#from prometheus_client import Summary
+from util import insert_log, timetic, BOT_CREATE_ACCOUNT_LATENCY
+
+from prometheus_fastapi_instrumentator import Instrumentator
+import time
 
 
 
 
 logger=get_logger("log")
 logger=get_logger("log")
@@ -34,11 +35,13 @@ logger=get_logger("log")
 app = FastAPI()
 app = FastAPI()
 
 
 # 服务监控,qps,latent, cpu利用率
 # 服务监控,qps,latent, cpu利用率
-Instrumentator().instrument(app).expose(app)
+
+
 
 
 @app.post("/botservice")
 @app.post("/botservice")
 @timetic
 @timetic
 def botservice(reqbot:reqRobot):
 def botservice(reqbot:reqRobot):
+    start_time = time.time()
     bid, uid, code, asr = reqbot.taskId, reqbot.userId, reqbot.nodeId, reqbot.asrText
     bid, uid, code, asr = reqbot.taskId, reqbot.userId, reqbot.nodeId, reqbot.asrText
     session_id, record_id = reqbot.sessionId, reqbot.recordId
     session_id, record_id = reqbot.sessionId, reqbot.recordId
     logger.info("智能客服:botId: {},session:{}, uid: {}, nodeId: {}, ASR: {}".format(bid, session_id, uid, code, asr))
     logger.info("智能客服:botId: {},session:{}, uid: {}, nodeId: {}, ASR: {}".format(bid, session_id, uid, code, asr))
@@ -83,7 +86,10 @@ def botservice(reqbot:reqRobot):
         logger.error(e)
         logger.error(e)
         #del_cache(uid, bid, 'status', session_id)
         #del_cache(uid, bid, 'status', session_id)
         return ChatResponse(code=Error.error.value, message="internal error").to_json_string()
         return ChatResponse(code=Error.error.value, message="internal error").to_json_string()
+    finally:
+        latency = (time.time() - start_time)
+        AI_BOT_REQUEST_LATENCY.labels(bid).observe(latency)
 
 
-
+Instrumentator().instrument(app).expose(app)
 if __name__ == '__main__':
 if __name__ == '__main__':
     uvicorn.run("AiBot:app", host='0.0.0.0', port=40072,workers=4)
     uvicorn.run("AiBot:app", host='0.0.0.0', port=40072,workers=4)

+ 2 - 0
ai-slibra-assistant/util/registry.py

@@ -0,0 +1,2 @@
+from prometheus_client import Counter,Histogram
+AI_BOT_REQUEST_LATENCY = Histogram('ai_bot_request_latency',  '文本机器人接口耗时',['bucket'])