mr-668: emit info! for graph routing decision

`tracing::Span::current().record("graph_id", ...)` in the routing
middleware silently no-ops here: no upstream `#[tracing::instrument]`
on the handlers declares a `graph_id` field, and `TraceLayer::new_for_http`
doesn't either. The recorded value never lands anywhere visible.

Replace with an explicit `info!(graph_id = %handle.key.graph_id,
"graph routed")` event so operators can grep logs and correlate
requests with the active graph. In single mode the value is the
sentinel `"default"`.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
Ragnor Comerford 2026-05-27 12:04:31 +02:00
parent dcb2dde456
commit dedb633c62
No known key found for this signature in database

View file

@ -1388,10 +1388,12 @@ async fn resolve_graph_handle(
}
};
// Record the graph id on the current tracing span for per-request
// observability. Operators correlating logs across requests reach for
// this field; in single mode it's the sentinel `default`.
tracing::Span::current().record("graph_id", handle.key.graph_id.as_str());
// Per-request observability. `Span::current().record` would silently
// no-op here because no upstream `#[tracing::instrument(...)]` macro
// declares a `graph_id` field; emit an explicit event instead so the
// routing decision actually lands in logs. In single mode the value
// is the sentinel `default`.
info!(graph_id = %handle.key.graph_id, "graph routed");
request.extensions_mut().insert(handle);
Ok(next.run(request).await)