DEDIBOX-NEWS.COM

Le Forum Non Officiel de la DEDIBOX

Vous n'êtes pas identifié.

#26 2007-05-06 12:12:01

Calimero
Maitre Jeidi
Lieu: 94 | 67
Date d'inscription: 2006-05-05
Messages: 2729

Re: Comment créer des graphiques d'audience shoutcast?

Je sais pas comment tu comptes tes auditeurs, mais si on prend le nombre de connexions "established" avec netstat, on peut imaginer un truc du genre:

Code:

#!/bin/bash

MY_IP="88.191.X.Y"
MY_PORT="8000"

NB=$(netstat -tnap | grep ${MY_IP}:${MY_PORT} | grep -c ESTABLISHED)

TIMESTAMP=$(date +%s)

RRDTOOL=/usr/bin/rrdtool
RRD=/tmp/auditeurs.rrd

echo "$RRDTOOL update $RRD ${TIMESTAMP}:${NB}"
$RRDTOOL update $RRD ${TIMESTAMP}:${NB}

La ligne "echo" est purement cosmétique, pour voir ce qui est exécuté.
Doit y avoir moyen de rendre le comptage plus robuste avec les bonnes options de nestat...

Mais bon, c'est l'idée.


Edit: sinon, vive Zabbix !

Hors ligne

 

#27 2007-05-06 12:32:45

Black Dragon
Maitre Jeidi
Date d'inscription: 2006-11-05
Messages: 465

Re: Comment créer des graphiques d'audience shoutcast?

ouais c bien ton script!! Mais le soucis est pour le nombre total de slots je dois le mettre ou?

Dernière modification par Black Dragon (2007-05-06 12:32:56)

Hors ligne

 

#28 2007-05-06 12:55:14

Black Dragon
Maitre Jeidi
Date d'inscription: 2006-11-05
Messages: 465

Re: Comment créer des graphiques d'audience shoutcast?

J'ai Trouvé pour mon nombre total smile

Par contre pourrais tu m'aider à créer le rrd avec la bonne synthaxe? Je voudrais en fait prendre une valeur toute les 5 minutes et afficher sur 24h.

Voila si tu pouvais m'aider pour faire sa smile je pense qu'après je pourrai faire la suite! Parce que en fait je suis perdu avec le nombre d'archives que je dois faire (une average et une max??) et le nombre d'échantillon...

Hors ligne

 

#29 2007-05-06 15:45:35

Calimero
Maitre Jeidi
Lieu: 94 | 67
Date d'inscription: 2006-05-05
Messages: 2729

Re: Comment créer des graphiques d'audience shoutcast?

Pour la base, tu peux créer ca comme ca:

Code:

#!/bin/bash

RRDTOOL="/usr/bin/rrdtool"

START=$(date +%s)

RRDB="sessions_ssh.rrd"

STEP=300

$RRDTOOL create $RRDB --start $START --step $STEP \
        'DS:sessions_ssh:GAUGE:600:0:3000' \
        'RRA:AVERAGE:0.5:1:288' \
        'RRA:AVERAGE:0.5:4:504' \
        'RRA:AVERAGE:0.5:12:744'

Moi j'ai appelé ma datasource "session_ssh" parce que pour mes tests je monitore le nombre de connexions sur le port 22.

Donc, on crée une datasource avec une intervalle de référence de 5 minutes (step = 300sec).
C'est une mesure de type "gauge" c'est à dire un simple relevé. RRDTool a également des types pour les vitesses ou les débits (c'est à dire unité/sec).

Le "600" veut dire: si on n'a pas d'info depuis plus de 600 secondes, rrdtool va considérer que les informations sont invalides (unknown).
Les valeurs 0 et 3000 sont les valeurs min/max acceptables.

Ca, c'est la source de données, ensuite il faut stocker les informations. Pour ca, je crée trois archives avec des paramètres différents.

La définition des archives s'exprime toujours avec comme unité de base l'intervalle de référence (c'est à dire dans notre cas 300sec / 5 minutes).
Donc, première archive:
- moyenne sur 1 intervalle... c'est à dire qu'on prends directement la valeur
- on stocke 288 moyennes, c'est à dire 288 x 5min = 1440min = 1 jour

Deuxième archive:
- moyenne sur 4 intervalles, c'est à dire qu'une moyenne "couvre" 4 x 5min = 20 min
- on stocke 504 moyennes, c'est à dire 504 x 20min = 10080min = 7 jours

Troisième archive:
- moyenne sur 12 intervalles, c'est à dire qu'une moyenne "couvre" 12 x 5min = 60min
- on stocke 744 moyennes, c'est à dire 744h = 31 jours

Avec ces trois archives, tu peux donc sortir des graphiques sur 24h, 1 semaine ou 1 mois sans avoir des bases énormes.

Pour l'alimentation:

Code:

#!/bin/bash

MY_IP="192.168.10.20"
MY_PORT="22"

NB=$(netstat -tan | grep ${MY_IP}:${MY_PORT} | grep -c ESTABLISHED)

RRDTOOL=/usr/bin/rrdtool

RRD="/home/calimero/TMP/rrdtool/sessions_ssh.rrd"

echo "$RRDTOOL update $RRD N:${NB}"
$RRDTOOL update $RRD N:${NB}

Pis hop dans la crontab toutes les 5min

Hors ligne

 

#30 2007-05-06 16:04:49

Black Dragon
Maitre Jeidi
Date d'inscription: 2006-11-05
Messages: 465

Re: Comment créer des graphiques d'audience shoutcast?

Ok j'ai capté! C'est vachement bien expliqué je te remercie smile Donc jusque la parfait, j'ai mis dans la crontab, toutes les 5 minutes apparemment les valeurs sont récupérées smile

Pour faire les graphiques j'ai compris pour faire un simple ligne normalement... Mais après pour les DEF CDEF j'ai pas bien compris pour colorer les area... y'a une synthaxe étrange... Je veux une simple coloration verte avec le maximum en bleu... J'ai réussi a faire une ligne tout moche ^^ c'est dja bien lol

Hors ligne

 

#31 2007-05-06 16:28:42

Calimero
Maitre Jeidi
Lieu: 94 | 67
Date d'inscription: 2006-05-05
Messages: 2729

Re: Comment créer des graphiques d'audience shoutcast?

Tu veux colorer quoi en vert ?
Parce que si tu veux une area + une ligne, faut 2 valeurs ?!

Les DEF c'est pour définir une variable à partir d'une datasource.
Les CDEF c'est pour définir une variable à partir d'une expression mathématique qui peut s'appuyer sur une ou plusieurs variables précédemment définies. Ex: tu mesures la vitesse de ta bagnole en m/s, tu veux afficher la valeur en km/h  ==> il faut que tu appliques un coefficient.

Hors ligne

 

#32 2007-05-06 16:58:48

Black Dragon
Maitre Jeidi
Date d'inscription: 2006-11-05
Messages: 465

Re: Comment créer des graphiques d'audience shoutcast?

je voudrais en fait que la ligne représente mes valeurs, et que l'aire sous la ligne soit colorée en vert smile

Hors ligne

 

#33 2007-05-06 17:06:53

shamankick
Membres d'honneurs
Lieu: Paris
Date d'inscription: 2006-08-24
Messages: 948
Site web

Re: Comment créer des graphiques d'audience shoutcast?

www.amptracker.com

c gratos en basique


[x_o]  http://www.sub-machine.net ||| http://www.subflow.net ----- NEWBIE BLING BLING
UID 5

Hors ligne

 

#34 2007-05-06 17:10:28

Calimero
Maitre Jeidi
Lieu: 94 | 67
Date d'inscription: 2006-05-05
Messages: 2729

Re: Comment créer des graphiques d'audience shoutcast?

Bah suffit de grapher en double: une ligne et une surface.

Code:

#!/bin/bash

RRDTOOL="/usr/bin/rrdtool"

RRDB="/home/calimero/TMP/rrdtool/sessions_ssh.rrd"

GRAPH="/home/calimero/TMP/rrdtool/sessions_ssh.png"

START=$(date --date="-2 hours" +%s)
END=$(date +%s)

$RRDTOOL graph $GRAPH --start $START --end $END \
        "DEF:nb_sessions=$RRDB:sessions_ssh:AVERAGE" \
        "AREA:nb_sessions#00FF00:Sessions SSH" \
        "LINE2:nb_sessions#000000"

Tu peux d'ailleurs foutre la génération du graph juste après la collecte de données.

Hors ligne

 

#35 2007-05-06 17:26:05

shamankick
Membres d'honneurs
Lieu: Paris
Date d'inscription: 2006-08-24
Messages: 948
Site web

Re: Comment créer des graphiques d'audience shoutcast?

je m'immisce perfidement:

BlackDragon tu compte inclure l'origine géographique des auditeurs dans tes graphes ?
c'est plutot intéressant a connaitre


[x_o]  http://www.sub-machine.net ||| http://www.subflow.net ----- NEWBIE BLING BLING
UID 5

Hors ligne

 

#36 2007-05-06 17:51:51

Black Dragon
Maitre Jeidi
Date d'inscription: 2006-11-05
Messages: 465

Re: Comment créer des graphiques d'audience shoutcast?

ouais pourquoi pas mais alors la pour savoir comment faire... J'ai aucune idée de comment m'y prendre ^^ Merci a toi caliméro ça marche nickel en adaptant légèrement ! :wub:

Dernière modification par Black Dragon (2007-05-06 17:53:01)

Hors ligne

 

#37 2007-05-07 15:41:08

Black Dragon
Maitre Jeidi
Date d'inscription: 2006-11-05
Messages: 465

Re: Comment créer des graphiques d'audience shoutcast?

Salut je reviens avec des nouvelles!
Alors j'ai toujours un soucis smile

- J'ai créé le fichier rivendell.rrd avec ce script->

Code:

 #!/bin/bash

RRDTOOL="/usr/bin/rrdtool"

START=$(date +%s)

RRDB="rivendell.rrd"

STEP=300

$RRDTOOL create $RRDB --start $START --step $STEP \
        'DS:rivendell:GAUGE:600:0:50' \
        'RRA:AVERAGE:0.5:1:288' \
        'RRA:AVERAGE:0.5:4:504' \
        'RRA:AVERAGE:0.5:12:744'

- J'ai fait un script add.sh que j'ai mis dans la crontab:

Code:

#!/bin/bash

MY_IP="88.191.38.164"
MY_PORT="8003"

NB=$(netstat -tan | grep ${MY_IP}:${MY_PORT} | grep -c ESTABLISHED)

RRDTOOL=/usr/bin/rrdtool

RRD="/var/rrd/rivendell.rrd"

echo "$RRDTOOL update $RRD N:${NB}"
$RRDTOOL update $RRD N:${NB}

GRAPH="/var/www/rivendell.png"
RRDB="/var/rrd/rivendell.rrd"

START=$(date --date="-24 hours" +%s)
END=$(date +%s)

$RRDTOOL graph $GRAPH --start $START --end $END --width 500 --height 200 --title "Fréquentation Rivendell"                  $
        "DEF:nb_slots=$RRDB:rivendell:AVERAGE" \
        "AREA:nb_slots#FFFF00:Auditeurs" \
        "LINE2:nb_slots#3399FF"

- J'obtiens:


Est-ce normal que le max dans l'échelle de gauche soit 20? Pourquoi ais-je des escaliers? Est-il possible d'avoir des pics? (purement esthétique et curiosité).

J'ai entendu parler de "flaming" pour décorer son graph couleurs flammes, savez vous comment faire?

Voila merci a tous en tout cas jusque là tout marche bien smile

Dernière modification par Black Dragon (2007-05-08 11:07:36)

Hors ligne

 

#38 2007-05-07 19:21:16

Calimero
Maitre Jeidi
Lieu: 94 | 67
Date d'inscription: 2006-05-05
Messages: 2729

Re: Comment créer des graphiques d'audience shoutcast?

Black Dragon a écrit:

Est-ce normal que le max dans l'échelle de gauche soit 20?

Parce que rrdtool a décidé que 20 ca fait une bonne borne supérieure quand le max est à 17 ? :ph34r:

Je crois que tu peux tuner l'algo de calcul des ordonnées.

Black Dragon a écrit:

Pourquoi ais-je des escaliers?

Parce que tes données correspondent à des escaliers.
Tu mesures X sur une plage de temps, Y sur la plage de temps suivante... ben ca fait des escaliers.

Si tu veux du staïle au détriment de la véracité des graphs (fasion victim !), les versions récentes de rrdtool ont un paramètre "--slope" (ou un truc du genre) pour adoucir les transitions.

Black Dragon a écrit:

Est-il possible d'avoir des pics? (purement esthétique et curiosité).

Pas compris, mais je suppose que c'est la même chose qu'au-dessus.

Black Dragon a écrit:

J'ai entendu parler de "flaming" pour décorer son graph couleurs flammes, savez vous comment faire?

Moi non, mais la doc sans doute !
Ca sent les CDEF pour "découper" la valeur et la grapher en plusieurs AREA avec des couleurs différentes.

Hors ligne

 

#39 2007-05-07 20:04:17

Black Dragon
Maitre Jeidi
Date d'inscription: 2006-11-05
Messages: 465

Re: Comment créer des graphiques d'audience shoutcast?

D'accord merci à toi! Par contre tu parle de "tuner l'algo de calcul des ordonnées" j'ai rien compris ^^

Pour le reste j'ai trouvé un exemple ici: http://ed.zehome.com/?page=rrdtool2

Tu crois que c'est réalisable sur mon projet? Pourquoi dans l'exemple de ce site on a des RRA AVERAGE et des MAX? Comment, au moment de faire le graph récupère-t-on les uns ou les autres de ces rra?

Hors ligne

 

#40 2007-05-07 21:13:47

Calimero
Maitre Jeidi
Lieu: 94 | 67
Date d'inscription: 2006-05-05
Messages: 2729

Re: Comment créer des graphiques d'audience shoutcast?

Pour l'ordonnée: man

Pour le flaming: il faut d'abord bien comprendre ce que tu cherches à grapher.

RRDTool est un outil "scientifique" et non un kit graphique à la totoshop.

Si tu fais des archives sur les moyennes, minimum et maximum, tu stockes/calcules des informations différentes. Le graph n'a alors plus le même sens. Tant que tu comprends ce que tu graphes, y a pas de problème, sinon... je vois pas l'intérêt de faire des graphs.

Hors ligne

 

#41 2007-05-08 08:43:48

Black Dragon
Maitre Jeidi
Date d'inscription: 2006-11-05
Messages: 465

Re: Comment créer des graphiques d'audience shoutcast?

Merci a toi encore une fois smile Je vais me débrouiller pour la fin!!

Hors ligne

 

#42 2007-05-08 11:06:59

Black Dragon
Maitre Jeidi
Date d'inscription: 2006-11-05
Messages: 465

Re: Comment créer des graphiques d'audience shoutcast?

héhé je reviens ^^ Avec un soucis que je ne comprend pas!

Voila mon script pour ajouter des valeurs et tracer le graph:

Code:

#!/bin/bash

MY_IP="88.191.38.164"
MY_PORT="8003"

NB=$(netstat -tan | grep ${MY_IP}:${MY_PORT} | grep -c ESTABLISHED)

RRDTOOL=/usr/bin/rrdtool

RRD="/var/rdd/rivendell.rrd"

echo "$RRDTOOL update $RRD N:${NB}"
$RRDTOOL update $RRD N:${NB}

GRAPH="/var/www/rivendell"
RRDB="/var/rdd/rivendell.rrd"

START=$(date --date="-24 hours" +%s)
END=$(date +%s)

GRAPHTITLE="Fréquentation Streaming 8170"

for i in -86400 -604800 -2592000 -31536000
  do
  if [ $i == -86400 ]
      then
      GRAPH2="${GRAPH}-day.png"
  fi
  if [ $i == -604800 ]
      then
      GRAPH2="${GRAPH}-week.png"
  fi
  if [ $i == -2592000 ]
      then
      GRAPH2="${GRAPH}-month.png"
  fi
$RRDTOOL graph "${GRAPH2}"                             \
      --start ${i}                                               \
      --end $END                                                 \
      --vertical-label "Slots Occupés"                            \
      --title "${GRAPHTITLE}" -w 800 -h 180 -u 50            \
      --units-exponent 0 --imgformat PNG                         \
      --color CANVAS#000000                                      \
      --color BACK#000000                                        \
      --color FONT#FFFFFF                                        \
      --color MGRID#cccccc                                       \
      --color GRID#615900                                        \
      --color FRAME#808080                                       \
      --color ARROW#33CCFF                                       \
      --color SHADEA#FFFFFF                                      \
      --color SHADEB#FFFFFF                                      \
      DEF:rivendell=${RRDB}:rivendell:AVERAGE                        \
      CDEF:flaming1=rivendell,40,*,100,/                              \
      CDEF:flaming2=rivendell,5,*,100,/                         \
      VDEF:avg=rivendell,AVERAGE                        \
      COMMENT:"\n"                                               \
      COMMENT:"Fréquentation Stream       "                          \
      COMMENT:"Maximum       Minimum     Moyenne      Dernier \n" \
      AREA:flaming1#6DB5EF:"Slots Occupés              "                \
      STACK:flaming2#65A8E1                                      \
      STACK:flaming2#5C9AD1                                      \
      STACK:flaming2#5691C7                                      \
      STACK:flaming2#5086BD                                      \
      STACK:flaming2#4D80B6                                      \
      STACK:flaming2#4879AE                                      \
      STACK:flaming2#4575A9                                      \
      STACK:flaming2#4270A3                                      \
      STACK:flaming2#3F6A9D                                      \
      STACK:flaming2#3B6597                                      \
      STACK:flaming2#386092                                      \
      STACK:flaming2#375B8E                                      \
      STACK:flaming2#345788                                      \
      STACK:flaming2#315284                                      \
      STACK:flaming2#304F80                                      \
      STACK:flaming2#2D4D7E                                      \
      STACK:flaming2#214276                                      \
      STACK:flaming2#FFFFFF                                      \

      GPRINT:rivendell:MAX:"%2.0lf         "                             \
      GPRINT:rivendell:MIN:"%2.0lf        "                             \
      GPRINT:rivendell:AVERAGE:"%2.0lf         "                         \
      GPRINT:rivendell:LAST:"%2.0lf           " \
      COMMENT:"\n"  \
      HRULE:avg#33FF00:"Moyenne"
done

Et voila l'erreur que j'obtiens:

Code:

/usr/bin/rrdtool update /var/rdd/rivendell.rrd N:16
ERROR: Could not make sense out of ' '
./rivend_add.sh: line 81: GPRINT:rivendell:MAX:%2.0lf          : commande introuvable
ERROR: Could not make sense out of ' '
./rivend_add.sh: line 81: GPRINT:rivendell:MAX:%2.0lf          : commande introuvable
ERROR: Could not make sense out of ' '
./rivend_add.sh: line 81: GPRINT:rivendell:MAX:%2.0lf          : commande introuvable
ERROR: Could not make sense out of ' '
./rivend_add.sh: line 81: GPRINT:rivendell:MAX:%2.0lf          : commande introuvable

Quand j'avais ce genre d'erreur tot ce matin c'est que j'avais oublié des \ Mais la rien ne manque il me semble!

Le seul truc que j'ai rajouté par rapport à un script qui marchait est le nombre de STACK:flaming2#3F6A9D                                      \ -> j'en ai rajouté pour augmenter le dégradé... peut-être que c'est ça qui bloque je ne sais pas, je ne comprend pas vraiment...

Hors ligne

 

#43 2007-05-08 11:21:59

Calimero
Maitre Jeidi
Lieu: 94 | 67
Date d'inscription: 2006-05-05
Messages: 2729

Re: Comment créer des graphiques d'audience shoutcast?

Ligne vide entre les STACK et les GPRINT, probablement.

Hors ligne

 

#44 2007-05-08 11:31:43

Black Dragon
Maitre Jeidi
Date d'inscription: 2006-11-05
Messages: 465

Re: Comment créer des graphiques d'audience shoutcast?

Non en fait un problème de copié collé depuis windows apparemment, car en rentrant les valeurs dans putty tout marche nickel...

Si vous voulez voir ce que ça donne:
http://88.191.38.164/rivendell-day.png

Par contre, pensez vous, purement pour la beauté du graphique que le fond colle avec le graph? Que me conseillez vous niveau "visuel" pour le fond et la ligne moyenne?

Hors ligne

 

#45 2007-05-08 12:10:47

shamankick
Membres d'honneurs
Lieu: Paris
Date d'inscription: 2006-08-24
Messages: 948
Site web

Re: Comment créer des graphiques d'audience shoutcast?

wahooo super nice !! t'as assuré

ouai le fond en noir c bon avec le "flaming"

petite question hors sujet :
Rivendell ça encode que ce qui provient d'une carte son  ou bien ça peut encoder du fichier directement ?
(en fait je ne pige pas bien le principe)

Dernière modification par shamankick (2007-05-08 12:14:22)


[x_o]  http://www.sub-machine.net ||| http://www.subflow.net ----- NEWBIE BLING BLING
UID 5

Hors ligne

 

#46 2007-05-08 12:11:52

Black Dragon
Maitre Jeidi
Date d'inscription: 2006-11-05
Messages: 465

Re: Comment créer des graphiques d'audience shoutcast?

Alors que mettrais tu? Du blanc? Le site sur lequel vont se retrouver ces graphiques a un fond blanc. je ne sais pas non plus de quelle couleur mettre les lignes de la grille ^^ Mais la c'est purement décoratif, le principal est fait smile

Hors ligne

 

#47 2007-05-08 12:15:39

shamankick
Membres d'honneurs
Lieu: Paris
Date d'inscription: 2006-08-24
Messages: 948
Site web

Re: Comment créer des graphiques d'audience shoutcast?

non en noir ça le fait bien
quand tu parle des lignes tu veux dire la grille ? en gris la grille c'est bien
faut pas que ça gène la lecture du graphe

Dernière modification par shamankick (2007-05-08 12:29:07)


[x_o]  http://www.sub-machine.net ||| http://www.subflow.net ----- NEWBIE BLING BLING
UID 5

Hors ligne

 

#48 2007-05-08 12:33:57

Black Dragon
Maitre Jeidi
Date d'inscription: 2006-11-05
Messages: 465

Re: Comment créer des graphiques d'audience shoutcast?

Ok! Pour ta question hors sujet j'ai strictement rien compris ^^ Tu parle du serveur streaming? rivendell est le nom de la radio diffusant sur le port que je veux "grapher".

Hors ligne

 

#49 2007-05-08 12:48:35

shamankick
Membres d'honneurs
Lieu: Paris
Date d'inscription: 2006-08-24
Messages: 948
Site web

Re: Comment créer des graphiques d'audience shoutcast?

ah ok , laisse tomber..
Rivendell c'est un soft de diffusion pour webradio, je pensais que tu l'utilisais

merci


[x_o]  http://www.sub-machine.net ||| http://www.subflow.net ----- NEWBIE BLING BLING
UID 5

Hors ligne

 

#50 2007-05-08 14:53:18

Black Dragon
Maitre Jeidi
Date d'inscription: 2006-11-05
Messages: 465

Re: Comment créer des graphiques d'audience shoutcast?

Tenez j'ai une question à propos de netstat:
netstat -tan | grep ${MY_IP}:${MY_PORT} | grep -c ESTABLISHED

j'ai cette commande pour compter les slots utilisés sur un de mes serveurs streaming. sachant que tous mes serveurs streaming sont compris entre 8000 et 8999 y'a-til un moyen de compter les slots totaux?

j'ai essayé netstat -tan | grep 88.191.38.164:8* | grep -c ESTABLISHED mais ça me compte aussi les autres processus, comme le ssh sur le port 22... quelle est la synthaxe à utiliser?

Hors ligne

 

Pied de page des forums

Powered by PunBB
© Copyright 2002–2005 Rickard Andersson