Manuel de l'utilisateur du plug-in WatchMouse

Extension de la fonctionnalité WatchMouse


1. Qu'est-ce que c'est ?

2. Comment les plug-ins fonctionnent-ils ?

3. Comment créer mon propre plug-in ?

4. Contraintes de temporisation

5. Exemples



1. Qu'est-ce que c'est ?

Dans certains packages WatchMouse (par exemple "Platinum"), vous pouvez spécifier des règles de type 'plugin'. A l'aide d'une règle plug-in, vous pouvez étendre la puissance du système WatchMouse pour tester n'importe quel protocole et n'importe quel serveur ou processus situé dans vos locaux, même situé derrière votre pare-feu.

2. Comment les plug-ins fonctionnent-ils ?

Les plug-ins sont des pages Web dynamiques placées sur votre propre serveur Web, qui exécutent le test de la part du serveur WatchMouse. La page (plug-in) est ouverte avec un certain nombre de paramètres (voir ci-dessous) et retourne le résultat du test. Tant que la page dynamique s'exécute sur votre serveur, et qu'elle est sous votre contrôle, elle peut accéder à plus de systèmes que le système WatchMouse externe.

3. Comment créer mon propre plug-in ?

Vous pouvez créer votre propre plug-in en développant une page Web dynamique sur un serveur Web qu'il est possible d'atteindre depuis Internet. Vous pouvez créer cette page dynamique à partir de n'importe quel langage de programmation (PHP, ASP, C++, Java, TCL, ...). La page est consultée par les serveurs WatchMouse dans l'intervalle que vous spécifiez dans vos paramètres de règles.

Les paramètres suivants sont présentés à cette page dynamique à l'aide d'une commande HTTP POST :

  • WMhost
  • WMport
  • WMpath
  • WMpar
  • WMaccount
  • WMpasswd
  • WMua [à implémenter]
  • WMmem [à implémenter]

La valeur du paramètre est copiée depuis vos paramètres de règle à l'aide respectivement des champs d'hôte, de port, de chemin, de paramètre, de compte et de mot de passe.
Les paramètres sont transmis à l'aide du protocole HTTP 1.0. Dans les journaux de votre serveur Web, vous pouvez reconnaître les sondes de nos serveurs, car elles sont balisées à l'aide de l'agent utilisateur "WatchMouse/NNN". Actuellement, la version de NNN est 1.20.

3.1. Valeurs renvoyées

Après avoir exécuté le test dans le script de votre page dynamique, vous devez retourner une page avec le type de contenu "text/plain" et avec une ou plusieurs lignes se terminant par une nouvelle ligne (de préférence un caractère de saut de ligne). Ces lignes doivent respecter le format suivant (pas de ligne vide, pas d'espace à gauche) :

    parameter=value

Les valeurs de retour suivantes sont définies et les autres noms de paramètres ne seront pas pris en compte :

Nom Type Facultatif Description
status entier sans signe N Utilisez 0 pour indiquer un résultat réussi et une valeur de 1 à 9999 si un erreur s'est produite. Utilisez des valeurs différentes pour une condition d'erreur différente.
message car (255) Y Court texte (sans nouvelle ligne, généralement 20 caractères, 255 caractères au maximum). Utilisez de préférence un texte spécifique à chaque valeur d'état.
rtime* entier sans signe N/D Temps de résolution. Pas encore de session ouverte, mais disponible en ligne.
ctime entier sans signe Y Temps de connexion. Temps en millisecondes permettant de créer la connexion
dtime entier sans signe Y Temps de téléchargement. Temps en millisecondes permettant de télécharger l'information.
dsize entier sans signe Y Taille de téléchargement. Nombre d'octets téléchargés.
ptime entier sans signe Y Temps de traitement. Temps en millisecondes pour le traitement. Généralement, il s'agit du temps entre la connexion et le premier octet reçu
user entier sans signe Y Valeur définie par l'utilisateur
*) Actuellement non consigné

Notez qu'à l'exception des champs 'état' et 'message', tous les champs peuvent être définis par l'utilisateur. Leur utilisation pour l'objectif décrit ci-dessus simplifiera l'interprétation par les autres personnes des journaux et des graphiques.

4. Contraintes de temporisation

Le délai que vous avez défini dans la règle (par défaut 8 secondes) est transmis au plug-in, mais c'est également le délai du plug-in lui-même. En cas de dépassement de délai, les paramètres (tempsc, ...) ne sont pas stockés.

5. Exemples

Vous trouverez ci-dessous un exemple dans PHP (http://www.php.net/), Java et ASP.

5.1. Exemple PHP

1. <?
2. // Connecteur WatchMouse pour base de données MySQL
3. // Les paramètres POST suivants sont disponibles
4. // WMhost, WMport, WMpath, WMaccount, WMpasswd, WMpar
5. // Le résultat de l'hôte distant doit être un en-tête MIME,
6. // suivi de :
7. // status=NNN\nmessage=XXX\n
8. // NNN est un nombre positif, 0 indique OK, 1 à 9999 une erreur
10. // XXX est un message, de 255 caractères au plus, uniquement des caractères ASCII 32 à 127
11.
12. $dbhost = 'dbhost.yourdomain.com';
13. $dbname = 'yourDBname';
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 = "Impossible de se connecter à $dbhost($dbuser))";
24. }
25. print "status=$err\n";
26. print "message=$msg\n";
27.
28. if ($dbh) @mysql_close($dbh);
29. ?>

5.2. Exemple Java

[TBI]

5.3. Exemple ASP

[TBI]