Der CpuDataProvider ist ein Agent des Typs DataProvider, und stellt Daten über CPU-Auslastung eines Prozesses zu Verfügung. Dabei ist er auf einen auf der zu überwachenden Maschine laufenden Prozess angewiesen (vgl. Abschnitt ). Dieser wiederum sammelt und puffert die eigentliche Information, wobei die Steuerung dieses Überwachungsprozesses einzig und alleine dem dazugehörenden CpuDataProvider obliegt. Auf dessen Anfrage werden die gewünschten Informationen per Datagrammkommunikation übermittelt (vgl. hierzu Abschnitt. ).
Im Folgenden soll die Funktionsweise des CpuDataProvider und dessen Zusammenwirken mit dem CpuMeter beleuchtet werden.
Wie alle Agenten des Typs DataProvider differenziert sich dieser Subagent von anderen Subagenten dieses Typs primär durch seine proprietären Konfigurationsparameter. Die folgenden Parameter bilden zusammen mit den generischen Bestandteilen Status und Source_Id eine vollständige CpuDataProvider-Konfiguration:
Der fqdn identifiziert ein zu überwachendes Gerät anhand des Domänennamens, der intern auf die entsprechende IP-Adresse übersetzt wird. Beides ist (bzw. sollte zumindest) weltweit eindeutig.
Enthält die Portnummer für den Zugriff auf den jeweiligen CpuMeter. Diese ist nicht frei wählbar, sondern wird bei der Initialisierung eines neuen Meters automatisch generiert, d.h. es wird im Bereich ab 25000 ein freier Port gesucht.
In diesem Wert ist die Prozeßnummer des zu überwachenden Prozesses abgelegt.
In diesem Intervall (Angabe in Sekunden) sammelt ein initialisierter und laufeneder CpuMeter Daten über den durch pid identifizierten Prozess.
Mittels des select-Parameters wird das für das Aktivitätsmaß relevante Datum selektiert, wobei 0 die idle-Zeit selektiert, 1 die nice-Zeit usw. (vgl. Abschnitt ).
Diese Portnummer dient der Kommunikation zwischen dem CpuMeter (Mutter-)Prozess, d.h. zur initialisierung eines neuen CpuMeter. Diese ist prinzipiell systemabhängig frei wählbar, Defaulteinstellung ist 20711.
Anhand dieser Parameter können CpuDataProvider und CpuMeter eindeutig per UDP kommunizieren und Daten austauschen. Eine genauere Erklärung über die Implementation der Methoden findet sich in Abschnitt , hier soll lediglich auf die besonderen Merkmale im Vergleich zur jeweiligen generisch angedachten (DataProvider-)Methode eingegangen werden. Informationen über das UDP-Protokoll finden sich in [#!rfc768!#], die verwendete Methode der UDP-Kommunikation über Sockets entspricht konzeptionell der in [#!HaGr98!#] und [#!HHSB98!#] beschriebenen.
Die Initialisierung eines CpuMeter erwartet als Parameter pid,refresh,select.
Ein zuvor auf der zu überwachenden Maschine gestarteter CpuMeter übernimmt die Funktion eines Spawning Process, d.h. er generiert auf einen init hin einen Kindprozess, welcher die eigentliche Funktion der Datensammlung erfüllt (vgl. Abschnitt ).
Stoppen eines bereits laufenden Meters. Dies betrifft lediglich die Datensammlung. Konfiguration und Meterprozess bleiben für eine spätere Wiederaufnahme der Aufzeichnung erhalten.
Beenden eines Meterprozesses, nachdem die gewünschten Daten bereits abgerufen wurden. Diese Aktion beendet den Prozeß auf dem jeweiligen Gerät und löscht auch die Aufzeichnungsdatei, d.h. alle gesammelten Informationen.
Die untere Ebene der eigentlichen Datensammlung erfolgt durch den CpuMeter oder auch meterd (Kommandozeilenaufruf).