Итого по времени запроса - PullRequest
1 голос
/ 06 октября 2019

В Log Analytics я могу написать следующий запрос:

requests
| where timestamp > ago(30d)
| summarize count() by bin(timestamp, 5m)

И каждый бин будет иметь количество запросов в течение этого периода времени.

bin 1 -> 5 req
bin 2 -> 2 req
bin 3 -> 8 req

Я хотел бы получитьитого за время, например:

bin 1 -> 5  req
bin 2 -> 7  req (bin1 + bin2)
bin 3 -> 15 req (bin1 + bin2 + bin3)

Как мне этого добиться с помощью Kusto?

1 Ответ

2 голосов
/ 06 октября 2019

вы можете попробовать использовать row_cumsum(): https://docs.microsoft.com/en-us/azure/kusto/query/rowcumsumfunction

datatable(dummy:int, timestamp:datetime)
[
    1, datetime(2019-10-06 00:00),
    1, datetime(2019-10-06 00:01),
    1, datetime(2019-10-06 00:02),
    1, datetime(2019-10-06 00:03),
    1, datetime(2019-10-06 00:04),
    1, datetime(2019-10-06 06:00),
    1, datetime(2019-10-06 06:01),
    1, datetime(2019-10-06 12:00),
    1, datetime(2019-10-06 12:00),
    1, datetime(2019-10-06 12:02),
    1, datetime(2019-10-06 12:01),
    1, datetime(2019-10-06 12:04),
    1, datetime(2019-10-06 12:01),
    1, datetime(2019-10-06 12:02),
    1, datetime(2019-10-06 12:02),
]
| summarize count() by bin(timestamp, 5m)
| order by timestamp asc 
| project timestamp, c = row_cumsum(count_)

->

| timestamp                   | c  |
|-----------------------------|----|
| 2019-10-06 00:00:00.0000000 | 5  |
| 2019-10-06 06:00:00.0000000 | 7  |
| 2019-10-06 12:00:00.0000000 | 15 |
...