How to make an Application Insights kusto query sort correctly on performanceBucket?

Viewed 260

Is there a way to make an Application Insights kusto query sort on performanceBucket 'correctly', i.e. on bucket duration? When I summarize or sort using performanceBucket and don't specify a sort I get something like this (note for example that 1-3sec is not adjacent to 3-7sec):

enter image description here

If I add a sort by performanceBucket it's done alphanumerically:

enter image description here

I want it to be in this order (or the reverse of it)

  • <250ms
  • 250ms-500ms
  • 500ms-1sec
  • 1sec-3sec
  • 3sec-7sec
  • 7sec-15sec
  • 15sec-30sec
  • 30sec-1min
  • 1min-2min
1 Answers

You need to artificially add a column that indicates your preferred sorting order, then sort by it, and project it away:

// Synthetic data - don't copy this
let YourResult = datatable(perfBucket:string, count_:long) [
    "250ms-500ms", 14000,
    "7sec-15sec", 600,
    "1sec-3sec", 9700
];
// This is the actual query
YourResult
| extend sortOrder =
    case(perfBucket == "<250ms", 1,
         perfBucket == "250ms-500ms", 2,
         perfBucket == "500ms-1sec", 3,
         perfBucket == "1sec-3sec", 4,
         perfBucket == "3sec-7sec", 5,
         perfBucket == "7sec-15sec", 6,
         perfBucket == "15sec-30sec", 7,
         perfBucket == "30sec-1min" ,8,
         perfBucket == "1min-2min", 9,
         10)
| order by sortOrder asc
| project-away sortOrder

Result:

perfBucket count_
250ms-500ms 14000
1sec-3sec 9700
7sec-15sec 600
Related