# Variables

## ¿Qué son las variables en Grafana? <a href="#qu-son-las-variables-en-grafana" id="qu-son-las-variables-en-grafana"></a>

* Las variables son “espacios reservados” que puedes usar en las consultas y títulos de los paneles.
* Permiten crear dashboards dinámicos, donde el usuario puede elegir, por ejemplo, qué servidor, sensor o métrica quiere ver, y todos los paneles se actualizan automáticamente según esa selección

### Crear una variable

1. Dentro de las configuraciones del dashboard, dirigete a la sección "Variables"
2. Haz clic en "Add variable"

<figure><img src="/files/6asxKYtfKi6JbO6XAZ13" alt=""><figcaption></figcaption></figure>

3. Completa los campos principales:
   * **Name**: Nombre de la variable (cómo la vas a referenciar, por ejemplo `$servidor`).
   * **Label** (opcional): Nombre visible en el dashboard.
   * **Opciones de visualización**: Elige si se muestra el nombre y valor, solo el valor, o nada.
4. Agrega la query que obtenga los datos que necesitamos
5. Ejecuta la query para validar que todo está bien
6. Regresa a la lista o dashboard

<figure><img src="/files/7TpOWfbTFmY2t6zvZ7Vi" alt=""><figcaption></figcaption></figure>

### Usar una variable

* Puedes usarlas en consultas y títulos de paneles escribiendo `$nombre_variable` o `${nombre_variable}`.

Ejemplo

```
from(bucket: "mediciones_sensores")
  |> range(start: -2h)
  |> filter(fn: (r) => r._measurement == $Medida)
```

* Al cambiar el valor en el desplegable, todos los paneles que usen esa variable se actualizarán automáticamente.

### Rango de tiempo variable

Debes usar las variables internas de Grafana que se integran automáticamente con Flux:

{% code title="text" overflow="wrap" %}

```
from(bucket: "mediciones_sensores")
  |> range(start: v.timeRangeStart, stop: v.timeRangeStop)
  |> filter(fn: (r) => r._measurement == $Medida)
```

{% endcode %}

* **v.timeRangeStart** y **v.timeRangeStop** son variables que Grafana reemplaza automáticamente según el rango de tiempo seleccionado en la interfaz.
* Así, cada vez que cambias el rango de tiempo en Grafana, tu consulta Flux solo traerá los datos de ese periodo.

{% code title="text" overflow="wrap" %}

```
|> aggregateWindow(every: v.windowPeriod, fn: mean)
```

{% endcode %}

* Grafana proporciona la variable interna **v.windowPeriod**, que se ajusta automáticamente según el rango de tiempo seleccionado en el panel


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://darioaplicano.gitbook.io/influxdb2.x/sesion-3/guion-de-la-sesion/documentacion/integracion-de-influxdb-con-apis-y-herramientas-externas/herramientas-de-visualizacion/grafana/dashboard/variables.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
