Representação gráfica sobre os logs

4

Acabei de descobrir 'em cima'. Esta é uma ferramenta fantástica para identificar gargalos de desempenho no Linux. Ele suporta um modo de monitoramento de longo prazo, no qual registra dados em um log binário.

Eu gostaria de poder visualizar esses dados em um gráfico. Isso é possível? Se sim, como?

Parece que não consigo descobrir em que formato o log está salvo. É binário, mas nada que 'arquivo' detecte.

Thomas
fonte
O +1 atopsar(que vem com o topo) fica na metade do caminho. Ele exibe qualquer métrica desejada versus tempo. O que resta é apenas traçar essas séries temporais. Uma solução geral para isso com uma interface da web seria legal de se ter. A resposta aceita, embora ótima, não vai até uma solução completa.
Arielf 15/05

Respostas:

7

Um script de shell para plotar os três campos médios de carga da CPL a partir de uma lista de arquivos de log no topo.

#!/bin/sh -u
#   $0 [list of atop logfiles to plot]
# Plot the three CPL load average numbers from a list of atop log files.
# Uses a default atop log file if no arguments given.
# -Ian! D. Allen - [email protected] - www.idallen.com

if [ $# -eq 0 ] ; then
    set -- '/var/log/atop.log'
fi

tmp=/tmp/atop$$
rm -f $tmp
trap "rm -f $tmp" 0 1 2

title=''
for log do
    if [ ! -s "$log" -o ! -r "$log" ] ; then
        echo 1>&2 "$0: $log: empty or unreadable - skipping"
        continue
    fi
    atop -PCPL -r "$log" >>$tmp || exit $?
    title="$title ${log##*/}"
done
if [ ! -s "$tmp" ] ; then
    echo 1>&2 "$0: No files plotted"
    exit 1
fi

len=${#title}
if [ $len -le 80 ] ; then
    title="Three CPL load averages from atop -PCPL\n$title"
else
    title="Three CPL load averages from atop -PCPL\n$(printf "%.77s..." "$title")"
fi

gnuplot -persist <<EOF

set xdata time 
set timefmt '%Y/%m/%d %H:%M:%S' 
set format x "%Y\n%m/%d\n%H:%M" 
set grid
set title noenhanced
set title "$title"
plot \
   "$tmp" using 4:8 notitle 'L1+' with points lc rgbcolor 'blue', \
   "$tmp" using 4:8 title 'L1+' smooth csplines lc rgbcolor 'blue', \
   "$tmp" using 4:9 notitle 'L2*' with points lc rgbcolor 'green', \
   "$tmp" using 4:9 title 'L2*' smooth csplines lc rgbcolor 'green', \
   "$tmp" using 4:10 notitle 'L3x'with points lc rgbcolor 'red', \
   "$tmp" using 4:10 title 'L3x' smooth csplines lc rgbcolor 'red', \
   ;

EOF
Ian D. Allen
fonte
Eu apenas tentei isso, mas nada aconteceu. Corri ./plot-atop.sh / var / log / atop / atop_20140225 E isso acabou de retornar. Nenhuma plotagem foi mostrada. Tentei com -x e o rastreamento é o seguinte: + log = / var / log / atop / atop_20140225 + tmp = / tmp / atop24693 + rm -f / tmp / atop24693 + trap rm -f / tmp / atop24693 0 1 2 + no topo -PCPL -r / var / log / cima / atop_20140225 + gnuplot -persist + rm -f / tmp / atop24693
Thomas
Tente estes: wc /var/log/atop.loge echo $DISPLAYeatop -PCPL -r /var/log/atop.log | wc
Ian D. Allen
~ $ wc /var/log/atop.log wc: /var/log/atop.log: Não existe esse arquivo ou diretório ~ $ wc / var / log / atop / atop_20140120 10687 51924 2834046 / var / log / atop / atop_20140120 ~ $ echo $ DISPLAY: 0 Saída totalmente formatada corretamente aqui: paste.yt/p2863.html Como formato o código em um comentário?
Thomas
Você precisa fornecer ao meu script um atoparquivo de log que exista e não esteja vazio. Você clica no botão de ajuda para aprender como formatar.
Ian D. Allen
1
Então o problema não é o meu script; é o seu gnuplot. Faça isso funcionar primeiro.
Ian D. Allen
0

As páginas de manual ( man atop) fornecem boas informações sobre como examinar os arquivos de log brutos. No topo, ele fornece recursos de visualização, com a opção de gerar "saída analisável" que você pode usar para gerar uma visualização. Portanto, basta olhar man atope procurar esse termo digitando:\PARSEABLE OUTPUT

dlaehnemann
fonte
Você pesquisa em manpáginas usando /PARSEABLEnot \PARSEABLE- consulte a manpágina do lessprograma ou usa a tecla hou ?para exibir a tela HELP enquanto visualiza a manprópria página.
Ian D. Allen