Prometheus - v2.49.0


  • [FEATURE] Promtool: Add --run flag promtool test rules command. #12206
  • [FEATURE] SD: Add support for NS records to DNS SD. #13219
  • [FEATURE] UI: Add heatmap visualization setting in the Graph tab, useful histograms. #13096 #13371
  • [FEATURE] Scraping: Add scrape_config.enable_compression (default true) to disable gzip compression when scraping the target. #13166
  • [FEATURE] PromQL: Add a promql-experimental-functions feature flag containing some new experimental PromQL functions. #13103 NOTE: More experimental functions might be added behind the same feature flag in the future. Added functions:
  • Experimental mad_over_time (median absolute deviation around the median) function. #13059
  • Experimental sort_by_label and sort_by_label_desc functions allowing sorting returned series by labels. #11299
  • [FEATURE] SD: Add __meta_linode_gpus label to Linode SD. #13097
  • [FEATURE] API: Add exclude_alerts query parameter to /api/v1/rules to only return recording rules. #12999
  • [FEATURE] TSDB: --storage.tsdb.retention.time flag value is now exposed as a prometheus_tsdb_retention_limit_seconds metric. #12986
  • [FEATURE] Scraping: Add ability to specify priority of scrape protocols to accept during scrape (e.g. to scrape Prometheus proto format for certain jobs). This can be changed by setting global.scrape_protocols and scrape_config.scrape_protocols. #12738
  • [ENHANCEMENT] Scraping: Automated handling of scraping histograms that violate scrape_config.native_histogram_bucket_limit setting. #13129
  • [ENHANCEMENT] Scraping: Optimized memory allocations when scraping. #12992
  • [ENHANCEMENT] SD: Added cache for Azure SD to avoid rate-limits. #12622
  • [ENHANCEMENT] TSDB: Various improvements to OOO exemplar scraping. E.g. allowing ingestion of exemplars with the same timestamp, but with different labels. #13021
  • [ENHANCEMENT] API: Optimize /api/v1/labels and /api/v1/label/<label_name>/values when 1 set of matchers are used. #12888
  • [ENHANCEMENT] TSDB: Various optimizations for TSDB block index, head mmap chunks and WAL, reducing latency and memory allocations (improving API calls, compaction queries etc). #12997 #13058 #13056 #13040
  • [ENHANCEMENT] PromQL: Optimize memory allocations and latency when querying float histograms. #12954
  • [ENHANCEMENT] Rules: Instrument TraceID in log lines for rule evaluations. #13034
  • [ENHANCEMENT] PromQL: Optimize memory allocations in query_range calls. #13043
  • [ENHANCEMENT] Promtool: unittest interval now defaults to evaluation_intervals when not set. #12729
  • [BUGFIX] SD: Fixed Azure SD public IP reporting #13241
  • [BUGFIX] API: Fix inaccuracies in posting cardinality statistics. #12653
  • [BUGFIX] PromQL: Fix inaccuracies of histogram_quantile with classic histograms. #13153
  • [BUGFIX] TSDB: Fix rare fails or inaccurate queries with OOO samples. #13115
  • [BUGFIX] TSDB: Fix rare panics on append commit when exemplars are used. #13092
  • [BUGFIX] TSDB: Fix exemplar WAL storage, so remote write can send/receive samples before exemplars. #13113
  • [BUGFIX] Mixins: Fix url filter on remote write dashboards. #10721
  • [BUGFIX] PromQL/TSDB: Various fixes to float histogram operations. #12891 #12977 #12609 #13190 #13189 #13191 #13201 #13212 #13208
  • [BUGFIX] Promtool: Fix int32 overflow issues for 32-bit architectures. #12978
  • [BUGFIX] SD: Fix Azure VM Scale Set NIC issue. #13283
Commits * Add created timestamps to prompb by @ArthurSens in https://github.com/prometheus/prometheus/pull/12936 * Added ability to specify scrape protocols to accept during HTTP content type negotiation. by @bwplotka in https://github.com/prometheus/prometheus/pull/12738 * Fix int32 overflow issues by @krajorama in https://github.com/prometheus/prometheus/pull/12978 * Add the OpenSSF Scorecard GitHub Action by @pnacht in https://github.com/prometheus/prometheus/pull/12990 * Promtool: Fix/clarify documentation for axn notation. by @jdellithorpe-db in https://github.com/prometheus/prometheus/pull/12868 * Fix NaN checks in [Float]Histogram.Equals method by @linasm in https://github.com/prometheus/prometheus/pull/12891 * Merge release-2.48 back into main by @beorn7 in https://github.com/prometheus/prometheus/pull/12994 * promql(histograms): Change sample total calculation for histograms by @marctc in https://github.com/prometheus/prometheus/pull/12609 * Parse created timestamps from Prometheus Protobuf by @ArthurSens in https://github.com/prometheus/prometheus/pull/12973 * Very minor refactor of the integer overflow fix by @zenador in https://github.com/prometheus/prometheus/pull/13007 * prompb: Clarify things around optional fields in proto3 and gogo-protobuf by @beorn7 in https://github.com/prometheus/prometheus/pull/13008 * native-histograms: Fixed PrometheusProto scrape format preference. by @bwplotka in https://github.com/prometheus/prometheus/pull/13010 * promtool: Set test group interval default to evaluation interval by @rgroothuijsen in https://github.com/prometheus/prometheus/pull/13011 * Bump prometheus common to v0.45.0 by @YannickTeKulve in https://github.com/prometheus/prometheus/pull/13003 * ui: Pass unexpected boot errors to StartingContent component by @gillesdemey in https://github.com/prometheus/prometheus/pull/13016 * Refactor `rules/manager.go` into separate concerns by @dannykopping in https://github.com/prometheus/prometheus/pull/13014 * TSDB: Pre-size buffer to read samples from WAL by @bboreham in https://github.com/prometheus/prometheus/pull/12997 * Expose --storage.tsdb.retention.time in metric prometheus_tsdb_retention_limit_seconds by @msscaroso in https://github.com/prometheus/prometheus/pull/12986 * Metrics in the "scrape" package can now be registered with a non-default registry by @ptodev in https://github.com/prometheus/prometheus/pull/12958 * Hide position info for warnings when position is unknown by @zenador in https://github.com/prometheus/prometheus/pull/13031 * Build: remove -a from build to speed up rebuilds by @bboreham in https://github.com/prometheus/prometheus/pull/13026 * Make it possible to unwrap annotation error by @zenador in https://github.com/prometheus/prometheus/pull/13039 * Adding a query parameter to filter out active alerts by @rajagopalanand in https://github.com/prometheus/prometheus/pull/12999 * Exclude alerts: improve documentation by @roidelapluie in https://github.com/prometheus/prometheus/pull/13046 * PromQL: reduce garbage in range-query evaluation by @bboreham in https://github.com/prometheus/prometheus/pull/13043 * storage: use Go standard errors package by @mmorel-35 in https://github.com/prometheus/prometheus/pull/12935 * ci(lint): enable nolintlint and remove redundant comments by @alexandear in https://github.com/prometheus/prometheus/pull/12926 * discovery: use Go standard errors package by @mmorel-35 in https://github.com/prometheus/prometheus/pull/12918 * build(deps): bump actions/checkout from 3.0.0 to 4.1.0 by @dependabot in https://github.com/prometheus/prometheus/pull/12917 * build(deps): bump github/codeql-action from 1.0.26 to 2.21.9 by @dependabot in https://github.com/prometheus/prometheus/pull/12915 * Merge release-2.48 back into main by @beorn7 in https://github.com/prometheus/prometheus/pull/13057 * Include trace ID in log lines emitted during rule evaluation by @charleskorn in https://github.com/prometheus/prometheus/pull/13034 * Fix issue where `chainSampleIterator` can obscure errors by @charleskorn in https://github.com/prometheus/prometheus/pull/13006 * Assign new code owners for prometheus-mixin by @metalmatze in https://github.com/prometheus/prometheus/pull/13036 * ci(lint): enable godot; append dot at the end of comments by @alexandear in https://github.com/prometheus/prometheus/pull/12928 * Native histograms vs labels by @krajorama in https://github.com/prometheus/prometheus/pull/13005 * scrape: use Go standard errors package by @mmorel-35 in https://github.com/prometheus/prometheus/pull/12923 * Export `promql.FindMinMaxTime` by @dimitarvdimitrov in https://github.com/prometheus/prometheus/pull/13085 * build(deps): bump the go-opentelemetry-io group with 2 updates by @dependabot in https://github.com/prometheus/prometheus/pull/13077 * build(deps): bump github.com/prometheus/common from 0.44.0 to 0.45.0 in /documentation/examples/remote_storage by @dependabot in https://github.com/prometheus/prometheus/pull/13069 * Merge release-2.48 back into main by @beorn7 in https://github.com/prometheus/prometheus/pull/13089 * build(deps): bump github.com/linode/linodego from 1.23.0 to 1.24.0 by @dependabot in https://github.com/prometheus/prometheus/pull/13078 * Histogram performance: optimize floatBucketIterator by @linasm in https://github.com/prometheus/prometheus/pull/12954 * build(deps): bump the k8s-io group with 2 updates by @dependabot in https://github.com/prometheus/prometheus/pull/13076 * build(deps): bump github/codeql-action from 2.21.9 to 2.22.5 by @dependabot in https://github.com/prometheus/prometheus/pull/13071 * build(deps): bump actions/checkout from 4.1.0 to 4.1.1 in /scripts by @dependabot in https://github.com/prometheus/prometheus/pull/13081 * build(deps): bump github.com/klauspost/compress from 1.17.1 to 1.17.2 by @dependabot in https://github.com/prometheus/prometheus/pull/13080 * mixin: Use url filter on Remote Write dashboard by @ncauchois in https://github.com/prometheus/prometheus/pull/10721 * ValidateHistogram: strict Count check in absence of NaNs by @linasm in https://github.com/prometheus/prometheus/pull/12977 * Improve sensitivity of TestQuerierIndexQueriesRace by @dimitarvdimitrov in https://github.com/prometheus/prometheus/pull/12881 * util: use Go standard errors package by @mmorel-35 in https://github.com/prometheus/prometheus/pull/13091 * build(deps): bump actions/checkout from 4.1.0 to 4.1.1 by @dependabot in https://github.com/prometheus/prometheus/pull/13072 * build(deps): bump ossf/scorecard-action from 2.2.0 to 2.3.1 by @dependabot in https://github.com/prometheus/prometheus/pull/13073 * web : use Go standard errors package by @mmorel-35 in https://github.com/prometheus/prometheus/pull/13106 * tsdb/index.Symbols: Drop context argument from Lookup method by @aknuds1 in https://github.com/prometheus/prometheus/pull/13058 * add generic shrink function by @fatsheep9146 in https://github.com/prometheus/prometheus/pull/13001 * remote_write: add a unit test to make sure the write client sends the extra http headers as expected by @machine424 in https://github.com/prometheus/prometheus/pull/13117 * head.go: Remove an unneeded snapshot trigger that was moved in https:… by @machine424 in https://github.com/prometheus/prometheus/pull/13110 * Follow-up to #13060: Add test to ensure staleness tracking by @roidelapluie in https://github.com/prometheus/prometheus/pull/13120 * codemirror-promql: Add request header to client by @jacobbaungard in https://github.com/prometheus/prometheus/pull/13118 * change origin schema in `ReduceResolution` method of histogram and float histogram by @fatsheep9146 in https://github.com/prometheus/prometheus/pull/13116 * tsdb/head: wlog exemplars after samples by @krajorama in https://github.com/prometheus/prometheus/pull/13113 * Fix panic during tsdb Commit by @krajorama in https://github.com/prometheus/prometheus/pull/13092 * Linode SD: Add __meta_linode_gpus label by @roidelapluie in https://github.com/prometheus/prometheus/pull/13097 * TSDB block index writer: reduce memory used by symbol cache by @songjiayang in https://github.com/prometheus/prometheus/pull/13056 * web/api: optimize labelnames/values with 1 set of matchers by @bboreham in https://github.com/prometheus/prometheus/pull/12888 * tsdb/record: use Go standard errors package by @mmorel-35 in https://github.com/prometheus/prometheus/pull/13133 * tsdb/tombstones: use Go standard errors package by @mmorel-35 in https://github.com/prometheus/prometheus/pull/13131 * tsdb/encoding: use Go standard errors package by @mmorel-35 in https://github.com/prometheus/prometheus/pull/13130 * tsdb/wlog: use Go standard errors package by @mmorel-35 in https://github.com/prometheus/prometheus/pull/13114 * tsdb/chunks: use Go standard errors package by @mmorel-35 in https://github.com/prometheus/prometheus/pull/13109 * tsdb/index: use Go standard errors package by @mmorel-35 in https://github.com/prometheus/prometheus/pull/13124 * tsdb/agent: use Go standard errors package by @mmorel-35 in https://github.com/prometheus/prometheus/pull/13107 * tsdb/chunkenc: use Go standard errors package by @mmorel-35 in https://github.com/prometheus/prometheus/pull/13108 * Labels: reduce allocations when creating from TSDB WAL by @bboreham in https://github.com/prometheus/prometheus/pull/13044 * tsdb: replace errors.Errorf by fmt.Errorf by @mmorel-35 in https://github.com/prometheus/prometheus/pull/13139 * remote-write: fix race condition between ApplyConfig and Notify by @machine424 in https://github.com/prometheus/prometheus/pull/13135 * Add feature flag for PromQL experimental functions. by @roidelapluie in https://github.com/prometheus/prometheus/pull/13103 * Bump OTel Collector dependency to v0.88.0 by @gouthamve in https://github.com/prometheus/prometheus/pull/13148 * go.*: Upgrade golang.org/x packages by @kakkoyun in https://github.com/prometheus/prometheus/pull/13150 * Fix error on ingesting out-of-order exemplars by @zenador in https://github.com/prometheus/prometheus/pull/13021 * tsdb/errors: fix errorlint linter by @mmorel-35 in https://github.com/prometheus/prometheus/pull/13141 * tsdb/fileutil: use Go standard errors by @mmorel-35 in https://github.com/prometheus/prometheus/pull/13142 * tsdb/tsdbutil: use Go standard errors by @mmorel-35 in https://github.com/prometheus/prometheus/pull/13143 * Make head block ULIDs descriptive by @colega in https://github.com/prometheus/prometheus/pull/13100 * Update golangci-lint. by @SuperQ in https://github.com/prometheus/prometheus/pull/12790 * TSDB: make the global hash lookup table smaller by @bboreham in https://github.com/prometheus/prometheus/pull/13040 * Add enable_compression scrape config option by @prymitive in https://github.com/prometheus/prometheus/pull/13166 * fix: The automatically generated file is inconsistent with the file i… by @manas-rust in https://github.com/prometheus/prometheus/pull/13164 * labels: extract common code between slice and stringlabels by @bboreham in https://github.com/prometheus/prometheus/pull/13159 * Added Caching of network interface for Azure by @shinji62 in https://github.com/prometheus/prometheus/pull/12622 * Fix issue where `concatenatingChunkIterator` can obscure errors by @charleskorn in https://github.com/prometheus/prometheus/pull/13084 * Fix linting issues blocking CI by @charleskorn in https://github.com/prometheus/prometheus/pull/13178 * Use only one scrapeMetrics object per test by @ptodev in https://github.com/prometheus/prometheus/pull/13051 * Add benchmark for native histograms by @fpetkovski in https://github.com/prometheus/prometheus/pull/13160 * Fix issue where queries can fail or omit OOO samples if OOO head compaction occurs between creating a querier and reading chunks by @charleskorn in https://github.com/prometheus/prometheus/pull/13115 * Scraping: share buffer pool across all scrapes by @bboreham in https://github.com/prometheus/prometheus/pull/12992 * Scraping tests: refactor scrapeLoop creation by @bboreham in https://github.com/prometheus/prometheus/pull/13187 * ui: heatmap visualization for histogram buckets by @Loori-R in https://github.com/prometheus/prometheus/pull/13096 * PromQL: ignore small errors for bucketQuantile by @zenador in https://github.com/prometheus/prometheus/pull/13153 * Scraping: use slices.sort for exemplars by @bboreham in https://github.com/prometheus/prometheus/pull/13184 * Fix tsdb.seriesHashmap.set by making receiver a pointer by @aknuds1 in https://github.com/prometheus/prometheus/pull/13193 * Change `ChunkReader.Chunk()` to `ChunkOrIterable()` by @fionaliao in https://github.com/prometheus/prometheus/pull/13123 * Improvements to PR template by @bboreham in https://github.com/prometheus/prometheus/pull/13198 * Fix docs: in labelname, convert to underscore by @dapeleg-dn in https://github.com/prometheus/prometheus/pull/12555 * build(deps): bump sanitize-html from 2.10.0 to 2.11.0 in /web/ui by @dependabot in https://github.com/prometheus/prometheus/pull/12513 * Explicit schema check in [Float]Histogram.ReduceResolution by @linasm in https://github.com/prometheus/prometheus/pull/13189 * Fix FloatHistogram.Add/Sub mutating its argument by @linasm in https://github.com/prometheus/prometheus/pull/13190 * Fix tsdb.stripeSeries.gc so it handles conflicts properly by @aknuds1 in https://github.com/prometheus/prometheus/pull/13195 * Make sure the cache for postings cardinality properly honors the label name by @damnever in https://github.com/prometheus/prometheus/pull/12653 * promql: add sort_by_label and sort_by_label_desc functions by @galexrt in https://github.com/prometheus/prometheus/pull/11299 * Native Histograms: automatically reduce resolution rather than fail scrape by @fatsheep9146 in https://github.com/prometheus/prometheus/pull/13129 * Reuse receiver slices in [Float]Histogram.ReduceResolution by @linasm in https://github.com/prometheus/prometheus/pull/13191 * Fix chunks iterator bug when tombstone covers a whole chunk by @fionaliao in https://github.com/prometheus/prometheus/pull/13209 * Fix histogram append errors by @fionaliao in https://github.com/prometheus/prometheus/pull/13201 * Added Bartek as the next release shepherd. by @bwplotka in https://github.com/prometheus/prometheus/pull/13210 * Enable previously disabled revive (lint) rules and fix up code by @alexandear in https://github.com/prometheus/prometheus/pull/13068 * Update “conventional histogram” → “classic histogram” by @beorn7 in https://github.com/prometheus/prometheus/pull/13216 * Merge release-2.48 back into main by @LeviHarrison in https://github.com/prometheus/prometheus/pull/13227 * Discovery: Add support for NS records to DNS Discovery by @djcode in https://github.com/prometheus/prometheus/pull/13219 * [agent/db] Participate in Notify calls by @jlevesy in https://github.com/prometheus/prometheus/pull/13223 * [wlog/watcher] read segment synchronously when not tailing by @jlevesy in https://github.com/prometheus/prometheus/pull/13224 * tsdb/wlog: use Go standard errors by @mmorel-35 in https://github.com/prometheus/prometheus/pull/13144 * Add '--run' flag to promtool test rules by @machadovilaca in https://github.com/prometheus/prometheus/pull/12206 * golangci-lint: enable testifylint linter by @mmorel-35 in https://github.com/prometheus/prometheus/pull/13254 * azure_sd: fix missing public IP addresses by @gavinkflam in https://github.com/prometheus/prometheus/pull/13241 * build(deps-dev): bump @babel/traverse from 7.19.3 to 7.23.3 in /web/ui by @dependabot in https://github.com/prometheus/prometheus/pull/13137 * build(deps): bump github.com/alecthomas/kingpin/v2 from 2.3.2 to 2.4.0 in /documentation/examples/remote_storage by @dependabot in https://github.com/prometheus/prometheus/pull/13232 * build(deps): bump github.com/prometheus/prometheus from 0.47.2 to 0.48.0 in /documentation/examples/remote_storage by @dependabot in https://github.com/prometheus/prometheus/pull/13233 * build(deps): bump golang.org/x/net from 0.18.0 to 0.19.0 by @dependabot in https://github.com/prometheus/prometheus/pull/13240 * build(deps): bump github.com/alecthomas/kingpin/v2 from 2.3.2 to 2.4.0 by @dependabot in https://github.com/prometheus/prometheus/pull/13238 * Add test of Go module versions by @SuperQ in https://github.com/prometheus/prometheus/pull/13257 * build(deps): bump github.com/digitalocean/godo from 1.104.1 to 1.106.0 by @dependabot in https://github.com/prometheus/prometheus/pull/13239 * Upgraded npm dependencies pre 2.49-rc.0 by @bwplotka in https://github.com/prometheus/prometheus/pull/13256 * build(deps): bump the k8s-io group with 2 updates by @dependabot in https://github.com/prometheus/prometheus/pull/13235 * build(deps): bump github.com/linode/linodego from 1.24.0 to 1.25.0 by @dependabot in https://github.com/prometheus/prometheus/pull/13237 * build(deps): bump the go-opentelemetry-io group with 7 updates by @dependabot in https://github.com/prometheus/prometheus/pull/13236 * Upgraded main and example Go dependencies pre 2.49-rc.0 by @bwplotka in https://github.com/prometheus/prometheus/pull/13255 * protobuf: add unit to metric family message by @vesari in https://github.com/prometheus/prometheus/pull/13259 * Histograms: optimize floatBucketIterator for common case by @linasm in https://github.com/prometheus/prometheus/pull/13212 * FloatHistogram.Add/Sub: handle any schema change by @linasm in https://github.com/prometheus/prometheus/pull/13208 * build(deps): bump bufbuild/buf-setup-action from 1.26.1 to 1.28.1 by @dependabot in https://github.com/prometheus/prometheus/pull/13230 * build(deps): bump github/codeql-action from 2.22.5 to 2.22.8 by @dependabot in https://github.com/prometheus/prometheus/pull/13229 * build(deps): bump dessant/lock-threads from 4.0.1 to 5.0.1 by @dependabot in https://github.com/prometheus/prometheus/pull/13228 * build(deps-dev): bump @types/node from 17.0.45 to 20.10.4 in /web/ui by @dependabot in https://github.com/prometheus/prometheus/pull/13260 * Add mad_over_time function by @zenador in https://github.com/prometheus/prometheus/pull/13059 * Cut 2.49.0-rc.0 by @bwplotka in https://github.com/prometheus/prometheus/pull/13270 * Cut 2.49 rc.1 + cherry pick Azure fix by @bwplotka @daniel-resdiary in https://github.com/prometheus/prometheus/pull/13314 * Cut 2.49.0-rc.2 + cherry pick of UI fix #13371 by @kevinmingtarja @bwplotka in https://github.com/prometheus/prometheus/pull/13382 * Cut 2.49.0 by @bwplotka in https://github.com/prometheus/prometheus/pull/13397

New Contributors

  • @jdellithorpe-db made their first contribution in https://github.com/prometheus/prometheus/pull/12868
  • @YannickTeKulve made their first contribution in https://github.com/prometheus/prometheus/pull/13003
  • @gillesdemey made their first contribution in https://github.com/prometheus/prometheus/pull/13016
  • @msscaroso made their first contribution in https://github.com/prometheus/prometheus/pull/12986
  • @rajagopalanand made their first contribution in https://github.com/prometheus/prometheus/pull/12999
  • @alexandear made their first contribution in https://github.com/prometheus/prometheus/pull/12926
  • @ncauchois made their first contribution in https://github.com/prometheus/prometheus/pull/10721
  • @jacobbaungard made their first contribution in https://github.com/prometheus/prometheus/pull/13118
  • @manas-rust made their first contribution in https://github.com/prometheus/prometheus/pull/13164
  • @shinji62 made their first contribution in https://github.com/prometheus/prometheus/pull/12622
  • @Loori-R made their first contribution in https://github.com/prometheus/prometheus/pull/13096
  • @dapeleg-dn made their first contribution in https://github.com/prometheus/prometheus/pull/12555
  • @galexrt made their first contribution in https://github.com/prometheus/prometheus/pull/11299
  • @djcode made their first contribution in https://github.com/prometheus/prometheus/pull/13219
  • @machadovilaca made their first contribution in https://github.com/prometheus/prometheus/pull/12206
  • @gavinkflam made their first contribution in https://github.com/prometheus/prometheus/pull/13241
  • @daniel-resdiary made their first contribution in https://github.com/prometheus/prometheus/pull/13283
  • @kevinmingtarja made their first contribution in https://github.com/prometheus/prometheus/pull/13371

Full Changelog: https://github.com/prometheus/prometheus/compare/v2.48.1...v2.49.0


Details

date
Jan. 15, 2024, 11:23 a.m.
name
2.49.0 / 2024-01-15
type
Minor
👇
Register or login to:
  • 🔍View and search all Prometheus releases.
  • 🛠️Create and share lists to track your tools.
  • 🚨Setup notifications for major, security, feature or patch updates.
  • 🚀Much more coming soon!
Continue with GitHub
Continue with Google
or