mirror of
https://github.com/prometheus/prometheus.git
synced 2026-05-04 20:06:12 +02:00
Merge remote-tracking branch 'origin/release-3.9' into merge-3.9-into-main
This commit is contained in:
commit
da754cd240
38
CHANGELOG.md
38
CHANGELOG.md
@ -1,8 +1,42 @@
|
||||
# Changelog
|
||||
|
||||
## main / unreleased
|
||||
## 3.9.0 / 2026-01-06
|
||||
|
||||
* [BUGFIX] TSDB: Register `prometheus_tsdb_sample_ooo_delta` metric properly. #17477
|
||||
- [CHANGE] Native Histograms are no longer experimental! Make the `native-histogram` feature flag a no-op. Use `scrape_native_histograms` config option instead. #17528
|
||||
- [CHANGE] API: Add maximum limit of 10,000 sets of statistics to TSDB status endpoint. #17647
|
||||
- [FEATURE] API: Add /api/v1/features for clients to understand which features are supported. #17427
|
||||
- [FEATURE] Promtool: Add `start_timestamp` field for unit tests. #17636
|
||||
- [FEATURE] Promtool: Add `--format seriesjson` option to `tsdb dump` to output just series labels in JSON format. #13409
|
||||
- [FEATURE] Add `--storage.tsdb.delay-compact-file.path` flag for better interoperability with Thanos. #17435
|
||||
- [FEATURE] UI: Add an option on the query drop-down menu to duplicate that query panel. #17714
|
||||
- [ENHANCEMENT]: TSDB: add flag `--storage.tsdb.block-reload-interval` to configure TSDB Block Reload Interval. #16728
|
||||
- [ENHANCEMENT] UI: Add graph option to start the chart's Y axis at zero. #17565
|
||||
- [ENHANCEMENT] Scraping: Classic protobuf format no longer requires the unit in the metric name. #16834
|
||||
- [ENHANCEMENT] PromQL, Rules, SD, Scraping: Add native histograms to complement existing summaries. #17374
|
||||
- [ENHANCEMENT] Notifications: Add a histogram `prometheus_notifications_latency_histogram_seconds` to complement the existing summary. #16637
|
||||
- [ENHANCEMENT] Remote-write: Add custom scope support for AzureAD authentication. #17483
|
||||
- [ENHANCEMENT] SD: add a `config` label with job name for most `prometheus_sd_refresh` metrics. #17138
|
||||
- [ENHANCEMENT] TSDB: New histogram `prometheus_tsdb_sample_ooo_delta`, the distribution of out-of-order samples in seconds. Collected for all samples, accepted or not. #17477
|
||||
- [ENHANCEMENT] Remote-read: Validate histograms received via remote-read. #17561
|
||||
- [PERF] TSDB: Small optimizations to postings index. #17439
|
||||
- [PERF] Scraping: Speed up relabelling of series. #17530
|
||||
- [PERF] PromQL: Small optimisations in binary operators. #17524, #17519.
|
||||
- [BUGFIX] UI: PromQL autocomplete now shows the correct type and HELP text for OpenMetrics counters whose samples end in `_total`. #17682
|
||||
- [BUGFIX] UI: Fixed codemirror-promql incorrectly showing label completion suggestions after the closing curly brace of a vector selector. #17602
|
||||
- [BUGFIX] UI: Query editor no longer suggests a duration unit if one is already present after a number. #17605
|
||||
- [BUGFIX] PromQL: Fix some "vector cannot contain metrics with the same labelset" errors when experimental delayed name removal is enabled. #17678
|
||||
- [BUGFIX] PromQL: Fix possible corruption of PromQL text if the query had an empty `ignoring()` and non-empty grouping. #17643
|
||||
- [BUGFIX] PromQL: Fix resets/changes to return empty results for anchored selectors when all samples are outside the range. #17479
|
||||
- [BUGFIX] PromQL: Check more consistently for many-to-one matching in filter binary operators. #17668
|
||||
- [BUGFIX] PromQL: Fix collision in unary negation with non-overlapping series. #17708
|
||||
- [BUGFIX] PromQL: Fix collision in label_join and label_replace with non-overlapping series. #17703
|
||||
- [BUGFIX] PromQL: Fix bug with inconsistent results for queries with OR expression when experimental delayed name removal is enabled. #17161
|
||||
- [BUGFIX] PromQL: Ensure that `rate`/`increase`/`delta` of histograms results in a gauge histogram. #17608
|
||||
- [BUGFIX] PromQL: Do not panic while iterating over invalid histograms. #17559
|
||||
- [BUGFIX] TSDB: Reject chunk files whose encoded chunk length overflows int. #17533
|
||||
- [BUGFIX] TSDB: Do not panic during resolution reduction of invalid histograms. #17561
|
||||
- [BUGFIX] Remote-write Receive: Avoid duplicate labels when experimental type-and-unit-label feature is enabled. #17546
|
||||
- [BUGFIX] OTLP Receiver: Only write metadata to disk when experimental metadata-wal-records feature is enabled. #17472
|
||||
|
||||
## 3.8.1 / 2025-12-16
|
||||
|
||||
|
||||
@ -1124,13 +1124,22 @@ func (a *appender) AppendSTZeroSample(ref storage.SeriesRef, l labels.Labels, t,
|
||||
}
|
||||
|
||||
// Commit submits the collected samples and purges the batch.
|
||||
func (a *appenderBase) Commit() error {
|
||||
func (a *appender) Commit() error {
|
||||
defer a.appenderPool.Put(a)
|
||||
return a.commit()
|
||||
}
|
||||
|
||||
func (a *appender) Rollback() error {
|
||||
defer a.appenderPool.Put(a)
|
||||
return a.rollback()
|
||||
}
|
||||
|
||||
func (a *appenderBase) commit() error {
|
||||
if err := a.log(); err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
a.clearData()
|
||||
a.appenderPool.Put(a)
|
||||
|
||||
if a.writeNotified != nil {
|
||||
a.writeNotified.Notify()
|
||||
@ -1244,7 +1253,7 @@ func (a *appenderBase) clearData() {
|
||||
a.floatHistogramSeries = a.floatHistogramSeries[:0]
|
||||
}
|
||||
|
||||
func (a *appenderBase) Rollback() error {
|
||||
func (a *appenderBase) rollback() error {
|
||||
// Series are created in-memory regardless of rollback. This means we must
|
||||
// log them to the WAL, otherwise subsequent commits may reference a series
|
||||
// which was never written to the WAL.
|
||||
@ -1253,7 +1262,6 @@ func (a *appenderBase) Rollback() error {
|
||||
}
|
||||
|
||||
a.clearData()
|
||||
a.appenderPool.Put(a)
|
||||
return nil
|
||||
}
|
||||
|
||||
|
||||
@ -127,6 +127,16 @@ func (a *appenderV2) Append(ref storage.SeriesRef, ls labels.Labels, st, t int64
|
||||
return storage.SeriesRef(s.ref), partialErr
|
||||
}
|
||||
|
||||
func (a *appenderV2) Commit() error {
|
||||
defer a.appenderV2Pool.Put(a)
|
||||
return a.commit()
|
||||
}
|
||||
|
||||
func (a *appenderV2) Rollback() error {
|
||||
defer a.appenderV2Pool.Put(a)
|
||||
return a.rollback()
|
||||
}
|
||||
|
||||
func (a *appenderV2) appendExemplars(s *memSeries, exemplar []exemplar.Exemplar) error {
|
||||
var errs []error
|
||||
for _, e := range exemplar {
|
||||
|
||||
@ -224,6 +224,10 @@ func TestCommit_AppendV2(t *testing.T) {
|
||||
require.Equal(t, numSeries*numDatapoints, walExemplarsCount, "unexpected number of exemplars")
|
||||
require.Equal(t, numSeries*numHistograms*2, walHistogramCount, "unexpected number of histograms")
|
||||
require.Equal(t, numSeries*numHistograms*2, walFloatHistogramCount, "unexpected number of float histograms")
|
||||
|
||||
// Check that we can still create both kinds of Appender - see https://github.com/prometheus/prometheus/issues/17800.
|
||||
_ = s.Appender(context.TODO())
|
||||
_ = s.AppenderV2(context.TODO())
|
||||
}
|
||||
|
||||
func TestRollback_AppendV2(t *testing.T) {
|
||||
|
||||
@ -259,6 +259,9 @@ func TestCommit(t *testing.T) {
|
||||
require.Equal(t, numSeries*numDatapoints, walExemplarsCount, "unexpected number of exemplars")
|
||||
require.Equal(t, numSeries*numHistograms*2, walHistogramCount, "unexpected number of histograms")
|
||||
require.Equal(t, numSeries*numHistograms*2, walFloatHistogramCount, "unexpected number of float histograms")
|
||||
|
||||
// Check that we can get another appender after this - see https://github.com/prometheus/prometheus/issues/17800.
|
||||
_ = s.Appender(context.TODO())
|
||||
}
|
||||
|
||||
func TestRollback(t *testing.T) {
|
||||
|
||||
@ -1,7 +1,7 @@
|
||||
{
|
||||
"name": "@prometheus-io/mantine-ui",
|
||||
"private": true,
|
||||
"version": "0.308.1",
|
||||
"version": "0.309.0",
|
||||
"type": "module",
|
||||
"scripts": {
|
||||
"start": "vite",
|
||||
@ -28,7 +28,7 @@
|
||||
"@microsoft/fetch-event-source": "^2.0.1",
|
||||
"@nexucis/fuzzy": "^0.5.1",
|
||||
"@nexucis/kvsearch": "^0.9.1",
|
||||
"@prometheus-io/codemirror-promql": "0.308.1",
|
||||
"@prometheus-io/codemirror-promql": "0.309.0",
|
||||
"@reduxjs/toolkit": "^2.10.1",
|
||||
"@tabler/icons-react": "^3.35.0",
|
||||
"@tanstack/react-query": "^5.90.7",
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@prometheus-io/codemirror-promql",
|
||||
"version": "0.308.1",
|
||||
"version": "0.309.0",
|
||||
"description": "a CodeMirror mode for the PromQL language",
|
||||
"types": "dist/esm/index.d.ts",
|
||||
"module": "dist/esm/index.js",
|
||||
@ -29,7 +29,7 @@
|
||||
},
|
||||
"homepage": "https://github.com/prometheus/prometheus/blob/main/web/ui/module/codemirror-promql/README.md",
|
||||
"dependencies": {
|
||||
"@prometheus-io/lezer-promql": "0.308.1",
|
||||
"@prometheus-io/lezer-promql": "0.309.0",
|
||||
"lru-cache": "^11.2.2"
|
||||
},
|
||||
"devDependencies": {
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@prometheus-io/lezer-promql",
|
||||
"version": "0.308.1",
|
||||
"version": "0.309.0",
|
||||
"description": "lezer-based PromQL grammar",
|
||||
"main": "dist/index.cjs",
|
||||
"type": "module",
|
||||
|
||||
14
web/ui/package-lock.json
generated
14
web/ui/package-lock.json
generated
@ -1,12 +1,12 @@
|
||||
{
|
||||
"name": "prometheus-io",
|
||||
"version": "0.308.1",
|
||||
"version": "0.309.0",
|
||||
"lockfileVersion": 3,
|
||||
"requires": true,
|
||||
"packages": {
|
||||
"": {
|
||||
"name": "prometheus-io",
|
||||
"version": "0.308.1",
|
||||
"version": "0.309.0",
|
||||
"workspaces": [
|
||||
"mantine-ui",
|
||||
"module/*"
|
||||
@ -24,7 +24,7 @@
|
||||
},
|
||||
"mantine-ui": {
|
||||
"name": "@prometheus-io/mantine-ui",
|
||||
"version": "0.308.1",
|
||||
"version": "0.309.0",
|
||||
"dependencies": {
|
||||
"@codemirror/autocomplete": "^6.19.1",
|
||||
"@codemirror/language": "^6.11.3",
|
||||
@ -42,7 +42,7 @@
|
||||
"@microsoft/fetch-event-source": "^2.0.1",
|
||||
"@nexucis/fuzzy": "^0.5.1",
|
||||
"@nexucis/kvsearch": "^0.9.1",
|
||||
"@prometheus-io/codemirror-promql": "0.308.1",
|
||||
"@prometheus-io/codemirror-promql": "0.309.0",
|
||||
"@reduxjs/toolkit": "^2.10.1",
|
||||
"@tabler/icons-react": "^3.35.0",
|
||||
"@tanstack/react-query": "^5.90.7",
|
||||
@ -88,10 +88,10 @@
|
||||
},
|
||||
"module/codemirror-promql": {
|
||||
"name": "@prometheus-io/codemirror-promql",
|
||||
"version": "0.308.1",
|
||||
"version": "0.309.0",
|
||||
"license": "Apache-2.0",
|
||||
"dependencies": {
|
||||
"@prometheus-io/lezer-promql": "0.308.1",
|
||||
"@prometheus-io/lezer-promql": "0.309.0",
|
||||
"lru-cache": "^11.2.2"
|
||||
},
|
||||
"devDependencies": {
|
||||
@ -121,7 +121,7 @@
|
||||
},
|
||||
"module/lezer-promql": {
|
||||
"name": "@prometheus-io/lezer-promql",
|
||||
"version": "0.308.1",
|
||||
"version": "0.309.0",
|
||||
"license": "Apache-2.0",
|
||||
"devDependencies": {
|
||||
"@lezer/generator": "^1.8.0",
|
||||
|
||||
@ -1,7 +1,7 @@
|
||||
{
|
||||
"name": "prometheus-io",
|
||||
"description": "Monorepo for the Prometheus UI",
|
||||
"version": "0.308.1",
|
||||
"version": "0.309.0",
|
||||
"private": true,
|
||||
"scripts": {
|
||||
"build": "bash build_ui.sh --all",
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user