If you searched for Gnuplot in this blog you know I am a fan of the tool. It is easy to install, somewhat easy to use, and very likely someone has already had and solved the exact same problem you are having now and wrote a blog entry about it. This is my contribution to the globally distributed Gnuplot cookbook.
I want on a single chart the lines graphs of count of all queries, count of matching queries, and mean duration of all queries. This chart gives me the temperature of the previous day's query load which is a useful qualitative factor for capacity planning. The data retrieval results in records representing a 10 minute interval with counts of all queries, counts of matching queries, and mean durations. This is then plotted to give a chart like the following:
The file of records contains values that looks like
2014-07-07T00:10:00 10449 3850 934 2014-07-07T00:20:00 18445 5676 407 2014-07-07T00:30:00 18497 6507 535 2014-07-07T00:40:00 11419 4463 734 2014-07-07T00:50:00 11634 4454 724 2014-07-07T01:00:00 11960 5077 808 ...
The Gnuplot script is
set terminal png size 800, 400 small interlace set output "/tmp/chart.png" set size ratio 0.5 set xdata time set timefmt "%Y-%m-%dT%H:%M:%S" set xlabel "Hour" set format x "%H:%M" set ylabel "Count" set ytics nomirror set yrange [0:40000] set y2label "Milliseconds" set y2tics set y2range [0:4000] set title "MetaData matching search counts and average durations (10 min intervals) for 2014-07-07" plot \ "/tmp/chart.data" using 1:2 title "Query count" with lines, \ "/tmp/chart.data" using 1:3 title "Matching count" with lines, \ "/tmp/chart.data" using 1:4 title "Request duration" axes x1y2 with lines
The chart is produced daily and it is useful to visually align several days of charts to look for patterns. For comparable charts this requires that the charts all have the same y-axes ranges. To do this Gnuplot's range setting is used. If you do not want a fixed range then remove the set yrange ... and set y2range ... lines.
I hope this helps someone else with their Gnuplot use.