mirror of
https://github.com/prometheus/prometheus.git
synced 2025-03-05 20:59:13 -08:00
Merge pull request #15445 from rynkat/update-docs-anchored-regex
docs: make it clearer that regexps are always fully anchored
This commit is contained in:
commit
5ceb603615
|
@ -37,7 +37,7 @@ Depending on the use-case (e.g. when graphing vs. displaying the output of an
|
||||||
expression), only some of these types are legal as the result of a
|
expression), only some of these types are legal as the result of a
|
||||||
user-specified expression.
|
user-specified expression.
|
||||||
For [instant queries](api.md#instant-queries), any of the above data types are allowed as the root of the expression.
|
For [instant queries](api.md#instant-queries), any of the above data types are allowed as the root of the expression.
|
||||||
[Range queries](api.md/#range-queries) only support scalar-typed and instant-vector-typed expressions.
|
[Range queries](api.md#range-queries) only support scalar-typed and instant-vector-typed expressions.
|
||||||
|
|
||||||
_Notes about the experimental native histograms:_
|
_Notes about the experimental native histograms:_
|
||||||
|
|
||||||
|
@ -152,7 +152,7 @@ The value returned will be that of the most recent sample at or before the
|
||||||
query's evaluation timestamp (in the case of an
|
query's evaluation timestamp (in the case of an
|
||||||
[instant query](api.md#instant-queries))
|
[instant query](api.md#instant-queries))
|
||||||
or the current step within the query (in the case of a
|
or the current step within the query (in the case of a
|
||||||
[range query](api.md/#range-queries)).
|
[range query](api.md#range-queries)).
|
||||||
The [`@` modifier](#modifier) allows overriding the timestamp relative to which
|
The [`@` modifier](#modifier) allows overriding the timestamp relative to which
|
||||||
the selection takes place. Time series are only returned if their most recent sample is less than the [lookback period](#staleness) ago.
|
the selection takes place. Time series are only returned if their most recent sample is less than the [lookback period](#staleness) ago.
|
||||||
|
|
||||||
|
@ -178,7 +178,7 @@ against regular expressions. The following label matching operators exist:
|
||||||
* `=~`: Select labels that regex-match the provided string.
|
* `=~`: Select labels that regex-match the provided string.
|
||||||
* `!~`: Select labels that do not regex-match the provided string.
|
* `!~`: Select labels that do not regex-match the provided string.
|
||||||
|
|
||||||
Regex matches are fully anchored. A match of `env=~"foo"` is treated as `env=~"^foo$"`.
|
[Regex](#regular-expressions) matches are fully anchored. A match of `env=~"foo"` is treated as `env=~"^foo$"`.
|
||||||
|
|
||||||
For example, this selects all `http_requests_total` time series for `staging`,
|
For example, this selects all `http_requests_total` time series for `staging`,
|
||||||
`testing`, and `development` environments and HTTP methods other than `GET`.
|
`testing`, and `development` environments and HTTP methods other than `GET`.
|
||||||
|
@ -241,9 +241,6 @@ A workaround for this restriction is to use the `__name__` label:
|
||||||
|
|
||||||
{__name__="on"} # Good!
|
{__name__="on"} # Good!
|
||||||
|
|
||||||
All regular expressions in Prometheus use [RE2
|
|
||||||
syntax](https://github.com/google/re2/wiki/Syntax).
|
|
||||||
|
|
||||||
### Range Vector Selectors
|
### Range Vector Selectors
|
||||||
|
|
||||||
Range vector literals work like instant vector literals, except that they
|
Range vector literals work like instant vector literals, except that they
|
||||||
|
@ -365,6 +362,12 @@ PromQL supports line comments that start with `#`. Example:
|
||||||
|
|
||||||
# This is a comment
|
# This is a comment
|
||||||
|
|
||||||
|
## Regular expressions
|
||||||
|
|
||||||
|
All regular expressions in Prometheus use [RE2 syntax](https://github.com/google/re2/wiki/Syntax).
|
||||||
|
|
||||||
|
Regex matches are always fully anchored.
|
||||||
|
|
||||||
## Gotchas
|
## Gotchas
|
||||||
|
|
||||||
### Staleness
|
### Staleness
|
||||||
|
|
|
@ -25,14 +25,11 @@ for the same vector, making it a [range vector](../basics/#range-vector-selector
|
||||||
Note that an expression resulting in a range vector cannot be graphed directly,
|
Note that an expression resulting in a range vector cannot be graphed directly,
|
||||||
but viewed in the tabular ("Console") view of the expression browser.
|
but viewed in the tabular ("Console") view of the expression browser.
|
||||||
|
|
||||||
Using regular expressions, you could select time series only for jobs whose
|
Using [regular expressions](./basics.md#regular-expressions), you could select time series only for jobs whose
|
||||||
name match a certain pattern, in this case, all jobs that end with `server`:
|
name match a certain pattern, in this case, all jobs that end with `server`:
|
||||||
|
|
||||||
http_requests_total{job=~".*server"}
|
http_requests_total{job=~".*server"}
|
||||||
|
|
||||||
All regular expressions in Prometheus use [RE2
|
|
||||||
syntax](https://github.com/google/re2/wiki/Syntax).
|
|
||||||
|
|
||||||
To select all HTTP status codes except 4xx ones, you could run:
|
To select all HTTP status codes except 4xx ones, you could run:
|
||||||
|
|
||||||
http_requests_total{status!~"4.."}
|
http_requests_total{status!~"4.."}
|
||||||
|
|
|
@ -598,7 +598,7 @@ label_join(up{job="api-server",src1="a",src2="b",src3="c"}, "foo", ",", "src1",
|
||||||
## `label_replace()`
|
## `label_replace()`
|
||||||
|
|
||||||
For each timeseries in `v`, `label_replace(v instant-vector, dst_label string, replacement string, src_label string, regex string)`
|
For each timeseries in `v`, `label_replace(v instant-vector, dst_label string, replacement string, src_label string, regex string)`
|
||||||
matches the [regular expression](https://github.com/google/re2/wiki/Syntax) `regex` against the value of the label `src_label`. If it
|
matches the [regular expression](./basics.md#regular-expressions) `regex` against the value of the label `src_label`. If it
|
||||||
matches, the value of the label `dst_label` in the returned timeseries will be the expansion
|
matches, the value of the label `dst_label` in the returned timeseries will be the expansion
|
||||||
of `replacement`, together with the original labels in the input. Capturing groups in the
|
of `replacement`, together with the original labels in the input. Capturing groups in the
|
||||||
regular expression can be referenced with `$1`, `$2`, etc. Named capturing groups in the regular expression can be referenced with `$name` (where `name` is the capturing group name). If the regular expression doesn't match then the timeseries is returned unchanged.
|
regular expression can be referenced with `$1`, `$2`, etc. Named capturing groups in the regular expression can be referenced with `$name` (where `name` is the capturing group name). If the regular expression doesn't match then the timeseries is returned unchanged.
|
||||||
|
|
Loading…
Reference in a new issue