From c2e7b5a67d8de7cb55457edde9b9779df49e1e71 Mon Sep 17 00:00:00 2001 From: Victor Shyba Date: Tue, 9 Mar 2021 00:24:42 -0300 Subject: [PATCH] restore some of the interrupt metrics --- lbry/wallet/server/session.py | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/lbry/wallet/server/session.py b/lbry/wallet/server/session.py index 595ee56d5..daf8aa9f3 100644 --- a/lbry/wallet/server/session.py +++ b/lbry/wallet/server/session.py @@ -1003,9 +1003,20 @@ class LBRYElectrumX(SessionBase): self.session_mgr.executor_time_metric.observe(time.perf_counter() - start) async def run_and_cache_query(self, query_name, kwargs): + start = time.perf_counter() if isinstance(kwargs, dict): kwargs['release_time'] = format_release_time(kwargs.get('release_time')) - return await self.db.search_index.session_query(query_name, kwargs) + try: + self.session_mgr.pending_query_metric.inc() + return await self.db.search_index.session_query(query_name, kwargs) + except (TimeoutError, asyncio.TimeoutError) as error: + metrics = self.get_metrics_or_placeholder_for_api(query_name) + metrics.query_interrupt(start, error.metrics) + self.session_mgr.interrupt_count_metric.inc() + raise RPCError(JSONRPC.QUERY_TIMEOUT, 'query timed out') + finally: + self.session_mgr.pending_query_metric.dec() + self.session_mgr.executor_time_metric.observe(time.perf_counter() - start) async def mempool_compact_histogram(self): return self.mempool.compact_fee_histogram()