1
votes

In below query I am looking at one API (foo/bar1) duration in 80th percentile that called in given date range so that I can see if there is any spike or degradation. (image below)

let dataset = requests 
| where name == "GET foo/bar1"
and timestamp between(datetime("2020-10-15") .. datetime('2020-10-28'));
dataset
| summarize loadTime = round(percentile(duration, 80)) by format_datetime(timestamp, 'yyyy-MM-dd')
| order by timestamp desc

Result of first query API duration for foo/bar1

The challenge I'm facing is there can be more than one API (there are about 150 in my environment) and I also want to get those API's 80th percentile but having difficulty how to do it or even possible.

1

1 Answers

4
votes

I might figure this out.. by removing 'name' from dataset then add 'name' to grouping section at the end of summarize row.

let dataset = requests 
    |
    where timestamp between(datetime("2020-10-25") .. datetime('2020-10-28'));
    dataset
    | summarize loadTime = round(percentile(duration, 80)) by format_datetime(timestamp, 'yyyy-MM-dd'), name
    | order by timestamp desc