Pages : 1
#1 Le 25/04/2019, à 10:12
- Beuhlet_Reseau
AWK ou autre : Moyenne
Bonjour,
J'ai établi un script basique récupérant les temps de réponse d'une IHM toute les 2 minutes
Voici la forme de la log :
2019_04_25_10_38 0.155
2019_04_25_10_40 0.158
2019_04_25_10_42 0.166
2019_04_25_10_44 0.156
2019_04_25_10_46 0.159
2019_04_25_10_48 0.159
2019_04_25_10_50 0.156
2019_04_25_10_52 0.155
2019_04_25_10_54 0.156
2019_04_25_10_56 0.156
2019_04_25_10_58 0.161
2019_04_25_11_00 0.161
La colonne 1 correspond donc à la date+minute et la colonne 2 le temps de réponse en ms.
J'aurais aimé pouvoir effectuer un traitement assez simple :
date+minute;moyenne;min;max
J'avais commencé à reprendre ce code :
cat tps_reponse | awk 'BEGIN{tot=0; nb=0; max=0; last=""} { if ( last != $1 ) { if (last != "") { print last ";" tot/nb ";" max } ; last=$1; nb=1 ; tot=$2 ; max=0 } else { nb++ ; tot+=$2 ; if ($2 > max) { max=$2 } } } END { if (last != "") { print last ";" tot/nb ; max } }'
Sans succès
Avez vous des idées ?
L'avenir appartient à ceux qui se lèvent tôt... Pas ceux qui crachent trop (vite?).
Hors ligne
#2 Le 25/04/2019, à 11:21
- pingouinux
Re : AWK ou autre : Moyenne
Bonjour,
$ awk 'BEGIN{max=0;min=1000;nb=0;tot=0}{if($2<min)min=$2;if($2>max)max=$2;nb++;tot+=$2;printf("%s;%.3f;%s;%s\n",$1,tot/nb,min,max)}' tps_reponse
2019_04_25_10_38;0.155;0.155;0.155
2019_04_25_10_40;0.157;0.155;0.158
2019_04_25_10_42;0.160;0.155;0.166
2019_04_25_10_44;0.159;0.155;0.166
2019_04_25_10_46;0.159;0.155;0.166
2019_04_25_10_48;0.159;0.155;0.166
2019_04_25_10_50;0.158;0.155;0.166
2019_04_25_10_52;0.158;0.155;0.166
2019_04_25_10_54;0.158;0.155;0.166
2019_04_25_10_56;0.158;0.155;0.166
2019_04_25_10_58;0.158;0.155;0.166
2019_04_25_11_00;0.158;0.155;0.166
Hors ligne