docs/sources/datasources/parca/template-variables/index.md
Instead of hard-coding label values in your profiling queries, you can use template variables to create dynamic, reusable dashboards. Variables appear as drop-down menus at the top of the dashboard, making it easy to switch between services, instances, or environments without editing queries.
For an introduction to template variables, refer to the Variables documentation.
| Variable type | Supported | Notes |
|---|---|---|
| Custom | Yes | Define a static list of values manually. |
| Text box | Yes | Enter a free-form value at the top of the dashboard. |
| Constant | Yes | Define a hidden, fixed value. |
| Data source | Yes | Select a data source instance by name. |
| Query | No | Parca doesn't implement variable queries to dynamically populate drop-downs. |
{{< admonition type="note" >}} Parca doesn't support query-type variables. You can't use the Parca data source to dynamically populate variable drop-downs. Use custom variables to define values manually, or use another data source to populate query variables. {{< /admonition >}}
The Parca query editor's label selector field supports template variable interpolation. Use the standard $variablename or ${variablename} syntax. Variables are interpolated in the label selector only -- the profile type drop-down doesn't support them.
| Syntax | Description |
|---|---|
$variablename | Simple syntax for most cases. |
${variablename} | Use when the variable is adjacent to other text (for example, ${host}_suffix). |
${variablename:format} | Apply a specific format to the variable value. |
Create a custom variable to switch between services in your profiling dashboard.
service.frontend, backend, api-gateway.In your Parca query's label selector, reference the variable:
{job="$service"}
When you change the drop-down selection, the panel refreshes to show profiles for the selected service.
Create two custom variables to filter by multiple dimensions.
service with custom values frontend, backend, api-gateway.instance with custom values for your instance addresses, for example 10.0.0.1:7070, 10.0.0.2:7070, 10.0.0.3:7070.In your Parca query's label selector, reference both variables:
{job="$service", instance="$instance"}
Create a text box variable for free-form label filtering.
label_filter.job="my-service".In your Parca query's label selector, reference the variable:
{$label_filter}
This lets you type any label matcher directly into the variable input at the top of the dashboard without editing the panel query.
Parca template variable support has the following limitations: