mirror of
https://github.com/GreptimeTeam/greptimedb.git
synced 2026-01-06 21:32:58 +00:00
feat: remove hyper parameter from promql functions (#5955)
* quantile udaf Signed-off-by: Ruihang Xia <waynestxia@gmail.com> * extrapolate rate Signed-off-by: Ruihang Xia <waynestxia@gmail.com> * predict_linear, round, holt_winters, quantile_overtime Signed-off-by: Ruihang Xia <waynestxia@gmail.com> * fix clippy Signed-off-by: Ruihang Xia <waynestxia@gmail.com> * fix quantile function Signed-off-by: Ruihang Xia <waynestxia@gmail.com> --------- Signed-off-by: Ruihang Xia <waynestxia@gmail.com>
This commit is contained in:
@@ -30,40 +30,40 @@ Affected Rows: 16
|
||||
|
||||
TQL EVAL (0, 15, '5s') quantile(0.5, test);
|
||||
|
||||
+---------------------+--------------------+
|
||||
| ts | quantile(test.val) |
|
||||
+---------------------+--------------------+
|
||||
| 1970-01-01T00:00:00 | 2.5 |
|
||||
| 1970-01-01T00:00:05 | 6.5 |
|
||||
| 1970-01-01T00:00:10 | 10.5 |
|
||||
| 1970-01-01T00:00:15 | 14.5 |
|
||||
+---------------------+--------------------+
|
||||
+---------------------+---------------------------------+
|
||||
| ts | quantile(Float64(0.5),test.val) |
|
||||
+---------------------+---------------------------------+
|
||||
| 1970-01-01T00:00:00 | 2.5 |
|
||||
| 1970-01-01T00:00:05 | 6.5 |
|
||||
| 1970-01-01T00:00:10 | 10.5 |
|
||||
| 1970-01-01T00:00:15 | 14.5 |
|
||||
+---------------------+---------------------------------+
|
||||
|
||||
TQL EVAL (0, 15, '5s') quantile(0.5, test) by (idc);
|
||||
|
||||
+------+---------------------+--------------------+
|
||||
| idc | ts | quantile(test.val) |
|
||||
+------+---------------------+--------------------+
|
||||
| idc1 | 1970-01-01T00:00:00 | 1.5 |
|
||||
| idc1 | 1970-01-01T00:00:05 | 5.5 |
|
||||
| idc1 | 1970-01-01T00:00:10 | 9.5 |
|
||||
| idc1 | 1970-01-01T00:00:15 | 13.5 |
|
||||
| idc2 | 1970-01-01T00:00:00 | 3.5 |
|
||||
| idc2 | 1970-01-01T00:00:05 | 7.5 |
|
||||
| idc2 | 1970-01-01T00:00:10 | 11.5 |
|
||||
| idc2 | 1970-01-01T00:00:15 | 15.5 |
|
||||
+------+---------------------+--------------------+
|
||||
+------+---------------------+---------------------------------+
|
||||
| idc | ts | quantile(Float64(0.5),test.val) |
|
||||
+------+---------------------+---------------------------------+
|
||||
| idc1 | 1970-01-01T00:00:00 | 1.5 |
|
||||
| idc1 | 1970-01-01T00:00:05 | 5.5 |
|
||||
| idc1 | 1970-01-01T00:00:10 | 9.5 |
|
||||
| idc1 | 1970-01-01T00:00:15 | 13.5 |
|
||||
| idc2 | 1970-01-01T00:00:00 | 3.5 |
|
||||
| idc2 | 1970-01-01T00:00:05 | 7.5 |
|
||||
| idc2 | 1970-01-01T00:00:10 | 11.5 |
|
||||
| idc2 | 1970-01-01T00:00:15 | 15.5 |
|
||||
+------+---------------------+---------------------------------+
|
||||
|
||||
TQL EVAL (0, 15, '5s') quantile(0.5, sum(test) by (idc));
|
||||
|
||||
+---------------------+-------------------------+
|
||||
| ts | quantile(sum(test.val)) |
|
||||
+---------------------+-------------------------+
|
||||
| 1970-01-01T00:00:00 | 5.0 |
|
||||
| 1970-01-01T00:00:05 | 13.0 |
|
||||
| 1970-01-01T00:00:10 | 21.0 |
|
||||
| 1970-01-01T00:00:15 | 29.0 |
|
||||
+---------------------+-------------------------+
|
||||
+---------------------+--------------------------------------+
|
||||
| ts | quantile(Float64(0.5),sum(test.val)) |
|
||||
+---------------------+--------------------------------------+
|
||||
| 1970-01-01T00:00:00 | 5.0 |
|
||||
| 1970-01-01T00:00:05 | 13.0 |
|
||||
| 1970-01-01T00:00:10 | 21.0 |
|
||||
| 1970-01-01T00:00:15 | 29.0 |
|
||||
+---------------------+--------------------------------------+
|
||||
|
||||
DROP TABLE test;
|
||||
|
||||
|
||||
@@ -18,62 +18,62 @@ Affected Rows: 4
|
||||
-- SQLNESS SORT_RESULT 3 1
|
||||
tql eval (3, 4, '1s') round(cache_hit, 0.01);
|
||||
|
||||
+---------------------+----------------------------+-------+
|
||||
| ts | prom_round(greptime_value) | job |
|
||||
+---------------------+----------------------------+-------+
|
||||
| 1970-01-01T00:00:03 | 123.45 | read |
|
||||
| 1970-01-01T00:00:03 | 234.57 | write |
|
||||
| 1970-01-01T00:00:04 | 345.68 | read |
|
||||
| 1970-01-01T00:00:04 | 456.79 | write |
|
||||
+---------------------+----------------------------+-------+
|
||||
+---------------------+------------------------------------------+-------+
|
||||
| ts | prom_round(greptime_value,Float64(0.01)) | job |
|
||||
+---------------------+------------------------------------------+-------+
|
||||
| 1970-01-01T00:00:03 | 123.45 | read |
|
||||
| 1970-01-01T00:00:03 | 234.57 | write |
|
||||
| 1970-01-01T00:00:04 | 345.68 | read |
|
||||
| 1970-01-01T00:00:04 | 456.79 | write |
|
||||
+---------------------+------------------------------------------+-------+
|
||||
|
||||
-- SQLNESS SORT_RESULT 3 1
|
||||
tql eval (3, 4, '1s') round(cache_hit, 0.1);
|
||||
|
||||
+---------------------+----------------------------+-------+
|
||||
| ts | prom_round(greptime_value) | job |
|
||||
+---------------------+----------------------------+-------+
|
||||
| 1970-01-01T00:00:03 | 123.5 | read |
|
||||
| 1970-01-01T00:00:03 | 234.60000000000002 | write |
|
||||
| 1970-01-01T00:00:04 | 345.70000000000005 | read |
|
||||
| 1970-01-01T00:00:04 | 456.8 | write |
|
||||
+---------------------+----------------------------+-------+
|
||||
+---------------------+-----------------------------------------+-------+
|
||||
| ts | prom_round(greptime_value,Float64(0.1)) | job |
|
||||
+---------------------+-----------------------------------------+-------+
|
||||
| 1970-01-01T00:00:03 | 123.5 | read |
|
||||
| 1970-01-01T00:00:03 | 234.60000000000002 | write |
|
||||
| 1970-01-01T00:00:04 | 345.70000000000005 | read |
|
||||
| 1970-01-01T00:00:04 | 456.8 | write |
|
||||
+---------------------+-----------------------------------------+-------+
|
||||
|
||||
-- SQLNESS SORT_RESULT 3 1
|
||||
tql eval (3, 4, '1s') round(cache_hit, 1.0);
|
||||
|
||||
+---------------------+----------------------------+-------+
|
||||
| ts | prom_round(greptime_value) | job |
|
||||
+---------------------+----------------------------+-------+
|
||||
| 1970-01-01T00:00:03 | 123.0 | read |
|
||||
| 1970-01-01T00:00:03 | 235.0 | write |
|
||||
| 1970-01-01T00:00:04 | 346.0 | read |
|
||||
| 1970-01-01T00:00:04 | 457.0 | write |
|
||||
+---------------------+----------------------------+-------+
|
||||
+---------------------+---------------------------------------+-------+
|
||||
| ts | prom_round(greptime_value,Float64(1)) | job |
|
||||
+---------------------+---------------------------------------+-------+
|
||||
| 1970-01-01T00:00:03 | 123.0 | read |
|
||||
| 1970-01-01T00:00:03 | 235.0 | write |
|
||||
| 1970-01-01T00:00:04 | 346.0 | read |
|
||||
| 1970-01-01T00:00:04 | 457.0 | write |
|
||||
+---------------------+---------------------------------------+-------+
|
||||
|
||||
-- SQLNESS SORT_RESULT 3 1
|
||||
tql eval (3, 4, '1s') round(cache_hit);
|
||||
|
||||
+---------------------+----------------------------+-------+
|
||||
| ts | prom_round(greptime_value) | job |
|
||||
+---------------------+----------------------------+-------+
|
||||
| 1970-01-01T00:00:03 | 123.0 | read |
|
||||
| 1970-01-01T00:00:03 | 235.0 | write |
|
||||
| 1970-01-01T00:00:04 | 346.0 | read |
|
||||
| 1970-01-01T00:00:04 | 457.0 | write |
|
||||
+---------------------+----------------------------+-------+
|
||||
+---------------------+---------------------------------------+-------+
|
||||
| ts | prom_round(greptime_value,Float64(0)) | job |
|
||||
+---------------------+---------------------------------------+-------+
|
||||
| 1970-01-01T00:00:03 | 123.0 | read |
|
||||
| 1970-01-01T00:00:03 | 235.0 | write |
|
||||
| 1970-01-01T00:00:04 | 346.0 | read |
|
||||
| 1970-01-01T00:00:04 | 457.0 | write |
|
||||
+---------------------+---------------------------------------+-------+
|
||||
|
||||
-- SQLNESS SORT_RESULT 3 1
|
||||
tql eval (3, 4, '1s') round(cache_hit, 10.0);
|
||||
|
||||
+---------------------+----------------------------+-------+
|
||||
| ts | prom_round(greptime_value) | job |
|
||||
+---------------------+----------------------------+-------+
|
||||
| 1970-01-01T00:00:03 | 120.0 | read |
|
||||
| 1970-01-01T00:00:03 | 230.0 | write |
|
||||
| 1970-01-01T00:00:04 | 350.0 | read |
|
||||
| 1970-01-01T00:00:04 | 460.0 | write |
|
||||
+---------------------+----------------------------+-------+
|
||||
+---------------------+----------------------------------------+-------+
|
||||
| ts | prom_round(greptime_value,Float64(10)) | job |
|
||||
+---------------------+----------------------------------------+-------+
|
||||
| 1970-01-01T00:00:03 | 120.0 | read |
|
||||
| 1970-01-01T00:00:03 | 230.0 | write |
|
||||
| 1970-01-01T00:00:04 | 350.0 | read |
|
||||
| 1970-01-01T00:00:04 | 460.0 | write |
|
||||
+---------------------+----------------------------------------+-------+
|
||||
|
||||
drop table cache_hit;
|
||||
|
||||
|
||||
@@ -228,27 +228,27 @@ tql eval (420, 420, '1s') histogram_quantile(0.833, histogram2_bucket);
|
||||
|
||||
tql eval (2820, 2820, '1s') histogram_quantile(0.166, rate(histogram2_bucket[15m]));
|
||||
|
||||
+---------------------+----------------------------+
|
||||
| ts | prom_rate(ts_range,val,ts) |
|
||||
+---------------------+----------------------------+
|
||||
| 1970-01-01T00:47:00 | 0.996 |
|
||||
+---------------------+----------------------------+
|
||||
+---------------------+------------------------------------------+
|
||||
| ts | prom_rate(ts_range,val,ts,Int64(900000)) |
|
||||
+---------------------+------------------------------------------+
|
||||
| 1970-01-01T00:47:00 | 0.996 |
|
||||
+---------------------+------------------------------------------+
|
||||
|
||||
tql eval (2820, 2820, '1s') histogram_quantile(0.5, rate(histogram2_bucket[15m]));
|
||||
|
||||
+---------------------+----------------------------+
|
||||
| ts | prom_rate(ts_range,val,ts) |
|
||||
+---------------------+----------------------------+
|
||||
| 1970-01-01T00:47:00 | 3.0 |
|
||||
+---------------------+----------------------------+
|
||||
+---------------------+------------------------------------------+
|
||||
| ts | prom_rate(ts_range,val,ts,Int64(900000)) |
|
||||
+---------------------+------------------------------------------+
|
||||
| 1970-01-01T00:47:00 | 3.0 |
|
||||
+---------------------+------------------------------------------+
|
||||
|
||||
tql eval (2820, 2820, '1s') histogram_quantile(0.833, rate(histogram2_bucket[15m]));
|
||||
|
||||
+---------------------+----------------------------+
|
||||
| ts | prom_rate(ts_range,val,ts) |
|
||||
+---------------------+----------------------------+
|
||||
| 1970-01-01T00:47:00 | 4.998 |
|
||||
+---------------------+----------------------------+
|
||||
+---------------------+------------------------------------------+
|
||||
| ts | prom_rate(ts_range,val,ts,Int64(900000)) |
|
||||
+---------------------+------------------------------------------+
|
||||
| 1970-01-01T00:47:00 | 4.998 |
|
||||
+---------------------+------------------------------------------+
|
||||
|
||||
drop table histogram2_bucket;
|
||||
|
||||
@@ -284,12 +284,12 @@ Affected Rows: 12
|
||||
|
||||
tql eval (3000, 3005, '3s') histogram_quantile(0.5, sum by(le, s) (rate(histogram3_bucket[5m])));
|
||||
|
||||
+---+---------------------+---------------------------------+
|
||||
| s | ts | sum(prom_rate(ts_range,val,ts)) |
|
||||
+---+---------------------+---------------------------------+
|
||||
| a | 1970-01-01T00:50:00 | 0.55 |
|
||||
| a | 1970-01-01T00:50:03 | 0.5500000000000002 |
|
||||
+---+---------------------+---------------------------------+
|
||||
+---+---------------------+-----------------------------------------------+
|
||||
| s | ts | sum(prom_rate(ts_range,val,ts,Int64(300000))) |
|
||||
+---+---------------------+-----------------------------------------------+
|
||||
| a | 1970-01-01T00:50:00 | 0.55 |
|
||||
| a | 1970-01-01T00:50:03 | 0.5500000000000002 |
|
||||
+---+---------------------+-----------------------------------------------+
|
||||
|
||||
drop table histogram3_bucket;
|
||||
|
||||
|
||||
@@ -45,19 +45,19 @@ tql eval (359, 359, '1s') sum_over_time(metric_total[60s:10s]);
|
||||
|
||||
tql eval (10, 10, '1s') rate(metric_total[20s:10s]);
|
||||
|
||||
+---------------------+----------------------------+
|
||||
| ts | prom_rate(ts_range,val,ts) |
|
||||
+---------------------+----------------------------+
|
||||
| 1970-01-01T00:00:10 | 0.1 |
|
||||
+---------------------+----------------------------+
|
||||
+---------------------+-----------------------------------------+
|
||||
| ts | prom_rate(ts_range,val,ts,Int64(20000)) |
|
||||
+---------------------+-----------------------------------------+
|
||||
| 1970-01-01T00:00:10 | 0.1 |
|
||||
+---------------------+-----------------------------------------+
|
||||
|
||||
tql eval (20, 20, '1s') rate(metric_total[20s:5s]);
|
||||
|
||||
+---------------------+----------------------------+
|
||||
| ts | prom_rate(ts_range,val,ts) |
|
||||
+---------------------+----------------------------+
|
||||
| 1970-01-01T00:00:20 | 0.06666666666666667 |
|
||||
+---------------------+----------------------------+
|
||||
+---------------------+-----------------------------------------+
|
||||
| ts | prom_rate(ts_range,val,ts,Int64(20000)) |
|
||||
+---------------------+-----------------------------------------+
|
||||
| 1970-01-01T00:00:20 | 0.06666666666666667 |
|
||||
+---------------------+-----------------------------------------+
|
||||
|
||||
drop table metric_total;
|
||||
|
||||
|
||||
@@ -137,8 +137,8 @@ TQL ANALYZE (0, 10, '5s') rate(test[10s]);
|
||||
| stage | node | plan_|
|
||||
+-+-+-+
|
||||
| 0_| 0_|_CoalesceBatchesExec: target_batch_size=8192 REDACTED
|
||||
|_|_|_FilterExec: prom_rate(j_range,i,j)@1 IS NOT NULL REDACTED
|
||||
|_|_|_ProjectionExec: expr=[j@1 as j, prom_rate(j_range@4, i@0, j@1) as prom_rate(j_range,i,j), k@2 as k, l@3 as l] REDACTED
|
||||
|_|_|_FilterExec: prom_rate(j_range,i,j,Int64(10000))@1 IS NOT NULL REDACTED
|
||||
|_|_|_ProjectionExec: expr=[j@1 as j, prom_rate(j_range@4, i@0, j@1, 10000) as prom_rate(j_range,i,j,Int64(10000)), k@2 as k, l@3 as l] REDACTED
|
||||
|_|_|_PromRangeManipulateExec: req range=[0..10000], interval=[5000], eval range=[10000], time index=[j] REDACTED
|
||||
|_|_|_PromSeriesNormalizeExec: offset=[0], time index=[j], filter NaN: [true] REDACTED
|
||||
|_|_|_PromSeriesDivideExec: tags=["k", "l"] REDACTED
|
||||
|
||||
Reference in New Issue
Block a user