How can I introduce a vertical reference line in KQL?

63 Views Asked by At

My question is similar to this one, except I want a vertical reference line (or dot) to mark point(s) in time.

How can I introduce a constant reference line based on an aggregation to a Kusto timechart?

The answer above creates a nice horizonal reference line.

Can KQL do this with a vertical line?

1

There are 1 best solutions below

2
Werner On

here's a workaround...

A vertical reference line could be built by using make-series. Let's take a table that is just datetime and int:

.create-or-alter function with (folder = "helpers/testdata", docstring = "generates some time series test data", skipvalidation = "true") generateTestdata() {
let T = datatable
(
myid:int, 
mydate:datetime,
myval:int
)
[
1,datetime("2021-08-20 08:00"),1,
2,datetime("2021-08-20 08:01"),1,
3,datetime("2021-08-20 08:02"),2,
4,datetime("2021-08-20 08:03"),3,
5,datetime("2021-08-20 08:04"),1,
6,datetime("2021-08-20 08:05"),1,
7,datetime("2021-08-20 08:06"),2,
8,datetime("2021-08-20 08:07"),3,
9,datetime("2021-08-20 08:08"),4,
10,datetime("2021-08-20 08:09"),4,
11,datetime("2021-08-20 08:10"),5,
12,datetime("2021-08-20 08:11"),5,
13,datetime("2021-08-20 08:12"),6,
14,datetime("2021-08-20 08:13"),6,
15,datetime("2021-08-20 08:14"),7,
16,datetime("2021-08-20 08:15"),7,
17,datetime("2021-08-20 08:16"),8,
18,datetime("2021-08-20 08:17"),8,
19,datetime("2021-08-20 08:18"),9,
20,datetime("2021-08-20 08:19"),10,
21,datetime("2021-08-20 08:20"),10,
22,datetime("2021-08-20 08:21"),10,
23,datetime("2021-08-20 08:22"),11,
24,datetime("2021-08-20 08:23"),12,
25,datetime("2021-08-20 08:24"),12,
26,datetime("2021-08-20 08:25"),13,
27,datetime("2021-08-20 08:26"),13,
28,datetime("2021-08-20 08:27"),16,
29,datetime("2021-08-20 08:28"),12,
30,datetime("2021-08-20 08:29"),12,
31,datetime("2021-08-20 08:29"),11,
32,datetime("2021-08-20 08:29"),9,
33,datetime("2021-08-20 08:32"),7,
34,datetime("2021-08-20 08:33"),6,
35,datetime("2021-08-20 08:45"),6,
35,datetime("2021-08-20 08:45"),6,
37,datetime("2021-08-20 08:57"),9,
38,datetime("2021-08-20 09:03"),8,
39,datetime("2021-08-20 09:09"),8,
40,datetime("2021-08-20 09:15"),9,
41,datetime("2021-08-20 09:21"),10,
42,datetime("2021-08-20 09:48"),10,
43,datetime("2021-08-20 09:48"),10,
44,datetime("2021-08-20 09:50"),11,
45,datetime("2021-08-20 09:55"),11,
46,datetime("2021-08-20 10:00"),11,
47,datetime("2021-08-20 10:05"),12,
48,datetime("2021-08-20 10:11"),13,
49,datetime("2021-08-20 10:11"),14,
50,datetime("2021-08-20 11:59"),16
];
T
} 

Now let's draw a timechart:

let bastetable=
generateTestdata
| project mydate, myval;
bastetable
| render timechart 

This shows: enter image description here

Now let's add our reference line. I am just adding the value "10" as a reference point:

let bastetable=
generateTestdata
| project mydate, myval;
bastetable
| make-series myline = avg(10) default=int(10) on mydate from datetime("2021-08-20 08:00") to datetime("2021-08-20 11:00")   step 1m //basis für forecast
| mv-expand mydate,    myline
| project todatetime(mydate), toint(myline)
| union bastetable
| render timechart 

The result looks like this

enter image description here