You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
fix: make minimum step duration configurable for eBPF profiling
This change addresses issue #4524 where users setting `collect_interval`
below 15 seconds (e.g., 5s for eBPF profiling) were seeing their data
displayed at 15-second intervals in the UI due to a hardcoded minimum
step duration.
Changes:
- Added `--querier.min-step-duration` flag (default: 15s) to allow users to
configure the minimum step duration for timeline calculations
- Created `CalcPointIntervalWithMinInterval` function that accepts a custom
minimum interval parameter
- Updated HTTP handlers to pass the configurable value through the call chain
- Added comprehensive tests covering eBPF use cases (1s, 5s intervals)
- Maintains backward compatibility with 15-second default
Users can now run Pyroscope with `--querier.min-step-duration=5s` to support
fast eBPF profiling collection intervals while maintaining fine-grained
resolution in the UI.
Fixes#4524
fs.DurationVar(&cfg.QueryStoreAfter, "querier.query-store-after", 4*time.Hour, "The time after which a metric should be queried from storage and not just ingesters. 0 means all queries are sent to store. If this option is enabled, the time range of the query sent to the store-gateway will be manipulated to ensure the query end is not more recent than 'now - query-store-after'.")
57
+
fs.DurationVar(&cfg.MinStepDuration, "querier.min-step-duration", 15*time.Second, "Minimum step duration for time series queries. This is the minimum resolution/interval displayed in the UI timeline. Lower values allow for finer-grained profiling resolution when using fast collection intervals (e.g., eBPF with collect_interval < 15s).")
0 commit comments