Start · Sprachen · PHP · Referenz · rrd_tune

rrd_tune

Funktion

Ändert Header-Optionen (Metadaten) einer bestehenden RRD-Datenbankdatei, ohne deren gespeicherte Daten zu verändern.

Kategorie: misc

Signatur

rrd_tune(string $filename, array $options): bool

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

Typ
bool
Beschreibung
Gibt 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();
}
Heartbeat erfolgreich angepasst.

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();
}
Datenquelle erfolgreich umbenannt und Wertebereich gesetzt.

// 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.