Skip to content

Commit 63974df

Browse files
cleaner reporting on which metrics implementation is used in the test harness worker
1 parent 6fed505 commit 63974df

5 files changed

Lines changed: 26 additions & 4 deletions

File tree

harness/main.py

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -71,12 +71,9 @@ def main() -> None:
7171

7272
metrics_port = env_int_or_default("HARNESS_METRICS_PORT", 9991)
7373
metrics_settings = MetricsSettings(http_port=metrics_port)
74-
print(f"Prometheus metrics will be served on port {metrics_port}")
7574

76-
# Main-process MetricsCollector: writes workflow-client / HTTP metrics into
77-
# the shared PROMETHEUS_MULTIPROC_DIR so they merge with worker subprocess
78-
# metrics in the exported /metrics payload.
7975
metrics_collector = create_metrics_collector(metrics_settings)
76+
print(f"Prometheus metrics server started on port {metrics_port} ({metrics_collector.collector_name()} metrics)")
8077
clients = OrkesClients(configuration, metrics_collector=metrics_collector)
8178

8279
register_metadata(clients)

src/conductor/client/telemetry/canonical_metrics_collector.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,9 @@ class CanonicalMetricsCollector(MetricsCollectorBase):
2929
def __init__(self, settings: MetricsSettings):
3030
super().__init__(settings)
3131

32+
def collector_name(self) -> str:
33+
return "canonical"
34+
3235
# ------------------------------------------------------------------
3336
# Counters
3437
# ------------------------------------------------------------------

src/conductor/client/telemetry/legacy_metrics_collector.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,9 @@ def __init__(self, settings: MetricsSettings):
2626
self.quantile_metrics: Dict[str, Any] = {}
2727
self.quantile_data: Dict[str, deque] = {}
2828

29+
def collector_name(self) -> str:
30+
return "legacy"
31+
2932
# ------------------------------------------------------------------
3033
# Counters
3134
# ------------------------------------------------------------------

src/conductor/client/telemetry/metrics_collector_base.py

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -363,6 +363,11 @@ def _get_histogram(self, name, documentation, labelnames, buckets=None):
363363
# Subclasses implement each with real logic or pass (no-op).
364364
# =========================================================================
365365

366+
@abc.abstractmethod
367+
def collector_name(self) -> str:
368+
"""Return the name of this collector implementation ('legacy', 'canonical')."""
369+
...
370+
366371
@abc.abstractmethod
367372
def increment_task_poll(self, task_type: str) -> None: ...
368373

tests/unit/telemetry/test_metrics_factory.py

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -61,6 +61,19 @@ def test_canonical_takes_priority_over_legacy(self):
6161
collector = create_metrics_collector(self.settings)
6262
self.assertIsInstance(collector, CanonicalMetricsCollector)
6363

64+
def test_legacy_collector_name(self):
65+
"""LegacyMetricsCollector.collector_name() returns 'legacy'."""
66+
collector = create_metrics_collector(self.settings)
67+
self.assertEqual(collector.collector_name(), "legacy")
68+
69+
def test_canonical_collector_name(self):
70+
"""CanonicalMetricsCollector.collector_name() returns 'canonical'."""
71+
os.environ["WORKER_CANONICAL_METRICS"] = "true"
72+
collector = create_metrics_collector(
73+
MetricsSettings(directory=tempfile.mkdtemp())
74+
)
75+
self.assertEqual(collector.collector_name(), "canonical")
76+
6477
def test_both_implementations_satisfy_same_interface(self):
6578
"""Both implementations have the same public method surface."""
6679
legacy = LegacyMetricsCollector(self.settings)
@@ -70,6 +83,7 @@ def test_both_implementations_satisfy_same_interface(self):
7083
)
7184

7285
required_methods = [
86+
"collector_name",
7387
"increment_task_poll",
7488
"increment_task_poll_error",
7589
"increment_task_execution_started",

0 commit comments

Comments
 (0)