Your SlideShare is downloading. ×

Should we write such like plugin or not?

6,442

Published on

Published in: Technology
0 Comments
7 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
6,442
On Slideshare
0
From Embeds
0
Number of Embeds
13
Actions
Shares
0
Downloads
3
Comments
0
Likes
7
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. Should we write such that plugin or not? Fluentd meetup in Fukuoka #fluentd 2013/03/05 @tagomoris (TAGOMORI Satoshi)13年3月7日木曜日
  • 2. TAGOMORI SATOSHI (@TAGOMORIS) NHN JAPAN CORP. ONE OF FLUENTD COMMITTERS ONE OF FLUENTD PLUGIN AUTHORS AND OTHER TOOLS (FLUENT-AGENT-LITE, ETC)13年3月7日木曜日
  • 3. 13年3月7日木曜日
  • 4. Fluentd plugins buffer plugin input plugin output plugin (normal output plugin) filter output plugin meta plugin (input / output) fluent mixin gem13年3月7日木曜日
  • 5. Input plugins データをfluentdに取り込む dstat, munin, ping-message, tail-ex parseが必要 他ノードとのデータ転送 scribe, flume, zmq, secure-forward13年3月7日木曜日
  • 6. Output plugins Fluentd内部のデータをデータストアに書き出す mongo, td, couch, s3, pghstore, file-alternative, webhdfs フォーマットが必要 Fluentd内部のデータを外部ツールにポストする growthforecast, growl, splunk, say13年3月7日木曜日
  • 7. Filter plugins 継承関係はOutput pluginだが Engine.emit() する 経路制御・フィルタリング rewrite, rewrite-tag-filter, sampling-filter データ加工 parser, map, flatten, amplifier-filter 集計処理 flowcounter, datacounter, datacalculator, numeric-monitor, notifier, numeric-counter13年3月7日木曜日
  • 8. Meta plugins input/output どちらもある 設定を変数展開したり動的展開したり forest, config-expander, config_pit out_copy13年3月7日木曜日
  • 9. Fluentd mixin gems 他のプラグインに共通の機能を提供する fluent-mixin-config-placeholders fluent-mixin-plaintextformatter13年3月7日木曜日
  • 10. How to write plugins Google "fluentd plugin 作り方" bundle gem plugin_name edit it (and write tests!) edit plugin_name.gem and README.md rake release version 0.0.x: alpha/developer release (使ってない) 0.y.z: beta or standard release (使ってる)13年3月7日木曜日
  • 11. WRITE, or DONT WRITE とりあえず作る? 既存のものがあるならそちらを使いたい 安定性、機能の充実、などなど 機能追加や変更:既存プラグインの継承は? mixinがあれば使いたい 共通の設定方法、実装負荷軽減、バグの共有13年3月7日木曜日
  • 12. Write what you use 自分が使うものを作ろう それが結局いちばん品質に貢献する 既存プラグインあるけど微妙だなー、とか 使われてないようなら奪ってしまえ pullreq送りまくってればたぶんcommit権くれる そのうちrelease権ももらってみんな幸せ13年3月7日木曜日
  • 13. Write buffer plugins おススメできない あんまり必要もないはず…… 眺めるのは面白いかも lib/fluent/buffer.rb , lib/fluent/plugin/buf_file.rb13年3月7日木曜日
  • 14. Write input plugins Write output plugins Dont think, write.13年3月7日木曜日
  • 15. Write filter output plugins 新規に作る? 既存プラグインの組合せでできない? exec_filterでできない? 性能や流量は大丈夫? データ加工系はCPUをけっこう使うかも 過度な量の再emitは控えましょう13年3月7日木曜日
  • 16. Write meta plugins 新規に作る? けっこう難しい Fluentdのコードをちゃんと読む必要がある モノによっては非常に強力 代用できる方法ない? 設定ファイルテンプレート + include http://... デプロイツール類(chef, etc)13年3月7日木曜日
  • 17. Write mixin gems とにかくmixinに切り出しとけ format, parse, convert, ... 定型処理 再実装/コピペするほど愚かなことはない バグレポート先、デバッグ、設定書式の共有13年3月7日木曜日
  • 18. Maintenance: best practice 書きあげたら忘れたい: テスト超重要 (面倒…) README書こう: release前、がんばって英語で 典型的な設定例みたいなの、超重要 広報しよう: どんな場合に便利なの? (機能だけじゃなく) アップデートしよう: 互換性の破壊は極力避ける pullreqに対応しよう: いいこといろいろあるよ13年3月7日木曜日
  • 19. fluentd.org/plugin/ ダウンロード数ランキング 射幸心を られる 目指せkanicounterライン突破13年3月7日木曜日
  • 20. NO PLUGINS NO FLUENTD Thanks!13年3月7日木曜日

×