Affichage des résultats 1 à 10 sur 13

Discussion: Compter le nombre d'appels simultanés

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre Senior
    Date d'inscription
    septembre 2010
    Localisation
    Where the sun shines
    Messages
    1 418
    Downloads
    0
    Uploads
    0

    Compter le nombre d'appels simultanés

    je m'étais gratté la tête il y a quelque temps pour trouver le nombre d'appels simultanés sur une période donnée (sans être tanqué devant la console en permanence)

    je pense avoir trouvé ZE réponse, à base de script shell. On liste le Master.csv, en affichant l'heure d'établissement d'appel suivi de +1, et de raccroché suivi de -1. On trie, on additionne, et zou:

    awk 'BEGIN{FS=",\""} /ANSWERED/{split($11, a, "\""); split($12, b, "\"");printf ("%s,1\n%s,-1\n", a[1],b[1]); }' Master.csv | sort | awk -F , '{cpt=cpt+$2; printf ("%s %03d\n", $1, cpt);}'

    Après, on joue comme on veut avec le résultat, on peut filtrer sur des noms de trunk, etc...

    J.

  2. #2
    Membre Association
    Date d'inscription
    août 2010
    Localisation
    région parisienne
    Messages
    386
    Downloads
    0
    Uploads
    0
    Salut,

    Super cette commande, par contre il me sort des
    2010-10-01 06:43:30 000
    pourquoi ton script donne l'info qu'il y a 0 com simultanées?

  3. #3
    Membre Senior
    Date d'inscription
    septembre 2010
    Localisation
    Where the sun shines
    Messages
    1 418
    Downloads
    0
    Uploads
    0
    tu es bien dans le répertoire ou est Master.csv (ie, /var/log/asterisl/cdr-csv) ?

    sinon, coupe la commande en 2, le premier awk d'abord, et vois ce qui sort

  4. #4
    Membre Association
    Date d'inscription
    août 2010
    Localisation
    région parisienne
    Messages
    386
    Downloads
    0
    Uploads
    0
    pardon je me suis mal exprimé,

    j'ai bien des lignes avec un nombre d'appel simultané > 0 mais je ne comprend pas pourquoi il me sort certaines lignes a 0

  5. #5
    Membre Senior
    Date d'inscription
    septembre 2010
    Localisation
    Where the sun shines
    Messages
    1 418
    Downloads
    0
    Uploads
    0
    Ok - j'y suis !

    Ce script te montre à chaque changement du nombre d'appel, le nombre d'appel et la date... par exemple:

    Code:
    2010-10-20 13:11:54 000
    2010-10-20 13:16:54 001
    2010-10-20 13:22:36 002
    2010-10-20 13:23:15 003
    2010-10-20 13:23:31 002
    2010-10-20 13:24:51 001
    2010-10-20 13:27:04 002
    2010-10-20 13:27:09 001
    2010-10-20 13:29:10 000
    2010-10-20 13:30:38 001
    tu vois qu'à 13:16:54, il y a eu un appel et que donc, 1 simultané, puis 2, puis 3, puis à 13:23:31, raccroché, on retombe à 2, etc...

    Tu sais donc précisément ta charge, et à quelle heure.

    Alternativement, tu peux faire
    grep "2010-10-19" /var/log/asterisk/cdr-csv/Master.csv | awk 'BEGIN{FS=",\""} /ANSWERED/{split($11, a, "\""); split($12, b, "\"");printf ("%s,1\n%s,-1\n", a[1],b[1]); }' | sort | awk -F , '{cpt=cpt+$2; printf ("%s %01d\n", $1, cpt);}' | awk 'BEGIN {pdur=0;}{ if (pdur==0){pdur=substr($2,0,2)*60*60+substr($2,4,2) *60+substr($2,7,2); pc=$3; mcc=0;}else{ dur=substr($2,0,2)*60*60+substr($2,4,2)*60+substr( $2,7,2); d[pc] = d[pc]+dur-pdur; nc[pc]++; pdur=dur; pc=$3;} } END {for (i in d) { if (i>0) printf ("%d: Calls=%d, Min= %6.2f\n",i, nc[i],d[i]/60); }}'`

    (j'avoue, j'aime bien awk... remplacer dans le premier grep la date du jour)
    qui va te produire par nombre d'appels simultanés, le temps passé, et le nombre d'appels à ce moment:
    1: Calls=68, Min= 97.50
    2: Calls=41, Min= 44.63
    3: Calls=10, Min= 5.20

    il y a eu 68 moments avec 1 appel simultané, ca a duré 97 min
    il y a eu 41 moments avec 2 appel simultané, ca a duré 44 min
    il y a eu 10 moments avec 3 appel simultané, ca a duré 10 min

    donc, je vois que ce serveur tourne majoritairement avec 1 appel simultané, petites pointes à 3

  6. #6
    Membre Association
    Date d'inscription
    août 2010
    Localisation
    région parisienne
    Messages
    386
    Downloads
    0
    Uploads
    0
    Ok j'ai compris.

    je pense que je vais te donner le titre de "Mister Awk" sur le forum

    merci pour les infos.

  7. #7
    Membre Association Avatar de quintana
    Date d'inscription
    août 2010
    Localisation
    Québec
    Messages
    1 084
    Downloads
    0
    Uploads
    0
    Citation Envoyé par jean Voir le message
    Alternativement, tu peux faire:

    grep "2010-10-19" /var/log/asterisk/cdr-csv/Master.csv | awk 'BEGIN{FS=",\""} /ANSWERED/{split($11, a, "\""); split($12, b, "\"");printf ("%s,1\n%s,-1\n", a[1],b[1]); }' | sort | awk -F , '{cpt=cpt+$2; printf ("%s %01d\n", $1, cpt);}' | awk 'BEGIN {pdur=0;}{ if (pdur==0){pdur=substr($2,0,2)*60*60+substr($2,4,2) *60+substr($2,7,2); pc=$3; mcc=0;}else{ dur=substr($2,0,2)*60*60+substr($2,4,2)*60+substr( $2,7,2); d[pc] = d[pc]+dur-pdur; nc[pc]++; pdur=dur; pc=$3;} } END {for (i in d) { if (i>0) printf ("%d: Calls=%d, Min= %6.2f\n",i, nc[i],d[i]/60); }}'`
    Sérieux Jean
    Découvrez Wazo sous licence GPLv3 et accessible pour tous : http://www.wazo.community
    Blog Wazo : http://blog.wazo.community
    Wazo est un fork de XiVO.
    Suivez moi sur Twitter !

Règles de messages

  • Vous ne pouvez pas créer de nouvelles discussions
  • Vous ne pouvez pas envoyer des réponses
  • Vous ne pouvez pas envoyer des pièces jointes
  • Vous ne pouvez pas modifier vos messages
  •