Slide 1

Slide 1 text

Mackerelでの 家庭用ルータの監視 @k_hanazuki

Slide 2

Slide 2 text

2016-06-14 @k_hanazuki 花月かすみ ● Github: hanazuki ● Twitter: k_hanazuki

Slide 3

Slide 3 text

2016-06-14 @k_hanazuki 家庭用ルータ ● 5千円くらい(実売) ● OpenWrt ○ ルータ用Linux

Slide 4

Slide 4 text

2016-06-14 @k_hanazuki mackerel-agent ● Goで書かれている ○ シングルバイナリ ○ 置くだけで動いてべんり

Slide 5

Slide 5 text

2016-06-14 @k_hanazuki Goのよいところ ● ほどよい高級感 (GC, goroutine) ● シングルバイナリ ● クロスコンパイルが楽

Slide 6

Slide 6 text

2016-06-14 @k_hanazuki わがやのルータ @400MHz + 32MBi Flash

Slide 7

Slide 7 text

2016-06-14 @k_hanazuki /usr/bin/mackerel-agent ● ファイルサイズ ○ ~ 5MB (stripped) ● メモリフットプリント ○ > 10MB

Slide 8

Slide 8 text

2016-06-14 @k_hanazuki GoのMIPSへのコンパイル ● gc: 非対応 ● gccgo: 対応 ○ libgo: uClibcではコンパイル不可* * 次期OpenWrtではmuslを採用の予定 * uClibcのtrunkではいけるかも……

Slide 9

Slide 9 text

2016-06-14 @k_hanazuki Goのあんまりよくないところ ● メモリ使用量おおい ● バイナリおおきい ● 移植性たかくない

Slide 10

Slide 10 text

2016-06-14 @k_hanazuki umackereld (マイクロ・マカレル・ディー) ● Cで書いている ○ OpenWrtのコンポーネントを できるだけ利用 ● hanazuki/umackereld ● 機能はまだまだ実装途中

Slide 11

Slide 11 text

2016-06-14 @k_hanazuki mackerel-agent umackereld ファイル (stripped) ~ 5MB ~ 30kM + 440kM (shared obj) メモリ (RSS) > 10MB > 1.5MB* プラット フォーム Linux,Darwin,Win, {Free,Open}BSD Linux (OpenWrt) 比較 * なんだかリークしてる気がする……

Slide 12

Slide 12 text

2016-06-14 @k_hanazuki わがやのISPがパケットを落とす様子

Slide 13

Slide 13 text

2016-06-14 @k_hanazuki まとめ ● 組み込みLinuxでも使えてべんり ● https://github.com/ hanazuki/umackereld