Files
infra-observability/k8s
Stéphane Tailland 3988df4916 Select traces by component count, not by service
The first version filtered the trace list by service name, which does not
remove the noise it was built to remove: Keycloak token calls and gateway
401s are services too, so with Service=All the panel showed exactly the
health-check traffic that makes Explore unusable, and the real LibreChat
transaction was nowhere in the first 50 rows.

Count SERVER spans instead. A token call has one, a health probe has one,
a gateway 401 has two; a real end-to-end transaction has four. So
{kind=server} | count() > 2 isolates them, and does it without naming a
single service — nothing to edit when an agent or a domain is added.
Verified against live data: it returns the LibreChat chat transactions
and nothing else.

The span panels were wrong in the same way: they showed the spans of
every trace at once, so the two tables were filled with unrelated
gateways. They now scope to {trace:id="$traceId"}, set by clicking a row
above, and sit empty until one is picked — which is the honest state, not
a wall of noise.

The service variable is gone; the trace filter is a named dropdown
instead, with the count-based default and a couple of looser options.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-27 07:53:47 +02:00
..
2026-08-25 07:48:11 +02:00