Files
infra-observability/k8s
Stéphane Tailland fd4ac86d4a Select transactions by what starts them, not by span count
The count-based filter let LibreChat's own /metrics scrapes through: 50
of them in six hours, crowding out the two real conversations. Combining
the count with a root-service match does not work either — TraceQL drops
the aggregate when it is joined to a spanset conjunction, verified: the
scrapes came back despite having a single server span.

Root on the service that starts a transaction instead, and require it to
reach a second one:

  {trace:rootService="librechat"} && {resource.service.name!="librechat"}

Eight traces over six hours against fifty, and all eight are real: the
chat requests, the MCP OAuth callbacks, the OIDC login callback. Simpler
than counting spans and stricter.

The trade is explicit in the panel description: anything not entering
through LibreChat is invisible — a direct call to a gateway, a curl
against an API. "Everything" is still in the dropdown for those.

Worth revisiting when the agents replace LibreChat as the entry point,
since the root service is then no longer librechat.

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