@prometheus-io/lezer-promql 0.308.0-rc.1 → 0.311.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +158 -16
- package/dist/index.cjs +210 -184
- package/dist/index.d.ts +11 -1
- package/dist/index.es.js +201 -185
- package/package.json +2 -2
- package/src/highlight.js +1 -1
- package/src/parser.js +155 -145
- package/src/parser.terms.js +144 -134
- package/src/promql.grammar +29 -1
- package/src/tokens.js +74 -68
package/CHANGELOG.md
CHANGED
|
@@ -1,18 +1,160 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
-
##
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
3
|
+
## 3.11.0 / 2026-04-02
|
|
4
|
+
|
|
5
|
+
- [CHANGE] Hetzner SD: The `__meta_hetzner_datacenter` label is deprecated for the role `robot` but kept for backward compatibility, use the `__meta_hetzner_robot_datacenter` label instead. For the role `hcloud`, the label is deprecated and will stop working after the 1 July 2026. #17850
|
|
6
|
+
- [CHANGE] Hetzner SD: The `__meta_hetzner_hcloud_datacenter_location` and `__meta_hetzner_hcloud_datacenter_location_network_zone` labels are deprecated, use the `__meta_hetzner_hcloud_location` and `__meta_hetzner_hcloud_location_network_zone` labels instead. #17850
|
|
7
|
+
- [CHANGE] Promtool: Redirect debug output to stderr to avoid interfering with stdout-based tool output. #18346
|
|
8
|
+
- [FEATURE] AWS SD: Add Elasticache Role. #18099
|
|
9
|
+
- [FEATURE] AWS SD: Add RDS Role. #18206
|
|
10
|
+
- [FEATURE] Azure SD: Add support for Azure Workload Identity authentication method. #17207
|
|
11
|
+
- [FEATURE] Discovery: Introduce `prometheus_sd_last_update_timestamp_seconds` metric to track the last time a service discovery update was sent to consumers. #18194
|
|
12
|
+
- [FEATURE] Kubernetes SD: Add support for node role selectors for pod roles. #18006
|
|
13
|
+
- [FEATURE] Kubernetes SD: Introduce pod-based labels for deployment, cronjob, and job controller names: `__meta_kubernetes_pod_deployment_name`, `__meta_kubernetes_pod_cronjob_name` and `__meta_kubernetes_pod_job_name`, respectively. #17774
|
|
14
|
+
- [FEATURE] PromQL: Add `</` and `>/` operators for trimming observations from native histograms. #17904
|
|
15
|
+
- [FEATURE] PromQL: Add experimental `histogram_quantiles` variadic function for computing multiple quantiles at once. #17285
|
|
16
|
+
- [FEATURE] TSDB: Add `storage.tsdb.retention.percentage` configuration to configure the maximum percent of disk usable for TSDB storage. #18080
|
|
17
|
+
- [FEATURE] TSDB: Add an experimental `fast-startup` feature flag that writes a `series_state.json` file to the WAL directory to track active series state across restarts. #18303
|
|
18
|
+
- [FEATURE] TSDB: Add an experimental `st-storage` feature flag. When enabled, Prometheus stores ingested start timestamps (ST, previously called Created Timestamp) from scrape or OTLP in the TSDB and Agent WAL, and exposes them via Remote Write 2. #18062
|
|
19
|
+
- [FEATURE] TSDB: Add an experimental `xor2-encoding` feature flag for the new TSDB block float sample chunk encoding that is optimized for scraped data and allows encoding start timestamps. #18062
|
|
20
|
+
- [ENHANCEMENT] HTTP client: Add AWS `external_id` support for sigv4. #17916
|
|
21
|
+
- [ENHANCEMENT] Kubernetes SD: Deduplicate deprecation warning logs from the Kubernetes API to reduce noise. #17829
|
|
22
|
+
- [ENHANCEMENT] TSDB: Remove old temporary checkpoints when creating a Checkpoint. #17598
|
|
23
|
+
- [ENHANCEMENT] UI: Add autocomplete support for experimental `first_over_time` and `ts_of_first_over_time` PromQL functions. #18318
|
|
24
|
+
- [ENHANCEMENT] Vultr SD: Upgrade govultr library from v2 to v3 for continued security patches and maintenance. #18347
|
|
25
|
+
- [PERF] PromQL: Improve performance and reduce heap allocations in joins (VectorBinop)/And/Or/Unless. #17159
|
|
26
|
+
- [PERF] PromQL: Partially address performance regression in native histogram aggregations due to using `KahanAdd`. #18252
|
|
27
|
+
- [PERF] Remote write: Optimize WAL watching used for RW sending to reuse internal buffers. #18250
|
|
28
|
+
- [PERF] TSDB: Optimize LabelValues intersection performance for matchers. #18069
|
|
29
|
+
- [PERF] UI: Skip restacking on hover in stacked series charts. #18230
|
|
30
|
+
- [BUGFIX] AWS SD: Fix EC2 SD ignoring the configured `endpoint` option, a regression from the AWS SDK v2 migration. #18133
|
|
31
|
+
- [BUGFIX] AWS SD: Fix panic in EC2 SD when DescribeAvailabilityZones returns nil ZoneName or ZoneId. #18133
|
|
32
|
+
- [BUGFIX] Agent: Fix memory leak caused by duplicate SeriesRefs being loaded as active series. #17538
|
|
33
|
+
- [BUGFIX] Alerting: Fix alert state incorrectly resetting to pending when the FOR period is increased in the config file. #18244
|
|
34
|
+
- [BUGFIX] Azure SD: Fix system-assigned managed identity not working when `client_id` is empty. #18323
|
|
35
|
+
- [BUGFIX] Consul SD: Fix filter parameter not being applied to health service endpoint, causing Node and Node.Meta filters to be ignored. #17349
|
|
36
|
+
- [BUGFIX] Kubernetes SD: Fix duplicate targets generated by `*DualStack` EndpointSlices policies. #18192
|
|
37
|
+
- [BUGFIX] OTLP: Fix ErrTooOldSample being returned as HTTP 500 instead of 400 in PRW v2 histogram write paths, preventing infinite client retry loops. #18084
|
|
38
|
+
- [BUGFIX] OTLP: Fix exemplars getting mixed between incorrect parts of a histogram. #18056
|
|
39
|
+
- [BUGFIX] PromQL: Do not skip histogram buckets in queries where histogram trimming is used. #18263
|
|
40
|
+
- [BUGFIX] Remote write: Fix `prometheus_remote_storage_sent_batch_duration_seconds` measuring before the request was sent. #18214
|
|
41
|
+
- [BUGFIX] Rules: Fix alert state restoration when rule labels contain Go template expressions. #18375
|
|
42
|
+
- [BUGFIX] Scrape: Fix panic when parsing bare label names without an equal sign in brace-only metric notation. #18229
|
|
43
|
+
- [BUGFIX] TSDB: Fail early when `use-uncached-io` feature flag is set on unsupported environments. #18219
|
|
44
|
+
- [BUGFIX] TSDB: Fall back to CLI flag values when retention is removed from config file. #18200
|
|
45
|
+
- [BUGFIX] TSDB: Fix memory leaks in buffer pools by clearing reference fields before returning buffers to pools. #17895
|
|
46
|
+
- [BUGFIX] TSDB: Fix missing mmap of histogram chunks during WAL replay. #18306
|
|
47
|
+
- [BUGFIX] TSDB: Fix storage.tsdb.retention.time unit mismatch in file causing retention to be 1e6 times longer than configured. #18200
|
|
48
|
+
- [BUGFIX] Tracing: Fix missing traceID in query log when tracing is enabled, previously only spanID was emitted. #18189
|
|
49
|
+
- [BUGFIX] UI: Fix tooltip Y-offset drift when using multiple graph panels. #18228
|
|
50
|
+
- [BUGFIX] UI: Update retention display in runtime info when config is reloaded. #18200
|
|
51
|
+
|
|
52
|
+
## 3.10.0 / 2026-02-24
|
|
53
|
+
|
|
54
|
+
Prometheus now offers a distroless Docker image variant alongside the default
|
|
55
|
+
busybox image. The distroless variant provides enhanced security with a minimal
|
|
56
|
+
base image, uses UID/GID 65532 (nonroot) instead of nobody, and removes the
|
|
57
|
+
VOLUME declaration. Both variants are available with `-busybox` and `-distroless`
|
|
58
|
+
tag suffixes (e.g., `prom/prometheus:latest-busybox`, `prom/prometheus:latest-distroless`).
|
|
59
|
+
The busybox image remains the default with no suffix for backwards compatibility
|
|
60
|
+
(e.g., `prom/prometheus:latest` points to the busybox variant).
|
|
61
|
+
|
|
62
|
+
For users migrating existing **named** volumes from the busybox image to the distroless variant, the ownership can be adjusted with:
|
|
63
|
+
```
|
|
64
|
+
docker run --rm -v prometheus-data:/prometheus alpine chown -R 65532:65532 /prometheus
|
|
65
|
+
```
|
|
66
|
+
Then, the container can be started with the old volume with:
|
|
67
|
+
```
|
|
68
|
+
docker run -v prometheus-data:/prometheus prom/prometheus:latest-distroless
|
|
69
|
+
```
|
|
70
|
+
User migrating from bind mounts might need to ajust permissions too, depending on their setup.
|
|
71
|
+
|
|
72
|
+
- [CHANGE] Alerting: Add `alertmanager` dimension to following metrics: `prometheus_notifications_dropped_total`, `prometheus_notifications_queue_capacity`, `prometheus_notifications_queue_length`. #16355
|
|
73
|
+
- [CHANGE] UI: Hide expanded alert annotations by default, enabling more information density on the `/alerts` page. #17611
|
|
74
|
+
- [FEATURE] AWS SD: Add MSK Role. #17600
|
|
75
|
+
- [FEATURE] PromQL: Add `fill()` / `fill_left()` / `fill_right()` binop modifiers for specifying default values for missing series. #17644
|
|
76
|
+
- [FEATURE] Web: Add OpenAPI 3.2 specification for the HTTP API at `/api/v1/openapi.yaml`. #17825
|
|
77
|
+
- [FEATURE] Dockerfile: Add distroless image variant using UID/GID 65532 and no VOLUME declaration. Busybox image remains default. #17876
|
|
78
|
+
- [FEATURE] Web: Add on-demand wall time profiling under `<URL>/debug/pprof/fgprof`. #18027
|
|
79
|
+
- [ENHANCEMENT] PromQL: Add more detail to histogram quantile monotonicity info annotations. #15578
|
|
80
|
+
- [ENHANCEMENT] Alerting: Independent alertmanager sendloops. #16355
|
|
81
|
+
- [ENHANCEMENT] TSDB: Experimental support for early compaction of stale series in the memory with configurable threshold `stale_series_compaction_threshold` in the config file. #16929
|
|
82
|
+
- [ENHANCEMENT] Service Discovery: Service discoveries are now removable from the Prometheus binary through the Go build tag `remove_all_sd` and individual service discoveries can be re-added with the build tags `enable_<sd name>_sd`. Users can build a custom Prometheus with only the necessary SDs for a smaller binary size. #17736
|
|
83
|
+
- [ENHANCEMENT] Promtool: Support promql syntax features `promql-duration-expr` and `promql-extended-range-selectors`. #17926
|
|
84
|
+
- [PERF] PromQL: Avoid unnecessary label extraction in PromQL functions. #17676
|
|
85
|
+
- [PERF] PromQL: Improve performance of regex matchers like `.*-.*-.*`. #17707
|
|
86
|
+
- [PERF] OTLP: Add label caching for OTLP-to-Prometheus conversion to reduce allocations and improve latency. #17860
|
|
87
|
+
- [PERF] API: Compute `/api/v1/targets/relabel_steps` in a single pass instead of re-running relabeling for each prefix. #17969
|
|
88
|
+
- [PERF] tsdb: Optimize LabelValues intersection performance for matchers. #18069
|
|
89
|
+
- [BUGFIX] PromQL: Prevent query strings containing only UTF-8 continuation bytes from crashing Prometheus. #17735
|
|
90
|
+
- [BUGFIX] Web: Fix missing `X-Prometheus-Stopping` header for `/-/ready` endpoint in `NotReady` state. #17795
|
|
91
|
+
- [BUGFIX] PromQL: Fix PromQL `info()` function returning empty results when filtering by a label that exists on both the input metric and `target_info`. #17817
|
|
92
|
+
- [BUGFIX] TSDB: Fix a bug during exemplar buffer grow/shrink that could cause exemplars to be incorrectly discarded. #17863
|
|
93
|
+
- [BUGFIX] UI: Fix broken graph display after page reload, due to broken Y axis min encoding/decoding. #17869
|
|
94
|
+
- [BUGFIX] TSDB: Fix memory leaks in buffer pools by clearing reference fields (Labels, Histogram pointers, metadata strings) before returning buffers to pools. #17879
|
|
95
|
+
- [BUGFIX] PromQL: info function: fix series without identifying labels not being returned. #17898
|
|
96
|
+
- [BUGFIX] OTLP: Filter `__name__` from OTLP attributes to prevent duplicate labels. #17917
|
|
97
|
+
- [BUGFIX] TSDB: Fix division by zero when computing stale series ratio with empty head. #17952
|
|
98
|
+
- [BUGFIX] OTLP: Fix potential silent data loss for sum metrics. #17954
|
|
99
|
+
- [BUGFIX] PromQL: Fix smoothed interpolation across counter resets. #17988
|
|
100
|
+
- [BUGFIX] PromQL: Fix panic with `@` modifier on empty ranges. #18020
|
|
101
|
+
- [BUGFIX] PromQL: Fix `avg_over_time` for a single native histogram. #18058
|
|
102
|
+
|
|
103
|
+
## 3.9.1 / 2026-01-07
|
|
104
|
+
|
|
105
|
+
- [BUGFIX] Agent: fix crash shortly after startup from invalid type of object. #17802
|
|
106
|
+
- [BUGFIX] Scraping: fix relabel keep/drop not working. #17807
|
|
107
|
+
|
|
108
|
+
## 3.9.0 / 2026-01-06
|
|
109
|
+
|
|
110
|
+
- [CHANGE] Native Histograms are no longer experimental! Make the `native-histogram` feature flag a no-op. Use `scrape_native_histograms` config option instead. #17528
|
|
111
|
+
- [CHANGE] API: Add maximum limit of 10,000 sets of statistics to TSDB status endpoint. #17647
|
|
112
|
+
- [FEATURE] API: Add /api/v1/features for clients to understand which features are supported. #17427
|
|
113
|
+
- [FEATURE] Promtool: Add `start_timestamp` field for unit tests. #17636
|
|
114
|
+
- [FEATURE] Promtool: Add `--format seriesjson` option to `tsdb dump` to output just series labels in JSON format. #13409
|
|
115
|
+
- [FEATURE] Add `--storage.tsdb.delay-compact-file.path` flag for better interoperability with Thanos. #17435
|
|
116
|
+
- [FEATURE] UI: Add an option on the query drop-down menu to duplicate that query panel. #17714
|
|
117
|
+
- [ENHANCEMENT]: TSDB: add flag `--storage.tsdb.block-reload-interval` to configure TSDB Block Reload Interval. #16728
|
|
118
|
+
- [ENHANCEMENT] UI: Add graph option to start the chart's Y axis at zero. #17565
|
|
119
|
+
- [ENHANCEMENT] Scraping: Classic protobuf format no longer requires the unit in the metric name. #16834
|
|
120
|
+
- [ENHANCEMENT] PromQL, Rules, SD, Scraping: Add native histograms to complement existing summaries. #17374
|
|
121
|
+
- [ENHANCEMENT] Notifications: Add a histogram `prometheus_notifications_latency_histogram_seconds` to complement the existing summary. #16637
|
|
122
|
+
- [ENHANCEMENT] Remote-write: Add custom scope support for AzureAD authentication. #17483
|
|
123
|
+
- [ENHANCEMENT] SD: add a `config` label with job name for most `prometheus_sd_refresh` metrics. #17138
|
|
124
|
+
- [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
|
|
125
|
+
- [ENHANCEMENT] Remote-read: Validate histograms received via remote-read. #17561
|
|
126
|
+
- [PERF] TSDB: Small optimizations to postings index. #17439
|
|
127
|
+
- [PERF] Scraping: Speed up relabelling of series. #17530
|
|
128
|
+
- [PERF] PromQL: Small optimisations in binary operators. #17524, #17519.
|
|
129
|
+
- [BUGFIX] UI: PromQL autocomplete now shows the correct type and HELP text for OpenMetrics counters whose samples end in `_total`. #17682
|
|
130
|
+
- [BUGFIX] UI: Fixed codemirror-promql incorrectly showing label completion suggestions after the closing curly brace of a vector selector. #17602
|
|
131
|
+
- [BUGFIX] UI: Query editor no longer suggests a duration unit if one is already present after a number. #17605
|
|
132
|
+
- [BUGFIX] PromQL: Fix some "vector cannot contain metrics with the same labelset" errors when experimental delayed name removal is enabled. #17678
|
|
133
|
+
- [BUGFIX] PromQL: Fix possible corruption of PromQL text if the query had an empty `ignoring()` and non-empty grouping. #17643
|
|
134
|
+
- [BUGFIX] PromQL: Fix resets/changes to return empty results for anchored selectors when all samples are outside the range. #17479
|
|
135
|
+
- [BUGFIX] PromQL: Check more consistently for many-to-one matching in filter binary operators. #17668
|
|
136
|
+
- [BUGFIX] PromQL: Fix collision in unary negation with non-overlapping series. #17708
|
|
137
|
+
- [BUGFIX] PromQL: Fix collision in label_join and label_replace with non-overlapping series. #17703
|
|
138
|
+
- [BUGFIX] PromQL: Fix bug with inconsistent results for queries with OR expression when experimental delayed name removal is enabled. #17161
|
|
139
|
+
- [BUGFIX] PromQL: Ensure that `rate`/`increase`/`delta` of histograms results in a gauge histogram. #17608
|
|
140
|
+
- [BUGFIX] PromQL: Do not panic while iterating over invalid histograms. #17559
|
|
141
|
+
- [BUGFIX] TSDB: Reject chunk files whose encoded chunk length overflows int. #17533
|
|
142
|
+
- [BUGFIX] TSDB: Do not panic during resolution reduction of invalid histograms. #17561
|
|
143
|
+
- [BUGFIX] Remote-write Receive: Avoid duplicate labels when experimental type-and-unit-label feature is enabled. #17546
|
|
144
|
+
- [BUGFIX] OTLP Receiver: Only write metadata to disk when experimental metadata-wal-records feature is enabled. #17472
|
|
145
|
+
|
|
146
|
+
## 3.8.1 / 2025-12-16
|
|
147
|
+
|
|
148
|
+
* [BUGFIX] remote: Fix Remote Write receiver, so it does not send wrong response headers for v1 flow and cause Prometheus senders to emit false partial error log and metrics. #17683
|
|
149
|
+
|
|
150
|
+
## 3.8.0 / 2025-11-28
|
|
151
|
+
|
|
152
|
+
* [CHANGE] Remote-write: Update receiving to [2.0-rc.4 spec](https://github.com/prometheus/docs/blob/60c24e450010df38cfcb4f65df874f6f9b26dbcb/docs/specs/prw/remote_write_spec_2_0.md). "created timestamp" (CT) is now called "start timestamp" (ST). #17411
|
|
12
153
|
* [CHANGE] TSDB: Native Histogram Custom Bounds with a NaN threshold are now rejected. #17287
|
|
154
|
+
* [FEATURE] OAuth2: support jwt-bearer grant-type (RFC7523 3.1). #17592
|
|
13
155
|
* [FEATURE] Dockerfile: Add OpenContainers spec labels to Dockerfile. #16483
|
|
14
|
-
* [FEATURE] SD: Add unified AWS service discovery for ec2, lightsail and ecs services. #
|
|
15
|
-
* [FEATURE] Native histograms are now a stable, but optional feature, use the `
|
|
156
|
+
* [FEATURE] SD: Add unified AWS service discovery for ec2, lightsail and ecs services. #17406
|
|
157
|
+
* [FEATURE] Native histograms are now a stable, but optional feature, use the `scrape_native_histograms` config setting. #17232 #17315
|
|
16
158
|
* [FEATURE] UI: Support anchored and smoothed keyword in promql editor. #17239
|
|
17
159
|
* [FEATURE] UI: Show detailed relabeling steps for each discovered target. #17337
|
|
18
160
|
* [FEATURE] Alerting: Add urlQueryEscape to template functions. #17403
|
|
@@ -237,7 +379,7 @@
|
|
|
237
379
|
|
|
238
380
|
## 3.2.1 / 2025-02-25
|
|
239
381
|
|
|
240
|
-
* [BUGFIX] Don't send Accept` header `escape=allow-utf-8` when `metric_name_validation_scheme: legacy` is configured. #16061
|
|
382
|
+
* [BUGFIX] Don't send `Accept` header `escape=allow-utf-8` when `metric_name_validation_scheme: legacy` is configured. #16061
|
|
241
383
|
|
|
242
384
|
## 3.2.0 / 2025-02-17
|
|
243
385
|
|
|
@@ -248,10 +390,10 @@
|
|
|
248
390
|
* [ENHANCEMENT] scrape: Add metadata for automatic metrics to WAL for `metadata-wal-records` feature. #15837
|
|
249
391
|
* [ENHANCEMENT] promtool: Support linting of scrape interval, through lint option `too-long-scrape-interval`. #15719
|
|
250
392
|
* [ENHANCEMENT] promtool: Add --ignore-unknown-fields option. #15706
|
|
251
|
-
* [ENHANCEMENT] ui: Make "hide empty rules" and hide empty rules" persistent #15807
|
|
393
|
+
* [ENHANCEMENT] ui: Make "hide empty rules" and "hide empty rules" persistent #15807
|
|
252
394
|
* [ENHANCEMENT] web/api: Add a limit parameter to `/query` and `/query_range`. #15552
|
|
253
395
|
* [ENHANCEMENT] api: Add fields Node and ServerTime to `/status`. #15784
|
|
254
|
-
* [PERF] Scraping: defer computing labels for dropped targets until they are needed by the UI.
|
|
396
|
+
* [PERF] Scraping: defer computing labels for dropped targets until they are needed by the UI. #15261
|
|
255
397
|
* [BUGFIX] remotewrite2: Fix invalid metadata bug for metrics without metadata. #15829
|
|
256
398
|
* [BUGFIX] remotewrite2: Fix the unit field propagation. #15825
|
|
257
399
|
* [BUGFIX] scrape: Fix WAL metadata for histograms and summaries. #15832
|
|
@@ -268,9 +410,9 @@
|
|
|
268
410
|
* [ENHANCEMENT] TSDB: Improve calculation of space used by labels. #13880
|
|
269
411
|
* [ENHANCEMENT] Rules: new metric rule_group_last_rule_duration_sum_seconds. #15672
|
|
270
412
|
* [ENHANCEMENT] Observability: Export 'go_sync_mutex_wait_total_seconds_total' metric. #15339
|
|
271
|
-
* [
|
|
413
|
+
* [ENHANCEMENT] Remote-Write: optionally use a DNS resolver that picks a random IP. #15329
|
|
272
414
|
* [PERF] Optimize `l=~".+"` matcher. #15474, #15684
|
|
273
|
-
* [PERF] TSDB: Cache all symbols for compaction
|
|
415
|
+
* [PERF] TSDB: Cache all symbols for compaction. #15455
|
|
274
416
|
* [PERF] TSDB: MemPostings: keep a map of label values slices. #15426
|
|
275
417
|
* [PERF] Remote-Write: Remove interning hook. #15456
|
|
276
418
|
* [PERF] Scrape: optimize string manipulation for experimental native histograms with custom buckets. #15453
|