PDA

View Full Version : [résolu] Affichage graphique


Beniti
08-10-2006, 11:46 AM
Bonjour à tous.

Je n'ai pas de problèmes spécifiques, pas de bugs incompréhensibles, ni d'instabilité quelconque. Juste une petite question, un détail infime.

Je suis en train de m'amuser à rendre plus conviviable le côté visuel de mes graphiques (couleurs, styles...) et j'ai vu une petite chose étrange sur l'un d'eux.

J'ai créé un plugin simple permettant de grapher la mémoire vive d'un hôte (grâce à un petit check_graph_nt.pl suivi d'un MEMUSE en argument). Lorsque je vais dans monitoring pour analyser les infos décrites dans le tableau de mes services, dans la colonne "informations", le plugin affiche correctement les infos (Memory usage: total:3439.43 Mb - used: 531.82 Mb (15 pct) - free: 2907.61 Mb (85 pct) ), mais lorsque j'affiche le graphique, les valeurs inscrites ne sont pas Mb mais en Kb :( ... pour moi ce n'est pas excessivement embétant, mais j'ai des admins qui pourrait s'intérroger sur ce résultat.

Normalement rrdtool gère tous ces détails quand il créé une bd rrd pour le service, alors pour qu'elle raison merdoie-t-il ici ?

Merci d'avance pour toute participation ;)

++

xspoon
08-10-2006, 01:51 PM
rrdtool n'est pas en cause car il ne gère pas les unités ; il recois la valeur brute 3439.43 et la graphe ./

par contre si tu modifie le plugin pour multiplier les 3 valeurs $test4[1],$test[6],$test[11] par 1000 avant de les envoyer a update_rrd, ça devrait marcher 8)

##
## MEMUSE
##
if ($op_v =~ /MEMUSE/){
@test = split(/ /,$_);
@test4 = split(/:/, $test[2]);
@test2 = split(/\(/, $test[8]);
@test3 = split(/\%/, $test2[1]);
@c = split(/ /, $critical);
$critical = $c[1];
@w = split(/ /, $warning);
$warning = $w[1];

if ($opt_g) {
unless (-e $rrd) {
create_rrd ($rrd,3,$start,$step,"U","U","GAUGE");
}
}

if ($opt_g && (defined $test4[1]) && (defined $test[6] ) && (defined $test[11]) ) {
$start=time;
# Replace , by . to convert in real float number (for rrdtool)
$test4[1] =~ s/,/\./ ;
$test[6] =~ s/,/\./ ;
$test[11] =~ s/,/\./ ;
update_rrd ($rrd,$start,$test4[1],$test[6],$test[11]);
}

## Print Plugins Output
print $return;
exit $return_code;

}

Beniti
08-10-2006, 04:16 PM
Merci xspoon :)

Mais hélas, ta soluce ne fonctionne pas (ou alors j'ai rien compris à ta réponse)

J'ai modifié le fichier pl en mettant ton code mais c'est la même chose.

xspoon
08-10-2006, 04:23 PM
c'est normal c'est juste le code du plugin pour référence !


je te laisse rajouter qqchose du genre $var1 = $var1 * 1000;

xspoon
08-10-2006, 04:28 PM
le plus simple:

update_rrd ($rrd,$start,$test4[1]*1000,$test[6]*1000,$test[11]*1000);

Beniti
08-10-2006, 05:05 PM
encore une fois merci xspoon

Là ça fonctionne, j'ai bien mes "G" et mes "M" :)

mais je me demandais si cette solution ne faussais pas un peu les valeurs (sans s'occuper de cette différence Mb et Mo) ?

xspoon
08-10-2006, 05:18 PM
c'est vrai qu'a la base il s'agit bien de Mo
mais le facteur 1000 ne fait que modifier l'unité
tu garde quand même une précision de 0.01 Mo cad de 10 ko
ça doit suffire ! :)

sinon tu peux toujours comparer avec les valeurs sur le serveur ...
c'est toujours bon :)

Beniti
08-10-2006, 05:33 PM
Okay ;)

Merci pour tout m'sieur


(Va vraiment falloir que je me mette au dev... ou du moins en comprendre les sens)

xspoon
08-10-2006, 05:53 PM
tu as raison les valeurs sont plus justes si on multiplie par 1024 ce qui est plus correct en fait... oops :oops:

il faut donc modifier le plugin comme

update_rrd ($rrd,$start,$test4[1]*1024,$test[6]*1024,$test[11]*1024);

merci a toi aussi :)