Template variables enable you to use tags to filter your Datadog dashboards to the hosts, containers, or services you need for faster troubleshooting. However, there are some cases where it may be difficult to use a standard set of template variables to aggregate all of the data you need without creating a complicated, difficult to manage set of variables. For example, you may use tag values that are a subset of another tag. Or, you might be migrating between tagging conventions and need to visualize data from multiple tags.
We’re pleased to announce you can now use the $tempvar.value
syntax when defining template variables for your dashboard widgets. This syntax lets you include a template variable’s value within the query when building a graph. This gives you more control over what tags your template variables point to, helping you use fewer template variables while ensuring you can visualize all of the data you need across any tags.
In this post we’ll look at how you can use this new dynamic syntax to define template variables that:
- select multiple sets of tag values using a single key
- unify data from different tagging conventions
- simplify network traffic queries
Consolidate template variables by attributing values as a partial string
You can use the $tempvar.value
syntax to reduce the number of template variables you use to filter your dashboards. Let’s say you have separate staging environments for different services in your infrastructure. You might tag them with something like env
(e.g., env:staging-web-store
) and service
(e.g., service:web-store
). Now, you can use the template variable value as a partial string to streamline your graph queries. Nesting the template variable into the query in this way lets you take advantage of your tagging convention to simplify your template variable set. In this case, you can use the service
template variable to specify which staging environment you want to show metrics from.
With the query shown above, specifying web-store
as the service in your template variable view would result in the graph pulling the metric from the staging-web-store
environment. Leaving the service
variable unspecified will graph the metric for each environment definable by the staging-$service.value
sequence.
Migrating tagging conventions
If your teams are migrating to a new tagging convention, it can be complicated to ensure that all the relevant metric data you need is included in your dashboard graphs. You can use the $tempvar.val
syntax to create “OR” statements in your graph queries that include both. This way, you can ensure that your graphs will show the metrics you want. In the example below, the graph will pull values tagged with the environment
key or the env
key.
The resulting graph will include every value from the environment we specify, regardless of their key.
Get more flexible network traffic queries
Datadog NPM allows you to query for dependencies between any source
or destination
. When graphing network performance metrics like volume and TCP retransmits in your dashboards, you can leverage your template variables to build more flexible queries. With the new syntax, you
can specify the source and destination of a network connection using the same template variable via, for example, the syntax service:$service.value
.
Then, you can easily filter the resulting graph using the $service
variable to see which services are throwing the most retransmits, leading to poor connectivity with their dependencies.
Harness your template variables
With the new dynamic template variable syntax for Datadog, you can easily create adaptive template variables, reducing the number you need to manage and helping ensure no gaps in the data your dashboards visualize. This feature is currently available for all Datadog customers—no additional configuration is required. To learn more about the feature, see our template variable documentation. Or if you’re brand new to Datadog, sign up for a free trial to get started.