An unfiltered five-minute window on a busy system is hundreds of thousands of traces. Here the scan stops at a cap and closes the socket — which stops the collector's work too — and an unfiltered query is refused beyond five minutes outright. Results say when they were truncated and hint at how to narrow, so the model corrects itself instead of refetching. Naming things is handled the same way: you pass a fragment of the app name and it resolves across every instance, because the real object names carry pod hashes that change on every deploy.
A read-only bridge to a Scouter APM collector over TCP. Fourteen tools cover transaction traces, per-service aggregates, counter time series, alerts and live JVM threads — with guardrails that stop a broad query from pulling a production collector over.
- search_xlog — transaction traces filtered by service, latency floor, error only, login, IP or object name
- get_service_summary — count, average, max, p95 and error rate per service over a window
- get_summary — the collector's own daily pre-aggregated top-50 lists for services, SQL, errors and more, with no scanning
- get_xlog_detail for one transaction's SQL and bind parameters, and get_xlog_by_gxid for the whole distributed group
- get_counter and get_counter_stat — full-resolution series for one day, five-minute resolution for up to a month
- list_counters, list_objects, list_alerts and get_active_services
- list_threads and get_thread_detail — the live stack, lock owner and current SQL of a transaction still running
- get_object_env for an agent's JVM system properties, with secrets masked
- Fuzzy targeting by name fragment, which resolves across every matching instance so a redeployed pod is still found
- Every result carrying txid, gxid, objName and an ISO timestamp, so you can cross-reference it in another observability tool
A Scouter collector you can reach, with SCOUTER_COLLECTOR_HOST, SCOUTER_COLLECTOR_PORT, SCOUTER_USER and SCOUTER_PASSWORD, plus SCOUTER_TZ so timestamps mean what you think. Java 17. One installable bundle covers one collector; for several, register the same jar once per collector so each keeps its own credentials. SCOUTER_INCLUDE_BIND_PARAMS can strip SQL bind values server-side, and once it is off the model cannot turn it back on.
Build from source — clone the repository and build it, then point your client at the binary
