2.49.0
2.49.0 / 2024-01-15
- [FEATURE] Promtool: Add
--runflag promtool test rules command. #12206 - [FEATURE] SD: Add support for
NSrecords 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-functionsfeature 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_labelandsort_by_label_descfunctions allowing sorting returned series by labels. #11299
- Experimental
- [FEATURE] SD: Add
__meta_linode_gpuslabel to Linode SD. #13097 - [FEATURE] API: Add
exclude_alertsquery parameter to/api/v1/rulesto only return recording rules. #12999 - [FEATURE] TSDB: --storage.tsdb.retention.time flag value is now exposed as a
prometheus_tsdb_retention_limit_secondsmetric. #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_protocolsandscrape_config.scrape_protocols. #12738 - [FEATURE] Support file-based configuration of basic auth username in http client config #13003, https://github.com/prometheus/common/pull/511
- [ENHANCEMENT] Scraping: Automated handling of scraping histograms that violate
scrape_config.native_histogram_bucket_limitsetting. #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/labelsand/api/v1/label/<label_name>/valueswhen 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_quantilewith 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
urlfilter 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
- 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.gointo 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
chainSampleIteratorcan 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.FindMinMaxTimeby @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
ReduceResolutionmethod 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
concatenatingChunkIteratorcan 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()toChunkOrIterable()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
Full Changelog: https://github.com/prometheus/prometheus/compare/v2.48.1...v2.49.0