v3.12.0-rc.0
📦 prometheusView on GitHub →
✨ 12 features🐛 29 fixes🔧 24 symbols
Summary
This release introduces significant security fixes, performance optimizations in TSDB, and major feature additions around experimental PromQL start timestamps and new Service Discovery integrations. Numerous bug fixes address issues across PromQL, API, Scrape, and TSDB components.
Migration Steps
- If using PromQL range queries with `rate()`, `irate()`, `increase()`, or `resets()`, be aware that start timestamps are now used by default if the `use-start-timestamps` feature flag is enabled, which may affect results if combined with anchored or smoothed extended range selectors.
- If using STACKIT service discovery, ensure configuration is reviewed due to the secret exposure fix.
- If using Remote Write with snappy compression, requests declaring a decoded length over 32MB will now be rejected.
✨ New Features
- Introduced experimental PromQL functions: `start()`, `end()`, `range()`, and `step()`.
- Added support for DigitalOcean Managed Databases service discovery.
- Added support for Outscale VM service discovery (`outscale_sd_configs`).
- Promoted auto-reload-config as stable.
- Added `/api/v1/status/self_metrics` endpoint returning server self-metrics as
- Added support for the aix/ppc64 compilation target.
- Added a web interface for deleting time series and cleaning tombstones.
- Added `CheckpointFromInMemorySeries` option to `agent.DB` for checkpointing based on in-memory series.
- Added feature flag `st-synthesis` to synthesize unknown Start Timestamps (STs) for scraped cumulative metrics.
- Added `@st` annotation support in `promqltest` load blocks to specify per-sample start timestamps.
- AWS SD enhancements: Added optional `external_id` field for ECS/MSK/RDS/Elasticache.
- AWS EC2 service discovery now supports discovering IPv6 addresses.
🐛 Bug Fixes
- Security fix: Remote Write rejects snappy-compressed requests if decoded length exceeds 32MB.
- Security fix: Resolved plaintext secret exposure in STACKIT SD via `/-/config` endpoint.
- PromQL: `info()` function now correctly handles negated `__name__` matchers.
- API: `/parse_ast` now returns duration expressions.
- API: OpenAPI spec now correctly documents accepted formats for duration query request parameters (step, timeout, lookback delta).
- Scrape: AppenderV2 now tracks staleness correctly even when OOO/duplicate series errors occur.
- Config: Remote write `queue_config` fields are validated at load time to prevent runtime panics.
- Discovery/Consul: Added `health_filter` for Health API filtering, fixing breakage when using Catalog-only fields in `filter`.
- OTLP: Limited decompressed body size for gzip-encoded OTLP write requests.
- PromQL: Fixed `smoothed` rate/increase returning zero instead of no result when all data is strictly after the query range.
- PromQL: Fixed metric name not being dropped when `last_over_time` or `first_over_time` is applied to subqueries containing name-dropping functions.
- PromQL: Fixed missing warning when mixing exponential and custom-bucket histograms in stats queries.
- PromQL: Fixed parsing of the `range()` keyword within duration expressions like `foo[5m+range()]`.
- PromQL: Fixed smoothed vector selector returning no results in binary operations when the `@` modifier is used.
- PromQL: Reject NaN, infinite, and out-of-range duration expressions instead of silently producing an out-of-range time.Duration.
- Scrape: Fixed panic when scraping malformed native histograms.
- Scrape: Fixed panic when scraping a target exposing a summary with no quantiles via the protobuf format.
- Scrape: Fixed scrape failure log file occasionally not being applied after a configuration reload.
- TSDB: Allowed retention percentage calculation with the new data path.
- TSDB: Preserved decimal precision in percentage-based retention.
- TSDB: Fixed `prometheus_tsdb_head_chunks` metric going negative after WAL replay.
- TSDB: Fixed panic during query of overlapping chunks with native histograms.
- Tracing: Fixed startup failure for insecure OTLP HTTP tracing.
- UI: Escaped label values offered by PromQL autocomplete.
- UI: Improved Y-axis tick label precision for graph values over small ranges.
- SD metrics (`prometheus_sd_refresh*` and `prometheus_sd_discovered_targets`) for removed scrape jobs are now deleted.
- Remote: Fixed validation for received RW2 requests when parsing metadata unit symbols, preventing handler panics.
- TSDB/Agent: Fixed race condition in agent appender leading to duplicate in-memory series and WAL records for the same label set.
- Config: Updated `--enable-feature` flag description and sorted feature names.
Affected Symbols
rate()irate()increase()resets()start()end()range()step()sortsort_by_labelsort_by_label_descinfo()last_over_time()first_over_time()abs()AppenderV2AppenderV1remote-write (snappy decompression)STACKIT service discoveryAWS SD (EC2, ECS, MSK, RDS, Elasticache)Consul SD (Health API filtering)OTLP (gzip decompression)promqltest load blocksprometheus_tsdb_head_chunks