parse: if profile is set, only show options relevant to the profile
[fio.git] / fio_generate_plots
1 #! /bin/sh
2
3 # Use gnuplot to generate plots from fio run with -l and/or -w
4
5 if [ "$1"x = "x" ]; then
6         echo "Usage: fio_generate_plots title [xres yres]"
7         exit 1
8 fi
9
10 GNUPLOT=$(which gnuplot)
11 if [ ! -x "$GNUPLOT" ]; then
12         echo You need gnuplot installed to generate graphs
13         exit 1
14 fi
15
16 TITLE=$1
17
18 # set resolution
19 if [ "$2"x != "x" -a "$3"x != "x" ]; then
20         XRES="$2"
21         YRES="$3"
22 else
23         XRES=1024
24         YRES=768
25 fi
26
27 PLOT_LINE=""
28 for i in *bw.log; do
29         if [ ! -r $i ]; then
30                 continue
31         fi
32         PT=$(echo $i | sed s/_bw.log//g)
33         if [ "$PLOT_LINE"x != "x" ]; then
34                 PLOT_LINE=$PLOT_LINE", "
35         fi
36
37         PLOT_LINE=$PLOT_LINE"'$i' title '$PT' with lines"
38 done
39
40 if [ "$PLOT_LINE"x != "x" ]; then
41         echo Making bw logs
42         echo "set title 'Bandwidth - $TITLE'; set xlabel 'time (msec)'; set ylabel 'KB/sec'; set terminal png size $XRES,$YRES; set output '$TITLE-bw.png'; plot " $PLOT_LINE | $GNUPLOT -
43 fi
44
45 PLOT_LINE=""
46 for i in *iops.log; do
47         if [ ! -r $i ]; then
48                 continue
49         fi
50         PT=$(echo $i | sed s/_iops.log//g)
51         if [ "$PLOT_LINE"x != "x" ]; then
52                 PLOT_LINE=$PLOT_LINE", "
53         fi
54
55         PLOT_LINE=$PLOT_LINE"'$i' title '$PT' with lines"
56 done
57
58 if [ "$PLOT_LINE"x != "x" ]; then
59         echo Making bw logs
60         echo "set title 'IOPS - $TITLE'; set xlabel 'time (msec)'; set ylabel 'IOPS'; set terminal png size $XRES,$YRES; set output '$TITLE-IOPS.png'; plot " $PLOT_LINE | $GNUPLOT -
61 fi
62
63 PLOT_LINE=""
64 for i in *slat.log; do
65         if [ ! -r $i ]; then
66                 continue
67         fi
68         PT=$(echo $i | sed s/_slat.log//g)
69         if [ "$PLOT_LINE"x != "x" ]; then
70                 PLOT_LINE=$PLOT_LINE", "
71         fi
72
73         PLOT_LINE=$PLOT_LINE"'$i' title '$PT' with lines"
74 done
75
76 if [ "$PLOT_LINE"x != "x" ]; then
77         echo Making slat logs $PLOT_LINE
78         echo "set title 'Submission latency - $TITLE'; set xlabel 'time (msec)'; set ylabel 'latency (msec)'; set terminal png size $XRES,$YRES; set output '$TITLE-slat.png'; plot " $PLOT_LINE | $GNUPLOT -
79 fi
80
81 PLOT_LINE=""
82 for i in *clat.log; do
83         if [ ! -r $i ]; then
84                 continue
85         fi
86         PT=$(echo $i | sed s/_clat.log//g)
87         if [ "$PLOT_LINE"x != "x" ]; then
88                 PLOT_LINE=$PLOT_LINE", "
89         fi
90
91         PLOT_LINE=$PLOT_LINE"'$i' title '$PT' with lines"
92 done
93
94 if [ "$PLOT_LINE"x != "x" ]; then
95         echo Making clat logs $PLOT_LINE
96         echo "set title 'Completion latency - $TITLE'; set xlabel 'time (msec)'; set ylabel 'latency (msec)'; set terminal png size $XRES,$YRES; set output '$TITLE-clat.png'; plot " $PLOT_LINE | $GNUPLOT -
97 fi
98
99 PLOT_LINE=""
100 for i in *_lat.log; do
101         if [ ! -r $i ]; then
102                 continue
103         fi
104         PT=$(echo $i | sed s/_lat.log//g)
105         if [ "$PLOT_LINE"x != "x" ]; then
106                 PLOT_LINE=$PLOT_LINE", "
107         fi
108
109         PLOT_LINE=$PLOT_LINE"'$i' title '$PT' with lines"
110 done
111
112 if [ "$PLOT_LINE"x != "x" ]; then
113         echo Making lat logs $PLOT_LINE
114         echo "set title 'Latency - $TITLE'; set xlabel 'time (msec)'; set ylabel 'latency (msec)'; set terminal png size $XRES,$YRES; set output '$TITLE-lat.png'; plot " $PLOT_LINE | $GNUPLOT -
115 fi