From 4da413693caa762cf78ebcfcb7623c4ae50cd2fd Mon Sep 17 00:00:00 2001 From: Bjarke Madsen <bjarke@nordu.net> Date: Tue, 5 Nov 2024 13:50:06 +0100 Subject: [PATCH] Sync thread count and urllib pool size --- brian_dashboard_manager/grafana/provision.py | 9 +++++---- brian_dashboard_manager/grafana/utils/request.py | 4 +++- 2 files changed, 8 insertions(+), 5 deletions(-) diff --git a/brian_dashboard_manager/grafana/provision.py b/brian_dashboard_manager/grafana/provision.py index 5f56a4a..69da36b 100644 --- a/brian_dashboard_manager/grafana/provision.py +++ b/brian_dashboard_manager/grafana/provision.py @@ -9,7 +9,7 @@ from concurrent.futures import Future from concurrent.futures import ThreadPoolExecutor from brian_dashboard_manager.config import DEFAULT_ORGANIZATIONS from brian_dashboard_manager.grafana.utils.request import AdminRequest, \ - TokenRequest + TokenRequest, MAX_THREADS from brian_dashboard_manager.services.api import fetch_services @@ -41,7 +41,6 @@ from brian_dashboard_manager.templating.render import ( render_simple_dashboard, ) -MAX_THREADS = 16 logger = logging.getLogger(__name__) DASHBOARDS = { @@ -810,7 +809,9 @@ def _provision_org(config, org, org_config): with ThreadPoolExecutor(max_workers=MAX_THREADS) as thread_executor: args = (thread_executor, config, org_config, ds_name, token_request) - managed_dashboards = itertools.chain( + + # call to list is needed to queue up the futures + managed_dashboards = list(itertools.chain( _provision_interfaces(*args), _provision_gws_indirect(*args), _provision_gws_direct(*args), @@ -819,7 +820,7 @@ def _provision_org(config, org, org_config): _provision_service_dashboards(*args), _provision_static_dashboards(*args), _get_ignored_dashboards(*args) - ) + )) managed_dashboard_uids = {} for dashboard in managed_dashboards: diff --git a/brian_dashboard_manager/grafana/utils/request.py b/brian_dashboard_manager/grafana/utils/request.py index 8baa5e9..c126690 100644 --- a/brian_dashboard_manager/grafana/utils/request.py +++ b/brian_dashboard_manager/grafana/utils/request.py @@ -4,13 +4,15 @@ from requests.adapters import HTTPAdapter logger = logging.getLogger(__name__) +MAX_THREADS = 16 + class Request(requests.Session): def __init__(self, url, headers=None): super().__init__() # allow using up to 16 connections - adapter = HTTPAdapter(pool_maxsize=16) + adapter = HTTPAdapter(pool_maxsize=MAX_THREADS) self.mount(url, adapter) self.headers.update({ -- GitLab