Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
あなたの知らないRRDtool
株式会社はてな
システムプラットホーム部
id:shoichimasuhara
■自己紹介
● id:shoichimasuhara
● twitter:@shoichimasuhara
● 名前:桝原翔市 (ショーイチ)
● 所属:株式会社はてな システムプラットホーム部
● 経歴
● 塾講師
● 陸上自衛官
● 鯖管 ...
あなたの知らないRRDtool
■ 先日書いたブログ
● 今日話す内容は半分以上は先日書いたブログのおさらいです
rrdtoolは癒し - 桝原翔市的博客
カッコいいグラフを描いてみましょう
■ まずはシンプルにMRTG風
rrdtool graph shoichi.example.com_loadavg5_1.png 
--title "load average 5 of shoichi.example.com" 
--start...
■ まずはシンプルにMRTG風
■ AREAをLINE1に
< AREA:value1#00FF00:"loadavg5" 
---
> LINE1:value1#00FF00:"loadavg5"
■ AREAをLINE1に
■ CDEFで0.01倍
rrdtool graph shoichi.example.com_loadavg5_3.png 
--title "load average 5 of shoichi.example.com" 
--start en...
■ CDEFで0.01倍
ここから色を選んでカッコ良く
■ --color オプション
--color ${TYPE}#${COLOR} で指定
タイプ 説明
ARROW 軸の矢印
AXIS 軸の色
BACK 背景
CANVAS グラフ内側の背景
FONT フォント
FRAME 凡例の枠
GRID ...
■ ARROW
■ AXIS
■ BACK
■ CANVAS
■ FONT
■ FRAME
■ GRID
■ MGRID
■ SHADEA
■ SHADEB
■ 趣味全開のカラーサンプル
rrdtool graph shoichi.example.com_loadavg5_5.png 
--title "load average 5 of shoichi.example.com" 
--start ...
■ 趣味全開のカラーサンプル
■ LINE1
■ --slope-mode でなめらかに
■ LINE2に薄いAREAを重ねる
■ 現状
rrdtool graph shoichi.example.com_loadavg5_8.png 
--title "load average 5 of shoichi.example.com" 
--start end-1w --e...
■ 装飾線足した(CPUコア数)
> HRULE:2#FF0000:"cpu core":dashes=4
■ 装飾線足した(CPUコア数)
■ コア数以上を塗りつぶし
rrdtool graph shoichi.example.com_loadavg5_10.png 
--title "load average 5 of shoichi.example.com" 
--start ...
■ コア数以上を塗りつぶし(解説)
CDEF:over1=value2,2,GT 
value2 が 2 より大きい(GT=Greater Than) 時に真
TICK:over1#662222:1 
over1 を #662222 の色で 1...
■ コア数以上を塗りつぶし
■ 1週間前の線
rrdtool graph shoichi.example.com_loadavg5_11.png 
--title "load average 5 of shoichi.example.com" 
--start end-1...
■ 1週間前の線(解説)
--start end-1w --end now 
DEF:value1=shoichi.example.com_loadavg5.rrd:value:AVERAGE:start=end-2w
最初のグラフオプションの...
■ 1週間前の線
(続きあるけど) ブログ記事おさらいここまで
もっとこう実用的な感じにしたい
GitHubのrrdtool-1.xのドキュメントを見てみると
GRAD=Gradient=グラデーション
これは使えるのでは
$ sh rrdtool_grad_test.sh
ERROR: GRAD unsupported - use AREA instead
使えなかった
2010年3月30日って書いてあるんだが・・・
使えないならCDEF芸
パッと見て状況がわかるグラフ
■ パッと見て状況がわかるグラフ
rrdtool graph shoichi.example.com_loadavg5_12.png 
--title "load average 5 of shoichi.example.com" 
--sta...
■ パッと見て状況がわかるグラフ
Rosetta stone – Dissonancefalling
https://www.flickr.com/photos/dissonancefalling/5264832096/
■ パッと見て状況がわかるグラフ
色を巧くつかうと複数枚のグラフを見るときに便利
他にも
■ 短調増加するディスク容量の予測
■ 95%ile
■ 95%ile ズームアップ
いろんなことができます
GitHubのコミットやドキュメント読むと知らない発見があるかも
https://github.com/oetiker/rrdtool-1.x
“たとえばHEADだとrrdcachedのフル機能使える、とか”
みなさんも探してみてRRDtoolを楽しんでみてください
ご清聴ありがとうございました
あなたの知らないRrdtool
あなたの知らないRrdtool
あなたの知らないRrdtool
Upcoming SlideShare
Loading in …5
×

あなたの知らないRrdtool

7,620 views

Published on

  • Be the first to comment

あなたの知らないRrdtool

  1. 1. あなたの知らないRRDtool 株式会社はてな システムプラットホーム部 id:shoichimasuhara
  2. 2. ■自己紹介 ● id:shoichimasuhara ● twitter:@shoichimasuhara ● 名前:桝原翔市 (ショーイチ) ● 所属:株式会社はてな システムプラットホーム部 ● 経歴 ● 塾講師 ● 陸上自衛官 ● 鯖管 (レンサバ) ● はてなインフラ (イマココ)
  3. 3. あなたの知らないRRDtool
  4. 4. ■ 先日書いたブログ ● 今日話す内容は半分以上は先日書いたブログのおさらいです rrdtoolは癒し - 桝原翔市的博客
  5. 5. カッコいいグラフを描いてみましょう
  6. 6. ■ まずはシンプルにMRTG風 rrdtool graph shoichi.example.com_loadavg5_1.png --title "load average 5 of shoichi.example.com" --start end-1w --end now --width 400 --height 180 DEF:value1=shoichi.example.com_loadavg5.rrd:value:AVERAGE AREA:value1#00FF00:"loadavg5"
  7. 7. ■ まずはシンプルにMRTG風
  8. 8. ■ AREAをLINE1に < AREA:value1#00FF00:"loadavg5" --- > LINE1:value1#00FF00:"loadavg5"
  9. 9. ■ AREAをLINE1に
  10. 10. ■ CDEFで0.01倍 rrdtool graph shoichi.example.com_loadavg5_3.png --title "load average 5 of shoichi.example.com" --start end-1w --end now --width 400 --height 180 DEF:value1=shoichi.example.com_loadavg5.rrd:value:AVERAGE CDEF:value2=value1,0.01,* AREA:value2#00FF00:"loadavg5"
  11. 11. ■ CDEFで0.01倍
  12. 12. ここから色を選んでカッコ良く
  13. 13. ■ --color オプション --color ${TYPE}#${COLOR} で指定 タイプ 説明 ARROW 軸の矢印 AXIS 軸の色 BACK 背景 CANVAS グラフ内側の背景 FONT フォント FRAME 凡例の枠 GRID グリッド MGRID Mグリッド SHADEA 影A SHADEB 影B
  14. 14. ■ ARROW
  15. 15. ■ AXIS
  16. 16. ■ BACK
  17. 17. ■ CANVAS
  18. 18. ■ FONT
  19. 19. ■ FRAME
  20. 20. ■ GRID
  21. 21. ■ MGRID
  22. 22. ■ SHADEA
  23. 23. ■ SHADEB
  24. 24. ■ 趣味全開のカラーサンプル rrdtool graph shoichi.example.com_loadavg5_5.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 DEF:value1=shoichi.example.com_loadavg5.rrd:value:AVERAGE CDEF:value2=value1,0.01,* AREA:value2#00FF00:"loadavg5"
  25. 25. ■ 趣味全開のカラーサンプル
  26. 26. ■ LINE1
  27. 27. ■ --slope-mode でなめらかに
  28. 28. ■ LINE2に薄いAREAを重ねる
  29. 29. ■ 現状 rrdtool graph shoichi.example.com_loadavg5_8.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,* AREA:value2#004000 LINE2:value2#00FF00:"loadavg5"
  30. 30. ■ 装飾線足した(CPUコア数) > HRULE:2#FF0000:"cpu core":dashes=4
  31. 31. ■ 装飾線足した(CPUコア数)
  32. 32. ■ コア数以上を塗りつぶし 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 TICK:over1#662222:1 AREA:value2#004000 LINE2:value2#00FF00:"loadavg5" HRULE:2#FF0000:"cpu core":dashes=4
  33. 33. ■ コア数以上を塗りつぶし(解説) CDEF:over1=value2,2,GT value2 が 2 より大きい(GT=Greater Than) 時に真 TICK:over1#662222:1 over1 を #662222 の色で 1(100%) の高さで塗りつぶし
  34. 34. ■ コア数以上を塗りつぶし
  35. 35. ■ 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:start=end-2w CDEF:value2=value1,0.01,* CDEF:value3=value2 SHIFT:value3:604800 CDEF:over1=value2,2,GT TICK:over1#662222:1 AREA:value2#004000 LINE2:value2#00FF00:"loadavg5" LINE2:value3#FF8C00:"1 week ago" HRULE:2#FF0000:"cpu core":dashes=4
  36. 36. ■ 1週間前の線(解説) --start end-1w --end now DEF:value1=shoichi.example.com_loadavg5.rrd:value:AVERAGE:start=end-2w 最初のグラフオプションの範囲外のデータを使うときはDEFで範囲を再指定します (再指定しないとグラフが出ない) CDEF:value3=value2 SHIFT:value3:604800 value3に渡した値を604800ずら(SHIFT)します
  37. 37. ■ 1週間前の線
  38. 38. (続きあるけど) ブログ記事おさらいここまで
  39. 39. もっとこう実用的な感じにしたい
  40. 40. GitHubのrrdtool-1.xのドキュメントを見てみると
  41. 41. GRAD=Gradient=グラデーション
  42. 42. これは使えるのでは
  43. 43. $ sh rrdtool_grad_test.sh ERROR: GRAD unsupported - use AREA instead
  44. 44. 使えなかった
  45. 45. 2010年3月30日って書いてあるんだが・・・
  46. 46. 使えないならCDEF芸
  47. 47. パッと見て状況がわかるグラフ
  48. 48. ■ パッと見て状況がわかるグラフ rrdtool graph shoichi.example.com_loadavg5_12.png --title "load average 5 of shoichi.example.com" --start end-1w --end now --width 768 --height 345 --color FONT#FF8C00 --color ARROW#FF8C00 --color AXIS#FF8C00 --color BACK#222222 --color CANVAS#000000 --color SHADEA#222222 --color SHADEB#222222 --slope-mode --lower-limit 0 DEF:value1=shoichi.example.com_loadavg5.rrd:value:AVERAGE:start=end-2w CDEF:value2=value1,0.01,* CDEF:value3=value2 SHIFT:value3:604800 CDEF:sharding_0=value2,0,GE,value2,0.0375,LT,value2,0,-,0.0375,IF,0,IF AREA:sharding_0#0000ff::STACK CDEF:sharding_1=value2,0.0375,GE,value2,0.075,LT,value2,0.0375,-,0.0375,IF,0,IF AREA:sharding_1#000cf2::STACK CDEF:sharding_2=value2,0.075,GE,value2,0.1125,LT,value2,0.075,-,0.0375,IF,0,IF AREA:sharding_2#0019e5::STACK CDEF:sharding_3=value2,0.1125,GE,value2,0.15,LT,value2,0.1125,-,0.0375,IF,0,IF AREA:sharding_3#0026d8::STACK CDEF:sharding_4=value2,0.15,GE,value2,0.1875,LT,value2,0.15,-,0.0375,IF,0,IF AREA:sharding_4#0033cc::STACK CDEF:sharding_5=value2,0.1875,GE,value2,0.225,LT,value2,0.1875,-,0.0375,IF,0,IF AREA:sharding_5#003fbf::STACK CDEF:sharding_6=value2,0.225,GE,value2,0.2625,LT,value2,0.225,-,0.0375,IF,0,IF AREA:sharding_6#004cb2::STACK CDEF:sharding_7=value2,0.2625,GE,value2,0.3,LT,value2,0.2625,-,0.0375,IF,0,IF AREA:sharding_7#0059a5::STACK CDEF:sharding_8=value2,0.3,GE,value2,0.3375,LT,value2,0.3,-,0.0375,IF,0,IF AREA:sharding_8#006699::STACK CDEF:sharding_9=value2,0.3375,GE,value2,0.375,LT,value2,0.3375,-,0.0375,IF,0,IF AREA:sharding_9#00728c::STACK CDEF:sharding_10=value2,0.375,GE,value2,0.4125,LT,value2,0.375,-,0.0375,IF,0,IF AREA:sharding_10#007f7f::STACK CDEF:sharding_11=value2,0.4125,GE,value2,0.45,LT,value2,0.4125,-,0.0375,IF,0,IF AREA:sharding_11#008c72::STACK CDEF:sharding_12=value2,0.45,GE,value2,0.4875,LT,value2,0.45,-,0.0375,IF,0,IF AREA:sharding_12#009966::STACK CDEF:sharding_13=value2,0.4875,GE,value2,0.525,LT,value2,0.4875,-,0.0375,IF,0,IF AREA:sharding_13#00a559::STACK CDEF:sharding_14=value2,0.525,GE,value2,0.5625,LT,value2,0.525,-,0.0375,IF,0,IF AREA:sharding_14#00b24c::STACK CDEF:sharding_15=value2,0.5625,GE,value2,0.6,LT,value2,0.5625,-,0.0375,IF,0,IF AREA:sharding_15#00bf3f::STACK CDEF:sharding_16=value2,0.6,GE,value2,0.6375,LT,value2,0.6,-,0.0375,IF,0,IF AREA:sharding_16#00cc33::STACK CDEF:sharding_17=value2,0.6375,GE,value2,0.675,LT,value2,0.6375,-,0.0375,IF,0,IF AREA:sharding_17#00d826::STACK CDEF:sharding_18=value2,0.675,GE,value2,0.7125,LT,value2,0.675,-,0.0375,IF,0,IF AREA:sharding_18#00e519::STACK CDEF:sharding_19=value2,0.7125,GE,value2,0.75,LT,value2,0.7125,-,0.0375,IF,0,IF AREA:sharding_19#00f20c::STACK CDEF:sharding_20=value2,0.75,GE,value2,0.7875,LT,value2,0.75,-,0.0375,IF,0,IF AREA:sharding_20#00ff00::STACK CDEF:sharding_21=value2,0.7875,GE,value2,0.825,LT,value2,0.7875,-,0.0375,IF,0,IF AREA:sharding_21#0cf200::STACK CDEF:sharding_22=value2,0.825,GE,value2,0.8625,LT,value2,0.825,-,0.0375,IF,0,IF AREA:sharding_22#19e500::STACK CDEF:sharding_23=value2,0.8625,GE,value2,0.9,LT,value2,0.8625,-,0.0375,IF,0,IF AREA:sharding_23#26d800::STACK CDEF:sharding_24=value2,0.9,GE,value2,0.9375,LT,value2,0.9,-,0.0375,IF,0,IF AREA:sharding_24#33cc00::STACK CDEF:sharding_25=value2,0.9375,GE,value2,0.975,LT,value2,0.9375,-,0.0375,IF,0,IF AREA:sharding_25#3fbf00::STACK CDEF:sharding_26=value2,0.975,GE,value2,1.0125,LT,value2,0.975,-,0.0375,IF,0,IF AREA:sharding_26#4cb200::STACK CDEF:sharding_27=value2,1.0125,GE,value2,1.05,LT,value2,1.0125,-,0.0375,IF,0,IF AREA:sharding_27#59a500::STACK CDEF:sharding_28=value2,1.05,GE,value2,1.0875,LT,value2,1.05,-,0.0375,IF,0,IF AREA:sharding_28#669900::STACK CDEF:sharding_29=value2,1.0875,GE,value2,1.125,LT,value2,1.0875,-,0.0375,IF,0,IF AREA:sharding_29#728c00::STACK CDEF:sharding_30=value2,1.125,GE,value2,1.1625,LT,value2,1.125,-,0.0375,IF,0,IF AREA:sharding_30#7f7f00::STACK CDEF:sharding_31=value2,1.1625,GE,value2,1.2,LT,value2,1.1625,-,0.0375,IF,0,IF AREA:sharding_31#8c7200::STACK CDEF:sharding_32=value2,1.2,GE,value2,1.2375,LT,value2,1.2,-,0.0375,IF,0,IF AREA:sharding_32#996600::STACK CDEF:sharding_33=value2,1.2375,GE,value2,1.275,LT,value2,1.2375,-,0.0375,IF,0,IF AREA:sharding_33#a55900::STACK CDEF:sharding_34=value2,1.275,GE,value2,1.3125,LT,value2,1.275,-,0.0375,IF,0,IF AREA:sharding_34#b24c00::STACK CDEF:sharding_35=value2,1.3125,GE,value2,1.35,LT,value2,1.3125,-,0.0375,IF,0,IF AREA:sharding_35#bf3f00::STACK CDEF:sharding_36=value2,1.35,GE,value2,1.3875,LT,value2,1.35,-,0.0375,IF,0,IF AREA:sharding_36#cc3300::STACK CDEF:sharding_37=value2,1.3875,GE,value2,1.425,LT,value2,1.3875,-,0.0375,IF,0,IF AREA:sharding_37#d82600::STACK CDEF:sharding_38=value2,1.425,GE,value2,1.4625,LT,value2,1.425,-,0.0375,IF,0,IF AREA:sharding_38#e51900::STACK CDEF:sharding_39=value2,1.4625,GE,value2,1.5,LT,value2,1.4625,-,0.0375,IF,0,IF AREA:sharding_39#f20c00::STACK CDEF:sharding_40=value2,1.5,GE,value2,INF,LT,value2,1.5,-,0.0375,IF,0,IF AREA:sharding_40#ff0000::STACK HRULE:2#FF0000:"cpu core":dashes=4 LINE2:value2#00FF00:"value2" LINE2:value3#FF8C00:"1 week ago"
  49. 49. ■ パッと見て状況がわかるグラフ Rosetta stone – Dissonancefalling https://www.flickr.com/photos/dissonancefalling/5264832096/
  50. 50. ■ パッと見て状況がわかるグラフ
  51. 51. 色を巧くつかうと複数枚のグラフを見るときに便利
  52. 52. 他にも
  53. 53. ■ 短調増加するディスク容量の予測
  54. 54. ■ 95%ile
  55. 55. ■ 95%ile ズームアップ
  56. 56. いろんなことができます
  57. 57. GitHubのコミットやドキュメント読むと知らない発見があるかも https://github.com/oetiker/rrdtool-1.x
  58. 58. “たとえばHEADだとrrdcachedのフル機能使える、とか”
  59. 59. みなさんも探してみてRRDtoolを楽しんでみてください
  60. 60. ご清聴ありがとうございました

×