Signatur
Beschreibung
rrd_info() ist Teil der PECL-Erweiterung RRDtool für PHP und ermöglicht es, detaillierte Informationen über den Aufbau und Zustand einer RRD-Datei (Round Robin Database) zu ermitteln, ohne die darin gespeicherten Messdaten direkt auszulesen.
Die Funktion gibt ein assoziatives Array zurück, das unter anderem folgende Metadaten enthält: den Dateinamen, die RRDtool-Version, die Startzeit der Datenbank, den letzten Aktualisierungszeitpunkt (last_update), das Schrittintervall (step) sowie die Definitionen aller Data Sources (DS) und Round Robin Archives (RRA) mit ihren jeweiligen Parametern.
Typische Anwendungsfälle sind das Verifizieren einer neu angelegten RRD-Datei, das Auslesen von Konfigurationsparametern für Monitoring-Dashboards oder das dynamische Ermitteln vorhandener DS-Namen vor einem rrd_update()-Aufruf.
Die Funktion benötigt eine installierte und aktivierte PECL-Erweiterung rrd (pecl install rrd). Unter Linux ist außerdem die Systembibliothek librrd erforderlich.
Parameter
| Name | Typ | Default | Beschreibung |
|---|---|---|---|
| $file Pflicht | string | Pfad zur RRD-Datei, deren Informationen ausgelesen werden sollen. Der Pfad kann absolut oder relativ zum aktuellen Arbeitsverzeichnis des PHP-Prozesses angegeben werden. |
Rückgabewert
filename, last_update, step, DS- und RRA-Definitionen). Im Fehlerfall (z. B. Datei nicht gefunden oder ungültiges Format) wird false zurückgegeben.Beispiele
Grundlegende Informationen einer RRD-Datei auslesen
<?php
// RRD-Datei muss bereits existieren (z. B. mit rrd_create() angelegt)
$file = '/var/rrd/traffic.rrd';
$info = rrd_info($file);
if ($info === false) {
echo 'Fehler: RRD-Datei konnte nicht gelesen werden.' . PHP_EOL;
} else {
echo 'Dateiname: ' . $info['filename'] . PHP_EOL;
echo 'Letztes Update: ' . date('Y-m-d H:i:s', $info['last_update']) . PHP_EOL;
echo 'Schrittweite: ' . $info['step'] . ' Sekunden' . PHP_EOL;
}
Alle Data Sources einer RRD-Datei dynamisch ermitteln
<?php
$file = '/var/rrd/traffic.rrd';
$info = rrd_info($file);
if ($info !== false) {
$dsSources = [];
// DS-Schlüssel haben das Format: ds[NAME][type] etc.
foreach ($info as $key => $value) {
if (preg_match('/^ds\[([^\]]+)\]\[type\]$/', $key, $matches)) {
$dsSources[] = $matches[1];
}
}
echo 'Gefundene Data Sources:' . PHP_EOL;
foreach ($dsSources as $ds) {
echo ' - ' . $ds . PHP_EOL;
}
} else {
echo 'Fehler beim Lesen der RRD-Datei.' . PHP_EOL;
}
// Wichtig · Fallstricke
PECL-Erweiterung erforderlich: rrd_info() gehört zur PECL-Erweiterung rrd und ist in einer Standard-PHP-Installation nicht verfügbar. Die Erweiterung muss separat installiert und in der php.ini geladen werden (extension=rrd.so).
Fehlerbehandlung: Bei einem Rückgabewert von false kann rrd_error() aufgerufen werden, um die genaue Fehlermeldung der RRDtool-Bibliothek abzurufen.
Schlüsselformat: Die Schlüssel des zurückgegebenen Arrays folgen der RRDtool-Konvention und enthalten eckige Klammern (z. B. ds[traffic_in][type]), was bei der Verarbeitung mit regulären Ausdrücken oder Array-Funktionen beachtet werden muss.