From 9920ed0960efa71f639433535427cecf6db0129a Mon Sep 17 00:00:00 2001 From: Bob Yang Date: Wed, 2 Jul 2025 14:33:35 -0700 Subject: [PATCH] Add job_def_type for logging appdef vs pipedef to torchxevent Differential Revision: D72684562 --- torchx/runner/events/__init__.py | 6 +++++- torchx/runner/events/api.py | 7 +++++++ 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/torchx/runner/events/__init__.py b/torchx/runner/events/__init__.py index 8fab92a10..7a7bd3de3 100644 --- a/torchx/runner/events/__init__.py +++ b/torchx/runner/events/__init__.py @@ -31,7 +31,7 @@ from torchx.runner.events.handlers import get_logging_handler from torchx.util.session import get_session_id_or_create_new -from .api import SourceType, TorchxEvent # noqa F401 +from .api import JobDefType, SourceType, TorchxEvent # noqa F401 # pyre-fixme[9]: _events_logger is a global variable _events_logger: logging.Logger = None @@ -88,6 +88,7 @@ def __init__( app_id: Optional[str] = None, app_image: Optional[str] = None, app_metadata: Optional[Dict[str, str]] = None, + job_def_type: JobDefType = JobDefType.AppDef, runcfg: Optional[str] = None, workspace: Optional[str] = None, ) -> None: @@ -97,6 +98,7 @@ def __init__( app_id, app_image=app_image, app_metadata=app_metadata, + job_def_type=job_def_type, runcfg=runcfg, workspace=workspace, ) @@ -148,6 +150,7 @@ def _generate_torchx_event( app_id: Optional[str] = None, app_image: Optional[str] = None, app_metadata: Optional[Dict[str, str]] = None, + job_def_type: JobDefType = JobDefType.AppDef, runcfg: Optional[str] = None, source: SourceType = SourceType.UNKNOWN, workspace: Optional[str] = None, @@ -159,6 +162,7 @@ def _generate_torchx_event( app_id=app_id, app_image=app_image, app_metadata=app_metadata, + job_def_type=job_def_type, runcfg=runcfg, source=source, workspace=workspace, diff --git a/torchx/runner/events/api.py b/torchx/runner/events/api.py index f03815e75..fee6f105b 100644 --- a/torchx/runner/events/api.py +++ b/torchx/runner/events/api.py @@ -19,6 +19,11 @@ class SourceType(str, Enum): EXTERNAL = "EXTERNAL" +class JobDefType(str, Enum): + AppDef = "AppDef" + PipeDef = "PipeDef" + + @dataclass class TorchxEvent: """ @@ -37,6 +42,7 @@ class TorchxEvent: wall_time_usec: Wall time spent in usec start_epoch_time_usec: Epoch time in usec when runner event starts Workspace: Track how different workspaces/no workspace affects build and scheduler + job_def_type: Type of the job definition (i.e AppDef) """ session: str @@ -55,6 +61,7 @@ class TorchxEvent: exception_type: Optional[str] = None exception_message: Optional[str] = None exception_source_location: Optional[str] = None + job_def_type: JobDefType = JobDefType.AppDef def __str__(self) -> str: return self.serialize()