Grafana Pyroscope is a continuous profiling platform for CPU, memory, and runtime metrics. Master vocabulary for the /ingest endpoint and pprof format, profile type naming conventions, trace-to-profile integration in Grafana Explore, Parquet-backed columnar storage benefits, and Go's 100 Hz default CPU sampling rate.
0 / 5 completed
1 / 5
A developer pushes profiles to Grafana Pyroscope using the push model. Which HTTP endpoint and format does the Pyroscope ingest API expect?
Pyroscope's native ingest endpoint is POST /ingest with query parameters for app name, time range, and profile type. The body is a pprof-format binary (or Pyroscope's own format for older clients). The OTLP endpoint is also supported for OpenTelemetry profiling signal compatibility.
2 / 5
In Grafana Pyroscope, what is a 'profile type' and give an example?
A profile type identifies what was measured: examples include process_cpu:cpu:nanoseconds:cpu:nanoseconds, memory:inuse_objects:count:space:bytes, goroutine:goroutine:count:goroutine:count. The format is app.spy_name:sample_type:sample_unit:period_type:period_unit. Different profile types are stored and queried independently.
3 / 5
A team uses Grafana's 'Explore Profiles' feature to correlate a slow trace with CPU profiles. Which Grafana feature enables clicking from a trace span directly into a Pyroscope flame graph?
Grafana's trace to profiles integration uses span attributes (like pyroscope.profile.id or time range metadata) to link from a Tempo trace span directly to the corresponding Pyroscope CPU/memory profile. Configuration in the Tempo data source specifies which profile data source and labels to use for the correlation.
4 / 5
Pyroscope stores profiles using its own columnar storage format called 'Parquet-backed block storage'. What is the primary benefit of this for continuous profiling workloads?
Pyroscope's Parquet-backed storage uses columnar format for efficient compression and analytical queries. Profiling data has repetitive structure (function names, labels) that compresses extremely well in columnar storage. Time-range queries (common in profiling: 'show CPU for the last hour') benefit from predicate pushdown without scanning all rows.
5 / 5
A Go service uses pyroscope.Start() with default configuration. At what sampling rate does the Go profiler collect CPU samples?
Go's CPU profiler runs at 100 Hz (100 samples per second, one every 10ms) by default — this is a Go runtime constant (runtime/pprof default). Pyroscope's Go SDK wraps the Go runtime profiler, so it inherits this 100 Hz rate. The sampling rate can be adjusted but Go's profiler has a practical ceiling near 1000 Hz before overhead becomes significant.