Change8

v3.12.0

📦 prometheusView on GitHub →
12 features🐛 29 fixes🔧 23 symbols

Summary

This release introduces significant security fixes, new experimental PromQL functions, and major performance improvements in TSDB head chunk lookups. It also enhances Service Discovery support with new cloud providers and IPv6 capabilities.

Migration Steps

  1. If using range functions (`rate()`, `irate()`, `increase()`, `resets()`) with start timestamps enabled (`use-start-timestamps`), note that these functions will not work together with extended range selectors `anchored` and `smoothed`.

✨ 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` to enable checkpoint 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 to ECS/MSK/RDS/Elasticache configurations.
  • AWS SD enhancement: Allows EC2 service discovery to discover IPv6 addresses.

🐛 Bug Fixes

  • Security fix: Remote Write rejects snappy-compressed requests where decoded length exceeds 32MB.
  • Security fix: Resolved plaintext secret exposure in STACKIT SD via `/-/config` endpoint.
  • PromQL: Fixed `info()` function incorrectly handling negated `__name__` matchers.
  • API: Now returns duration expressions in `/parse_ast`.
  • API: Correctly documented accepted formats for duration query request parameters (step, timeout, lookback delta) in OpenAPI spec.
  • Scrape: AppenderV2 now tracks staleness correctly even when OOO/duplicate series errors occur.
  • Config: Remote write `queue_config` fields are now validated at load time.
  • Discovery/Consul: Added `health_filter` for Health API filtering, fixing breakage when using Catalog-only fields.
  • 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 `range()` keyword in duration expressions like `foo[5m+range()]`.
  • PromQL: Fixed smoothed vector selector returning no results in binary operations when the `@` modifier is used.
  • PromQL: Rejects 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 with new data path.
  • TSDB: Preserved decimal precision in percentage-based retention.
  • TSDB: Fixed `prometheus_tsdb_head_chunks` going negative after WAL replay.
  • TSDB: Fixed panic with native histograms during query of overlapping chunks.
  • 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.
  • Fixed deletion of `prometheus_sd_refresh*` and `prometheus_sd_discovered_targets` metrics when a scrape job is removed.
  • Remote: Fixed validation for received RW2 requests when parsing metadata unit symbols, preventing handler panics.
  • TSDB/Agent: Fixed race condition in agent appender causing duplicate in-memory series and WAL records for the same label set.
  • Config: Updated `--enable-feature` flag description and sorted feature names.

Affected Symbols