mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2025-01-13 10:55:34 +00:00
scripts/gst-plot-traces.sh: make log parsing a bit more solid
Use grep -o to grab the log message only. This makes it work with colored log files too. Prefilter the log to not catch tracer classes. Update the commandline for the script in the docs.
This commit is contained in:
parent
ae608845ca
commit
06ce912ba6
2 changed files with 12 additions and 8 deletions
|
@ -352,7 +352,7 @@ GST_DEBUG="GST_TRACER:7" GST_TRACERS="stats;rusage" GST_DEBUG_FILE=trace.log gst
|
||||||
gst-stats-1.0 trace.log
|
gst-stats-1.0 trace.log
|
||||||
- print some pipeline stats on exit
|
- print some pipeline stats on exit
|
||||||
|
|
||||||
GST_DEBUG="GST_TRACER:7" GST_TRACERS="stats;rusage" GST_DEBUG_FILE=trace.log /usr/bin/gst-play-1.0 --interactive $HOME/Videos/movie.mp4
|
GST_DEBUG="GST_TRACER:7" GST_TRACERS="stats;rusage" GST_DEBUG_FILE=trace.log /usr/bin/gst-play-1.0 $HOME/Videos/movie.mp4
|
||||||
./scripts/gst-plot-traces.sh --format=png | gnuplot
|
./scripts/gst-plot-traces.sh --format=png | gnuplot
|
||||||
eog trace.log.*.png
|
eog trace.log.*.png
|
||||||
- get ts, average-cpuload, current-cpuload, time and plot
|
- get ts, average-cpuload, current-cpuload, time and plot
|
||||||
|
|
|
@ -1,7 +1,6 @@
|
||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
# dumps a gnuplot script to stdout that plot of the given log
|
# dumps a gnuplot script to stdout that plot of the given log
|
||||||
|
|
||||||
|
|
||||||
usage="\
|
usage="\
|
||||||
Usage:$0 [--title=<title>] [--log=<log>] [--format={png,pdf,ps,svg}] [--pagesize={a3,a4}]| gnuplot"
|
Usage:$0 [--title=<title>] [--log=<log>] [--format={png,pdf,ps,svg}] [--pagesize={a3,a4}]| gnuplot"
|
||||||
|
|
||||||
|
@ -31,10 +30,15 @@ tmp=`mktemp -d`
|
||||||
plot_width=1600
|
plot_width=1600
|
||||||
plot_height=1200
|
plot_height=1200
|
||||||
|
|
||||||
|
base=`basename "$log" ".log"`
|
||||||
|
|
||||||
# filter log
|
# filter log
|
||||||
grep "proc-rusage," $log | cut -c154- | sed -e 's#ts=(guint64)##' -e 's#[a-z]*-cpuload=(uint)##g' -e 's#time=(guint64)##' -e 's#;##' -e 's#, # #g' | sort -n >$tmp/cpu_proc.dat
|
grep "TRACE" $log | grep "GST_TRACER" >$tmp/trace.log
|
||||||
grep "thread-rusage," $log | cut -c156- | sed -e 's#ts=(guint64)##' -e 's#thread-id=(uint)##g' -e 's#[a-z]*-cpuload=(uint)##g' -e 's#time=(guint64)##' -e 's#;##' -e 's#, # #g' | sort -n >$tmp/cpu_threads.dat
|
log=$tmp/trace.log
|
||||||
( cd $tmp; awk -F" " '{ print $1, $3, $4, $5 >"cpu_thread."$2".dat" }' cpu_threads.dat )
|
|
||||||
|
grep -o "proc-rusage,.*" $log | cut -c14- | sed -e 's#process-id=(guint64)[0-9][0-9]*, ##' -e 's#ts=(guint64)##' -e 's#[a-z]*-cpuload=(uint)##g' -e 's#time=(guint64)##' -e 's#;##' -e 's#, # #g' >$tmp/cpu_proc.dat
|
||||||
|
grep -o "thread-rusage,.*" $log | cut -c35- | sed -e 's#ts=(guint64)##' -e 's#thread-id=(uint)##g' -e 's#[a-z]*-cpuload=(uint)##g' -e 's#time=(guint64)##' -e 's#;##' -e 's#, # #g' >$tmp/cpu_threads.dat
|
||||||
|
( cd $tmp; awk -F" " '{ print $2, $3, $4, $5 >"cpu_thread."$1".dat" }' cpu_threads.dat )
|
||||||
|
|
||||||
# configure output
|
# configure output
|
||||||
# http://en.wikipedia.org/wiki/Paper_size
|
# http://en.wikipedia.org/wiki/Paper_size
|
||||||
|
@ -52,7 +56,7 @@ case $format in
|
||||||
svg) echo "set term svg size $plot_width,$plot_height font \"Sans,7\"";;
|
svg) echo "set term svg size $plot_width,$plot_height font \"Sans,7\"";;
|
||||||
esac
|
esac
|
||||||
cat <<EOF
|
cat <<EOF
|
||||||
set output '$log.cpu.$format'
|
set output '$base.cpu.$format'
|
||||||
set xlabel "Time (ns)"
|
set xlabel "Time (ns)"
|
||||||
set ylabel "Per-Mille"
|
set ylabel "Per-Mille"
|
||||||
set grid
|
set grid
|
||||||
|
@ -60,7 +64,7 @@ plot \\
|
||||||
'$tmp/cpu_proc.dat' using 1:2 with lines title 'avg cpu', \\
|
'$tmp/cpu_proc.dat' using 1:2 with lines title 'avg cpu', \\
|
||||||
'' using 1:3 with lines title 'cur cpu'
|
'' using 1:3 with lines title 'cur cpu'
|
||||||
|
|
||||||
set output '$log.thread.$format'
|
set output '$base.thread.$format'
|
||||||
set xlabel "Time (ns)"
|
set xlabel "Time (ns)"
|
||||||
set ylabel "Per-Mille"
|
set ylabel "Per-Mille"
|
||||||
set grid
|
set grid
|
||||||
|
@ -74,7 +78,7 @@ for file in $tmp/cpu_thread.*.dat ; do
|
||||||
id=`echo $file | sed 's#.*cpu_thread.\([0-9]*\).dat#\1#'`
|
id=`echo $file | sed 's#.*cpu_thread.\([0-9]*\).dat#\1#'`
|
||||||
cat <<EOF
|
cat <<EOF
|
||||||
'$file' using 1:2 with lines title '$id avg cpu', \\
|
'$file' using 1:2 with lines title '$id avg cpu', \\
|
||||||
'' using 1:3 with lines title '$id cur cpu', \\
|
'' using 1:3 with lines title '$id cur cpu', \\
|
||||||
EOF
|
EOF
|
||||||
done
|
done
|
||||||
cat <<EOF
|
cat <<EOF
|
||||||
|
|
Loading…
Reference in a new issue