gnuplot datei
aufrufen oder gnuplot aufrufen und direkt hineinschreibenwenn man nichts weiter sagt, gibt gnuplot normalerweise auf dem grafischen Terminal aus (X11)
weitere Ausgabeformate sind unter anderem: PNG, PS, SVG …. und man kann die Ausgabe auch umleiten, z.B in ps2pdf
set terminal png set output "out.12.png"
set terminal postscript portrait enhanced color dashed lw 1 "Helvetica" 8 set output "| ps2pdf - gnuplotbeispiel.out.pdf"
gegeben ist eine Logdatei postgres.queryonly.log in ähnlichem Format:
2009-05-10 00:00:04 CEST 192.0.2.143 malta SELECTLOG: duration: 547.624 ms statement: SELECT data, created, headers, expire FROM cache WHERE xid = 'rot'
(Langsame Queries)
mit gnuplot 1) und folgenden Befehlen bekommt man eine schönes PDF (zeitliche Verteilung: x-Achse, Langsamkeit: y-Achse)
set format x "%R" set xdata time set timefmt "%H:%M:%S" set timestamp set terminal postscript portrait enhanced color dashed lw 1 "Helvetica" 8 set output "| ps2pdf - out.pdf" plot "postgres.queryonly.log" using 2:8 title "laufzeit datenbankanfragen"
#!/usr/bin/gnuplot #all.dat -> postgres.laufzeit.log #daenemark.dat -> postgres.daenemark.laufzeit.log #portugal.dat -> postgres.portugal.laufzeit.log #daenemark.select.dat -> postgres.selectfromcachewherecid.daenemark.laufzeit.log set format x "%R" set xdata time set timefmt "%H:%M:%S" set timestamp # output set terminal postscript portrait enhanced color dashed lw 1 "Helvetica" 8 set output "| ps2pdf - gnuplotbeispiel.out.pdf" set xrange["16:00:00":"22:00:00"] set yrange[0:7000] plot \ "daenemark.select.dat" using 2:8 title "laufzeit daenemark select data,created,expire from cache" lc rgb "#53868b", \ "daenemark.noselect.dat" using 2:8 title "laufzeit daenemark sonstige" lc rgb "black", \ "portugal.dat" using 2:8 title "laufzeit portugal alle" lc rgb "#ffaeb9"
das noch wenig kunstvolle Ergebnis sieht so aus: gnuplotbeispiel.out.pdf
Input-Quellen können auch Programme und Scripts sein, hier mit awk:
... plot \ "< awk '/schweden/ && /duration/ && /2009-05-12/ && /data, created, headers, expire FROM cache WHERE xid/ {print $2, $8}' postgres.log" \ using 1:2 title "laufzeit schweden select data,created,expire from cache" lc rgb "red", \ "< awk '/schweden/ && /duration/ && /2009-05-12/ && !/data, created, headers, expire FROM cache WHERE xid/ {print $2, $8}' postgres.log" \ using 1:2 title "laufzeit schweden sonstige" lc rgb "blue", \ "< awk '/frankreich/ && /duration/ && /2009-05-12/ {print $2, $8}' postgres.log" \ using 1:2 title "laufzeit frankreich alle" lc rgb "yellow"
Datum + Uhrzeit auswerten … hier in ISO: # 2009-05-10 00:00:03
gnuplot> # 2009-05-10 00:00:03 gnuplot> gnuplot> set timefmt "%Y-%m-%d %H:%M:%S" gnuplot> gnuplot> set format x "%R" gnuplot> gnuplot> plot \ > "< awk '/norwegen/ && /duration/gc && /data, created, headers, expire FROM cache WHERE cid/ {print $1, $2, $8}' postgres.log" \ > using 1:3 title "laufzeit norwegen select data,created,expire from cache" lc rgb "#53868b"
Closing out.svg
gilt für alle Tipps, Tricks & Spickzettel:
dies sind einfache, teils banale Notizen für meinen persönlichen Gebrauch,
die hier eher zufällig auch öffentlich lesbar sind
(vielleicht hilft es ja jemandem weiter). Verwendung auf eigene Gefahr
Fehler-Hinweise, Dankesschreiben , etc. bitte an: web.21@unixwitch.de
weitere Tools / Spickzettel
gnuplot datei
aufrufen oder gnuplot aufrufen und direkt hineinschreiben