Aus Linux-Magazin 10/2010

Perl-Skript misst und bewertet Temperaturen (Seite 3)

An Knöpfen drehen

Drehen darf der Admin an den Parametern »alpha«, »beta« und »gamma« (jeweils zwischen 0 und 1, ausschließlich) sowie an der Länge der Seasonal Period, also jenem Zeitraum, in dem sich Ereignisse wiederholen, zum Beispiel einem Tagesturnus für Temperaturen. Kleine Werte – also nahe null – für »alpha«, »beta« und »gamma« richten das Augenmerk auf Ereignisse, die schon etwas zurückliegen, während bei Werten nahe 1 die Vorhersage nahe an kürzlich gesichteten Werten liegt.

Während »alpha« die Prognose des Basiswerts des Graphen kontrolliert, arbeitet »beta« mit der Steigung des Graphen, »gamma« bestimmt die Prognose bei Wiederholungen in definierten Zeitfenstern. Ein Beispiel könnte »alpha=0.1«, »beta= 0.0035«, »gamma=0.5« und die Länge des saisonalen Zeitrahmens auf die Zahl der von RRDTool im Laufe eines Tages gesammelten Messwerte setzen.

Einen Fehler meldet das System, falls während eines »window_length« langen Zeitfensters eine Anzahl »threshold« oder mehr Messpunkte außerhalb des Confidence Band, also des blauen Bandes um die Prognose, liegen. Wie breit dieses Akzeptanzband genau ist, ermittelt RRDTool automatisch und lässt sich dabei weder in die Karten sehen noch gar beeinflussen.

Wo bleibt der Ausreißer?

Einige Stellen in dem Graphen fallen auf: Während der ersten zwei Tage erstellt RRDTool keine Vorhersage, denn es benötigt einige Zyklen, bis die Seasonal Component und deren Einfluss auf die Prognose feststehen. Lustigerweise erwartet das System nach dem einen Ausreißer kurz vor Mittag des vierten Tages auch an den darauf folgenden Tagen zur gleichen Zeit einen Höhepunkt, der aber ausbleibt. An den folgenden Tagen geht deshalb die Erwartung schrittweise zurück, bis das System sich einige Zeit später wieder fängt.

Was »rrdtool« unter der Haube so treibt, lässt sich durch Einschalten des Log4perl-Framework herausfinden, denn RRDTool::OO unterstützt das Verfahren und wartet nur darauf, bis der User es aktiviert. Abbildung 5 zeigt einen Blick in den Maschinenraum von RRDTool::OO, erst das Kommando, um die Datenbank anzulegen, dann eine Auswahl der abgesetzten Update-Befehle für geloggte Temperaturwerte und schließlich das »graph«-Kommando, das das Diagramm zeichnet.

Abbildung 5: RRDTool-Kommandos für den Graphen in Abbildung 4, den das Skript mit RRDTool::OO erzeugt.

Abbildung 5: RRDTool-Kommandos für den Graphen in Abbildung 4, den das Skript mit RRDTool::OO erzeugt.

RRDTool nennt die Holt-Winters-Vorhersage »HWPREDICT« und die erwartete statistische Abweichung »DEVPREDICT«. Die Zeilen 91 bis 95 in Listing 3 definieren auf diese Abweichung einen Alias »dev«, den die Zeilen 110 und 116 jeweils aufgreifen, um das erlaubte Streuband zu zeichnen. In RRDTool-typischer RPM-Notation steht »predict,dev,2,*,+« für »predict-2 * dev« in algebraischer Notation, denn RRDTool erlaubt Abweichungen nach oben und unten, jeweils im Wert des doppelten »DEVPREDICT«-Werts.

Installation

Da das benötigte CPAN-Modul nicht als Ubuntu-Paket verfügbar ist, installiert es der auf Sauberkeit bedachte Systemadministrator nicht unter »/usr«, sondern nutzt »local::lib«, um es unter dem Homeverzeichnis einzupflanzen. Mit

sudo apt-get install liblocal-lib-perl

spielt er dazu unter Ubuntu Lucid Lynx das »local::lib«-Modul in »/usr« ein und ruft anschließend eine CPAN-Shell mit dem Kommando

LINUX-MAGAZIN KAUFEN
EINZELNE AUSGABE Print-Ausgaben Digitale Ausgaben
ABONNEMENTS Print-Abos Digitales Abo
TABLET & SMARTPHONE APPS Readly Logo
E-Mail Benachrichtigung
Benachrichtige mich zu:
0 Kommentare
Älteste
Neuste Beste Bewertung
Inline Feedbacks
Alle Kommentare anzeigen
Nach oben