Iperf: opção de saída em tempo real facilmente analisável

Criado em 23 jul. 2016  ·  4Comentários  ·  Fonte: esnet/iperf

Oi
Eu fiz uma GUI para iperf 2 no Powershell:
https://github.com/ili101/PPerf

Quero adicionar suporte para iperf 3, mas iperf 3 não tem uma opção de saída analisável em tempo real

iperf 2 tem saída CSV
iperf 3 tem saída JSON, mas é apenas atualizações no final

Eu não acho que JSON pode suportar atualizações em tempo real por causa de sua estrutura, provavelmente porque você está atualizando apenas no final.

Você pode adicionar suporte CSV ou algo com funcionalidade semelhante?

Obrigada

Help Wanted enhancement outputs

Comentários muito úteis

Eu também gostaria de ver esse recurso. Eu entendo que a estrutura JSON não pode ser montada até o final do teste, então talvez você tenha um objeto JSON mínimo para cada intervalo de relatório? Ou traga de volta o suporte csv para facilitar a compatibilidade com versões anteriores.

Todos 4 comentários

Eu consegui analisar a saída de texto
cortando os dados pelas palavras, começando posição de índice na linha [ID]
mas você tem um pequeno bug que algumas das linhas de dados às vezes começam antes da posição do cabeçalho

como o total e as linhas 5,01-5,01 neste exemplo

-----------------------------------------------------------
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%)  

Eu me pergunto se alguns dos campos de saída são justificados de forma engraçada. Admito que não investiguei nada sobre isso.

Se eu fosse tentar analisar esta saída, poderia tentar, em vez disso, quebrar a linha em "palavras" separadas por uma quantidade de espaço em branco (em vez de pela posição na linha). Pense nos comandos de divisão Perl ou Python, é isso que estou imaginando.

Quebrar a linha de dados pelos espaços será difícil porque você precisará conectar as "palavras" ao cabeçalho respeitado e elas não serão quebradas.
"0,00-1,01 seg" será dividido em 2 palavras, mas na verdade são os dados de uma célula que é "Intervalo".

frear os dados para células pela posição da linha de cabeçalho (em seguida, trabalhar na sequência de células) é mais fácil

Não é apenas um problema de leitura da máquina, não parece bom que alguns dos dados estejam fora da célula da "tabela de imagens" e também não se alinhem com as outras linhas

Eu também gostaria de ver esse recurso. Eu entendo que a estrutura JSON não pode ser montada até o final do teste, então talvez você tenha um objeto JSON mínimo para cada intervalo de relatório? Ou traga de volta o suporte csv para facilitar a compatibilidade com versões anteriores.

Esta página foi útil?
0 / 5 - 0 avaliações