Menu

Important: This documentation is about an older version. It's relevant only to the release noted, many of the features and functions have been updated or replaced. Please view the current version.

Enterprise Open source

Template variables

Instead of hard-coding values for fields like resource group or resource name in your queries, you can use variables in their place to create more interactive, dynamic, and reusable dashboards.

Check out the Templating documentation for an introduction to the templating feature and the different types of template variables.

The Azure Monitor data source provides the following queries you can specify in the Query field in the Variable edit view

NameDescription
SubscriptionsReturns subscriptions.
Resource GroupsReturns resource groups for a specified subscription.
NamespacesReturns metric namespaces for the specified subscription and resource group.
Resource NamesReturns a list of resource names for a specified subscription, resource group and namespace.
Metric NamesReturns a list of metric names for a resource.
WorkspacesReturns a list of workspaces for the specified subscription.
LogsUse a KQL query to return values.
Resource GraphUse an ARG query to return values.

Any Log Analytics KQL query that returns a single list of values can also be used in the Query field. For example:

QueryDescription
workspace("myWorkspace").Heartbeat | distinct ComputerReturns a list of Virtual Machines
workspace("$workspace").Heartbeat | distinct ComputerReturns a list of Virtual Machines with template variable
workspace("$workspace").Perf | distinct ObjectNameReturns a list of objects from the Perf table
workspace("$workspace").Perf | where ObjectName == "$object" | distinct CounterNameReturns a list of metric names from the Perf table

Example of a time series query using variables:

kusto
Perf
| where ObjectName == "$object" and CounterName == "$metric"
| where TimeGenerated >= $__timeFrom() and TimeGenerated <= $__timeTo()
| where  $__contains(Computer, $computer)
| summarize avg(CounterValue) by bin(TimeGenerated, $__interval), Computer
| order by TimeGenerated asc