pprof — Top Report Text Output (txt)
The text report pprof prints for the same profile as the folded fixtures: a metadata header, then flat and cumulative columns where frames that are never a leaf carry zero flat time and near-total cumulative time. Column-aligned output with a bare 0 rather than 0s, which is where naive column parsing fails.
File: checkout-api
Build ID: 9f31a7c4e6b84f1d0a2b3c4d5e6f7081
Type: cpu
Time: Mar 17, 2026 at 9:14am (UTC)
Duration: 30.01s, Total samples = 20.56s (68.51%)
Showing nodes accounting for 20.56s, 100% of 20.56s total
flat flat% sum% cum cum%
4.12s 20.04% 20.04% 4.12s 20.04% pricing.applyDiscount
3.31s 16.10% 36.14% 3.31s 16.10% encoding/json.(*encodeState).marshal
2.88s 14.01% 50.15% 2.88s 14.01% sql.(*DB).QueryContext
2.19s 10.65% 60.80% 2.19s 10.65% encoding/json.(*decodeState).object
1.88s 9.14% 69.94% 1.88s 9.14% runtime.scanobject
1.76s 8.56% 78.50% 1.76s 8.56% grpc.(*ClientConn).Invoke
1.44s 7.00% 85.51% 1.44s 7.00% cache.Get
0.98s 4.77% 90.27% 0.98s 4.77% crypto/ecdsa.Verify
0.72s 3.50% 93.77% 0.72s 3.50% runtime.findRunnable
0.61s 2.97% 96.74% 0.61s 2.97% fmt.Sprintf
0.54s 2.63% 99.37% 0.54s 2.63% prometheus.(*Registry).Gather
0.13s 0.63% 100.00% 0.13s 0.63% runtime.sysmon
0 0% 100.00% 20.56s 100.00% main
0 0% 100.00% 20.56s 100.00% runtime.main
0 0% 100.00% 17.29s 84.10% http.(*conn).serve
0 0% 100.00% 17.29s 84.10% http.ListenAndServe
0 0% 100.00% 15.70s 76.36% checkout.Handle
0 0% 100.00% 8.44s 41.05% checkout.price
0 0% 100.00% 4.32s 21.01% pricing.lookupRate
0 0% 100.00% 3.31s 16.10% encoding/json.Marshal
0 0% 100.00% 2.19s 10.65% encoding/json.Unmarshal
0 0% 100.00% 1.88s 9.14% runtime.gcBgMarkWorker
0 0% 100.00% 1.76s 8.56% inventory.Reserve
0 0% 100.00% 0.98s 4.77% auth.Verify
0 0% 100.00% 0.72s 3.50% runtime.mcall
0 0% 100.00% 0.72s 3.50% runtime.schedule
0 0% 100.00% 0.61s 2.97% middleware.Log
0 0% 100.00% 0.54s 2.63% metrics.flushLoop
Specifications
- Rows
- 28
- Header Lines
- 7
- Total Samples Seconds
- 20.56
- Duration Seconds
- 30.01
- Columns
- flat, flat%, sum%, cum, cum%, name
- Zero Flat Rows
- 16
- Shows All Nodes
- true
- Same Profile As
- cpu-folded-stacks-before
Testing contract
Reference control- Scenario
- Parse the report into rows and reconcile it with the folded profile.
- Expected result
- 28 rows parse with the seven header lines skipped, the 16 bare 0 entries are read as zero seconds, and every flat time matches the folded profile's leaf totals exactly.
What is a .txt file?
TXT is a plain-text file containing unformatted character data with no styling or structure beyond line breaks. Its interpretation depends on character encoding, most commonly UTF-8, and on line-ending convention. It is the most universal and portable text container.
How to use this file
Use an example TXT to test encoding detection, line-ending (LF versus CRLF) handling, and any tool that reads or streams raw text input.
How to use this file for testing
“pprof — Top Report Text Output (txt)” is a deterministic Novus Examples fixture for Observability, Performance testing, Log parsing. Structured and plain-text telemetry with known timestamps, levels, request identifiers, and error states for testing log ingestion, correlation, dashboards, and alert pipelines.
Documented properties for this file: 28 rows. Compare results against paired or grouped companions on this page when present (clean↔damaged, searchable↔scanned, or format twins) so scores stay reproducible across runs.
Download the file once, keep the path stable in CI or local scripts, and treat the spec table as the contract: dimensions, seeds, field lists, and roles are intentional. Corrupt or invalid samples are labelled as such — expect parsers to fail loudly rather than silently accept them.
Telemetry fixtures use fixed trace IDs, span IDs, and timestamps so ingestion is reproducible run to run. Point your collector, parser, or query layer at the file and assert the documented span tree, metric families, or severity mix; service and host names are invented.
Related files
- txtCPU Profile — Folded Stacks, Baseline (txt)A CPU profile in the folded-stack format every flamegraph tool reads: one line per unique stack, frames separated by semicolons, then a space and a sample count. Twelve stacks up to seven frames deep, with the runtime's GC and scheduler work included as real profiles have.

- txtProfile — 200-Frame Recursive Stack (txt)A recursive-descent parser profiled mid-recursion: stacks up to 204 frames deep where one frame repeats 200 times, on lines over 3,000 characters. Flamegraph renderers with a fixed depth limit truncate this silently, and line-length limits split it into nonsense.

- txtWall-Clock Profile — Per-Thread Folded Stacks (txt)A 30-second wall-clock profile with the thread name as the root frame, so time blocked in reads is visible instead of invisible. Off-CPU time dominates — the shape that tells you a service is waiting, not computing, which a CPU profile alone cannot show.

- jsonlStructured Log — High-Cardinality Label Fields (jsonl)Every record carries five fields that are unique to it — session, customer, device, pod name and container ID. Harmless as log text, ruinous the moment they are promoted to indexed labels, which is the mistake this fixture exists to make measurable.

- jsonlStructured Log — One Oversized Record Between Normal Ones (jsonl)A single record of about 75 KB — a request body accidentally logged — sitting between two ordinary ones. Most shippers cap a line at 16 or 64 KB and either split it into invalid JSON fragments or drop the records around it; this file makes which one happen visible.

- txtAllocation Profile — Folded Stacks Weighted in Bytes (txt)An allocation profile in the same folded syntax as the CPU profiles, but weighted in bytes rather than samples. The format carries no unit, so a viewer that assumes samples renders 65 MB of allocation as 68 million samples — which is what this fixture is for.

Generated by generation/observability.py. Free for any use, no attribution required — license.