Erweitern der WatchMouse-Funktionalität
1. Was ist das?
2. Wie funktionieren Plugins?
3. Wie erstelle ich ein eigenes Plugin?
4. Zeitliche Einschränkungen
5. Beispiele
1. Was ist das?
In einigen WatchMouse-Paketen (z. B. Platinum) können Sie Regeln des Typs 'plugin' festlegen. Durch die Nutzung einer Plugin-Regel können Sie die Leistung des WatchMouse-Systems beim Testen jedes Protokolls und jedes Servers oder Prozesses vor Ort erweitern – selbst hinter Firewalls.
2. Wie funktionieren Plugins?
Plugins sind dynamische Webseiten, die auf Ihrem Webserver abgelegt werden und Tests für den WatchMouse-Server durchführen. Die Seite (das Plugin) wird mit einigen Parametern (s. unten) geöffnet und gibt die Testergebnisse zurück. Da die dynamische Seite auf Ihrem Server ausgeführt wird und sich unter Ihrer Kontrolle befindet, kann sie auf mehrere Systeme als das externe WatchMouse-System zugreifen.
3. Wie erstelle ich ein eigenes Plugin?
Sie können ein eigenes Plugin erstellen, indem Sie eine dynamische Webseite auf einem Webserver einrichten, auf den über das Internet zugegriffen werden kann. Diese dynamische Seite kann mit jeder Programmiersprache erstellt werden (PHP, ASP, C++, Java, TCL usw.). Die Seite wird im von Ihnen in den Regeleinstellungen festgelegten Intervall von den WatchMouse-Servern aufgerufen.
Die folgenden Parameter werden anhand eines HTTP POST-Befehls auf die dynamische Seite übertragen:
- WMhost
- WMport
- WMpath
- WMpar
- WMaccount
- WMpasswd
- WMua [noch zu implementieren]
- WMmem [noch zu implementieren]
Der Wert des Parameters wird aus Ihren Regeleinstellungen unter Verwendung der Felder für Host, Port, Pfad, Parameter, Konto bzw. Kennwort kopiert. Die Parameter werden mit dem HTTP 1.0-Protokoll übertragen. Die Daten von unseren Servern sind an der Kennzeichnung „WatchMouse/NNN“ in Ihren Webserver-Protokollen erkennbar. Zurzeit entspricht NNN der Version 1.20.
3.1. Rückgabewerte
Nach Durchführung des Tests im Skript Ihrer dynamischen Seite sollten Sie eine Seite mit dem Inhaltstyp „text/plain“ zurückgeben, die mindestens eine mit „newline“ beendete Zeile aufweist (möglichst ein Zeilenumbruchszeichen). Diese Zeilen sollten folgendes Format aufweisen (ohne leere Zeilen und vorangestellte Leerzeichen):
parameter=wert
Die folgenden Rückgabewerte sind definiert. Anderslautende Parameternamen werden ignoriert:
| Name |
Typ |
Optional |
Beschreibung |
| status |
Ganzzahl ohne Vorzeichen |
N |
Verwenden Sie 0 zur Kennzeichnung eines erfolgreichen Ergebnisses und einen Wert zwischen 1 und 9999 zur Kennzeichnung von Fehlern.
Verwenden Sie unterschiedliche Werte für unterschiedliche Fehlerbedingungen. |
| message |
Zeichen (255) |
J |
Ein kurzer Text (keine Zeilenumbrüche, normalerweise 20 und maximal 255 Zeichen).
Verwenden Sie nach Möglichkeit einen eigenen Text für jeden Statuswert. |
| rtime* |
Ganzzahl ohne Vorzeichen |
n.v. |
Auflösungsdauer. Bisher nicht umgesetzt, jedoch online verfügbar. |
| ctime |
Ganzzahl ohne Vorzeichen |
J |
Verbindungsdauer. Dauer des Verbindungsaufbaus in Millisekunden. |
| dtime |
Ganzzahl ohne Vorzeichen |
J |
Downloaddauer. Dauer des Datendownloads in Millisekunden. |
| dsize |
Ganzzahl ohne Vorzeichen |
J |
Downloadgröße. Anzahl heruntergeladener Byte. |
| ptime |
Ganzzahl ohne Vorzeichen |
J |
Verarbeitungsdauer. Verarbeitungsdauer in Millisekunden.
Normalerweise die Dauer zwischen Verbindungsaufbau und erstem empfangenen Byte. |
| user |
Ganzzahl ohne Vorzeichen |
J |
Benutzerdefinierter Wert |
| *) Bisher noch nicht umgesetzt |
Mit Ausnahme von 'status' und 'message' können alle Felder vom Benutzer definiert werden. Die oben beschriebene Verwendungsweise vereinfacht jedoch die Auslegung von Protokollen und Diagrammen durch Dritte.
4. Zeitliche Einschränkungen
Das von Ihnen in der Regel festgelegte Zeitlimit (standardmäßig 8 Sekunden) wird an das Plugin übergeben und gilt auch für das Plugin. Im Falle einer Limitüberschreitung werden die Parameter (ctime usw.) nicht gespeichert.
5. Beispiele
Im Folgenden sehen Sie jeweils ein Beispiel für PHP (http://www.php.net/), Java und ASP.
5.1. PHP-Beispiel
1. <?
2. // WatchMouse connector for MySQL database
3. // The following POST parameters are available
4. // WMhost, WMport, WMpath, WMaccount, WMpasswd, WMpar
5. // The output of the remote host shall be a MIME header,
6. // followed by:
7. // status=NNN\nmessage=XXX\n
8. // NNN is a positive number, 0 denoting okay, 1..9999 an error
10. // XXX is a message, max 255 chars, only ASCII char 32..127
11.
12. $dbhost = 'dbhost.ihredomaene.com';
13. $dbname = 'ihrDBname';
14. $dbuser = $WMaccount;
15. $dbpass = $WMpasswd;
16.
17. $dbh = @mysql_connect($dbhost, $dbuser, $dbpass);
18.
19. $err = mysql_errno()+0;
20. $msg = mysql_error();
21. if (!$dbh && !$err) {
22. $err=1;
23. $msg = "Couldn\'t connect to $dbhost($dbuser))";
24. }
25. print "status=$err\n";
26. print "message=$msg\n";
27.
28. if ($dbh) @mysql_close($dbh);
29. ?>
5.2. Java-Beispiel
[TBI]
5.3. ASP-Beispiel
[TBI] |