Values filtering keeps only the raw points (after metric type selection) whose value matches a condition, before reducing and resampling. Leaving the operator on None skips this step entirely — every point is kept.

Values filtering operators

Example series used for every operator below — 5 raw points of one series:

Interval 1 (10:00:00) Interval 2 (10:00:15) Interval 3 (10:00:30) Interval 4 (10:00:45) Interval 5 (10:01:00)
Value 3 7 3 9 5

Each result below is the list of surviving points, written as (timestamp, value) pairs, one per line.

Operator Parameters Points kept Result
None all (10:00:00, 3)
(10:00:15, 7)
(10:00:30, 3)
(10:00:45, 9)
(10:01:00, 5)
Equal to Value 1 = 5 value == 5 (10:01:00, 5)
Not equal to Value 1 = 5 value != 5 (10:00:00, 3)
(10:00:15, 7)
(10:00:30, 3)
(10:00:45, 9)
Greater than or equal to Value 1 = 5 value >= 5 (10:00:15, 7)
(10:00:45, 9)
(10:01:00, 5)
Less than or equal to Value 1 = 5 value <= 5 (10:00:00, 3)
(10:00:30, 3)
(10:01:00, 5)
Greater than Value 1 = 5 value > 5 (10:00:15, 7)
(10:00:45, 9)
Less than Value 1 = 5 value < 5 (10:00:00, 3)
(10:00:30, 3)
Between Value 1 = 3, Value 2 = 7 3 <= value <= 7 (inclusive) (10:00:00, 3)
(10:00:15, 7)
(10:00:30, 3)
(10:01:00, 5)
First earliest point by timestamp, whatever its value (10:00:00, 3)
Last latest point by timestamp, whatever its value (10:01:00, 5)

First / Last don’t compare values. Unlike every other operator, First and Last don’t look at the value at all — they simply keep the chronologically first (or last) raw point of each series. They’re used to answer “what was the value at the start/end of the period”, not “give me the smallest/largest value” (that’s what Reduce’s Min/Max function is for).

If a series has no points at all matching the filter, it ends up with an empty points list — it isn’t discarded here, it simply has nothing left to reduce/resample. See Reduce for what happens to an empty series depending on scope and function, and the full worked example for a real case of this.

Validation

  • Value 1 is required for every operator except None, First and Last.
  • Value 2 is additionally required for Between.
  • Both checks happen twice: once when saving the DPS (so a broken filter can’t be saved), and again defensively when evaluating (since Evaluate can run an unsaved, in-progress description).