|
|
|
@ -3928,3 +3928,65 @@ func (s mockSeries) Iterator(it chunkenc.Iterator) chunkenc.Iterator {
|
|
|
|
|
}
|
|
|
|
|
return storage.ChainSampleIteratorFromIterators(it, iterables)
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
func TestEvaluationWithDelayedNameRemovalDisabled(t *testing.T) {
|
|
|
|
|
opts := promql.EngineOpts{
|
|
|
|
|
Logger: nil,
|
|
|
|
|
Reg: nil,
|
|
|
|
|
EnableAtModifier: true,
|
|
|
|
|
MaxSamples: 10000,
|
|
|
|
|
Timeout: 10 * time.Second,
|
|
|
|
|
EnableDelayedNameRemoval: false,
|
|
|
|
|
}
|
|
|
|
|
engine := promqltest.NewTestEngineWithOpts(t, opts)
|
|
|
|
|
|
|
|
|
|
promqltest.RunTest(t, `
|
|
|
|
|
load 5m
|
|
|
|
|
metric{env="1"} 0 60 120
|
|
|
|
|
another_metric{env="1"} 60 120 180
|
|
|
|
|
|
|
|
|
|
# Does not drop __name__ for vector selector
|
|
|
|
|
eval instant at 10m metric{env="1"}
|
|
|
|
|
metric{env="1"} 120
|
|
|
|
|
|
|
|
|
|
# Drops __name__ for unary operators
|
|
|
|
|
eval instant at 10m -metric
|
|
|
|
|
{env="1"} -120
|
|
|
|
|
|
|
|
|
|
# Drops __name__ for binary operators
|
|
|
|
|
eval instant at 10m metric + another_metric
|
|
|
|
|
{env="1"} 300
|
|
|
|
|
|
|
|
|
|
# Does not drop __name__ for binary comparison operators
|
|
|
|
|
eval instant at 10m metric <= another_metric
|
|
|
|
|
metric{env="1"} 120
|
|
|
|
|
|
|
|
|
|
# Drops __name__ for binary comparison operators with "bool" modifier
|
|
|
|
|
eval instant at 10m metric <= bool another_metric
|
|
|
|
|
{env="1"} 1
|
|
|
|
|
|
|
|
|
|
# Drops __name__ for vector-scalar operations
|
|
|
|
|
eval instant at 10m metric * 2
|
|
|
|
|
{env="1"} 240
|
|
|
|
|
|
|
|
|
|
# Drops __name__ for instant-vector functions
|
|
|
|
|
eval instant at 10m clamp(metric, 0, 100)
|
|
|
|
|
{env="1"} 100
|
|
|
|
|
|
|
|
|
|
# Drops __name__ for round function
|
|
|
|
|
eval instant at 10m round(metric)
|
|
|
|
|
{env="1"} 120
|
|
|
|
|
|
|
|
|
|
# Drops __name__ for range-vector functions
|
|
|
|
|
eval instant at 10m rate(metric{env="1"}[10m])
|
|
|
|
|
{env="1"} 0.2
|
|
|
|
|
|
|
|
|
|
# Does not drop __name__ for last_over_time function
|
|
|
|
|
eval instant at 10m last_over_time(metric{env="1"}[10m])
|
|
|
|
|
metric{env="1"} 120
|
|
|
|
|
|
|
|
|
|
# Drops name for other _over_time functions
|
|
|
|
|
eval instant at 10m max_over_time(metric{env="1"}[10m])
|
|
|
|
|
{env="1"} 120
|
|
|
|
|
`, engine)
|
|
|
|
|
}
|
|
|
|
|