microsoft / Kusto-Query-Language

Kusto Query Language is a simple and productive language for querying Big Data.
Apache License 2.0
510 stars 97 forks source link

timechart does not work properly with make-series if GroupExpression return integer #55

Closed t-bzhan closed 2 years ago

t-bzhan commented 2 years ago

Below statements would not produce the expected time chart:

let data=datatable(timestamp:datetime, statuscode: int, metric: real)
[
  datetime(2016-12-31T06:00), 200, 50,
  datetime(2017-01-01), 200, 4,
  datetime(2017-01-02), 200, 3,
  datetime(2017-01-03), 200, 4,
  datetime(2017-01-03T03:00), 200, 6,
  datetime(2017-01-05), 200, 8,
  datetime(2017-01-05T13:40), 200, 13,
  datetime(2017-01-06), 200, 4,
  datetime(2017-01-07), 200, 3,
  datetime(2017-01-08), 200, 8,
  datetime(2017-01-08T21:00), 200, 8,
  datetime(2017-01-09), 200, 2,
  datetime(2017-01-09T12:00), 200, 11,
  datetime(2017-01-10T05:00), 200, 5,
  datetime(2016-12-31T06:00), 202, 5,
  datetime(2017-01-01), 202, 14,
  datetime(2017-01-02), 202, 13,
  datetime(2017-01-03), 202, 41,
  datetime(2017-01-03T03:00), 201, 16,
  datetime(2017-01-05), 201, 18,
  datetime(2017-01-05T13:40), 500, 16,
  datetime(2017-01-06), 204, 14,
  datetime(2017-01-07), 206, 23,
  datetime(2017-01-08), 400, 18,
  datetime(2017-01-08T21:00), 500, 28,
  datetime(2017-01-09), 500, 12,
  datetime(2017-01-09T12:00), 400, 111,
  datetime(2017-01-10T05:00), 500, 25,
];
let interval = 1d;
let stime = datetime(2017-01-01);
let etime = datetime(2017-01-10);

data
| make-series Count=sum(metric) default=0 on timestamp from stime to etime step interval by statuscode
| render timechart;

image

However if we changed the chart render statement to:

data
| make-series Count=sum(metric) default=0 on timestamp from stime to etime step interval by tostring(statuscode)
| render timechart;

The result looks as expected image

sloutsky commented 2 years ago

This is an UX issue - not a KQL language bug. I will pass this feedback to the development team handling the UX.