From ce52c7644161f151abd76fb2cc01d405766a49f0 Mon Sep 17 00:00:00 2001 From: DNXie Date: Thu, 16 Oct 2025 13:18:28 -0700 Subject: [PATCH 1/3] check FORGE_DISABLE_METRICS flag when init --- apps/grpo/main.py | 3 ++- src/forge/controller/provisioner.py | 3 ++- src/forge/observability/metric_actors.py | 4 ++++ 3 files changed, 8 insertions(+), 2 deletions(-) diff --git a/apps/grpo/main.py b/apps/grpo/main.py index 1dbef0b76..0fe8937fc 100644 --- a/apps/grpo/main.py +++ b/apps/grpo/main.py @@ -306,7 +306,8 @@ async def main(cfg: DictConfig): metric_logging_cfg = cfg.get("metric_logging", {"console": {"log_per_rank": False}}) mlogger = await get_or_create_metric_logger() - await mlogger.init_backends.call_one(metric_logging_cfg) + if mlogger: + await mlogger.init_backends.call_one(metric_logging_cfg) # ---- Setup services ---- # diff --git a/src/forge/controller/provisioner.py b/src/forge/controller/provisioner.py index 5549a8cce..2bad43f25 100644 --- a/src/forge/controller/provisioner.py +++ b/src/forge/controller/provisioner.py @@ -492,7 +492,8 @@ async def shutdown_metric_logger(): logger.info("Shutting down metric logger...") try: mlogger = await get_or_create_metric_logger() - await mlogger.shutdown.call_one() + if mlogger: + await mlogger.shutdown.call_one() except Exception as e: logger.warning(f"Failed to shutdown metric logger: {e}") diff --git a/src/forge/observability/metric_actors.py b/src/forge/observability/metric_actors.py index 83ddd349e..efc401a91 100644 --- a/src/forge/observability/metric_actors.py +++ b/src/forge/observability/metric_actors.py @@ -75,6 +75,10 @@ async def get_or_create_metric_logger( """ # Get or create the singleton global logger global _global_logger + + if FORGE_DISABLE_METRICS.get_value(): + return _global_logger + if _global_logger is None: _global_logger = await get_or_spawn_controller( "global_logger", GlobalLoggingActor From ea5529dd732f4d199cfe03bcfd4a8ccfd6eaa9fc Mon Sep 17 00:00:00 2001 From: DNXie Date: Thu, 16 Oct 2025 13:26:16 -0700 Subject: [PATCH 2/3] update --- apps/grpo/main.py | 3 +-- src/forge/observability/metric_actors.py | 6 +++--- 2 files changed, 4 insertions(+), 5 deletions(-) diff --git a/apps/grpo/main.py b/apps/grpo/main.py index 0fe8937fc..1dbef0b76 100644 --- a/apps/grpo/main.py +++ b/apps/grpo/main.py @@ -306,8 +306,7 @@ async def main(cfg: DictConfig): metric_logging_cfg = cfg.get("metric_logging", {"console": {"log_per_rank": False}}) mlogger = await get_or_create_metric_logger() - if mlogger: - await mlogger.init_backends.call_one(metric_logging_cfg) + await mlogger.init_backends.call_one(metric_logging_cfg) # ---- Setup services ---- # diff --git a/src/forge/observability/metric_actors.py b/src/forge/observability/metric_actors.py index efc401a91..e9105afc6 100644 --- a/src/forge/observability/metric_actors.py +++ b/src/forge/observability/metric_actors.py @@ -76,9 +76,6 @@ async def get_or_create_metric_logger( # Get or create the singleton global logger global _global_logger - if FORGE_DISABLE_METRICS.get_value(): - return _global_logger - if _global_logger is None: _global_logger = await get_or_spawn_controller( "global_logger", GlobalLoggingActor @@ -207,6 +204,9 @@ async def init_backends(self, config: dict[str, Any]) -> None: """ self.config = config + if FORGE_DISABLE_METRICS.get_value(): + return + for backend_name, backend_config in config.items(): backend = get_logger_backend_class(backend_name)(backend_config) await backend.init(role=BackendRole.GLOBAL) From ddacf0b75fb11748dae0e15325d28608c44c6a17 Mon Sep 17 00:00:00 2001 From: DNXie Date: Thu, 16 Oct 2025 13:27:37 -0700 Subject: [PATCH 3/3] cleanup --- src/forge/controller/provisioner.py | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/forge/controller/provisioner.py b/src/forge/controller/provisioner.py index 2bad43f25..5549a8cce 100644 --- a/src/forge/controller/provisioner.py +++ b/src/forge/controller/provisioner.py @@ -492,8 +492,7 @@ async def shutdown_metric_logger(): logger.info("Shutting down metric logger...") try: mlogger = await get_or_create_metric_logger() - if mlogger: - await mlogger.shutdown.call_one() + await mlogger.shutdown.call_one() except Exception as e: logger.warning(f"Failed to shutdown metric logger: {e}")