Start · Sprachen · PHP · Referenz · rrd_first

rrd_first

Funktion

Liefert den Unix-Zeitstempel des ersten gespeicherten Datenpunkts in einer RRD-Datei für ein bestimmtes Round-Robin-Archiv.

Kategorie: misc

Signatur

rrd_first(string $file, int $rraindex = 0): int|false

Beschreibung

rrd_first() gibt den Zeitstempel des ältesten verfügbaren Datenpunkts in einer RRD-Datei (Round Robin Database) zurück. Dies ist nützlich, um den Beginn des verfügbaren Datenzeitraums für Graphen oder Abfragen zu ermitteln, ohne die gesamte Datenbank einlesen zu müssen.

RRD-Dateien enthalten sogenannte Round-Robin-Archive (RRA), in denen Zeitreihendaten mit unterschiedlichen Auflösungen und Konsolidierungsfunktionen gespeichert werden. Über den Parameter rraindex kann das gewünschte Archiv ausgewählt werden. Der Index beginnt bei 0 für das erste Archiv.

Die Funktion ist Teil der RRD-Extension für PHP, die eine Schnittstelle zur RRDtool-Bibliothek bereitstellt. Sie wird typischerweise in Monitoring-Systemen, Netzwerk-Performance-Tools oder Statistikanwendungen eingesetzt, die auf RRD-Datenbanken basieren.

Im Fehlerfall gibt die Funktion false zurück. Weitere Fehlerinformationen können über rrd_error() abgerufen werden.

Parameter

Name Typ Default Beschreibung
$file Pflicht string Pfad zur RRD-Datei, aus der der erste Zeitstempel gelesen werden soll.
$rraindex int 0 Nullbasierter Index des Round-Robin-Archivs (RRA) innerhalb der RRD-Datei. Standardmäßig wird das erste Archiv (Index 0) verwendet.

Rückgabewert

Typ
int|false
Beschreibung
Gibt den Unix-Zeitstempel (Sekunden seit dem 1. Januar 1970 UTC) des ältesten Datenpunkts im angegebenen RRA zurück. Bei einem Fehler (z. B. Datei nicht gefunden oder ungültiger Index) wird false zurückgegeben.

Beispiele

Ersten Zeitstempel einer RRD-Datei auslesen

<?php
$file = '/var/lib/rrd/traffic.rrd';

$first = rrd_first($file);

if ($first === false) {
    echo 'Fehler: ' . rrd_error() . PHP_EOL;
} else {
    echo 'Erster Datenpunkt: ' . date('Y-m-d H:i:s', $first) . PHP_EOL;
}
Erster Datenpunkt: 2023-01-15 08:00:00

Ersten Zeitstempel eines bestimmten RRA-Index abfragen

<?php
$file = '/var/lib/rrd/cpu.rrd';

// Zweites Archiv (Index 1) abfragen – z. B. stündliche Durchschnittswerte
$first = rrd_first($file, 1);

if ($first === false) {
    echo 'Fehler beim Lesen: ' . rrd_error() . PHP_EOL;
} else {
    $last = rrd_last($file);
    echo 'Verfügbarer Datenzeitraum:' . PHP_EOL;
    echo '  Von: ' . date('Y-m-d H:i:s', $first) . PHP_EOL;
    echo '  Bis: ' . date('Y-m-d H:i:s', $last) . PHP_EOL;
}
Verfügbarer Datenzeitraum: Von: 2022-06-01 00:00:00 Bis: 2024-03-10 14:55:00

// Wichtig · Fallstricke

Voraussetzung: Die PHP-RRD-Extension (ext/rrd) muss installiert und aktiviert sein. Sie ist nicht Bestandteil der PHP-Standardinstallation und muss über PECL oder den Paketmanager des Betriebssystems nachinstalliert werden.

Der zurückgegebene Zeitstempel gibt lediglich den Beginn des in der RRA-Struktur reservierten Zeitraums an — es bedeutet nicht zwingend, dass ab diesem Zeitpunkt tatsächlich gültige (nicht-NaN) Werte vorhanden sind. Fehlende Werte werden in RRD-Dateien als Unknown (NaN) gespeichert.

Der gültige Bereich für rraindex hängt von der Anzahl der beim Erstellen der Datei definierten Archive ab. Ein ungültiger Index führt zur Rückgabe von false.