Announcement

Collapse
No announcement yet.

Modif de oreon.pm

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • pepito
    replied
    effectivement j'avais bien un script qui me renvoyait un \n.
    Mais même en l'enlevant je retrouvais mon erreur du début.

    En remettant le s/\n// , plus d'erreur...

    Leave a comment:


  • wistof
    replied
    les deux fonctionnent :
    Code:
    update_rrd ($rrd,$start,$valeur1,...$valeurN);
    ou
    Code:
    update_rrd ($rrd,$start,@valeur);
    je pense que tes valeurs $valeurN contenaient des \n.
    il faudrait plus revoir ta fonction de parsing de ton code retour de check_by_ssh...

    mais bon, je garde ta modif sous le coude, ça peut etre pratique 8)

    Leave a comment:


  • pepito
    replied
    je me suis créé un plug in check_graph_by_ssh.pl qui prend en paramètre le nom d'une commande à grapher.

    Le problème c'est que suivant la commande à grapher, je ne reçois pas le même nombre de valeur (entre 1 et 4).

    Quand j'ai voulu utiliser update_rrd(...), je me suis aperçu qu'il fallait que je lui donne une à une chacune des valeurs que je souhaitais grapher (ou alors je l'utilisais mal mais en tout cas ça me renvoyais une erreur "RRD can't parse variable to float...").

    Code:
    update_rrd ($rrd,$start,$valeur1,...$valeurN);
    ce qui m'obligeait à créer un plugin par commande:
    * un plugin pour les commandes qui me renvoit une seule valeur
    * un plugin pour les commandes qui me renvoit deux valeurs
    * ...

    Maintenant, je crée mon graphe de manière dynamique:

    Code:
    create_rrd ($rrd,$nb_valeur,$start,...);
    update_rrd($rrd,$start,@valeurs);
    sans me préoccuper du nombre de valeur à récupérer...

    Leave a comment:


  • wistof
    replied
    humm... pas tout saisi...

    donc tu as rajouté ça ?
    sub update_rrd([email protected])
    {
    my @rrd_arg;
    my ($rrd, $start,@values) = @_;
    $start = time unless($start);

    my $ERROR = RRDs::error;
    for (@values) {
    s/,/\./ ;
    s/\n//;
    $str_value .= ":" . $_;
    }
    RRDs::update ($rrd, "$start$str_value");
    $ERROR = RRDs::error;
    if ($ERROR) {
    print "unable to update '$rrd' : $ERROR\n" ;
    exit 3;
    }
    }
    pourquoi tu le fais pas dans ton plugin directement ?
    update_rrd est par défaut dynamique...

    Leave a comment:


  • pepito
    started a topic Modif de oreon.pm

    Modif de oreon.pm

    salut,

    j'ai fait une minuscule modif dans le fichier oreon.pm mais qui m'aide beaucoup!
    A la ligne 117 j'ai rajouté :
    Code:
    s/\n//;
    qui m'enleve donc les \n...

    C'est tout con mais du coup je peux passer directement un tableau de valeur sans en connaitre le nombre!

    Par exemple, je me suis créé un plugin check_graph_by_ssh.pl (qui utilise check_by_ssh) dans lequel je passe en paramètre le nom de la machine distante et la commande à exécuter dessus.
    Le nombre de paramètre retourné n'est pas toujours le même... ce qui était chiant à gérer!

    eh ben plus maintenant 8)
    Ca me crée tout dynamiquement en fonction du nombre de paramètres renvoyés! Yaha!
Working...
X