Search code examples
kqlazure-data-explorer

How can I introduce a vertical reference line in KQL?


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?


Solution

  • You can achieve it by cheating a little bit and inserting your reference points as two points with the same x-value and two different y-values.

    Example:

    let T = datatable
    (
    mydate:datetime,
    myval:int
    )
    [
    datetime("2021-08-20 08:00"),1,
    datetime("2021-08-20 08:01"),1,
    datetime("2021-08-20 08:02"),2,
    datetime("2021-08-20 08:03"),3,
    datetime("2021-08-20 08:04"),1,
    datetime("2021-08-20 08:05"),1,
    datetime("2021-08-20 08:06"),2,
    datetime("2021-08-20 08:07"),3,
    datetime("2021-08-20 08:08"),4,
    datetime("2021-08-20 08:09"),4,
    datetime("2021-08-20 08:10"),5,
    datetime("2021-08-20 08:11"),5,
    datetime("2021-08-20 08:12"),6,
    datetime("2021-08-20 08:13"),6,
    datetime("2021-08-20 08:14"),7,
    datetime("2021-08-20 08:15"),7,
    datetime("2021-08-20 08:16"),8,
    datetime("2021-08-20 08:17"),8,
    datetime("2021-08-20 08:18"),9,
    datetime("2021-08-20 08:19"),10,
    datetime("2021-08-20 08:20"),10,
    datetime("2021-08-20 08:21"),10,
    datetime("2021-08-20 08:22"),11,
    datetime("2021-08-20 08:23"),12,
    datetime("2021-08-20 08:24"),12,
    datetime("2021-08-20 08:25"),13,
    datetime("2021-08-20 08:26"),13,
    datetime("2021-08-20 08:27"),16,
    datetime("2021-08-20 08:28"),12,
    datetime("2021-08-20 08:29"),12,
    datetime("2021-08-20 08:29"),11,
    datetime("2021-08-20 08:29"),9,
    datetime("2021-08-20 08:32"),7,
    datetime("2021-08-20 08:33"),6,
    datetime("2021-08-20 08:45"),6,
    datetime("2021-08-20 08:45"),6,
    datetime("2021-08-20 08:57"),9,
    datetime("2021-08-20 09:03"),8,
    datetime("2021-08-20 09:09"),8,
    datetime("2021-08-20 09:15"),9,
    datetime("2021-08-20 09:21"),10,
    datetime("2021-08-20 09:48"),10,
    datetime("2021-08-20 09:48"),10,
    datetime("2021-08-20 09:50"),11,
    datetime("2021-08-20 09:55"),11,
    datetime("2021-08-20 10:00"),11,
    datetime("2021-08-20 10:05"),12,
    datetime("2021-08-20 10:11"),13,
    datetime("2021-08-20 10:11"),14,
    datetime("2021-08-20 11:59"),16
    ];
    let refData = datatable(
    mydate:datetime,
    myval:int,
    series:string
    )
    [
    datetime("2021-08-20 08:26"),0,'ref1',
    datetime("2021-08-20 08:26"),17,'ref1',
    datetime("2021-08-20 09:48"),0,'ref2',
    datetime("2021-08-20 09:48"),17,'ref2',
    ];
    T
    | extend series='data'
    | union refData
    | render timechart  
    

    Result:

    Graph with vertical lines