Skip to content
Bugtail Docs
Menu

Performance

Performance shows where the time goes: how fast each operation is, how often it runs and how often it fails, and which queries and calls inside it cost the most.

Turn on tracing in your SDK to fill it: set a traces sample rate in a Sentry SDK, or export traces with OpenTelemetry.

Operations

An operation is what a trace measures: a route such as GET /orders/{id}, a queued job, a page load. For each one you see:

Column Meaning
p50, p95 Half, and 95 percent, of the requests were faster than this.
Mean The average duration.
Throughput How many ran in the chosen time range.
Errors How many of them failed.

Sort by the slowest, the busiest or the most errors. Open an operation to see its latency over time, the p99, its latency distribution and the traces that were kept.

Operation names that contain ids, such as /orders/4821, are grouped into one operation with the id replaced, so each order does not become an operation of its own.

Traces

Every trace that arrives is counted in the numbers above, whatever your sampling. Its full span tree, the waterfall you can open, is kept for:

  • every failed trace,
  • every slow trace, above the collector's slow trace threshold,
  • a sample of the others, at the collector's trace sample rate.

Both settings are on the collector. See Tracing. A kept tree stays available as long as the collector keeps payloads; the timing figures stay regardless.

Percentiles are approximate, to within a few percent, so they can cover any time range. The mean, the counts and each kept trace are exact.

Spans

Under Spans, Bugtail adds up the steps inside your operations across all of them at once: database queries, HTTP calls, cache calls. It answers questions such as "which query costs the most time over the whole day" and "how many queries does one request make".

Column Meaning
Time spent Total time in this span, without the spans nested inside it.
Share Its part of all the time spent.
Count How often it ran.
Per operation How often it runs within one traced operation. A high number often points at an N+1 query.
p50, p95 How long one run takes.

Spans with the same shape are counted together: the same query with different values is one row. Every span is counted, whether its trace was kept or not.