DavidLiu 5 mēneši atpakaļ
vecāks
revīzija
006be1b1c6
2 mainītis faili ar 8 papildinājumiem un 3 dzēšanām
  1. 7 2
      src/core/callcenter/esl/client.py
  2. 1 1
      src/core/callcenter/views.py

+ 7 - 2
src/core/callcenter/esl/client.py

@@ -50,6 +50,7 @@ class InboundClient:
         self.handler_table = self.scan_esl_event_handlers()
         self.default_event_handler = DefaultEslEventHandler(self, self.bot_agent)
         self.host, self.port, self.password = SERVE_HOST, '8021', '4918257983818884358'
+        self.ESL_EVENT_LATENCY = registry.new_histogram('liuwei_esl_event_latency_seconds', 'Esl Event latency in seconds', ['eventName'])
         self.executors = {x: concurrent.futures.ThreadPoolExecutor(max_workers=1) for x in range(self.thread_num)}
         self.delay_action_executor = concurrent.futures.ThreadPoolExecutor(max_workers=5)
         self.delay_action_scheduler = BackgroundScheduler()
@@ -100,8 +101,8 @@ class InboundClient:
                     time.sleep(3)
                     self.start()
                 else:
-                    threading.Thread(target=self.process_esl_event, args=(e,)).start()
-                    # self.choose_thread_pool_executor(e).submit(self.process_esl_event, e)
+                    # threading.Thread(target=self.process_esl_event, args=(e,)).start()
+                    self.choose_thread_pool_executor(e).submit(self.process_esl_event, e)
 
     def choose_thread_pool_executor(self, e):
         call_id = EslEventUtil.getCallId(e)
@@ -117,6 +118,7 @@ class InboundClient:
 
     def process_esl_event(self, e):
         # self.logger.info(json.loads(e.serialize('json')))
+        start_time = time.time()
         event_name = EslEventUtil.getEventName(e)
         coreUUID = EslEventUtil.getCoreUuid(e)
         address = self.host + ':' + self.port
@@ -135,6 +137,9 @@ class InboundClient:
                 self.default_event_handler.handle(address, e, coreUUID)
         except:
             traceback.print_exc()
+        finally:
+            latency = time.time() - start_time
+            self.ESL_EVENT_LATENCY.labels(event_name).observe(latency)
 
     def do_delay_action(self, action, message):
         delay_action = DelayAction.from_json(message)

+ 1 - 1
src/core/callcenter/views.py

@@ -22,7 +22,7 @@ agent_service = AgentService(app)
 agent_oper_service = AgentOperService(app)
 acd_service = AcdService(inbound_client, app)
 agent.acd_service = acd_service
-CONTENT_TYPE_LATEST = str('text/plain; version=0.0.4; charset=utf-8')
+
 REQUEST_LATENCY = registry.new_histogram('liuwei_request_latency_seconds', 'Request latency in seconds', ['method', 'endpoint'])
 
 @app.before_request