When doing comparison operations on vectors, filtering sometimes gets in the way and you have to go to a fair bit of effort to workaround it in order to always return a result. The 'bool' modifier instead of filtering returns 0/1 depending on the result of the compairson. This is also a prerequisite to removing plain scalar/scalar comparisons, as it maintains the current behaviour under a new syntax.pull/1049/head
parent
6664b77f36
commit
29e8dc2c49
@ -0,0 +1,53 @@ |
||||
load 5m |
||||
http_requests{job="api-server", instance="0", group="production"} 0+10x10 |
||||
http_requests{job="api-server", instance="1", group="production"} 0+20x10 |
||||
http_requests{job="api-server", instance="0", group="canary"} 0+30x10 |
||||
http_requests{job="api-server", instance="1", group="canary"} 0+40x10 |
||||
http_requests{job="app-server", instance="0", group="production"} 0+50x10 |
||||
http_requests{job="app-server", instance="1", group="production"} 0+60x10 |
||||
http_requests{job="app-server", instance="0", group="canary"} 0+70x10 |
||||
http_requests{job="app-server", instance="1", group="canary"} 0+80x10 |
||||
|
||||
eval instant at 50m SUM(http_requests) BY (job) > 1000 |
||||
{job="app-server"} 2600 |
||||
|
||||
|
||||
eval instant at 50m 1000 < SUM(http_requests) BY (job) |
||||
{job="app-server"} 1000 |
||||
|
||||
|
||||
eval instant at 50m SUM(http_requests) BY (job) <= 1000 |
||||
{job="api-server"} 1000 |
||||
|
||||
|
||||
eval instant at 50m SUM(http_requests) BY (job) != 1000 |
||||
{job="app-server"} 2600 |
||||
|
||||
|
||||
eval instant at 50m SUM(http_requests) BY (job) == 1000 |
||||
{job="api-server"} 1000 |
||||
|
||||
eval instant at 50m SUM(http_requests) BY (job) == bool 1000 |
||||
{job="api-server"} 1 |
||||
{job="app-server"} 0 |
||||
|
||||
eval instant at 50m SUM(http_requests) BY (job) == bool SUM(http_requests) BY (job) |
||||
{job="api-server"} 1 |
||||
{job="app-server"} 1 |
||||
|
||||
eval instant at 50m SUM(http_requests) BY (job) != bool SUM(http_requests) BY (job) |
||||
{job="api-server"} 0 |
||||
{job="app-server"} 0 |
||||
|
||||
|
||||
eval instant at 50m 0 == 1 |
||||
0 |
||||
|
||||
eval instant at 50m 1 == 1 |
||||
1 |
||||
|
||||
eval instant at 50m 0 == bool 1 |
||||
0 |
||||
|
||||
eval instant at 50m 1 == bool 1 |
||||
1 |
||||
Loading…
Reference in new issue