Skip to content

Commit 2ff2a03

Browse files
authored
Report when each phase starts (#249)
1 parent 423f81d commit 2ff2a03

File tree

2 files changed

+14
-0
lines changed

2 files changed

+14
-0
lines changed

machine/jobs/build_clearml_helper.py

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -91,6 +91,15 @@ def report_clearml_progress(
9191
"value": progress_status.step_count,
9292
}
9393
)
94+
if progress_status.phase_started is not None:
95+
props.append(
96+
{
97+
"type": datetime,
98+
"name": f"{progress_status.phase_stage}_started",
99+
"description": "Phase Started",
100+
"value": progress_status.phase_started,
101+
}
102+
)
94103
if len(props) > 0:
95104
task.set_user_properties(*props)
96105

machine/utils/phased_progress_reporter.py

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
from __future__ import annotations
22

33
from dataclasses import dataclass
4+
from datetime import datetime
45
from types import TracebackType
56
from typing import Callable, ContextManager, Iterable, Optional, Sequence, Type
67

@@ -19,6 +20,7 @@ class Phase:
1920
class PhaseProgressStatus(ProgressStatus):
2021
phase_stage: Optional[str] = None
2122
phase_step: Optional[int] = None
23+
phase_started: Optional[datetime] = None
2224

2325

2426
class PhaseProgress(ContextManager[Callable[[ProgressStatus], None]]):
@@ -70,6 +72,7 @@ def __init__(self, progress: Optional[Callable[[ProgressStatus], None]], phases:
7072
self._percent_completed = 0.0
7173
self._step = 0
7274
self._prev_phase_last_step = 0
75+
self._phase_started = None
7376

7477
@property
7578
def phases(self) -> Sequence[Phase]:
@@ -80,6 +83,7 @@ def current_phase(self) -> Optional[Phase]:
8083
return None if self._current_phase_index == -1 else self._phases[self._current_phase_index]
8184

8285
def start_next_phase(self) -> PhaseProgress:
86+
self._phase_started = datetime.now()
8387
self._prev_phase_last_step = self._step
8488
self._percent_completed += self._current_phase_percentage
8589
self._current_phase_index += 1
@@ -102,6 +106,7 @@ def _report(self, value: ProgressStatus) -> None:
102106
value.step_count,
103107
self.current_phase.stage if self.current_phase is not None else None,
104108
value.step,
109+
self._phase_started,
105110
)
106111
)
107112

0 commit comments

Comments
 (0)