In this example I´ll be creating an ARM template with a couple of Azure Log Analytics tiles.
I wanted to create a Dashboard with some performance metrics that could be reused in different environments.
So, create a new dashboard, pin the intended tiles, "export" to an ARM template and reuse, right ? Well, the export part is a bit tricky.
First, open up the new Log Analytics query editor and pin the tiles to a new dashboard ( that should already exists as a saved dashboard in a resource group ) .
In this example I´m querying the Average CPU usage for all my agents in the last 24 hours to render as a time chart:
| where CounterName == "% Processor Time" and TimeGenerated > ago(24h) | summarize AVGCPU = avg(CounterValue) by bin(TimeGenerated, 1h), Computer
| render timechart
Then, when you´re happy with the looks, the fun part begins…
We need to open the dashboard definition and resource explorer can give us a hand:
Navigate to the created dashboard and grab the definition to a text/ARM editor of choice.
Create a new ARM template definition with parameters for requesting the dashboard Name, Log Analytics Workspace Name and location, a variable for generating a unique name and chose "2015-08-01-preview" as the API version.
Paste the previous grabbed dashboard from resource explorer into the resources tag and modify static values like so:
"value": "[concat(uniquestring(variables('dashboardID')), 'Part1')]"
And that’s it!
Refer to this repo ( https://github.com/madiasOnGit/Azure.ARM.Dashboards/tree/master/KustoDashboardExample ) for the complete template.