Skip to content
Nicholas Antinori edited this page Sep 7, 2026 · 2 revisions

When you open a transaction type in the UI, the detail view is split into tabs. Most tabs show aggregates over all traffic for that transaction; only Traces is limited to slow requests (see Transaction configuration).

To interpret one stored request (Breakdown, Entries, Queries, Service Calls, Profile), read How to read a Trace. For a fix workflow, see Re-engineering a slow call.

Average

Response-time averages and breakdown timers for the selected time range. Useful for spotting which sub-timers dominate typical latency.

Percentiles

p50, p95, p99, and related percentiles for overall response time and breakdown timers. Compare with Average when the distribution is skewed by outliers.

Throughput

Transaction count and rate over time. Counts reflect all invocations, not only traced ones.

Traces

Individual slow requests stored because they exceeded the slow threshold. If nothing appears here, either nothing was slow enough or tracing is disabled — check Transaction configuration. Trace list respects retention and agent connectivity.

Queries

JDBC/database activity captured by Glowroot's JDBC weaves (Plugins). Custom Instrumentation does not fill this tab by itself.

Service Calls

Outbound HTTP-ish calls instrumented by Glowroot Plugins (e.g. Apache HttpClient, OkHttp, RestTemplate). This is not an inventory of local @Service or in-process Spring beans — only external/service-boundary calls the plugins recognize (What Glowroot does not do · issue #746).

Reading Service Calls on one Trace vs aggregates

  • Transaction-level Service Calls (this page’s aggregate view) summarize outbound activity across the selected time range — good for trends.
  • Inside a single Trace (How to read a Trace), Service Calls answer: for this request, how many outbound calls, to where, and whether the same destination repeats (fan-out / HTTP N+1).

When re-engineering a call, prefer the per-Trace view for evidence, then confirm the fix with aggregates / percentiles.

Empty Service Calls — quick triage

Situation Likely meaning
Local @Service / in-process beans only Expected — not Service Calls
Outbound HTTP with uncovered client (e.g. JDK HttpClient) Plugin coverage gaps — Instrumentation on your wrapper or switch client
Async overload with callback-only attachment May lack a Service Call entry — see coverage gaps / #968
Plugin disabled Enable the HTTP client plugin under Plugins

Profile

CPU stack samples collected during traced (slow) requests. Use this when breakdown timers do not sum to the root transaction time — gaps often mean time outside instrumented timers (GC, contention, uninstrumented code). Profiling interval is configured under Transaction configuration.

Trace entry limits

max trace entries (agent config) can truncate the Entries tree in the UI while aggregate counts on other tabs still reflect the full trace. If the flame tree or entry list looks cut off, raise the limit or narrow the slow threshold so fewer huge traces are stored.

See also

Clone this wiki locally