0

I am working on writting some queries which will help users visualize some metrics in Appinsight workbook.

I have written some queries which has some parameters based on which it filters and grouping them by metrics name to get graphs for each of those metrics in same panel

Sample query:

customMetrics
| where name=='HeartbeatState'
| where cloud_RoleName=='{cloud_rolename}'
| project timestamp,cloud_RoleName,cloud_RoleInstance,valueCount

Here if Column grouping setting is set to cloud_RoleInstance, then for every new pod, colour in line graph will change depicting different colour graph for two pods whenever pod restart happen.

Another sample query having multiple graph:

customMetrics
| where name in ('Heap Memory Usage - used', 'Heap Memory Usage - committed','Heap Memory Usage - max')
| where cloud_RoleName == "{cloud_rolename}"
| project timestamp,name,cloud_RoleName,cloud_RoleInstance,valueSum,valueCount
| summarize ['Value']=sum(valueSum)/sum(valueCount) by name,cloud_RoleInstance, bin(timestamp,5m)

Here data is required for average of 5 minutes.

I want to write query which does double group by, grouping by cloud_RoleInstance as well as name of metrics. Is it possible ?

Thanks in Advance.

1 Answers1

0

How about concatenating the name and instance, and group by that like this:

customMetrics
| where name in ('Heap Memory Usage - used', 'Heap Memory Usage - committed','Heap Memory Usage - max')
| where cloud_RoleName == "{cloud_rolename}"
| project timestamp,name,cloud_RoleName,cloud_RoleInstance,valueSum,valueCount
| summarize ['Value']=sum(valueSum)/sum(valueCount) by group = strcat(name, " - ", cloud_RoleInstance), bin(timestamp,5m)
Peter Bons
  • 26,826
  • 4
  • 50
  • 74