Skip to content

Commit b13ed4d

Browse files
committed
refactor: keep correlated tracing out of OVOS core
1 parent ba376aa commit b13ed4d

4 files changed

Lines changed: 0 additions & 150 deletions

File tree

docs/performance-metrics.md

Lines changed: 0 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -85,17 +85,3 @@ histogram_quantile(
8585
These histograms are cumulative and reset when the process restarts. They use
8686
no session, client, utterance, or skill labels, avoiding unbounded cardinality
8787
and user-content leakage.
88-
89-
## Request-correlated benchmark traces
90-
91-
Set `OVOS_PERFORMANCE_TRACE=true` only for a controlled benchmark to emit an
92-
opaque request ID and a wall-clock nanosecond timestamp when the intent service
93-
receives an utterance. The structured log record is prefixed with
94-
`performance_trace` and uses the stage `runtime_receive`.
95-
96-
Request IDs are intentionally absent from the Prometheus endpoint. The trace
97-
contains no utterance, skill, client, credential, or session payload and does
98-
not change the message or public bus contract. Join this opt-in event with the
99-
matching Workshop `skill_reply_emit`, listener stages, and client-receipt
100-
timestamp outside the runtime. Cluster nodes must have synchronized clocks
101-
before interpreting cross-process intervals.

ovos_core/_performance_trace.py

Lines changed: 0 additions & 92 deletions
This file was deleted.

ovos_core/intent_services/service.py

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,6 @@
5454
UTTERANCE_TRANSFORM,
5555
pipeline_matching_histogram,
5656
)
57-
from ovos_core._performance_trace import trace_performance_stage
5857
from ovos_core.intent_services.dispatcher import (
5958
DEFAULT_HANDLER_TIMEOUT,
6059
IntentDispatcher,
@@ -639,7 +638,6 @@ def handle_utterance(self, message: Message):
639638
Args:
640639
message (Message): The messagebus data
641640
"""
642-
trace_performance_stage("runtime_receive", message=message)
643641
with UTTERANCE_PREPROCESS.measure():
644642
# Get utterance utterance_plugins additional context
645643
with UTTERANCE_TRANSFORM.measure():

test/unittests/test_runtime_metrics.py

Lines changed: 0 additions & 42 deletions
Original file line numberDiff line numberDiff line change
@@ -10,11 +10,6 @@
1010
performance_histograms,
1111
pipeline_matching_histogram,
1212
)
13-
from ovos_core._performance_trace import (
14-
message_request_id,
15-
trace_performance_stage,
16-
)
17-
from ovos_bus_client.message import Message
1813
from ovos_core._prometheus import (
1914
collect_histograms,
2015
load_metric_collectors,
@@ -55,43 +50,6 @@ def test_histogram_rejects_non_finite_observations():
5550
histogram.observe_ms(float("nan"))
5651

5752

58-
def test_trace_extracts_nested_metadata_request_id():
59-
message = Message(
60-
"recognizer_loop:utterance",
61-
{},
62-
{"metadata": {"qa_query_id": "request-runtime"}},
63-
)
64-
65-
assert message_request_id(message) == "request-runtime"
66-
67-
68-
def test_correlated_trace_is_opt_in(monkeypatch):
69-
message = Message(
70-
"recognizer_loop:utterance",
71-
{},
72-
{"query_id": "request-runtime"},
73-
)
74-
logged = []
75-
monkeypatch.setattr(
76-
"ovos_core._performance_trace._LOG.info",
77-
lambda template, payload: logged.append(template % payload),
78-
)
79-
monkeypatch.delenv("OVOS_PERFORMANCE_TRACE", raising=False)
80-
81-
trace_performance_stage("runtime_receive", message=message)
82-
83-
assert logged == []
84-
monkeypatch.setenv("OVOS_PERFORMANCE_TRACE", "true")
85-
monkeypatch.setattr(
86-
"ovos_core._performance_trace.time.time_ns",
87-
lambda: 456_000_000,
88-
)
89-
trace_performance_stage("runtime_receive", message=message)
90-
assert '"stage":"runtime_receive"' in logged[0]
91-
assert '"request_id":"request-runtime"' in logged[0]
92-
assert '"at_unix_ns":456000000' in logged[0]
93-
94-
9553
def test_prometheus_renderer_converts_milliseconds_to_seconds():
9654
payload = render_prometheus({
9755
"test_stage_ms": {

0 commit comments

Comments
 (0)