diff options
Diffstat (limited to 'src/resperf-report')
-rwxr-xr-x | src/resperf-report | 112 |
1 files changed, 112 insertions, 0 deletions
diff --git a/src/resperf-report b/src/resperf-report new file mode 100755 index 0000000..b3b7697 --- /dev/null +++ b/src/resperf-report @@ -0,0 +1,112 @@ +#!/bin/sh +# +# Copyright 2019-2021 OARC, Inc. +# Copyright 2017-2018 Akamai Technologies +# Copyright 2006-2016 Nominum, Inc. +# All rights reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# +# Driver script to run resperf and generate an HTML report of +# the results, with graphs. +# + +# Program locations - change these if not in $PATH +resperf=resperf +gnuplot=gnuplot + +# The gnuplot terminal type. This determines the image format for the +# plots; "png" or "gif" will both work as long as the corresponding +# terminal support is compiled into your copy of gnuplot. +terminal=png + +# Create a unique ID for this report +id=`date '+%Y%m%d-%H%M'` + +# Set up file names +reportfile="$id.html" +outputfile="$id.output" +plotfile="$id.gnuplot" +rate_graph="$id.rate.$terminal" +latency_graph="$id.latency.$terminal" + +# Run the test +$resperf -P "$plotfile" "$@" >"$outputfile" 2>&1 || + { echo "`basename $0`: error running resperf:" >&2; + cat $outputfile >&2; + exit 1; + } + +# Create plots + +if + $gnuplot <<EOF +set terminal $terminal +set output "$rate_graph" +set title "Query / response / failure rate" +set key top left +set xlabel "Time (seconds)" +set yrange [0:] +plot \ +"$plotfile" using 1:3 title "Queries sent per second" with lines, \ +"$plotfile" using 1:4 title "Total responses received per second" with lines, \ +"$plotfile" using 1:5 title "Failure responses received per second" with lines +EOF +then + : +else + echo "`basename $0`: error running gnuplot" >&2; exit 1; +fi + +if + $gnuplot <<EOF +set terminal $terminal +set output "$latency_graph" +set title "Latency" +set key top left +set xlabel "Time (seconds)" +set yrange [0:] +plot \ +"$plotfile" using 1:6 title "Average latency (seconds)" with lines +EOF +then + : +else + echo "`basename $0`: error running gnuplot" >&2; exit 1; +fi + +# Generate the report + +exec >"$reportfile" + +cat <<EOF +<html><head></head><body> +<h1>Resperf report $id</h1> +<h2>Resperf output</h2> +<pre> +EOF +cat "$outputfile" +cat <<EOF +</pre> +EOF + +cat <<EOF +<h2>Plots</h2> +<p> +<img src="$rate_graph" /> +<img src="$latency_graph" /> +</p> +</body></html> +EOF + +echo "Done, report is in $reportfile" >&2 |