|
@@ -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)
|