Features
- Block-manager historical storage (feature-flagged). Introduced a standalone
block.Manager/block.Compactorthat owns reading persisted blocks, applying retention, and compaction, replacing the embedded TSDB on the read path in server mode. The pre-existing historical TSDB path stays the default; enable the new engine viaPROMPP_FEATURES=enable_block_manager. Adds compaction plan/result logging, restored block-manager gauges, and block-duration diagnostics metrics (prometheus_tsdb_blocks_loaded_by_duration). - Disable core dumps feature flag. Added
PROMPP_FEATURES=disable_coredumps, which setsRLIMIT_COREto 0 at startup so the kernel does not write core dumps into the working directory on crash. Lowering the limit needs no extra privileges, so it works in unprivileged Kubernetes pods.
Enhancements
- DataStorage metrics. Exposed a new family of
prompp_data_storage_*metrics — per-encoder-type counts, finalized chunk counts, and timestamp state counts — giving operators visibility into the C++ data storage internals.
Performance
- Faster
NewLabelsWithLSS. Added a dedicatedserialize_from_snapshot_to_bufferbinding so building Go label sets from an LSS snapshot serializes directly into a buffer, cutting allocations and copies on the hot path. - Index writer optimization. Reworked snapshot symbol collection to emit each label name once instead of once per value (a single hot name previously reached ~4.7k copies on a real LSS), cutting
write_symbolstime after shrink by a further ~16% on top of the btree change.
Fixes
- Dependency security updates. Bumped the Go
go.mongodb.org/mongo-driverto v1.17.7 and the web UIws(v8.21.0) andform-data(v3.0.5) packages, picking up upstream security fixes.
Other
- GCC 16 C++ toolchain. Upgraded the CI/devcontainer C++ toolchain to GCC 16.