Iperf: option de sortie en temps réel facilement analysable

Créé le 23 juil. 2016  ·  4Commentaires  ·  Source: esnet/iperf

salut
J'ai créé une interface graphique pour iperf 2 dans Powershell:
https://github.com/ili101/PPerf

Je veux ajouter le support d'iperf 3 mais iperf 3 n'a pas d'option de sortie en temps réel analysable

iperf 2 a une sortie CSV
iperf 3 a une sortie JSON mais ce n'est que des mises à jour à la fin

Je ne pense pas que JSON puisse prendre en charge les mises à jour en temps réel en raison de sa structure, probablement pourquoi vous ne le mettez à jour qu'à la fin.

Pouvez-vous ajouter le support CSV ou quelque chose avec des fonctionnalités similaires?

Merci

Help Wanted enhancement outputs

Commentaire le plus utile

J'aimerais aussi voir cette fonctionnalité. Je comprends que la structure JSON ne peut pas être assemblée avant la fin du test, alors peut-être avoir un objet JSON minimal pour chaque intervalle de rapport à la place? Ou ramenez le support csv pour une compatibilité descendante facile.

Tous les 4 commentaires

J'ai réussi à analyser la sortie de texte
en coupant les données par les mots à partir de la position d'index sur la ligne [ID]
mais vous avez un petit bogue que certaines des données de lignes commencent parfois avant la position de l'en-tête

comme le total et les lignes 5,01-5,01 dans cet exemple

-----------------------------------------------------------
Server listening on 5201
-----------------------------------------------------------
Accepted connection from 127.0.0.1, port 63781
[  6] local 127.0.0.1 port 5201 connected to 127.0.0.1 port 64003
[ ID] Interval           Transfer     Bandwidth       Jitter    Lost/Total Datagrams
[  6]   0.00-1.01   sec   120 KBytes  0.98 Mbits/sec  0.136 ms  0/15 (0%)  
[  6]   1.01-2.01   sec   128 KBytes  1.05 Mbits/sec  0.137 ms  0/16 (0%)  
[  6]   2.01-3.01   sec   128 KBytes  1.05 Mbits/sec  0.169 ms  0/16 (0%)  
[  6]   3.01-4.01   sec   128 KBytes  1.05 Mbits/sec  0.126 ms  0/16 (0%)  
[  6]   4.01-5.01   sec   128 KBytes  1.04 Mbits/sec  0.113 ms  0/16 (0%)  
[  6]   5.01-5.01   sec  0.00 Bytes  0.00 Mbits/sec  0.113 ms  0/0 (0%)  
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval           Transfer     Bandwidth       Jitter    Lost/Total Datagrams
[  6]   0.00-5.01   sec  0.00 Bytes  0.00 Mbits/sec  0.113 ms  0/79 (0%)  

Je me demande si certains des champs de sortie sont justifiés de manière amusante. Certes, je n'ai pas du tout examiné cela.

Si j'allais essayer d'analyser cette sortie, je pourrais essayer de diviser la ligne en "mots" séparés par une certaine quantité d'espaces (plutôt que par position sur la ligne). Pensez aux commandes de fractionnement Perl ou Python, c'est ce que j'envisage.

Briser la ligne de données par les espaces sera difficile car vous devez ensuite connecter les "mots" à l'en-tête respecté et ils ne seront pas machinés.
"0.00-1.01 sec" sera fractionné jusqu'à 2 mots mais c'est en fait une donnée de cellule qui est "Intervalle".

freiner les données dans les cellules par la position de la ligne d'en-tête (puis travailler sur la chaîne de cellules) est plus facile

Ce n'est pas seulement un problème de lecture automatique, mais il ne semble pas bon que certaines des données soient hors de la cellule "table d'imagerie" et ne s'alignent pas avec les autres lignes

J'aimerais aussi voir cette fonctionnalité. Je comprends que la structure JSON ne peut pas être assemblée avant la fin du test, alors peut-être avoir un objet JSON minimal pour chaque intervalle de rapport à la place? Ou ramenez le support csv pour une compatibilité descendante facile.

Cette page vous a été utile?
0 / 5 - 0 notes