In Grafana können Sie den Time-Filter (Zeitbereich) in einem Dashboard auf verschiedene Weisen beeinflussen oder übersteuern. Wenn Sie den Zeitfilter in einer SQL-Abfrage (z. B. in einer WHERE-Bedingung) verwenden, aber stattdessen auf konstante Werte zugreifen möchten, gibt es mehrere Ansätze. Hier sind die gängigsten Methoden:
1. Zeitfilter in der Abfrage ignorieren (konstante Zeitwerte verwenden)
Wenn Sie den Zeitfilter des Dashboards ignorieren und stattdessen feste Zeitwerte in Ihrer Abfrage verwenden möchten, können Sie die Zeitvariablen von Grafana ($__timeFrom() und $__timeTo()) durch konstante Werte ersetzen.
Beispiel in einer SQL-Abfrage (z. B. PostgreSQL, MySQL, etc.):
SELECT
time_column,
value_column
FROM
your_table
WHERE
-- Ignoriere den Grafana-Zeitfilter und verwende feste Werte
time_column BETWEEN '2023-01-01 00:00:00' AND '2023-01-31 23:59:59'
-- Oder mit Unix-Timestamps:
-- time_column BETWEEN 1672531200 AND 1675123199
In Grafana:
- Gehen Sie zu Ihrem Panel und bearbeiten Sie die Abfrage.
- Ersetzen Sie die automatischen Zeitvariablen durch Ihre konstanten Werte.
2. Zeitfilter über Dashboard-Variablen übersteuern
Sie können eine Dashboard-Variable erstellen, um den Zeitfilter dynamisch zu überschreiben. Dies ist nützlich, wenn Sie zwischen verschiedenen festen Zeitbereichen wechseln möchten.
Schritte:
- Variable erstellen:
- Gehen Sie zu Dashboard Settings (Zahnrad-Symbol) → Variables → Add variable.
- Geben Sie der Variable einen Namen, z. B.
time_override. - Wählen Sie als Typ “Custom” oder “Query” (wenn Sie die Werte aus einer Datenquelle laden möchten).
- Definieren Sie die Werte, z. B.:
'2023-01-01 00:00:00','2023-01-31 23:59:59' '2023-02-01 00:00:00','2023-02-28 23:59:59' - Aktivieren Sie “Include All option” (falls gewünscht).
- Abfrage anpassen:
- Verwenden Sie die Variable in Ihrer WHERE-Bedingung:
WHERE time_column BETWEEN ${time_override:raw} - Oder mit getrennten Variablen für Start und Ende:
WHERE time_column BETWEEN '${time_start}' AND '${time_end}'
- Verwenden Sie die Variable in Ihrer WHERE-Bedingung:
- Zeitfilter deaktivieren:
- Gehen Sie zu Dashboard Settings → Time range und deaktivieren Sie “Enable time range”, falls Sie den Zeitfilter komplett ausschalten möchten.
3. Zeitfilter in der Abfrage mit OR oder CASE umgehen
Falls Sie den Zeitfilter nur teilweise übersteuern möchten, können Sie eine Bedingung mit OR oder CASE verwenden.
Beispiel:
SELECT
time_column,
value_column
FROM
your_table
WHERE
-- Standard-Zeitfilter von Grafana
time_column BETWEEN $__timeFrom() AND $__timeTo()
-- ODER ein fester Zeitbereich
OR time_column BETWEEN '2023-01-01' AND '2023-01-31'
4. Zeitfilter in der URL des Dashboards überschreiben
Sie können den Zeitbereich auch über die URL des Dashboards festlegen. Dies ist nützlich, wenn Sie einen festen Zeitbereich für einen bestimmten Link benötigen.
Beispiel-URL:
http://your-grafana-server/d/your-dashboard?from=1672531200000&to=1675123199000
fromundtosind Unix-Timestamps in Millisekunden.- Sie können diese URL z. B. in einem Link oder Bookmark verwenden.
5. Zeitfilter in der Datenquelle überschreiben (für fortgeschrittene Benutzer)
Falls Sie eine Datenquelle mit Makros verwenden (z. B. in InfluxDB oder Prometheus), können Sie den Zeitfilter dort anpassen. Dies erfordert jedoch Kenntnisse der jeweiligen Abfragesprache.
Beispiel für InfluxDB:
from(bucket: "your-bucket")
|> range(start: -1h) // Standard-Zeitfilter
|> filter(fn: (r) => r._time >= 2023-01-01T00:00:00Z and r._time <= 2023-01-31T23:59:59Z) // Fester Filter
Zusammenfassung der Methoden:
| Methode | Beschreibung | Vorteil |
|---|---|---|
| Konstante Werte in Abfrage | Ersetzen Sie $__timeFrom() und $__timeTo() durch feste Werte. | Einfach, direkt in der Abfrage. |
| Dashboard-Variablen | Erstellen Sie eine Variable für feste Zeitbereiche. | Dynamisch umschaltbar. |
| OR-Bedingung | Kombinieren Sie den Zeitfilter mit festen Werten. | Flexibel. |
| URL-Parameter | Überschreiben Sie den Zeitbereich in der URL. | Nützlich für Links. |
| Datenquellen-Makros | Passen Sie den Zeitfilter in der Abfragesprache an. | Für fortgeschrittene Nutzer. |
Empfehlung:
- Wenn Sie den Zeitfilter komplett ignorieren möchten, verwenden Sie Methode 1 (konstante Werte).
- Wenn Sie zwischen verschiedenen festen Zeitbereichen wechseln möchten, verwenden Sie Methode 2 (Dashboard-Variablen).
- Für temporäre Überschreibungen (z. B. in Links) ist Methode 4 (URL-Parameter) ideal.
Falls Sie weitere Hilfe benötigen oder eine spezifischere Lösung für Ihre Datenquelle (z. B. PostgreSQL, MySQL, InfluxDB) wünschen, lassen Sie es mich wissen! 😊