mirror of
https://github.com/ohwgiles/laminar.git
synced 2024-10-27 20:34:20 +00:00
46 lines
1.7 KiB
Plaintext
46 lines
1.7 KiB
Plaintext
|
#!/usr/bin/env gnuplot
|
||
|
|
||
|
# Deeper insights can be obtained by querying Laminar's database directly.
|
||
|
# This example uses gnuplot to create a graph of the distribution of the
|
||
|
# average run time of jobs.
|
||
|
|
||
|
# The following will output a png...
|
||
|
set terminal pngcairo size 800,580 enhanced font 'Helvetica,10'
|
||
|
set output 'build-time-distribution.png'
|
||
|
# ..comment it out to use an interactive widget
|
||
|
|
||
|
# plot style
|
||
|
set tics font "Helvetica,10"
|
||
|
set title font "Helvetica,11"
|
||
|
set xtics nomirror
|
||
|
set ytics nomirror
|
||
|
set border 3 back lt 1 lc rgb "#808080"
|
||
|
set grid back lt 0 lc rgb "#d0d0d0" lw 0.5
|
||
|
set style line 1 lt 1 lc rgb "#7483af" lw 2
|
||
|
|
||
|
# Fetch the path to Laminar's sqlite database
|
||
|
db = system("echo $LAMINAR_HOME") . '/laminar.sqlite'
|
||
|
|
||
|
# Label the axes
|
||
|
set xtics ("<30s" 0, "30s-1m" 1, "1m-5m" 2, "5m-10m" 3, "10m-20m" 4, "20m-40m" 5, "40m-60m" 6, ">60m" 7)
|
||
|
set ylabel "Number of jobs"
|
||
|
set xlabel "Average run time"
|
||
|
set title "Distribution of average run times"
|
||
|
|
||
|
plot '< sqlite3 -separator $''\n'' ' . db . ' \
|
||
|
"WITH ba AS (SELECT name,AVG(completedAt-startedAt) a FROM builds GROUP BY name) SELECT \
|
||
|
COUNT(CASE WHEN a < 30 THEN 1 END), \
|
||
|
COUNT(CASE WHEN a >= 30 AND a < 60 THEN 1 END), \
|
||
|
COUNT(CASE WHEN a >= 60 AND a < 300 THEN 1 END), \
|
||
|
COUNT(CASE WHEN a >= 300 AND a < 600 THEN 1 END), \
|
||
|
COUNT(CASE WHEN a >= 600 AND a < 1200 THEN 1 END), \
|
||
|
COUNT(CASE WHEN a >= 1200 AND a < 2400 THEN 1 END), \
|
||
|
COUNT(CASE WHEN a >= 2400 AND a < 3600 THEN 1 END), \
|
||
|
COUNT(CASE WHEN a >= 3600 THEN 1 END) FROM ba;"' \
|
||
|
using 0:1 with linespoints title '' ls 1
|
||
|
|
||
|
# uncomment this if using an interactive window
|
||
|
#pause mouse close
|
||
|
|
||
|
# Release the output
|
||
|
set output
|