SOLVED

Custom OMS dashboard chart with 4 columns

Deleted
Not applicable

Hi, cannot figure out how to create custom dashboard chart with 4 columns. i already have query for this dashboard. Just simple view, maybe with threshold colors. Thanks.

 

https://portal.loganalytics.io/Demo?q=H4sIAAAAAAAAA8WSQUvEMBCF7%2FkVQ0FoYC96VOphFUWwuqB4lWn6tmZtkpKk...

 

 

let diskfreepercent= Perf
| where TimeGenerated > ago(1d)
| where ObjectName == "LogicalDisk" and CounterName == "% Free Space"
| summarize (TimeGenerated, FreeSpacePercent)=arg_max(TimeGenerated, CounterValue) by Computer, InstanceName
| where strlen(InstanceName) ==2 and InstanceName contains ":";
let diskfreeMB= Perf
| where TimeGenerated > ago(1d)
| where ObjectName == "LogicalDisk" and CounterName == "Free Megabytes"
| summarize (TimeGenerated, FreeMB)=arg_max(TimeGenerated, CounterValue) by Computer, InstanceName
| where strlen(InstanceName) ==2 and InstanceName contains ":";
diskfreepercent
| join
(
diskfreeMB
)
on Computer, InstanceName
| project Computer, InstanceName, FreeSpacePercent, FreeMB

8 Replies

Hi 

I would guess you want to create a chart but it is not possible to create a chart on four columns. You can create a chart on two columns where one is one of them is for the x-Axes and the other for the y-Axes. Taking your example like this:

let diskfreepercent= Perf
| where TimeGenerated > ago(1d)
| where ObjectName == "LogicalDisk" and CounterName == "% Free Space"
| summarize (TimeGenerated, FreeSpacePercent)=arg_max(TimeGenerated, CounterValue) by Computer, InstanceName
| where strlen(InstanceName) ==2 and InstanceName contains ":";
let diskfreeMB= Perf
| where TimeGenerated > ago(1d)
| where ObjectName == "LogicalDisk" and CounterName == "Free Megabytes"
| summarize (TimeGenerated, FreeMB)=arg_max(TimeGenerated, CounterValue) by Computer, InstanceName
| where strlen(InstanceName) ==2 and InstanceName contains ":";
diskfreepercent
| join
(
    diskfreeMB
)
on Computer, InstanceName
| project Computer, FreeSpacePercent | render barchart 

Of course this removes the InstanceName and the FreeMB columns. Only a table can list all 4 columns but that is not a chart.

To clarify, i would like to crate dashboard with 4 columns - Computer, Disk(in example its instance name), Free Space % and Free MB, charts are not so important, there should be columns. Check screenshot.

Ok. I though you've meant Azure Dashboard chart because you've pasted query that is executed in the Advanced portal. You cannot create List View in Log Analytics view that shows two numeric columns. You can either create List view with Free Space % or with FreeMB or two list views showing each one of them.

Thanks Stanislav, seems a bit odd that there isn't option to add table dashboard with 4 columns. :)
Probably will use two separate dashboards then.
best response confirmed by Stanislav Zhelyazkov (MVP)
Solution

To be precise the list view can show up 4 columns just not two columns where there are numbers. You can potentially do something like this:

let diskfreepercent= Perf | where TimeGenerated > ago(1d) | where ObjectName == "LogicalDisk" and CounterName == "% Free Space" | summarize (TimeGenerated, FreeSpacePercent)=arg_max(TimeGenerated, CounterValue) by Computer, InstanceName | where strlen(InstanceName) ==2 and InstanceName contains ":"; let diskfreeMB= Perf | where TimeGenerated > ago(1d) | where ObjectName == "LogicalDisk" and CounterName == "Free Megabytes" | summarize (TimeGenerated, FreeMB)=arg_max(TimeGenerated, CounterValue) by Computer, InstanceName | where strlen(InstanceName) ==2 and InstanceName contains ":"; diskfreepercent | join ( diskfreeMB ) on Computer, InstanceName | project Computer, InstanceName,  tostring(FreeSpacePercent), FreeMB

And it will show the 4 columns but as you see I am converting one of the numeric values to string. Also sorting can be done only on FreeMB column. My proposal is to create two lists views side by side.

This is something closer to what i would like to achieve. How to limit string output to 2-4 digits ?
tostring(FreeSpacePercent)

Now it returns % of free space like that 72.025016784668

You can do

tostring(round(FreeSpacePercent,2))
Thanks for your quick and precise responses.
1 best response

Accepted Solutions
best response confirmed by Stanislav Zhelyazkov (MVP)
Solution

To be precise the list view can show up 4 columns just not two columns where there are numbers. You can potentially do something like this:

let diskfreepercent= Perf | where TimeGenerated > ago(1d) | where ObjectName == "LogicalDisk" and CounterName == "% Free Space" | summarize (TimeGenerated, FreeSpacePercent)=arg_max(TimeGenerated, CounterValue) by Computer, InstanceName | where strlen(InstanceName) ==2 and InstanceName contains ":"; let diskfreeMB= Perf | where TimeGenerated > ago(1d) | where ObjectName == "LogicalDisk" and CounterName == "Free Megabytes" | summarize (TimeGenerated, FreeMB)=arg_max(TimeGenerated, CounterValue) by Computer, InstanceName | where strlen(InstanceName) ==2 and InstanceName contains ":"; diskfreepercent | join ( diskfreeMB ) on Computer, InstanceName | project Computer, InstanceName,  tostring(FreeSpacePercent), FreeMB

And it will show the 4 columns but as you see I am converting one of the numeric values to string. Also sorting can be done only on FreeMB column. My proposal is to create two lists views side by side.

View solution in original post