Signatur
Beschreibung
rrd_tune() ermöglicht es, nachträglich Konfigurationsparameter einer RRD-Datei (Round Robin Database) zu ändern. Dies umfasst z. B. das Umbenennen von Datenquellen, das Anpassen von Heartbeat-Werten, minimalen/maximalen Wertebereichen sowie den Datenquellentyp. Die eigentlichen Zeitreihendaten bleiben dabei unberührt.
Typische Anwendungsfälle sind die Anpassung einer bereits produktiv genutzten RRD-Datei, wenn sich Überwachungsanforderungen geändert haben – z. B. wenn eine Datenquelle einen neuen Namen oder andere Grenzwerte erhalten soll – ohne die gesamte Datenbank neu anlegen zu müssen.
Die Funktion gehört zur PECL-Erweiterung rrd und kapselt das rrdtool tune-Kommandozeilenwerkzeug. Die $options werden als Array von Strings übergeben, wobei jedes Element einem Argument entspricht, das rrdtool tune entgegennimmt (z. B. '--heartbeat', '--minimum', '--maximum', '--data-source-type', '--data-source-rename').
Im Fehlerfall kann über rrd_error() eine detaillierte Fehlermeldung abgerufen werden.
Parameter
| Name | Typ | Default | Beschreibung |
|---|---|---|---|
| $filename Pflicht | string | Pfad zur bestehenden RRD-Datenbankdatei, deren Header-Optionen geändert werden sollen. | |
| $options Pflicht | array | Array von Strings mit den Optionen, die an rrdtool tune übergeben werden. Jedes Element entspricht einem Argument, z. B. '--heartbeat', 'ds0:600', '--minimum', 'ds0:0' usw. |
Rückgabewert
true bei Erfolg zurück. Im Fehlerfall wird false zurückgegeben; der genaue Fehler lässt sich anschließend mit rrd_error() abfragen.Beispiele
Heartbeat einer Datenquelle anpassen
<?php
// Heartbeat der Datenquelle 'traffic' auf 600 Sekunden setzen
$filename = '/var/rrd/network.rrd';
$options = [
'--heartbeat', 'traffic:600'
];
if (rrd_tune($filename, $options)) {
echo "Heartbeat erfolgreich angepasst.";
} else {
echo "Fehler: " . rrd_error();
}
Datenquelle umbenennen und Wertebereich einschränken
<?php
// Datenquelle 'ds0' in 'speed' umbenennen und Minimum/Maximum setzen
$filename = '/var/rrd/device.rrd';
$options = [
'--data-source-rename', 'ds0:speed',
'--minimum', 'speed:0',
'--maximum', 'speed:1000000'
];
if (rrd_tune($filename, $options)) {
echo "Datenquelle erfolgreich umbenannt und Wertebereich gesetzt.";
} else {
echo "Fehler beim Anpassen der RRD-Datei: " . rrd_error();
}
// Wichtig · Fallstricke
Vorsicht: Das Umbenennen von Datenquellen oder das Ändern des Datenquellentyps kann bestehende Graph-Definitionen oder Skripte, die auf den alten Namen referenzieren, ungültig machen. Erstellen Sie vor dem Einsatz von rrd_tune() stets eine Sicherungskopie der RRD-Datei.
rrd_tune() ist Teil der PECL-Erweiterung rrd, die separat installiert werden muss (pecl install rrd). Die Funktion steht nicht in der PHP-Standardinstallation zur Verfügung.
Änderungen am Datenquellentyp (z. B. von COUNTER auf GAUGE) können dazu führen, dass bereits gespeicherte Werte falsch interpretiert werden.