SlideShare a Scribd company logo
Go でMunin プラグインを書いてみた - shizuoka.go 2016.05 Powered by Rabbit 2.1.9
Go で
Munin プラグインを
書いてみた
shizuoka.go 2016.05
となか (@ftnk)
Go でMunin プラグインを書いてみた - shizuoka.go 2016.05 Powered by Rabbit 2.1.9
自己紹介
名前: となか✓
ID: @ftnk✓
インフラエンジニア
Solaris✓
✓
最近 Ruby で XenServer の
簡易 WEB UI 書いてます
✓
Go でMunin プラグインを書いてみた - shizuoka.go 2016.05 Powered by Rabbit 2.1.9
shizuoka.go
10 回目くらい
です
Go でMunin プラグインを書いてみた - shizuoka.go 2016.05 Powered by Rabbit 2.1.9
Go で何
か書きま
したか?
Go でMunin プラグインを書いてみた - shizuoka.go 2016.05 Powered by Rabbit 2.1.9
書いた人は
https://gist.github.com/
ftnk/6b7f3216eb58f06ed2616
e1bceb62c15 の
ダメ出し✓
俺ならこう書く✓
の準備をしてください。
Go でMunin プラグインを書いてみた - shizuoka.go 2016.05 Powered by Rabbit 2.1.9
書いてい
ない人
Go でMunin プラグインを書いてみた - shizuoka.go 2016.05 Powered by Rabbit 2.1.9
Go で何
を書く?
Go でMunin プラグインを書いてみた - shizuoka.go 2016.05 Powered by Rabbit 2.1.9
Nagios plugin?
Goでcheck_smtpを書き直し
た go-check-smtp をリリー
スしました · ~nabeken/
tech/
http://mahiru.moe/post/go-
check-smtp/
✓
2015-06-14✓
✓
Go でMunin プラグインを書いてみた - shizuoka.go 2016.05 Powered by Rabbit 2.1.9
Munin のプラグインを
書いてみる
shizuoka.py で Python で
Munin プラグインを書いてみ
た
✓
Go で書かれた Munin plugin
を見つけた
どこにあったものかは忘れた✓
✓
Go でMunin プラグインを書いてみた - shizuoka.go 2016.05 Powered by Rabbit 2.1.9
Munin
http://munin-
monitoring.org/
✓
リソース監視
plugin で値を取得してグラフ化✓
✓
Go でMunin プラグインを書いてみた - shizuoka.go 2016.05 Powered by Rabbit 2.1.9
お題: uptime の plugin
値の取得
kstat -p
unix:0:system_misc:boot_time で
起動時刻を取得
✓
現在との差をとる✓
✓
Go でMunin プラグインを書いてみた - shizuoka.go 2016.05 Powered by Rabbit 2.1.9
お題: uptime の plugin
出力
引数なし
'uptime.value (日数)' を出力✓
✓
引数として 'config' が渡された時
グラフの設定を出力✓
✓
✓
Go でMunin プラグインを書いてみた - shizuoka.go 2016.05 Powered by Rabbit 2.1.9
Munin プラグインに
必要な処理
1. 簡単な引数処理✓
2. コマンド実行✓
3. コマンド出力のパース・整
形
✓
4. 出力✓
Go でMunin プラグインを書いてみた - shizuoka.go 2016.05 Powered by Rabbit 2.1.9
1. 引数処理
os.Args
要素の確認: os.Args[1]✓
引数の数: len(os.Args)✓
✓
Go でMunin プラグインを書いてみた - shizuoka.go 2016.05 Powered by Rabbit 2.1.9
1. 引数処理
if len(os.Args) == 2 && os.Args[1] == "config" {
// グラフ設定表示
} else {
// uptime を出力
}
Go でMunin プラグインを書いてみた - shizuoka.go 2016.05 Powered by Rabbit 2.1.9
2. コマンド実行
exec.Command
出力を得るには .Output を使う
out, err := exec.Command("kstat", "-p",
"unix:0:system_misc:boot_time").Output()
out: 出力✓
err: 0 以外の exit status(?)
exit status が 0 の時は nil になる
✓
✓
✓
Go でMunin プラグインを書いてみた - shizuoka.go 2016.05 Powered by Rabbit 2.1.9
2. コマンド実行
out, err := exec.Command("kstat", "-p",
"unix:0:system_misc:boot_time").Output()
if err != nil {
fmt.Println("error: ", err)
os.Exit(1)
}
Go でMunin プラグインを書いてみた - shizuoka.go 2016.05 Powered by Rabbit 2.1.9
3. コマンド出力のパース・
整形
改行を削除したい✓
正規表現を使って文字列を取り
出したい
✓
数を表す文字列を数値に変換し
たい
✓
Go でMunin プラグインを書いてみた - shizuoka.go 2016.05 Powered by Rabbit 2.1.9
改行を削除したい
str = strings.TrimRight(str, 'n')
Go でMunin プラグインを書いてみた - shizuoka.go 2016.05 Powered by Rabbit 2.1.9
正規表現
正規表現オブジェクトの生成
regexp.Compile✓
regexp.CompilePosix✓
regexp.MustCompile✓
regexp.MustCompilePosix✓
Go でMunin プラグインを書いてみた - shizuoka.go 2016.05 Powered by Rabbit 2.1.9
正規表現
Posix
あり: POSIX ERE (egrep),
leftmost-longest
✓
なし: ?, leftmost-first✓
✓
Must
あり: 正規表現をパースできなけれ
ば panic
✓
✓
Go でMunin プラグインを書いてみた - shizuoka.go 2016.05 Powered by Rabbit 2.1.9
正規表現
正規表現にマッチする文字列の取
得
.FindStringsSubmatch✓
Go でMunin プラグインを書いてみた - shizuoka.go 2016.05 Powered by Rabbit 2.1.9
正規表現
reg := regexp.MustCompile(`^unix:0:system_misc:boot_times+(d+)$`)
str := reg.FindStringSubmatch(line)
'(d+)' 部分は 'str[1]' で取得でき
る。
Go でMunin プラグインを書いてみた - shizuoka.go 2016.05 Powered by Rabbit 2.1.9
数を表す文字列を数値に変換
したい
strconv.ParseFloat✓
strconv.Parseint✓
strconv.ParseUint✓
32/64/etc. bit は引数で指定。
Go でMunin プラグインを書いてみた - shizuoka.go 2016.05 Powered by Rabbit 2.1.9
数を表す文字列を数値に変換
したい
if str := reg.FindStringSubmatch(line); str != nil {
i, err := strconv.ParseUint(str[1], 10, 64)
if err != nil {
panic(fmt.Sprintf("Failed to parse %s", str[1]))
}
uptime.uptime = (now - i) / (60 * 60 * 24)
}
Go でMunin プラグインを書いてみた - shizuoka.go 2016.05 Powered by Rabbit 2.1.9
4. 出力
fmt.Print✓
fmt.Println✓
fmt.Sprintf✓
fmt.Errorf✓
Go でMunin プラグインを書いてみた - shizuoka.go 2016.05 Powered by Rabbit 2.1.9
Go で Munin Plugin を
書くメリット?
ちょっと速い?✓
1 バイナリ?✓
Go でMunin プラグインを書いてみた - shizuoka.go 2016.05 Powered by Rabbit 2.1.9
ちょっと速い?
Shell Script で書いていろんな
コマンドを呼び出すよりはち
ょっと速い
処理すべきことが少なくて、大した
差がでない
✓
同じことは他の言語でも言える✓
✓
Go でMunin プラグインを書いてみた - shizuoka.go 2016.05 Powered by Rabbit 2.1.9
1 バイナリ?
他のものに依存しないのは楽
Solaris だと、どの実装の grep、
awk、etc. を使うか
gnu 全部入れとくのが楽ってことになる✓
基本的には最初から入ってるものでなんと
かしたい
✓
✓
✓
Go でMunin プラグインを書いてみた - shizuoka.go 2016.05 Powered by Rabbit 2.1.9
1 バイナリ?
build するためにもパッケージ
化した方が楽かもしれない
現在、Munin pluign をパッケージ
化していない
ちょっと面倒臭くなる
Solaris でも Linux でも動くプラグインだ
と、さらに面倒
✓
✓
✓
Go でMunin プラグインを書いてみた - shizuoka.go 2016.05 Powered by Rabbit 2.1.9
ダメ
出し
Go でMunin プラグインを書いてみた - shizuoka.go 2016.05 Powered by Rabbit 2.1.9
まとめ
ちょっとしたところで Go を
使ってみる
✓
Munin プラグイン程度なら簡
単に書ける
ただし Go っぽさはない✓
✓

More Related Content

What's hot

勉強会向けサーバを作ってみる2 / Rasbian jessieを試す/ Google Authenticatorのパスコードを作る
勉強会向けサーバを作ってみる2 / Rasbian jessieを試す/ Google Authenticatorのパスコードを作る勉強会向けサーバを作ってみる2 / Rasbian jessieを試す/ Google Authenticatorのパスコードを作る
勉強会向けサーバを作ってみる2 / Rasbian jessieを試す/ Google Authenticatorのパスコードを作る
Kenichiro MATOHARA
 
文字化け
文字化け文字化け
文字化け
Masahiro Tomita
 
Windows スクリプトセミナー 基本編
Windows スクリプトセミナー 基本編Windows スクリプトセミナー 基本編
Windows スクリプトセミナー 基本編
junichi anno
 
Mon, Muninによる楽々監視生活
Mon, Muninによる楽々監視生活Mon, Muninによる楽々監視生活
Mon, Muninによる楽々監視生活
Akihiro Kuwano
 
Vagrant intro
Vagrant introVagrant intro
Vagrant introt9md
 
オープンソースカンファレンス大分参加報告 & 勉強会向けサーバを作ってみる
オープンソースカンファレンス大分参加報告 & 勉強会向けサーバを作ってみるオープンソースカンファレンス大分参加報告 & 勉強会向けサーバを作ってみる
オープンソースカンファレンス大分参加報告 & 勉強会向けサーバを作ってみる
Kenichiro MATOHARA
 
Hacking Vox and Plagger
Hacking Vox and PlaggerHacking Vox and Plagger
Hacking Vox and Plagger
Tatsuhiko Miyagawa
 
アプリからの情報を秘密裏にApacheのログに書き出す方法
アプリからの情報を秘密裏にApacheのログに書き出す方法アプリからの情報を秘密裏にApacheのログに書き出す方法
アプリからの情報を秘密裏にApacheのログに書き出す方法
Yoshinori Teraoka
 

What's hot (8)

勉強会向けサーバを作ってみる2 / Rasbian jessieを試す/ Google Authenticatorのパスコードを作る
勉強会向けサーバを作ってみる2 / Rasbian jessieを試す/ Google Authenticatorのパスコードを作る勉強会向けサーバを作ってみる2 / Rasbian jessieを試す/ Google Authenticatorのパスコードを作る
勉強会向けサーバを作ってみる2 / Rasbian jessieを試す/ Google Authenticatorのパスコードを作る
 
文字化け
文字化け文字化け
文字化け
 
Windows スクリプトセミナー 基本編
Windows スクリプトセミナー 基本編Windows スクリプトセミナー 基本編
Windows スクリプトセミナー 基本編
 
Mon, Muninによる楽々監視生活
Mon, Muninによる楽々監視生活Mon, Muninによる楽々監視生活
Mon, Muninによる楽々監視生活
 
Vagrant intro
Vagrant introVagrant intro
Vagrant intro
 
オープンソースカンファレンス大分参加報告 & 勉強会向けサーバを作ってみる
オープンソースカンファレンス大分参加報告 & 勉強会向けサーバを作ってみるオープンソースカンファレンス大分参加報告 & 勉強会向けサーバを作ってみる
オープンソースカンファレンス大分参加報告 & 勉強会向けサーバを作ってみる
 
Hacking Vox and Plagger
Hacking Vox and PlaggerHacking Vox and Plagger
Hacking Vox and Plagger
 
アプリからの情報を秘密裏にApacheのログに書き出す方法
アプリからの情報を秘密裏にApacheのログに書き出す方法アプリからの情報を秘密裏にApacheのログに書き出す方法
アプリからの情報を秘密裏にApacheのログに書き出す方法
 

Recently uploaded

ハイブリッドクラウド研究会_Hyper-VとSystem Center Virtual Machine Manager セッションMM
ハイブリッドクラウド研究会_Hyper-VとSystem Center Virtual Machine Manager セッションMMハイブリッドクラウド研究会_Hyper-VとSystem Center Virtual Machine Manager セッションMM
ハイブリッドクラウド研究会_Hyper-VとSystem Center Virtual Machine Manager セッションMM
osamut
 
Generating Automatic Feedback on UI Mockups with Large Language Models
Generating Automatic Feedback on UI Mockups with Large Language ModelsGenerating Automatic Feedback on UI Mockups with Large Language Models
Generating Automatic Feedback on UI Mockups with Large Language Models
harmonylab
 
生成AIがもたらすコンテンツ経済圏の新時代  The New Era of Content Economy Brought by Generative AI
生成AIがもたらすコンテンツ経済圏の新時代  The New Era of Content Economy Brought by Generative AI生成AIがもたらすコンテンツ経済圏の新時代  The New Era of Content Economy Brought by Generative AI
生成AIがもたらすコンテンツ経済圏の新時代  The New Era of Content Economy Brought by Generative AI
Osaka University
 
「進化するアプリ イマ×ミライ ~生成AIアプリへ続く道と新時代のアプリとは~」Interop24Tokyo APPS JAPAN B1-01講演
「進化するアプリ イマ×ミライ ~生成AIアプリへ続く道と新時代のアプリとは~」Interop24Tokyo APPS JAPAN B1-01講演「進化するアプリ イマ×ミライ ~生成AIアプリへ続く道と新時代のアプリとは~」Interop24Tokyo APPS JAPAN B1-01講演
「進化するアプリ イマ×ミライ ~生成AIアプリへ続く道と新時代のアプリとは~」Interop24Tokyo APPS JAPAN B1-01講演
嶋 是一 (Yoshikazu SHIMA)
 
ロジックから状態を分離する技術/設計ナイト2024 by わいとん @ytnobody
ロジックから状態を分離する技術/設計ナイト2024 by わいとん @ytnobodyロジックから状態を分離する技術/設計ナイト2024 by わいとん @ytnobody
ロジックから状態を分離する技術/設計ナイト2024 by わいとん @ytnobody
azuma satoshi
 
論文紹介:Deep Learning-Based Human Pose Estimation: A Survey
論文紹介:Deep Learning-Based Human Pose Estimation: A Survey論文紹介:Deep Learning-Based Human Pose Estimation: A Survey
論文紹介:Deep Learning-Based Human Pose Estimation: A Survey
Toru Tamaki
 
Humanoid Virtual Athletics Challenge2024 技術講習会 スライド
Humanoid Virtual Athletics Challenge2024 技術講習会 スライドHumanoid Virtual Athletics Challenge2024 技術講習会 スライド
Humanoid Virtual Athletics Challenge2024 技術講習会 スライド
tazaki1
 

Recently uploaded (7)

ハイブリッドクラウド研究会_Hyper-VとSystem Center Virtual Machine Manager セッションMM
ハイブリッドクラウド研究会_Hyper-VとSystem Center Virtual Machine Manager セッションMMハイブリッドクラウド研究会_Hyper-VとSystem Center Virtual Machine Manager セッションMM
ハイブリッドクラウド研究会_Hyper-VとSystem Center Virtual Machine Manager セッションMM
 
Generating Automatic Feedback on UI Mockups with Large Language Models
Generating Automatic Feedback on UI Mockups with Large Language ModelsGenerating Automatic Feedback on UI Mockups with Large Language Models
Generating Automatic Feedback on UI Mockups with Large Language Models
 
生成AIがもたらすコンテンツ経済圏の新時代  The New Era of Content Economy Brought by Generative AI
生成AIがもたらすコンテンツ経済圏の新時代  The New Era of Content Economy Brought by Generative AI生成AIがもたらすコンテンツ経済圏の新時代  The New Era of Content Economy Brought by Generative AI
生成AIがもたらすコンテンツ経済圏の新時代  The New Era of Content Economy Brought by Generative AI
 
「進化するアプリ イマ×ミライ ~生成AIアプリへ続く道と新時代のアプリとは~」Interop24Tokyo APPS JAPAN B1-01講演
「進化するアプリ イマ×ミライ ~生成AIアプリへ続く道と新時代のアプリとは~」Interop24Tokyo APPS JAPAN B1-01講演「進化するアプリ イマ×ミライ ~生成AIアプリへ続く道と新時代のアプリとは~」Interop24Tokyo APPS JAPAN B1-01講演
「進化するアプリ イマ×ミライ ~生成AIアプリへ続く道と新時代のアプリとは~」Interop24Tokyo APPS JAPAN B1-01講演
 
ロジックから状態を分離する技術/設計ナイト2024 by わいとん @ytnobody
ロジックから状態を分離する技術/設計ナイト2024 by わいとん @ytnobodyロジックから状態を分離する技術/設計ナイト2024 by わいとん @ytnobody
ロジックから状態を分離する技術/設計ナイト2024 by わいとん @ytnobody
 
論文紹介:Deep Learning-Based Human Pose Estimation: A Survey
論文紹介:Deep Learning-Based Human Pose Estimation: A Survey論文紹介:Deep Learning-Based Human Pose Estimation: A Survey
論文紹介:Deep Learning-Based Human Pose Estimation: A Survey
 
Humanoid Virtual Athletics Challenge2024 技術講習会 スライド
Humanoid Virtual Athletics Challenge2024 技術講習会 スライドHumanoid Virtual Athletics Challenge2024 技術講習会 スライド
Humanoid Virtual Athletics Challenge2024 技術講習会 スライド
 

Go で Munin プラグインを書いてみた

  • 1. Go でMunin プラグインを書いてみた - shizuoka.go 2016.05 Powered by Rabbit 2.1.9 Go で Munin プラグインを 書いてみた shizuoka.go 2016.05 となか (@ftnk)
  • 2. Go でMunin プラグインを書いてみた - shizuoka.go 2016.05 Powered by Rabbit 2.1.9 自己紹介 名前: となか✓ ID: @ftnk✓ インフラエンジニア Solaris✓ ✓ 最近 Ruby で XenServer の 簡易 WEB UI 書いてます ✓
  • 3. Go でMunin プラグインを書いてみた - shizuoka.go 2016.05 Powered by Rabbit 2.1.9 shizuoka.go 10 回目くらい です
  • 4. Go でMunin プラグインを書いてみた - shizuoka.go 2016.05 Powered by Rabbit 2.1.9 Go で何 か書きま したか?
  • 5. Go でMunin プラグインを書いてみた - shizuoka.go 2016.05 Powered by Rabbit 2.1.9 書いた人は https://gist.github.com/ ftnk/6b7f3216eb58f06ed2616 e1bceb62c15 の ダメ出し✓ 俺ならこう書く✓ の準備をしてください。
  • 6. Go でMunin プラグインを書いてみた - shizuoka.go 2016.05 Powered by Rabbit 2.1.9 書いてい ない人
  • 7. Go でMunin プラグインを書いてみた - shizuoka.go 2016.05 Powered by Rabbit 2.1.9 Go で何 を書く?
  • 8. Go でMunin プラグインを書いてみた - shizuoka.go 2016.05 Powered by Rabbit 2.1.9 Nagios plugin? Goでcheck_smtpを書き直し た go-check-smtp をリリー スしました · ~nabeken/ tech/ http://mahiru.moe/post/go- check-smtp/ ✓ 2015-06-14✓ ✓
  • 9. Go でMunin プラグインを書いてみた - shizuoka.go 2016.05 Powered by Rabbit 2.1.9 Munin のプラグインを 書いてみる shizuoka.py で Python で Munin プラグインを書いてみ た ✓ Go で書かれた Munin plugin を見つけた どこにあったものかは忘れた✓ ✓
  • 10. Go でMunin プラグインを書いてみた - shizuoka.go 2016.05 Powered by Rabbit 2.1.9 Munin http://munin- monitoring.org/ ✓ リソース監視 plugin で値を取得してグラフ化✓ ✓
  • 11. Go でMunin プラグインを書いてみた - shizuoka.go 2016.05 Powered by Rabbit 2.1.9 お題: uptime の plugin 値の取得 kstat -p unix:0:system_misc:boot_time で 起動時刻を取得 ✓ 現在との差をとる✓ ✓
  • 12. Go でMunin プラグインを書いてみた - shizuoka.go 2016.05 Powered by Rabbit 2.1.9 お題: uptime の plugin 出力 引数なし 'uptime.value (日数)' を出力✓ ✓ 引数として 'config' が渡された時 グラフの設定を出力✓ ✓ ✓
  • 13. Go でMunin プラグインを書いてみた - shizuoka.go 2016.05 Powered by Rabbit 2.1.9 Munin プラグインに 必要な処理 1. 簡単な引数処理✓ 2. コマンド実行✓ 3. コマンド出力のパース・整 形 ✓ 4. 出力✓
  • 14. Go でMunin プラグインを書いてみた - shizuoka.go 2016.05 Powered by Rabbit 2.1.9 1. 引数処理 os.Args 要素の確認: os.Args[1]✓ 引数の数: len(os.Args)✓ ✓
  • 15. Go でMunin プラグインを書いてみた - shizuoka.go 2016.05 Powered by Rabbit 2.1.9 1. 引数処理 if len(os.Args) == 2 && os.Args[1] == "config" { // グラフ設定表示 } else { // uptime を出力 }
  • 16. Go でMunin プラグインを書いてみた - shizuoka.go 2016.05 Powered by Rabbit 2.1.9 2. コマンド実行 exec.Command 出力を得るには .Output を使う out, err := exec.Command("kstat", "-p", "unix:0:system_misc:boot_time").Output() out: 出力✓ err: 0 以外の exit status(?) exit status が 0 の時は nil になる ✓ ✓ ✓
  • 17. Go でMunin プラグインを書いてみた - shizuoka.go 2016.05 Powered by Rabbit 2.1.9 2. コマンド実行 out, err := exec.Command("kstat", "-p", "unix:0:system_misc:boot_time").Output() if err != nil { fmt.Println("error: ", err) os.Exit(1) }
  • 18. Go でMunin プラグインを書いてみた - shizuoka.go 2016.05 Powered by Rabbit 2.1.9 3. コマンド出力のパース・ 整形 改行を削除したい✓ 正規表現を使って文字列を取り 出したい ✓ 数を表す文字列を数値に変換し たい ✓
  • 19. Go でMunin プラグインを書いてみた - shizuoka.go 2016.05 Powered by Rabbit 2.1.9 改行を削除したい str = strings.TrimRight(str, 'n')
  • 20. Go でMunin プラグインを書いてみた - shizuoka.go 2016.05 Powered by Rabbit 2.1.9 正規表現 正規表現オブジェクトの生成 regexp.Compile✓ regexp.CompilePosix✓ regexp.MustCompile✓ regexp.MustCompilePosix✓
  • 21. Go でMunin プラグインを書いてみた - shizuoka.go 2016.05 Powered by Rabbit 2.1.9 正規表現 Posix あり: POSIX ERE (egrep), leftmost-longest ✓ なし: ?, leftmost-first✓ ✓ Must あり: 正規表現をパースできなけれ ば panic ✓ ✓
  • 22. Go でMunin プラグインを書いてみた - shizuoka.go 2016.05 Powered by Rabbit 2.1.9 正規表現 正規表現にマッチする文字列の取 得 .FindStringsSubmatch✓
  • 23. Go でMunin プラグインを書いてみた - shizuoka.go 2016.05 Powered by Rabbit 2.1.9 正規表現 reg := regexp.MustCompile(`^unix:0:system_misc:boot_times+(d+)$`) str := reg.FindStringSubmatch(line) '(d+)' 部分は 'str[1]' で取得でき る。
  • 24. Go でMunin プラグインを書いてみた - shizuoka.go 2016.05 Powered by Rabbit 2.1.9 数を表す文字列を数値に変換 したい strconv.ParseFloat✓ strconv.Parseint✓ strconv.ParseUint✓ 32/64/etc. bit は引数で指定。
  • 25. Go でMunin プラグインを書いてみた - shizuoka.go 2016.05 Powered by Rabbit 2.1.9 数を表す文字列を数値に変換 したい if str := reg.FindStringSubmatch(line); str != nil { i, err := strconv.ParseUint(str[1], 10, 64) if err != nil { panic(fmt.Sprintf("Failed to parse %s", str[1])) } uptime.uptime = (now - i) / (60 * 60 * 24) }
  • 26. Go でMunin プラグインを書いてみた - shizuoka.go 2016.05 Powered by Rabbit 2.1.9 4. 出力 fmt.Print✓ fmt.Println✓ fmt.Sprintf✓ fmt.Errorf✓
  • 27. Go でMunin プラグインを書いてみた - shizuoka.go 2016.05 Powered by Rabbit 2.1.9 Go で Munin Plugin を 書くメリット? ちょっと速い?✓ 1 バイナリ?✓
  • 28. Go でMunin プラグインを書いてみた - shizuoka.go 2016.05 Powered by Rabbit 2.1.9 ちょっと速い? Shell Script で書いていろんな コマンドを呼び出すよりはち ょっと速い 処理すべきことが少なくて、大した 差がでない ✓ 同じことは他の言語でも言える✓ ✓
  • 29. Go でMunin プラグインを書いてみた - shizuoka.go 2016.05 Powered by Rabbit 2.1.9 1 バイナリ? 他のものに依存しないのは楽 Solaris だと、どの実装の grep、 awk、etc. を使うか gnu 全部入れとくのが楽ってことになる✓ 基本的には最初から入ってるものでなんと かしたい ✓ ✓ ✓
  • 30. Go でMunin プラグインを書いてみた - shizuoka.go 2016.05 Powered by Rabbit 2.1.9 1 バイナリ? build するためにもパッケージ 化した方が楽かもしれない 現在、Munin pluign をパッケージ 化していない ちょっと面倒臭くなる Solaris でも Linux でも動くプラグインだ と、さらに面倒 ✓ ✓ ✓
  • 31. Go でMunin プラグインを書いてみた - shizuoka.go 2016.05 Powered by Rabbit 2.1.9 ダメ 出し
  • 32. Go でMunin プラグインを書いてみた - shizuoka.go 2016.05 Powered by Rabbit 2.1.9 まとめ ちょっとしたところで Go を 使ってみる ✓ Munin プラグイン程度なら簡 単に書ける ただし Go っぽさはない✓ ✓