mirror of
https://github.com/prometheus/prometheus.git
synced 2024-12-27 14:39:40 -08:00
125a90899c
promqltest: Complete the tests for info annotations So far, we did not test for the _absence_ of an info annotation (because many tests triggered info annotations, which we haven't taken into account so far). The test for info annotations was also missed for range queries. This completes the tests for info annotations (and refactors the many `if` statements into a somewhat more compact `switch` statement). It fixes most tests to not emit an info annotation anymore. Or it changes the `eval` to `eval_info` where we actually want to test for the info annotation. It also fixes a few spelling errors in comments. --------- Signed-off-by: beorn7 <beorn@grafana.com> Signed-off-by: Björn Rabenstein <github@rabenste.in> Co-authored-by: Arve Knudsen <arve.knudsen@gmail.com>
89 lines
3.2 KiB
Plaintext
89 lines
3.2 KiB
Plaintext
# Test for __name__ label drop.
|
|
load 5m
|
|
metric_total{env="1"} 0 60 120
|
|
another_metric_total{env="1"} 60 120 180
|
|
|
|
# Does not drop __name__ for vector selector.
|
|
eval instant at 10m metric_total{env="1"}
|
|
metric_total{env="1"} 120
|
|
|
|
# Drops __name__ for unary operators.
|
|
eval instant at 10m -metric_total
|
|
{env="1"} -120
|
|
|
|
# Drops __name__ for binary operators.
|
|
eval instant at 10m metric_total + another_metric_total
|
|
{env="1"} 300
|
|
|
|
# Does not drop __name__ for binary comparison operators.
|
|
eval instant at 10m metric_total <= another_metric_total
|
|
metric_total{env="1"} 120
|
|
|
|
# Drops __name__ for binary comparison operators with "bool" modifier.
|
|
eval instant at 10m metric_total <= bool another_metric_total
|
|
{env="1"} 1
|
|
|
|
# Drops __name__ for vector-scalar operations.
|
|
eval instant at 10m metric_total * 2
|
|
{env="1"} 240
|
|
|
|
# Drops __name__ for instant-vector functions.
|
|
eval instant at 10m clamp(metric_total, 0, 100)
|
|
{env="1"} 100
|
|
|
|
# Drops __name__ for round function.
|
|
eval instant at 10m round(metric_total)
|
|
{env="1"} 120
|
|
|
|
# Drops __name__ for range-vector functions.
|
|
eval instant at 10m rate(metric_total{env="1"}[10m])
|
|
{env="1"} 0.2
|
|
|
|
# Does not drop __name__ for last_over_time function.
|
|
eval instant at 10m last_over_time(metric_total{env="1"}[10m])
|
|
metric_total{env="1"} 120
|
|
|
|
# Drops name for other _over_time functions.
|
|
eval instant at 10m max_over_time(metric_total{env="1"}[10m])
|
|
{env="1"} 120
|
|
|
|
# Allows relabeling (to-be-dropped) __name__ via label_replace.
|
|
eval instant at 10m label_replace(rate({env="1"}[10m]), "my_name", "rate_$1", "__name__", "(.+)")
|
|
{my_name="rate_metric_total", env="1"} 0.2
|
|
{my_name="rate_another_metric_total", env="1"} 0.2
|
|
|
|
# Allows preserving __name__ via label_replace.
|
|
eval instant at 10m label_replace(rate({env="1"}[10m]), "__name__", "rate_$1", "__name__", "(.+)")
|
|
rate_metric_total{env="1"} 0.2
|
|
rate_another_metric_total{env="1"} 0.2
|
|
|
|
# Allows relabeling (to-be-dropped) __name__ via label_join.
|
|
eval instant at 10m label_join(rate({env="1"}[10m]), "my_name", "_", "__name__")
|
|
{my_name="metric_total", env="1"} 0.2
|
|
{my_name="another_metric_total", env="1"} 0.2
|
|
|
|
# Allows preserving __name__ via label_join.
|
|
eval instant at 10m label_join(rate({env="1"}[10m]), "__name__", "_", "__name__", "env")
|
|
metric_total_1{env="1"} 0.2
|
|
another_metric_total_1{env="1"} 0.2
|
|
|
|
# Does not drop metric names from aggregation operators.
|
|
eval instant at 10m sum by (__name__, env) (metric_total{env="1"})
|
|
metric_total{env="1"} 120
|
|
|
|
# Aggregation operators by __name__ lead to duplicate labelset errors (aggregation is partitioned by not yet removed __name__ label).
|
|
# This is an accidental side effect of delayed __name__ label dropping
|
|
eval_fail instant at 10m sum by (__name__) (rate({env="1"}[10m]))
|
|
|
|
# Aggregation operators aggregate metrics with same labelset and to-be-dropped names.
|
|
# This is an accidental side effect of delayed __name__ label dropping
|
|
eval instant at 10m sum(rate({env="1"}[10m])) by (env)
|
|
{env="1"} 0.4
|
|
|
|
# Aggregationk operators propagate __name__ label dropping information.
|
|
eval instant at 10m topk(10, sum by (__name__, env) (metric_total{env="1"}))
|
|
metric_total{env="1"} 120
|
|
|
|
eval instant at 10m topk(10, sum by (__name__, env) (rate(metric_total{env="1"}[10m])))
|
|
{env="1"} 0.2
|