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.