さらに装飾線
CPUのコア数の線なんて描いてみると良さそうな?考えるの面倒なのでHRULEベタ書きで
> HRULE:2#FF0000:"cpu core":dashes=4 \
コア数を越えてるところの背景塗りつぶしてみますか
塗りつぶしは"GTやらLTで比較してINFをかけてからAREA"でやります
rrdtool graph shoichi.example.com_loadavg5_10.png \
--title "load average 5 of shoichi.example.com" \
--start end-1w --end now \
--width 400 \
--height 180 \
--color FONT#FF8C00 \
--color ARROW#FF8C00 \
--color AXIS#FF8C00 \
--color BACK#222222 \
--color CANVAS#000000 \
--color SHADEA#222222 \
--color SHADEB#222222 \
--slope-mode \
DEF:value1=shoichi.example.com_loadavg5.rrd:value:AVERAGE \
CDEF:value2=value1,0.01,* \
CDEF:over1=value2,2,GT,INF,* \
AREA:over1#662222 \
AREA:value2#004000 \
LINE2:value2#00FF00:"loadavg5" \
HRULE:2#FF0000:"cpu core":dashes=4 \
さらに、1週間前のグラフを描いておくと比較するのに便利なので描いてみましょう
rrdtool graph shoichi.example.com_loadavg5_11.png \
--title "load average 5 of shoichi.example.com" \
--start end-1w --end now \
--width 400 \
--height 180 \
--color FONT#FF8C00 \
--color ARROW#FF8C00 \
--color AXIS#FF8C00 \
--color BACK#222222 \
--color CANVAS#000000 \
--color SHADEA#222222 \
--color SHADEB#222222 \
--slope-mode \
DEF:value1=shoichi.example.com_loadavg5.rrd:value:AVERAGE \
CDEF:value2=value1,0.01,* \
CDEF:value3=value2 \
SHIFT:value3:604800 \
CDEF:over1=value2,2,GT,INF,* \
AREA:over1#662222 \
AREA:value2#004000 \
LINE2:value2#00FF00:"loadavg5" \
LINE1:value3#FF8C00:"1 week ago" \
HRULE:2#FF0000:"cpu core":dashes=4 \
説明するとここのCDEF
CDEF:value3=value2 \
でいったんvalue3に渡して
SHIFT:value3:604800 \
ここで1週間分ずらしてます。でできたのがこちら
…凡例出てるけどグラフ出てねぇ
それもそのはず
--start end-1w --end now \
なので1週間分しかデータがないので線も引けない。ということで2週間分のデータをDEFでとりましょう
< DEF:value1=shoichi.example.com_loadavg5.rrd:value:AVERAGE \
---
> DEF:value1=shoichi.example.com_loadavg5.rrd:value:AVERAGE:start=end-2w \
線が出てきました(下の細いオレンジの線)
"1週間前の値の2倍を現在の値が超えた区域を塗りつぶす" をやってみたいと思います
rrdtool graph shoichi.example.com_loadavg5_13.png \
--title "load average 5 of shoichi.example.com" \
--start end-1w --end now \
--width 400 \
--height 180 \
--color FONT#FF8C00 \
--color ARROW#FF8C00 \
--color AXIS#FF8C00 \
--color BACK#222222 \
--color CANVAS#000000 \
--color SHADEA#222222 \
--color SHADEB#222222 \
--slope-mode \
DEF:value1=shoichi.example.com_loadavg5.rrd:value:AVERAGE:start=end-2w \
CDEF:value2=value1,0.01,* \
CDEF:value3=value2 \
SHIFT:value3:604800 \
CDEF:over1=value2,2,GT,INF,* \
CDEF:over2=value3,2,*,value2,LT,INF,* \
AREA:over1#662222 \
AREA:over2#442244 \
AREA:value2#004000 \
LINE2:value2#00FF00:"loadavg5" \
LINE1:value3#FF8C00:"1 week ago" \
HRULE:2#FF0000:"cpu core":dashes=4 \
さっき塗りつぶしたのが上書きされてしまいました…ので透過つかいますかね
< AREA:over2#442244 \
---
> AREA:over2#44224480 \
rrdtoolの色指定は RGB透過率 だったりします。でグラフはこんな感じ
あとノリで1日移動平均線描いて見ました
最終のコマンドオプションはこちら
rrdtool graph shoichi.example.com_loadavg5_15.png \
--title "load average 5 of shoichi.example.com" \
--start end-1w --end now \
--width 400 \
--height 180 \
--color FONT#FF8C00 \
--color ARROW#FF8C00 \
--color AXIS#FF8C00 \
--color BACK#222222 \
--color CANVAS#000000 \
--color SHADEA#222222 \
--color SHADEB#222222 \
--slope-mode \
DEF:value1=shoichi.example.com_loadavg5.rrd:value:AVERAGE:start=end-2w \
CDEF:value2=value1,0.01,* \
CDEF:value3=value2 \
SHIFT:value3:604800 \
CDEF:over1=value2,2,GT,INF,* \
CDEF:over2=value3,2,*,value2,LT,INF,* \
CDEF:sm=value2,86400,TREND \
AREA:over1#662222 \
AREA:over2#44224480 \
AREA:value2#004000 \
LINE2:value2#00FF00:"loadavg5" \
LINE1:value3#FF8C00:"1 week ago" \
LINE2:sm#FFFFFF80:"trend 1 day" \
HRULE:2#FF0000:"cpu core":dashes=4 \
デザインの問題なのでデザイン力や色彩感覚の無い僕では限界ありますが、みなさんもいじってみてカッコいいグラフを描いてみてください。