mirror of
https://github.com/GreptimeTeam/greptimedb.git
synced 2026-01-06 21:32:58 +00:00
* fix(promql-planner): keep field column in left input for AND operator * test: add sqlness test * fix: fix unless operator
621 lines
30 KiB
Plaintext
621 lines
30 KiB
Plaintext
-- from promql/testdata/operators.test
|
|
-- cases related to AND/OR/UNLESS
|
|
-- group_left() and group_right() are not included
|
|
create table http_requests (
|
|
ts timestamp time index,
|
|
job string,
|
|
instance string,
|
|
g string, -- for `group`
|
|
greptime_value double,
|
|
primary key (job, instance, g)
|
|
);
|
|
|
|
Affected Rows: 0
|
|
|
|
insert into http_requests values
|
|
(3000000, "api", "0", "production", 100),
|
|
(3000000, "api", "1", "production", 200),
|
|
(3000000, "api", "0", "canary", 300),
|
|
(3000000, "api", "1", "canary", 400),
|
|
(3000000, "app", "0", "production", 500),
|
|
(3000000, "app", "1", "production", 600),
|
|
(3000000, "app", "0", "canary", 700),
|
|
(3000000, "app", "1", "canary", 800);
|
|
|
|
Affected Rows: 8
|
|
|
|
-- empty metric
|
|
create table cpu_count(ts timestamp time index, greptime_value double);
|
|
|
|
Affected Rows: 0
|
|
|
|
create table vector_matching_a(
|
|
ts timestamp time index,
|
|
l string primary key,
|
|
greptime_value double,
|
|
);
|
|
|
|
Affected Rows: 0
|
|
|
|
insert into vector_matching_a values
|
|
(3000000, "x", 10);
|
|
|
|
Affected Rows: 1
|
|
|
|
-- eval instant at 50m http_requests{group="canary"} and http_requests{instance="0"}
|
|
-- http_requests{group="canary", instance="0", job="api-server"} 300
|
|
-- http_requests{group="canary", instance="0", job="app-server"} 700
|
|
-- SQLNESS SORT_RESULT 3 1
|
|
tql eval (3000, 3000, '1s') http_requests{g="canary"} and http_requests{instance="0"};
|
|
|
|
+---------------------+-----+----------+--------+----------------+
|
|
| ts | job | instance | g | greptime_value |
|
|
+---------------------+-----+----------+--------+----------------+
|
|
| 1970-01-01T00:50:00 | api | 0 | canary | 300.0 |
|
|
| 1970-01-01T00:50:00 | app | 0 | canary | 700.0 |
|
|
+---------------------+-----+----------+--------+----------------+
|
|
|
|
-- eval instant at 50m (http_requests{group="canary"} + 1) and http_requests{instance="0"}
|
|
-- {group="canary", instance="0", job="api-server"} 301
|
|
-- {group="canary", instance="0", job="app-server"} 701
|
|
-- SQLNESS SORT_RESULT 3 1
|
|
tql eval (3000, 3000, '1s') (http_requests{g="canary"} + 1) and http_requests{instance="0"};
|
|
|
|
+-----+----------+--------+---------------------+-----------------------------+
|
|
| job | instance | g | ts | greptime_value + Float64(1) |
|
|
+-----+----------+--------+---------------------+-----------------------------+
|
|
| api | 0 | canary | 1970-01-01T00:50:00 | 301.0 |
|
|
| app | 0 | canary | 1970-01-01T00:50:00 | 701.0 |
|
|
+-----+----------+--------+---------------------+-----------------------------+
|
|
|
|
-- eval instant at 50m (http_requests{group="canary"} + 1) and on(instance, job) http_requests{instance="0", group="production"}
|
|
-- {group="canary", instance="0", job="api-server"} 301
|
|
-- {group="canary", instance="0", job="app-server"} 701
|
|
-- SQLNESS SORT_RESULT 3 1
|
|
tql eval (3000, 3000, '1s') (http_requests{g="canary"} + 1) and on(instance, job) http_requests{instance="0", g="production"};
|
|
|
|
+-----+----------+--------+---------------------+-----------------------------+
|
|
| job | instance | g | ts | greptime_value + Float64(1) |
|
|
+-----+----------+--------+---------------------+-----------------------------+
|
|
| api | 0 | canary | 1970-01-01T00:50:00 | 301.0 |
|
|
| app | 0 | canary | 1970-01-01T00:50:00 | 701.0 |
|
|
+-----+----------+--------+---------------------+-----------------------------+
|
|
|
|
-- eval instant at 50m (http_requests{group="canary"} + 1) and on(instance) http_requests{instance="0", group="production"}
|
|
-- {group="canary", instance="0", job="api-server"} 301
|
|
-- {group="canary", instance="0", job="app-server"} 701
|
|
-- SQLNESS SORT_RESULT 3 1
|
|
tql eval (3000, 3000, '1s') (http_requests{g="canary"} + 1) and on(instance) http_requests{instance="0", g="production"};
|
|
|
|
+-----+----------+--------+---------------------+-----------------------------+
|
|
| job | instance | g | ts | greptime_value + Float64(1) |
|
|
+-----+----------+--------+---------------------+-----------------------------+
|
|
| api | 0 | canary | 1970-01-01T00:50:00 | 301.0 |
|
|
| app | 0 | canary | 1970-01-01T00:50:00 | 701.0 |
|
|
+-----+----------+--------+---------------------+-----------------------------+
|
|
|
|
-- eval instant at 50m (http_requests{group="canary"} + 1) and ignoring(group) http_requests{instance="0", group="production"}
|
|
-- {group="canary", instance="0", job="api-server"} 301
|
|
-- {group="canary", instance="0", job="app-server"} 701
|
|
-- SQLNESS SORT_RESULT 3 1
|
|
tql eval (3000, 3000, '1s') (http_requests{g="canary"} + 1) and ignoring(g) http_requests{instance="0", g="production"};
|
|
|
|
+-----+----------+--------+---------------------+-----------------------------+
|
|
| job | instance | g | ts | greptime_value + Float64(1) |
|
|
+-----+----------+--------+---------------------+-----------------------------+
|
|
| api | 0 | canary | 1970-01-01T00:50:00 | 301.0 |
|
|
| app | 0 | canary | 1970-01-01T00:50:00 | 701.0 |
|
|
+-----+----------+--------+---------------------+-----------------------------+
|
|
|
|
-- eval instant at 50m (http_requests{group="canary"} + 1) and ignoring(group, job) http_requests{instance="0", group="production"}
|
|
-- {group="canary", instance="0", job="api-server"} 301
|
|
-- {group="canary", instance="0", job="app-server"} 701
|
|
-- SQLNESS SORT_RESULT 3 1
|
|
tql eval (3000, 3000, '1s') (http_requests{g="canary"} + 1) and ignoring(g, job) http_requests{instance="0", g="production"};
|
|
|
|
+-----+----------+--------+---------------------+-----------------------------+
|
|
| job | instance | g | ts | greptime_value + Float64(1) |
|
|
+-----+----------+--------+---------------------+-----------------------------+
|
|
| api | 0 | canary | 1970-01-01T00:50:00 | 301.0 |
|
|
| app | 0 | canary | 1970-01-01T00:50:00 | 701.0 |
|
|
+-----+----------+--------+---------------------+-----------------------------+
|
|
|
|
-- eval instant at 50m http_requests{group="canary"} or http_requests{group="production"}
|
|
-- http_requests{group="canary", instance="0", job="api-server"} 300
|
|
-- http_requests{group="canary", instance="0", job="app-server"} 700
|
|
-- http_requests{group="canary", instance="1", job="api-server"} 400
|
|
-- http_requests{group="canary", instance="1", job="app-server"} 800
|
|
-- http_requests{group="production", instance="0", job="api-server"} 100
|
|
-- http_requests{group="production", instance="0", job="app-server"} 500
|
|
-- http_requests{group="production", instance="1", job="api-server"} 200
|
|
-- http_requests{group="production", instance="1", job="app-server"} 600
|
|
-- SQLNESS SORT_RESULT 3 1
|
|
tql eval (3000, 3000, '1s') http_requests{g="canary"} or http_requests{g="production"};
|
|
|
|
+---------------------+------------+----------------+----------+-----+
|
|
| ts | g | greptime_value | instance | job |
|
|
+---------------------+------------+----------------+----------+-----+
|
|
| 1970-01-01T00:50:00 | canary | 300.0 | 0 | api |
|
|
| 1970-01-01T00:50:00 | canary | 400.0 | 1 | api |
|
|
| 1970-01-01T00:50:00 | canary | 700.0 | 0 | app |
|
|
| 1970-01-01T00:50:00 | canary | 800.0 | 1 | app |
|
|
| 1970-01-01T00:50:00 | production | 100.0 | 0 | api |
|
|
| 1970-01-01T00:50:00 | production | 200.0 | 1 | api |
|
|
| 1970-01-01T00:50:00 | production | 500.0 | 0 | app |
|
|
| 1970-01-01T00:50:00 | production | 600.0 | 1 | app |
|
|
+---------------------+------------+----------------+----------+-----+
|
|
|
|
-- # On overlap the rhs samples must be dropped.
|
|
-- eval instant at 50m (http_requests{group="canary"} + 1) or http_requests{instance="1"}
|
|
-- {group="canary", instance="0", job="api-server"} 301
|
|
-- {group="canary", instance="0", job="app-server"} 701
|
|
-- {group="canary", instance="1", job="api-server"} 401
|
|
-- {group="canary", instance="1", job="app-server"} 801
|
|
-- http_requests{group="production", instance="1", job="api-server"} 200
|
|
-- http_requests{group="production", instance="1", job="app-server"} 600
|
|
-- SQLNESS SORT_RESULT 3 1
|
|
tql eval (3000, 3000, '1s') (http_requests{g="canary"} + 1) or http_requests{instance="1"};
|
|
|
|
+---------------------+------------+-----------------------------+----------+-----+
|
|
| ts | g | greptime_value + Float64(1) | instance | job |
|
|
+---------------------+------------+-----------------------------+----------+-----+
|
|
| 1970-01-01T00:50:00 | canary | 301.0 | 0 | api |
|
|
| 1970-01-01T00:50:00 | canary | 401.0 | 1 | api |
|
|
| 1970-01-01T00:50:00 | canary | 701.0 | 0 | app |
|
|
| 1970-01-01T00:50:00 | canary | 801.0 | 1 | app |
|
|
| 1970-01-01T00:50:00 | production | 200.0 | 1 | api |
|
|
| 1970-01-01T00:50:00 | production | 600.0 | 1 | app |
|
|
+---------------------+------------+-----------------------------+----------+-----+
|
|
|
|
-- # Matching only on instance excludes everything that has instance=0/1 but includes
|
|
-- # entries without the instance label.
|
|
-- eval instant at 50m (http_requests{group="canary"} + 1) or on(instance) (http_requests or cpu_count or vector_matching_a)
|
|
-- {group="canary", instance="0", job="api-server"} 301
|
|
-- {group="canary", instance="0", job="app-server"} 701
|
|
-- {group="canary", instance="1", job="api-server"} 401
|
|
-- {group="canary", instance="1", job="app-server"} 801
|
|
-- vector_matching_a{l="x"} 10
|
|
-- vector_matching_a{l="y"} 20
|
|
-- SQLNESS SORT_RESULT 3 1
|
|
tql eval (3000, 3000, '1s') (http_requests{g="canary"} + 1) or on(instance) (http_requests or cpu_count or vector_matching_a);
|
|
|
|
+---------------------+--------+-----------------------------+----------+-----+---+
|
|
| ts | g | greptime_value + Float64(1) | instance | job | l |
|
|
+---------------------+--------+-----------------------------+----------+-----+---+
|
|
| 1970-01-01T00:50:00 | | 10.0 | | | x |
|
|
| 1970-01-01T00:50:00 | canary | 301.0 | 0 | api | |
|
|
| 1970-01-01T00:50:00 | canary | 401.0 | 1 | api | |
|
|
| 1970-01-01T00:50:00 | canary | 701.0 | 0 | app | |
|
|
| 1970-01-01T00:50:00 | canary | 801.0 | 1 | app | |
|
|
+---------------------+--------+-----------------------------+----------+-----+---+
|
|
|
|
-- eval instant at 50m (http_requests{group="canary"} + 1) or ignoring(l, group, job) (http_requests or cpu_count or vector_matching_a)
|
|
-- {group="canary", instance="0", job="api-server"} 301
|
|
-- {group="canary", instance="0", job="app-server"} 701
|
|
-- {group="canary", instance="1", job="api-server"} 401
|
|
-- {group="canary", instance="1", job="app-server"} 801
|
|
-- vector_matching_a{l="x"} 10
|
|
-- vector_matching_a{l="y"} 20
|
|
-- SQLNESS SORT_RESULT 3 1
|
|
tql eval (3000, 3000, '1s') (http_requests{g="canary"} + 1) or ignoring(l, g, job) (http_requests or cpu_count or vector_matching_a);
|
|
|
|
+---------------------+--------+-----------------------------+----------+-----+---+
|
|
| ts | g | greptime_value + Float64(1) | instance | job | l |
|
|
+---------------------+--------+-----------------------------+----------+-----+---+
|
|
| 1970-01-01T00:50:00 | | 10.0 | | | x |
|
|
| 1970-01-01T00:50:00 | canary | 301.0 | 0 | api | |
|
|
| 1970-01-01T00:50:00 | canary | 401.0 | 1 | api | |
|
|
| 1970-01-01T00:50:00 | canary | 701.0 | 0 | app | |
|
|
| 1970-01-01T00:50:00 | canary | 801.0 | 1 | app | |
|
|
+---------------------+--------+-----------------------------+----------+-----+---+
|
|
|
|
-- eval instant at 50m http_requests{group="canary"} unless http_requests{instance="0"}
|
|
-- http_requests{group="canary", instance="1", job="api-server"} 400
|
|
-- http_requests{group="canary", instance="1", job="app-server"} 800
|
|
-- SQLNESS SORT_RESULT 3 1
|
|
tql eval (3000, 3000, '1s') http_requests{g="canary"} unless http_requests{instance="0"};
|
|
|
|
+---------------------+-----+----------+--------+----------------+
|
|
| ts | job | instance | g | greptime_value |
|
|
+---------------------+-----+----------+--------+----------------+
|
|
| 1970-01-01T00:50:00 | api | 1 | canary | 400.0 |
|
|
| 1970-01-01T00:50:00 | app | 1 | canary | 800.0 |
|
|
+---------------------+-----+----------+--------+----------------+
|
|
|
|
-- eval instant at 50m http_requests{group="canary"} unless on(job) http_requests{instance="0"}
|
|
tql eval (3000, 3000, '1s') http_requests{g="canary"} unless on(job) http_requests{instance="0"};
|
|
|
|
++
|
|
++
|
|
|
|
-- eval instant at 50m http_requests{group="canary"} unless on(job, instance) http_requests{instance="0"}
|
|
-- http_requests{group="canary", instance="1", job="api-server"} 400
|
|
-- http_requests{group="canary", instance="1", job="app-server"} 800
|
|
-- SQLNESS SORT_RESULT 3 1
|
|
tql eval (3000, 3000, '1s') http_requests{g="canary"} unless on(job, instance) http_requests{instance="0"};
|
|
|
|
+---------------------+-----+----------+--------+----------------+
|
|
| ts | job | instance | g | greptime_value |
|
|
+---------------------+-----+----------+--------+----------------+
|
|
| 1970-01-01T00:50:00 | api | 1 | canary | 400.0 |
|
|
| 1970-01-01T00:50:00 | app | 1 | canary | 800.0 |
|
|
+---------------------+-----+----------+--------+----------------+
|
|
|
|
-- eval instant at 50m http_requests{group="canary"} unless ignoring(group, instance) http_requests{instance="0"}
|
|
tql eval (3000, 3000, '1s') http_requests{g="canary"} unless ignoring(g, instance) http_requests{instance="0"};
|
|
|
|
++
|
|
++
|
|
|
|
-- eval instant at 50m http_requests{group="canary"} unless ignoring(group) http_requests{instance="0"}
|
|
-- http_requests{group="canary", instance="1", job="api-server"} 400
|
|
-- http_requests{group="canary", instance="1", job="app-server"} 800
|
|
-- SQLNESS SORT_RESULT 3 1
|
|
tql eval (3000, 3000, '1s') http_requests{g="canary"} unless ignoring(g) http_requests{instance="0"};
|
|
|
|
+---------------------+-----+----------+--------+----------------+
|
|
| ts | job | instance | g | greptime_value |
|
|
+---------------------+-----+----------+--------+----------------+
|
|
| 1970-01-01T00:50:00 | api | 1 | canary | 400.0 |
|
|
| 1970-01-01T00:50:00 | app | 1 | canary | 800.0 |
|
|
+---------------------+-----+----------+--------+----------------+
|
|
|
|
-- # https://github.com/prometheus/prometheus/issues/1489
|
|
-- eval instant at 50m http_requests AND ON (dummy) vector(1)
|
|
-- http_requests{group="canary", instance="0", job="api-server"} 300
|
|
-- http_requests{group="canary", instance="0", job="app-server"} 700
|
|
-- http_requests{group="canary", instance="1", job="api-server"} 400
|
|
-- http_requests{group="canary", instance="1", job="app-server"} 800
|
|
-- http_requests{group="production", instance="0", job="api-server"} 100
|
|
-- http_requests{group="production", instance="0", job="app-server"} 500
|
|
-- http_requests{group="production", instance="1", job="api-server"} 200
|
|
-- http_requests{group="production", instance="1", job="app-server"} 600
|
|
-- SQLNESS SORT_RESULT 3 1
|
|
tql eval (3000, 3000, '1s') http_requests AND ON (dummy) vector(1);
|
|
|
|
+---------------------+-----+----------+------------+----------------+
|
|
| ts | job | instance | g | greptime_value |
|
|
+---------------------+-----+----------+------------+----------------+
|
|
| 1970-01-01T00:50:00 | api | 0 | canary | 300.0 |
|
|
| 1970-01-01T00:50:00 | api | 0 | production | 100.0 |
|
|
| 1970-01-01T00:50:00 | api | 1 | canary | 400.0 |
|
|
| 1970-01-01T00:50:00 | api | 1 | production | 200.0 |
|
|
| 1970-01-01T00:50:00 | app | 0 | canary | 700.0 |
|
|
| 1970-01-01T00:50:00 | app | 0 | production | 500.0 |
|
|
| 1970-01-01T00:50:00 | app | 1 | canary | 800.0 |
|
|
| 1970-01-01T00:50:00 | app | 1 | production | 600.0 |
|
|
+---------------------+-----+----------+------------+----------------+
|
|
|
|
-- eval instant at 50m http_requests AND IGNORING (group, instance, job) vector(1)
|
|
-- http_requests{group="canary", instance="0", job="api-server"} 300
|
|
-- http_requests{group="canary", instance="0", job="app-server"} 700
|
|
-- http_requests{group="canary", instance="1", job="api-server"} 400
|
|
-- http_requests{group="canary", instance="1", job="app-server"} 800
|
|
-- http_requests{group="production", instance="0", job="api-server"} 100
|
|
-- http_requests{group="production", instance="0", job="app-server"} 500
|
|
-- http_requests{group="production", instance="1", job="api-server"} 200
|
|
-- http_requests{group="production", instance="1", job="app-server"} 600
|
|
-- SQLNESS SORT_RESULT 3 1
|
|
tql eval (3000, 3000, '1s') http_requests AND IGNORING (g, instance, job) vector(1);
|
|
|
|
+---------------------+-----+----------+------------+----------------+
|
|
| ts | job | instance | g | greptime_value |
|
|
+---------------------+-----+----------+------------+----------------+
|
|
| 1970-01-01T00:50:00 | api | 0 | canary | 300.0 |
|
|
| 1970-01-01T00:50:00 | api | 0 | production | 100.0 |
|
|
| 1970-01-01T00:50:00 | api | 1 | canary | 400.0 |
|
|
| 1970-01-01T00:50:00 | api | 1 | production | 200.0 |
|
|
| 1970-01-01T00:50:00 | app | 0 | canary | 700.0 |
|
|
| 1970-01-01T00:50:00 | app | 0 | production | 500.0 |
|
|
| 1970-01-01T00:50:00 | app | 1 | canary | 800.0 |
|
|
| 1970-01-01T00:50:00 | app | 1 | production | 600.0 |
|
|
+---------------------+-----+----------+------------+----------------+
|
|
|
|
-- https://github.com/GreptimeTeam/greptimedb/issues/5392
|
|
-- SQLNESS SORT_RESULT 3 1
|
|
tql eval (3000, 3000, '1s') vector(1) * http_requests;
|
|
|
|
+-----+----------+------------+---------------------+------------------------------------------------+
|
|
| job | instance | g | ts | .greptime_value * http_requests.greptime_value |
|
|
+-----+----------+------------+---------------------+------------------------------------------------+
|
|
| api | 0 | canary | 1970-01-01T00:50:00 | 300.0 |
|
|
| api | 0 | production | 1970-01-01T00:50:00 | 100.0 |
|
|
| api | 1 | canary | 1970-01-01T00:50:00 | 400.0 |
|
|
| api | 1 | production | 1970-01-01T00:50:00 | 200.0 |
|
|
| app | 0 | canary | 1970-01-01T00:50:00 | 700.0 |
|
|
| app | 0 | production | 1970-01-01T00:50:00 | 500.0 |
|
|
| app | 1 | canary | 1970-01-01T00:50:00 | 800.0 |
|
|
| app | 1 | production | 1970-01-01T00:50:00 | 600.0 |
|
|
+-----+----------+------------+---------------------+------------------------------------------------+
|
|
|
|
drop table http_requests;
|
|
|
|
Affected Rows: 0
|
|
|
|
drop table cpu_count;
|
|
|
|
Affected Rows: 0
|
|
|
|
drop table vector_matching_a;
|
|
|
|
Affected Rows: 0
|
|
|
|
-- the following cases are not from Prometheus.
|
|
create table t1 (ts timestamp time index, job string primary key, greptime_value double);
|
|
|
|
Affected Rows: 0
|
|
|
|
insert into t1 values (0, "a", 1.0), (500000, "b", 2.0), (1000000, "a", 3.0), (1500000, "c", 4.0);
|
|
|
|
Affected Rows: 4
|
|
|
|
create table t2 (ts timestamp time index, greptime_value double);
|
|
|
|
Affected Rows: 0
|
|
|
|
insert into t2 values (0, 0), (300000, 0), (600000, 0), (900000, 0), (1200000, 0), (1500000, 0), (1800000, 0);
|
|
|
|
Affected Rows: 7
|
|
|
|
-- SQLNESS SORT_RESULT 3 1
|
|
tql eval (0, 2000, '400') t1 or t2;
|
|
|
|
+---------------------+----------------+-----+
|
|
| ts | greptime_value | job |
|
|
+---------------------+----------------+-----+
|
|
| 1970-01-01T00:00:00 | 0.0 | |
|
|
| 1970-01-01T00:00:00 | 1.0 | a |
|
|
| 1970-01-01T00:06:40 | 0.0 | |
|
|
| 1970-01-01T00:13:20 | 0.0 | |
|
|
| 1970-01-01T00:13:20 | 2.0 | b |
|
|
| 1970-01-01T00:20:00 | 0.0 | |
|
|
| 1970-01-01T00:20:00 | 3.0 | a |
|
|
| 1970-01-01T00:26:40 | 0.0 | |
|
|
| 1970-01-01T00:26:40 | 4.0 | c |
|
|
| 1970-01-01T00:33:20 | 0.0 | |
|
|
+---------------------+----------------+-----+
|
|
|
|
-- SQLNESS SORT_RESULT 3 1
|
|
tql eval (0, 2000, '400') t1 or on () t2;
|
|
|
|
+---------------------+----------------+-----+
|
|
| ts | greptime_value | job |
|
|
+---------------------+----------------+-----+
|
|
| 1970-01-01T00:00:00 | 1.0 | a |
|
|
| 1970-01-01T00:06:40 | 0.0 | |
|
|
| 1970-01-01T00:13:20 | 2.0 | b |
|
|
| 1970-01-01T00:20:00 | 3.0 | a |
|
|
| 1970-01-01T00:26:40 | 4.0 | c |
|
|
| 1970-01-01T00:33:20 | 0.0 | |
|
|
+---------------------+----------------+-----+
|
|
|
|
-- SQLNESS SORT_RESULT 3 1
|
|
tql eval (0, 2000, '400') t1 or on (job) t2;
|
|
|
|
+---------------------+----------------+-----+
|
|
| ts | greptime_value | job |
|
|
+---------------------+----------------+-----+
|
|
| 1970-01-01T00:00:00 | 0.0 | |
|
|
| 1970-01-01T00:00:00 | 1.0 | a |
|
|
| 1970-01-01T00:06:40 | 0.0 | |
|
|
| 1970-01-01T00:13:20 | 0.0 | |
|
|
| 1970-01-01T00:13:20 | 2.0 | b |
|
|
| 1970-01-01T00:20:00 | 0.0 | |
|
|
| 1970-01-01T00:20:00 | 3.0 | a |
|
|
| 1970-01-01T00:26:40 | 0.0 | |
|
|
| 1970-01-01T00:26:40 | 4.0 | c |
|
|
| 1970-01-01T00:33:20 | 0.0 | |
|
|
+---------------------+----------------+-----+
|
|
|
|
-- SQLNESS SORT_RESULT 3 1
|
|
tql eval (0, 2000, '400') t2 or t1;
|
|
|
|
+---------------------+----------------+-----+
|
|
| ts | greptime_value | job |
|
|
+---------------------+----------------+-----+
|
|
| 1970-01-01T00:00:00 | 0.0 | |
|
|
| 1970-01-01T00:00:00 | 1.0 | a |
|
|
| 1970-01-01T00:06:40 | 0.0 | |
|
|
| 1970-01-01T00:13:20 | 0.0 | |
|
|
| 1970-01-01T00:13:20 | 2.0 | b |
|
|
| 1970-01-01T00:20:00 | 0.0 | |
|
|
| 1970-01-01T00:20:00 | 3.0 | a |
|
|
| 1970-01-01T00:26:40 | 0.0 | |
|
|
| 1970-01-01T00:26:40 | 4.0 | c |
|
|
| 1970-01-01T00:33:20 | 0.0 | |
|
|
+---------------------+----------------+-----+
|
|
|
|
-- SQLNESS SORT_RESULT 3 1
|
|
tql eval (0, 2000, '400') t2 or on () t1;
|
|
|
|
+---------------------+----------------+-----+
|
|
| ts | greptime_value | job |
|
|
+---------------------+----------------+-----+
|
|
| 1970-01-01T00:00:00 | 0.0 | |
|
|
| 1970-01-01T00:06:40 | 0.0 | |
|
|
| 1970-01-01T00:13:20 | 0.0 | |
|
|
| 1970-01-01T00:20:00 | 0.0 | |
|
|
| 1970-01-01T00:26:40 | 0.0 | |
|
|
| 1970-01-01T00:33:20 | 0.0 | |
|
|
+---------------------+----------------+-----+
|
|
|
|
-- SQLNESS SORT_RESULT 3 1
|
|
tql eval (0, 2000, '400') t2 or on(job) t1;
|
|
|
|
+---------------------+----------------+-----+
|
|
| ts | greptime_value | job |
|
|
+---------------------+----------------+-----+
|
|
| 1970-01-01T00:00:00 | 0.0 | |
|
|
| 1970-01-01T00:00:00 | 1.0 | a |
|
|
| 1970-01-01T00:06:40 | 0.0 | |
|
|
| 1970-01-01T00:13:20 | 0.0 | |
|
|
| 1970-01-01T00:13:20 | 2.0 | b |
|
|
| 1970-01-01T00:20:00 | 0.0 | |
|
|
| 1970-01-01T00:20:00 | 3.0 | a |
|
|
| 1970-01-01T00:26:40 | 0.0 | |
|
|
| 1970-01-01T00:26:40 | 4.0 | c |
|
|
| 1970-01-01T00:33:20 | 0.0 | |
|
|
+---------------------+----------------+-----+
|
|
|
|
drop table t1;
|
|
|
|
Affected Rows: 0
|
|
|
|
drop table t2;
|
|
|
|
Affected Rows: 0
|
|
|
|
create table stats_used_bytes (
|
|
ts timestamp time index,
|
|
namespace string,
|
|
greptime_value double,
|
|
primary key (namespace)
|
|
);
|
|
|
|
Affected Rows: 0
|
|
|
|
create table stats_capacity_bytes (
|
|
ts timestamp time index,
|
|
namespace string,
|
|
greptime_value double,
|
|
primary key (namespace)
|
|
);
|
|
|
|
Affected Rows: 0
|
|
|
|
insert into stats_used_bytes values
|
|
(0, "namespace1", 1.0),
|
|
(0, "namespace2", 2.0),
|
|
(500000, "namespace1", 10.0),
|
|
(500000, "namespace2", 20.0),
|
|
(1000000, "namespace1", 25.0),
|
|
(1000000, "namespace2", 26.0);
|
|
|
|
Affected Rows: 6
|
|
|
|
insert into stats_capacity_bytes values
|
|
(0, "namespace1", 30.0),
|
|
(0, "namespace2", 30.0),
|
|
(500000, "namespace1", 30.0),
|
|
(500000, "namespace2", 30.0),
|
|
(1000000, "namespace1", 30.0),
|
|
(1000000, "namespace2", 30.0);
|
|
|
|
Affected Rows: 6
|
|
|
|
-- SQLNESS SORT_RESULT 3 1
|
|
tql eval (0, 2000, '400') max by (namespace) (stats_used_bytes{namespace=~".+"}) / max by (namespace) (stats_capacity_bytes{namespace=~".+"}) >= (80 / 100);
|
|
|
|
+------------+---------------------+-----------------------------------------------------------------------------------------------------------------------+
|
|
| namespace | ts | stats_used_bytes.max(stats_used_bytes.greptime_value) / stats_capacity_bytes.max(stats_capacity_bytes.greptime_value) |
|
|
+------------+---------------------+-----------------------------------------------------------------------------------------------------------------------+
|
|
| namespace1 | 1970-01-01T00:20:00 | 0.8333333333333334 |
|
|
| namespace2 | 1970-01-01T00:20:00 | 0.8666666666666667 |
|
|
+------------+---------------------+-----------------------------------------------------------------------------------------------------------------------+
|
|
|
|
-- SQLNESS SORT_RESULT 3 1
|
|
tql eval (0, 2000, '400') max by (namespace) (stats_used_bytes{namespace=~".+"}) and (max by (namespace) (stats_used_bytes{namespace=~".+"}) / (max by (namespace) (stats_capacity_bytes{namespace=~".+"})) >= (80 / 100));
|
|
|
|
+------------+---------------------+--------------------------------------+
|
|
| namespace | ts | max(stats_used_bytes.greptime_value) |
|
|
+------------+---------------------+--------------------------------------+
|
|
| namespace1 | 1970-01-01T00:20:00 | 25.0 |
|
|
| namespace2 | 1970-01-01T00:20:00 | 26.0 |
|
|
+------------+---------------------+--------------------------------------+
|
|
|
|
-- SQLNESS SORT_RESULT 3 1
|
|
tql eval (0, 2000, '400') count(max by (namespace) (stats_used_bytes{namespace=~".+"}) and (max by (namespace) (stats_used_bytes{namespace=~".+"}) / (max by (namespace) (stats_capacity_bytes{namespace=~".+"})) >= (80 / 100))) or vector(0);
|
|
|
|
+---------------------+---------------------------------------------+
|
|
| ts | count(max(stats_used_bytes.greptime_value)) |
|
|
+---------------------+---------------------------------------------+
|
|
| 1970-01-01T00:00:00 | 0 |
|
|
| 1970-01-01T00:06:40 | 0 |
|
|
| 1970-01-01T00:13:20 | 0 |
|
|
| 1970-01-01T00:20:00 | 2 |
|
|
| 1970-01-01T00:26:40 | 0 |
|
|
| 1970-01-01T00:33:20 | 0 |
|
|
+---------------------+---------------------------------------------+
|
|
|
|
-- SQLNESS SORT_RESULT 3 1
|
|
tql eval (0, 2000, '400') count(max by (namespace) (stats_used_bytes{namespace=~".+"}) and (max by (namespace) (stats_used_bytes{namespace=~".+"}) / (max by (namespace) (stats_capacity_bytes{namespace=~".+"})) >= (80 / 100)));
|
|
|
|
+---------------------+---------------------------------------------+
|
|
| ts | count(max(stats_used_bytes.greptime_value)) |
|
|
+---------------------+---------------------------------------------+
|
|
| 1970-01-01T00:20:00 | 2 |
|
|
+---------------------+---------------------------------------------+
|
|
|
|
-- SQLNESS SORT_RESULT 3 1
|
|
tql eval (0, 2000, '400') count(max by (namespace) (stats_used_bytes{namespace=~".+"}) unless (max by (namespace) (stats_used_bytes{namespace=~".+"}) / (max by (namespace) (stats_capacity_bytes{namespace=~".+"})) >= (80 / 100)));
|
|
|
|
+---------------------+---------------------------------------------+
|
|
| ts | count(max(stats_used_bytes.greptime_value)) |
|
|
+---------------------+---------------------------------------------+
|
|
| 1970-01-01T00:00:00 | 2 |
|
|
| 1970-01-01T00:13:20 | 2 |
|
|
+---------------------+---------------------------------------------+
|
|
|
|
drop table stats_used_bytes;
|
|
|
|
Affected Rows: 0
|
|
|
|
drop table stats_capacity_bytes;
|
|
|
|
Affected Rows: 0
|
|
|
|
create table cache_hit (
|
|
ts timestamp time index,
|
|
job string,
|
|
greptime_value double,
|
|
primary key (job)
|
|
);
|
|
|
|
Affected Rows: 0
|
|
|
|
create table cache_miss (
|
|
ts timestamp time index,
|
|
job string,
|
|
greptime_value double,
|
|
primary key (job)
|
|
);
|
|
|
|
Affected Rows: 0
|
|
|
|
insert into cache_hit values
|
|
(3000, "read", 1.0),
|
|
(3000, "write", 2.0),
|
|
(4000, "read", 3.0),
|
|
(4000, "write", 4.0);
|
|
|
|
Affected Rows: 4
|
|
|
|
insert into cache_miss values
|
|
(3000, "read", 1.0),
|
|
(3000, "write", 2.0),
|
|
(4000, "read", 1.0),
|
|
(4000, "write", 2.0);
|
|
|
|
Affected Rows: 4
|
|
|
|
-- SQLNESS SORT_RESULT 3 1
|
|
tql eval (3, 4, '1s') cache_hit / (cache_miss + cache_hit);
|
|
|
|
+-------+---------------------+-------------------------------------------------------------------------------+
|
|
| job | ts | lhs.greptime_value / rhs.cache_miss.greptime_value + cache_hit.greptime_value |
|
|
+-------+---------------------+-------------------------------------------------------------------------------+
|
|
| read | 1970-01-01T00:00:03 | 0.5 |
|
|
| read | 1970-01-01T00:00:04 | 0.75 |
|
|
| write | 1970-01-01T00:00:03 | 0.5 |
|
|
| write | 1970-01-01T00:00:04 | 0.6666666666666666 |
|
|
+-------+---------------------+-------------------------------------------------------------------------------+
|
|
|
|
drop table cache_hit;
|
|
|
|
Affected Rows: 0
|
|
|
|
drop table cache_miss;
|
|
|
|
Affected Rows: 0
|
|
|