Wykresy na szczycie dzienników

4

Właśnie odkryłem „na szczycie”. To fantastyczne narzędzie do identyfikowania wąskich gardeł wydajności w systemie Linux. Obsługuje tryb monitorowania długoterminowego, w którym loguje dane do dziennika binarnego.

Chciałbym móc wizualizować te dane na wykresie. czy to możliwe? Jeśli tak to jak?

Nie mogę się dowiedzieć, w jakim formacie jest zapisany dziennik. Jest binarny, ale nic nie wykryje w tym „pliku”.

Tomasz
źródło
+1 atopsar(która pojawia się na szczycie) jest w połowie drogi. Wyświetla wszelkie pożądane dane w funkcji czasu. Pozostaje tylko wykreślić te szeregi czasowe. Ogólne rozwiązanie tego problemu z interfejsem sieciowym byłoby fajne. Przyjęta odpowiedź, choć świetna, nie idzie w kierunku pełnego rozwiązania.
arielf

Odpowiedzi:

7

Skrypt powłoki, aby wykreślić trzy średnie pola obciążenia CPL z listy plików dziennika na szczycie.

#!/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
źródło
Właśnie tego próbowałem, ale nic się nie wydarzyło. Uruchomiłem ./plot-atop.sh / var / log / atop / atop_20140225 I właśnie wróciłem. Nie pokazano żadnej fabuły. Próbowałem z -x, a ślad jest następujący: + log = / var / log / atop / atop_20140225 + tmp = / tmp / atop24693 + rm -f / tmp / atop24693 + trap rm -f / tmp / atop24693 0 1 2 + atop -PCPL -r / var / log / atop / atop_20140225 + gnuplot -persist + rm -f / tmp / atop24693
Thomas
Spróbuj tych: wc /var/log/atop.logi echo $DISPLAYiatop -PCPL -r /var/log/atop.log | wc
Ian D. Allen
~ $ wc /var/log/atop.log wc: /var/log/atop.log: Brak takiego pliku lub katalogu ~ $ wc / var / log / atop / atop_20140120 10687 51924 2834046 / var / log / atop / atop_20140120 ~ $ echo $ DISPLAY: 0 W pełni poprawnie sformatowane dane wyjściowe tutaj: paste.yt/p2863.html Jak sformatować kod w komentarzu?
Thomas
Musisz dać mojemu skryptowi atopplik dziennika, który istnieje i nie jest pusty. Kliknij przycisk pomocy , aby dowiedzieć się, jak sformatować.
Ian D. Allen
1
Problemem nie jest mój skrypt; to twój gnuplot. Najpierw działaj.
Ian D. Allen
0

Strony man ( man atop) dostarczają dobrych informacji na temat przeglądania nieprzetworzonych plików dziennika. Sam Atop zapewnia funkcje wyświetlania z opcją generowania „analizowalnego wyniku”, którego można następnie użyć do wygenerowania wizualizacji. Wystarczy spojrzeć na man atopten termin i wyszukać go, wpisując:\PARSEABLE OUTPUT

dlaehnemann
źródło
Przeszukujesz manstrony za pomocą /PARSEABLEnot \PARSEABLE- zobacz manstronę lessprogramu lub użyj klawisza hlub ?, aby wyświetlić ekran POMOC podczas przeglądania mansamej strony.
Ian D. Allen