Signatur
Beschreibung
rrd_last() liest aus einer bestehenden RRD-Datei (Round Robin Database) den Zeitstempel des jüngsten eingetragenen Datenpunkts und gibt ihn als Unix-Zeitstempel zurück. Dies ist nützlich, um festzustellen, wann zuletzt Daten in die Datenbank geschrieben wurden.
Die Funktion ist Teil der RRDtool-Erweiterung für PHP und setzt voraus, dass die Erweiterung rrd installiert und aktiviert ist. RRD-Datenbanken werden häufig für zeitreihenbezogene Daten wie Netzwerk-Traffic, Systemauslastung oder Sensorwerte eingesetzt.
Ein typischer Anwendungsfall ist die Prüfung, ob eine Datenquelle noch aktiv Daten liefert: Liegt der zurückgegebene Zeitstempel zu weit in der Vergangenheit, kann auf einen Ausfall oder eine Unterbrechung der Datenerfassung hingewiesen werden.
Im Fehlerfall – etwa wenn die angegebene Datei nicht existiert oder beschädigt ist – gibt die Funktion false zurück. Fehlerdetails können dann mit rrd_error() abgerufen werden.
Parameter
| Name | Typ | Default | Beschreibung |
|---|---|---|---|
| $file Pflicht | string | Pfad zur RRD-Datei (.rrd), aus der der Zeitstempel des letzten Datenpunkts ausgelesen werden soll. |
Rückgabewert
false zurückgegeben; die genaue Fehlermeldung kann mit rrd_error() abgerufen werden.Beispiele
Letzten Datenpunkt einer RRD-Datei abfragen
<?php
$rrdFile = '/var/lib/rrd/traffic.rrd';
$lastTimestamp = rrd_last($rrdFile);
if ($lastTimestamp === false) {
echo 'Fehler beim Lesen der RRD-Datei: ' . rrd_error();
} else {
echo 'Letzter Datenpunkt: ' . date('d.m.Y H:i:s', $lastTimestamp) . PHP_EOL;
}
Prüfen ob die Datenerfassung noch aktiv ist
<?php
$rrdFile = '/var/lib/rrd/cpu_load.rrd';
$maxAlterInSekunden = 300; // 5 Minuten
$lastTimestamp = rrd_last($rrdFile);
if ($lastTimestamp === false) {
echo 'Fehler: ' . rrd_error();
} else {
$alter = time() - $lastTimestamp;
if ($alter > $maxAlterInSekunden) {
echo 'WARNUNG: Letzter Datenpunkt ist ' . $alter . ' Sekunden alt – möglicher Ausfall!' . PHP_EOL;
} else {
echo 'Datenerfassung aktiv. Letzter Eintrag vor ' . $alter . ' Sekunden.' . PHP_EOL;
}
}
// Wichtig · Fallstricke
Die Funktion steht nur zur Verfügung, wenn die PHP-Erweiterung rrd installiert ist (z. B. über PECL: pecl install rrd). Ohne diese Erweiterung führt der Aufruf zu einem fatalen Fehler.
Der zurückgegebene Zeitstempel entspricht dem tatsächlich gespeicherten Zeitstempel in der RRD-Datei, der je nach Aktualisierungsintervall und Rundung von der aktuellen Uhrzeit abweichen kann. RRDtool rundet Zeitstempel auf das nächste volle Intervall.
Wird false zurückgegeben, sollte stets rrd_error() aufgerufen werden, um die Ursache des Fehlers zu ermitteln.