Gnuplot w pracy administratora
Wizualizacja danych w postaci wykresu często kojarzona jest z arkuszami kalkulacyjnymi. Co jednak gdy nie mamy pod ręką arkusza kalkulacyjnego lub gdy zamierzamy w zautomatyzować tworzenie wykresów, z pomocą przychodzi nam pakiet Gnuplot.
Gnuplot [1] kojarzony przy najmniej przeze mnie z czasami studenckimi, kiedy wdzięcznie wykorzystywany był do kreślenia przedziwnym krzywych, których znaczenie skwapliwie opisywaliśmy w sprawozdaniach. Tym razem czasy studenckie i zaawansowane użycie gnuplota odsuwam na bok, bo chodzi o prostą wizualizację danych. Załóżmy, że posiadamy zbiór danych otrzymanych z programu mierzącego czas odpowiedzi danego serwera www np. z popularnego narzędzia JMeter[2]. Dane pomiarowe uzyskujemy w nocy i od razu chcielibyśmy je zwizualizować na wykresie, na osi X załóżmy, że posiadamy testowaną liczbę użytkowników zaś na osi Y średnie czasy odpowiedzi. Wyniki jakie posłużą nam wyrysowania wykresu znajdują się w osobnych plikach, scalamy je do jednego pliku i dzielimy na kolumny, które następnie wybierać będziemy w kodzie samego gnuplot’a. Do podziału pliku na kolumny skorzystamy:
:::bash
$ cat results | pr -tT --columns=4 > results_formatted
Następnie przy pomocy przykładowego kodu gnuplota:
set title "Average response time"
#+ legenda
set key box
set key bottom right
#- legenda
set size 1.5,1.5
set grid
set xlabel "Users #"
set ylabel "Response time [ms]"
set term png
set output "/home/foo/bar.png"
plot
# wspominany wybor kolumn using col1:col2
"/home/foo/results_formatted" using 1:2 title "/" with lines,
“/home/foo/results_formatted” using 1:3 title “/page1” with lines,
“/home/foo/results_formatted” using 1:4 title “/page2” with lines,
“/home/foo/results_formatted” using 1:5 title “/page3” with lines
wygenerujemy szukany wykres w formacie .png:
:::bash
$ gnuplot < graph
prezentujący się następująco [plot1.png][]
Zatem wystarczy tylko tyle i mamy gotowy wykres, bez angażowania arkusza kalkulacyjnego i w pełni automatycznie, co oszczędza czas i przypomina jakie to karkołomne sztuczki wyczyniało się z gnuplot’em i od razu przyjemniej się robi ;)
[2] http://jakarta.apache.org/jmeter/
powered by Hugo and Noteworthy theme