SlideShare a Scribd company logo
Should we write such that
     plugin or not?

     Fluentd meetup in Fukuoka #fluentd
     2013/03/05
     @tagomoris (TAGOMORI Satoshi)


13年3月7日木曜日
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日木曜日
13年3月7日木曜日
Fluentd plugins
             buffer plugin

             input plugin

             output plugin (normal output plugin)

             filter output plugin

             meta plugin (input / output)

             fluent mixin gem


13年3月7日木曜日
Input plugins
             データをfluentdに取り込む

              dstat, munin, ping-message, tail-ex

              parseが必要

             他ノードとのデータ転送

              scribe, flume, zmq, secure-forward



13年3月7日木曜日
Output plugins
             Fluentd内部のデータをデータストアに書き出す

              mongo, td, couch, s3, pghstore, file-alternative,
              webhdfs

              フォーマットが必要

             Fluentd内部のデータを外部ツールにポストする

              growthforecast, growl, splunk, say


13年3月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-counter
13年3月7日木曜日
Meta plugins

             input/output どちらもある

             設定を変数展開したり動的展開したり

              forest, config-expander, config_pit

              out_copy




13年3月7日木曜日
Fluentd mixin gems

             他のプラグインに共通の機能を提供する

             fluent-mixin-config-placeholders

             fluent-mixin-plaintextformatter




13年3月7日木曜日
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日木曜日
WRITE,
             or DON'T WRITE
             とりあえず作る?

             既存のものがあるならそちらを使いたい

              安定性、機能の充実、などなど

              機能追加や変更:既存プラグインの継承は?

             mixinがあれば使いたい

              共通の設定方法、実装負荷軽減、バグの共有


13年3月7日木曜日
Write what you use
             自分が使うものを作ろう

              それが結局いちばん品質に貢献する

             既存プラグインあるけど微妙だなー、とか

              使われてないようなら奪ってしまえ

              pullreq送りまくってればたぶんcommit権くれる

              そのうちrelease権ももらってみんな幸せ


13年3月7日木曜日
Write buffer plugins

             おススメできない

              あんまり必要もないはず……

             眺めるのは面白いかも

              lib/fluent/buffer.rb , lib/fluent/plugin/buf_file.rb




13年3月7日木曜日
Write input plugins
             Write output plugins


             Don't think, write.




13年3月7日木曜日
Write filter output plugins
             新規に作る?

              既存プラグインの組合せでできない?

              exec_filterでできない?

             性能や流量は大丈夫?

              データ加工系はCPUをけっこう使うかも

              過度な量の再emitは控えましょう


13年3月7日木曜日
Write meta plugins
             新規に作る? けっこう難しい
              Fluentdのコードをちゃんと読む必要がある
              モノによっては非常に強力
             代用できる方法ない?
              設定ファイルテンプレート + include http://...
              デプロイツール類(chef, etc)



13年3月7日木曜日
Write mixin gems
             とにかくmixinに切り出しとけ

              format, parse, convert, ...

             定型処理

              再実装/コピペするほど愚かなことはない

              バグレポート先、デバッグ、設定書式の共有


13年3月7日木曜日
Maintenance:
              best practice
       書きあげたら忘れたい: テスト超重要 (面倒…)

       README書こう: release前、がんばって英語で

             典型的な設定例みたいなの、超重要

       広報しよう: どんな場合に便利なの? (機能だけじゃなく)

       アップデートしよう: 互換性の破壊は極力避ける

       pullreqに対応しよう: いいこといろいろあるよ


13年3月7日木曜日
fluentd.org/plugin/

             ダウンロード数ランキング

              射幸心を   られる

              目指せkanicounterライン突破




13年3月7日木曜日
NO PLUGINS
 NO FLUENTD


  Thanks!



13年3月7日木曜日

More Related Content

What's hot

PyCon JP 2016 ビギナーセッション
PyCon JP 2016 ビギナーセッションPyCon JP 2016 ビギナーセッション
PyCon JP 2016 ビギナーセッション
Tetsuya Morimoto
 
Django 1.9
Django 1.9Django 1.9
Django 1.9
OMEGA (@equal_001)
 
プログラミング作法
プログラミング作法プログラミング作法
プログラミング作法Kota Uchida
 
Django最速デバッグ指南 PyConAPAC 2013
Django最速デバッグ指南 PyConAPAC 2013Django最速デバッグ指南 PyConAPAC 2013
Django最速デバッグ指南 PyConAPAC 2013
hirokiky
 
Goroutineとchannelから始めるgo言語@初心者向けgolang勉強会2
Goroutineとchannelから始めるgo言語@初心者向けgolang勉強会2Goroutineとchannelから始めるgo言語@初心者向けgolang勉強会2
Goroutineとchannelから始めるgo言語@初心者向けgolang勉強会2Takuya Ueda
 
Goでwebアプリを開発してみよう
Goでwebアプリを開発してみようGoでwebアプリを開発してみよう
Goでwebアプリを開発してみよう
Takuya Ueda
 
結婚式の画像がどうしてもほしかった話
結婚式の画像がどうしてもほしかった話結婚式の画像がどうしてもほしかった話
結婚式の画像がどうしてもほしかった話Daijirou Yamada
 
Goroutineと channelから はじめるgo言語
Goroutineと channelから はじめるgo言語Goroutineと channelから はじめるgo言語
Goroutineと channelから はじめるgo言語
Takuya Ueda
 
LTSの準備をチョットやってみた。lxcチョット触ってみた
LTSの準備をチョットやってみた。lxcチョット触ってみた LTSの準備をチョットやってみた。lxcチョット触ってみた
LTSの準備をチョットやってみた。lxcチョット触ってみた
Naoki Matsumoto
 
Android道第1回公開用
Android道第1回公開用Android道第1回公開用
Android道第1回公開用
Takaya Funabiki
 
S16 t1 python学習奮闘記#6
S16 t1 python学習奮闘記#6S16 t1 python学習奮闘記#6
S16 t1 python学習奮闘記#6
Takeshi Akutsu
 
TwitterのStreaming ApiをPhpから使う
TwitterのStreaming ApiをPhpから使うTwitterのStreaming ApiをPhpから使う
TwitterのStreaming ApiをPhpから使う
Hidenori Goto
 

What's hot (12)

PyCon JP 2016 ビギナーセッション
PyCon JP 2016 ビギナーセッションPyCon JP 2016 ビギナーセッション
PyCon JP 2016 ビギナーセッション
 
Django 1.9
Django 1.9Django 1.9
Django 1.9
 
プログラミング作法
プログラミング作法プログラミング作法
プログラミング作法
 
Django最速デバッグ指南 PyConAPAC 2013
Django最速デバッグ指南 PyConAPAC 2013Django最速デバッグ指南 PyConAPAC 2013
Django最速デバッグ指南 PyConAPAC 2013
 
Goroutineとchannelから始めるgo言語@初心者向けgolang勉強会2
Goroutineとchannelから始めるgo言語@初心者向けgolang勉強会2Goroutineとchannelから始めるgo言語@初心者向けgolang勉強会2
Goroutineとchannelから始めるgo言語@初心者向けgolang勉強会2
 
Goでwebアプリを開発してみよう
Goでwebアプリを開発してみようGoでwebアプリを開発してみよう
Goでwebアプリを開発してみよう
 
結婚式の画像がどうしてもほしかった話
結婚式の画像がどうしてもほしかった話結婚式の画像がどうしてもほしかった話
結婚式の画像がどうしてもほしかった話
 
Goroutineと channelから はじめるgo言語
Goroutineと channelから はじめるgo言語Goroutineと channelから はじめるgo言語
Goroutineと channelから はじめるgo言語
 
LTSの準備をチョットやってみた。lxcチョット触ってみた
LTSの準備をチョットやってみた。lxcチョット触ってみた LTSの準備をチョットやってみた。lxcチョット触ってみた
LTSの準備をチョットやってみた。lxcチョット触ってみた
 
Android道第1回公開用
Android道第1回公開用Android道第1回公開用
Android道第1回公開用
 
S16 t1 python学習奮闘記#6
S16 t1 python学習奮闘記#6S16 t1 python学習奮闘記#6
S16 t1 python学習奮闘記#6
 
TwitterのStreaming ApiをPhpから使う
TwitterのStreaming ApiをPhpから使うTwitterのStreaming ApiをPhpから使う
TwitterのStreaming ApiをPhpから使う
 

Viewers also liked

The basics of fluentd
The basics of fluentdThe basics of fluentd
The basics of fluentd
Treasure Data, Inc.
 
第4回 インフラ勉強会@福岡 Fluentdハンズオン
第4回 インフラ勉強会@福岡 Fluentdハンズオン第4回 インフラ勉強会@福岡 Fluentdハンズオン
第4回 インフラ勉強会@福岡 Fluentdハンズオン学 松崎
 
Fluentd Hacking Guide at RubyKaigi 2014
Fluentd Hacking Guide at RubyKaigi 2014Fluentd Hacking Guide at RubyKaigi 2014
Fluentd Hacking Guide at RubyKaigi 2014
Naotoshi Seo
 
gem の探し方
gem の探し方gem の探し方
gem の探し方
Ryunosuke SATO
 
Webサーバ勉強会 LT資料
Webサーバ勉強会 LT資料Webサーバ勉強会 LT資料
Webサーバ勉強会 LT資料
学 松崎
 
How To Write Middleware In Ruby
How To Write Middleware In RubyHow To Write Middleware In Ruby
How To Write Middleware In Ruby
SATOSHI TAGOMORI
 
Ansible: How to Get More Sleep and Require Less Coffee
Ansible: How to Get More Sleep and Require Less CoffeeAnsible: How to Get More Sleep and Require Less Coffee
Ansible: How to Get More Sleep and Require Less Coffee
Sarah Z
 
ログ管理のベストプラクティス
ログ管理のベストプラクティスログ管理のベストプラクティス
ログ管理のベストプラクティス
Akihiro Kuwano
 

Viewers also liked (9)

The basics of fluentd
The basics of fluentdThe basics of fluentd
The basics of fluentd
 
Fluentd in Co-Work
Fluentd in Co-WorkFluentd in Co-Work
Fluentd in Co-Work
 
第4回 インフラ勉強会@福岡 Fluentdハンズオン
第4回 インフラ勉強会@福岡 Fluentdハンズオン第4回 インフラ勉強会@福岡 Fluentdハンズオン
第4回 インフラ勉強会@福岡 Fluentdハンズオン
 
Fluentd Hacking Guide at RubyKaigi 2014
Fluentd Hacking Guide at RubyKaigi 2014Fluentd Hacking Guide at RubyKaigi 2014
Fluentd Hacking Guide at RubyKaigi 2014
 
gem の探し方
gem の探し方gem の探し方
gem の探し方
 
Webサーバ勉強会 LT資料
Webサーバ勉強会 LT資料Webサーバ勉強会 LT資料
Webサーバ勉強会 LT資料
 
How To Write Middleware In Ruby
How To Write Middleware In RubyHow To Write Middleware In Ruby
How To Write Middleware In Ruby
 
Ansible: How to Get More Sleep and Require Less Coffee
Ansible: How to Get More Sleep and Require Less CoffeeAnsible: How to Get More Sleep and Require Less Coffee
Ansible: How to Get More Sleep and Require Less Coffee
 
ログ管理のベストプラクティス
ログ管理のベストプラクティスログ管理のベストプラクティス
ログ管理のベストプラクティス
 

Similar to Should we write such like plugin or not?

WPFことはじめ
WPFことはじめWPFことはじめ
WPFことはじめ
Hiroshi Maekawa
 
コンポーネントテストで開発効率を上げよう
コンポーネントテストで開発効率を上げようコンポーネントテストで開発効率を上げよう
コンポーネントテストで開発効率を上げよう
Matsuoka Hiromitsu
 
GUI Test is (not) necessary
GUI Test is (not) necessaryGUI Test is (not) necessary
GUI Test is (not) necessary
Hiroshi Maekawa
 
プログラミング学習のための学習
プログラミング学習のための学習プログラミング学習のための学習
プログラミング学習のための学習siranon *
 
Pythonの開発環境を調べてみた
Pythonの開発環境を調べてみたPythonの開発環境を調べてみた
Pythonの開発環境を調べてみたKenji NAKAGAKI
 
Rustのタスクモデルについて
RustのタスクモデルについてRustのタスクモデルについて
Rustのタスクモデルについて
zigen
 
Mtddc kyusyu-lightningtalks
Mtddc kyusyu-lightningtalksMtddc kyusyu-lightningtalks
Mtddc kyusyu-lightningtalksYuji Takayama
 
PHP-FPMとuWSGI——mod_php以外の選択肢を探る
PHP-FPMとuWSGI——mod_php以外の選択肢を探るPHP-FPMとuWSGI——mod_php以外の選択肢を探る
PHP-FPMとuWSGI——mod_php以外の選択肢を探るYoshio Hanawa
 
Monitoring with Fluentd with fluent-plugin-notifier
Monitoring with Fluentd with fluent-plugin-notifierMonitoring with Fluentd with fluent-plugin-notifier
Monitoring with Fluentd with fluent-plugin-notifierSATOSHI TAGOMORI
 
スマフォ時代に乗り遅れない為のレスポンシブ・ウェブデザイン
スマフォ時代に乗り遅れない為のレスポンシブ・ウェブデザインスマフォ時代に乗り遅れない為のレスポンシブ・ウェブデザイン
スマフォ時代に乗り遅れない為のレスポンシブ・ウェブデザイン
invogue
 
Moff 20130309 jawsug_santo_v01
Moff 20130309 jawsug_santo_v01Moff 20130309 jawsug_santo_v01
Moff 20130309 jawsug_santo_v01
Motohiro Yonesaka
 
Mtddc2013: Movable Type 6 Overview
Mtddc2013: Movable Type 6 OverviewMtddc2013: Movable Type 6 Overview
Mtddc2013: Movable Type 6 OverviewYuji Takayama
 
Sencha Touch working with AWS
Sencha Touch working with AWSSencha Touch working with AWS
Sencha Touch working with AWS
久司 中村
 
俺とMacとアダルトビデオ[社外版]
俺とMacとアダルトビデオ[社外版]俺とMacとアダルトビデオ[社外版]
俺とMacとアダルトビデオ[社外版]Mitsuki Ogasahara
 
WordBench Osaka 春の大翻訳祭り
WordBench Osaka 春の大翻訳祭りWordBench Osaka 春の大翻訳祭り
WordBench Osaka 春の大翻訳祭り
Takayuki Miyauchi
 
ngx_small_light
ngx_small_lightngx_small_light
ngx_small_light
Tatsuhiko Kubo
 
Movable Type 6 Overview SPEC2
Movable Type 6 Overview SPEC2Movable Type 6 Overview SPEC2
Movable Type 6 Overview SPEC2
Yuji Takayama
 
名前付け入門
名前付け入門名前付け入門
名前付け入門
Takahiro Yaota
 

Similar to Should we write such like plugin or not? (20)

機械学習とJubatus
機械学習とJubatus機械学習とJubatus
機械学習とJubatus
 
WPFことはじめ
WPFことはじめWPFことはじめ
WPFことはじめ
 
コンポーネントテストで開発効率を上げよう
コンポーネントテストで開発効率を上げようコンポーネントテストで開発効率を上げよう
コンポーネントテストで開発効率を上げよう
 
GUI Test is (not) necessary
GUI Test is (not) necessaryGUI Test is (not) necessary
GUI Test is (not) necessary
 
プログラミング学習のための学習
プログラミング学習のための学習プログラミング学習のための学習
プログラミング学習のための学習
 
Pythonの開発環境を調べてみた
Pythonの開発環境を調べてみたPythonの開発環境を調べてみた
Pythonの開発環境を調べてみた
 
Rustのタスクモデルについて
RustのタスクモデルについてRustのタスクモデルについて
Rustのタスクモデルについて
 
Mtddc kyusyu-lightningtalks
Mtddc kyusyu-lightningtalksMtddc kyusyu-lightningtalks
Mtddc kyusyu-lightningtalks
 
Scala conf2013
Scala conf2013Scala conf2013
Scala conf2013
 
PHP-FPMとuWSGI——mod_php以外の選択肢を探る
PHP-FPMとuWSGI——mod_php以外の選択肢を探るPHP-FPMとuWSGI——mod_php以外の選択肢を探る
PHP-FPMとuWSGI——mod_php以外の選択肢を探る
 
Monitoring with Fluentd with fluent-plugin-notifier
Monitoring with Fluentd with fluent-plugin-notifierMonitoring with Fluentd with fluent-plugin-notifier
Monitoring with Fluentd with fluent-plugin-notifier
 
スマフォ時代に乗り遅れない為のレスポンシブ・ウェブデザイン
スマフォ時代に乗り遅れない為のレスポンシブ・ウェブデザインスマフォ時代に乗り遅れない為のレスポンシブ・ウェブデザイン
スマフォ時代に乗り遅れない為のレスポンシブ・ウェブデザイン
 
Moff 20130309 jawsug_santo_v01
Moff 20130309 jawsug_santo_v01Moff 20130309 jawsug_santo_v01
Moff 20130309 jawsug_santo_v01
 
Mtddc2013: Movable Type 6 Overview
Mtddc2013: Movable Type 6 OverviewMtddc2013: Movable Type 6 Overview
Mtddc2013: Movable Type 6 Overview
 
Sencha Touch working with AWS
Sencha Touch working with AWSSencha Touch working with AWS
Sencha Touch working with AWS
 
俺とMacとアダルトビデオ[社外版]
俺とMacとアダルトビデオ[社外版]俺とMacとアダルトビデオ[社外版]
俺とMacとアダルトビデオ[社外版]
 
WordBench Osaka 春の大翻訳祭り
WordBench Osaka 春の大翻訳祭りWordBench Osaka 春の大翻訳祭り
WordBench Osaka 春の大翻訳祭り
 
ngx_small_light
ngx_small_lightngx_small_light
ngx_small_light
 
Movable Type 6 Overview SPEC2
Movable Type 6 Overview SPEC2Movable Type 6 Overview SPEC2
Movable Type 6 Overview SPEC2
 
名前付け入門
名前付け入門名前付け入門
名前付け入門
 

More from SATOSHI TAGOMORI

Ractor's speed is not light-speed
Ractor's speed is not light-speedRactor's speed is not light-speed
Ractor's speed is not light-speed
SATOSHI TAGOMORI
 
Good Things and Hard Things of SaaS Development/Operations
Good Things and Hard Things of SaaS Development/OperationsGood Things and Hard Things of SaaS Development/Operations
Good Things and Hard Things of SaaS Development/Operations
SATOSHI TAGOMORI
 
Maccro Strikes Back
Maccro Strikes BackMaccro Strikes Back
Maccro Strikes Back
SATOSHI TAGOMORI
 
Invitation to the dark side of Ruby
Invitation to the dark side of RubyInvitation to the dark side of Ruby
Invitation to the dark side of Ruby
SATOSHI TAGOMORI
 
Hijacking Ruby Syntax in Ruby (RubyConf 2018)
Hijacking Ruby Syntax in Ruby (RubyConf 2018)Hijacking Ruby Syntax in Ruby (RubyConf 2018)
Hijacking Ruby Syntax in Ruby (RubyConf 2018)
SATOSHI TAGOMORI
 
Make Your Ruby Script Confusing
Make Your Ruby Script ConfusingMake Your Ruby Script Confusing
Make Your Ruby Script Confusing
SATOSHI TAGOMORI
 
Hijacking Ruby Syntax in Ruby
Hijacking Ruby Syntax in RubyHijacking Ruby Syntax in Ruby
Hijacking Ruby Syntax in Ruby
SATOSHI TAGOMORI
 
Lock, Concurrency and Throughput of Exclusive Operations
Lock, Concurrency and Throughput of Exclusive OperationsLock, Concurrency and Throughput of Exclusive Operations
Lock, Concurrency and Throughput of Exclusive Operations
SATOSHI TAGOMORI
 
Data Processing and Ruby in the World
Data Processing and Ruby in the WorldData Processing and Ruby in the World
Data Processing and Ruby in the World
SATOSHI TAGOMORI
 
Planet-scale Data Ingestion Pipeline: Bigdam
Planet-scale Data Ingestion Pipeline: BigdamPlanet-scale Data Ingestion Pipeline: Bigdam
Planet-scale Data Ingestion Pipeline: Bigdam
SATOSHI TAGOMORI
 
Technologies, Data Analytics Service and Enterprise Business
Technologies, Data Analytics Service and Enterprise BusinessTechnologies, Data Analytics Service and Enterprise Business
Technologies, Data Analytics Service and Enterprise Business
SATOSHI TAGOMORI
 
Ruby and Distributed Storage Systems
Ruby and Distributed Storage SystemsRuby and Distributed Storage Systems
Ruby and Distributed Storage Systems
SATOSHI TAGOMORI
 
Perfect Norikra 2nd Season
Perfect Norikra 2nd SeasonPerfect Norikra 2nd Season
Perfect Norikra 2nd Season
SATOSHI TAGOMORI
 
Fluentd 101
Fluentd 101Fluentd 101
Fluentd 101
SATOSHI TAGOMORI
 
To Have Own Data Analytics Platform, Or NOT To
To Have Own Data Analytics Platform, Or NOT ToTo Have Own Data Analytics Platform, Or NOT To
To Have Own Data Analytics Platform, Or NOT To
SATOSHI TAGOMORI
 
The Patterns of Distributed Logging and Containers
The Patterns of Distributed Logging and ContainersThe Patterns of Distributed Logging and Containers
The Patterns of Distributed Logging and Containers
SATOSHI TAGOMORI
 
Modern Black Mages Fighting in the Real World
Modern Black Mages Fighting in the Real WorldModern Black Mages Fighting in the Real World
Modern Black Mages Fighting in the Real World
SATOSHI TAGOMORI
 
Open Source Software, Distributed Systems, Database as a Cloud Service
Open Source Software, Distributed Systems, Database as a Cloud ServiceOpen Source Software, Distributed Systems, Database as a Cloud Service
Open Source Software, Distributed Systems, Database as a Cloud Service
SATOSHI TAGOMORI
 
Fluentd Overview, Now and Then
Fluentd Overview, Now and ThenFluentd Overview, Now and Then
Fluentd Overview, Now and Then
SATOSHI TAGOMORI
 
How to Make Norikra Perfect
How to Make Norikra PerfectHow to Make Norikra Perfect
How to Make Norikra Perfect
SATOSHI TAGOMORI
 

More from SATOSHI TAGOMORI (20)

Ractor's speed is not light-speed
Ractor's speed is not light-speedRactor's speed is not light-speed
Ractor's speed is not light-speed
 
Good Things and Hard Things of SaaS Development/Operations
Good Things and Hard Things of SaaS Development/OperationsGood Things and Hard Things of SaaS Development/Operations
Good Things and Hard Things of SaaS Development/Operations
 
Maccro Strikes Back
Maccro Strikes BackMaccro Strikes Back
Maccro Strikes Back
 
Invitation to the dark side of Ruby
Invitation to the dark side of RubyInvitation to the dark side of Ruby
Invitation to the dark side of Ruby
 
Hijacking Ruby Syntax in Ruby (RubyConf 2018)
Hijacking Ruby Syntax in Ruby (RubyConf 2018)Hijacking Ruby Syntax in Ruby (RubyConf 2018)
Hijacking Ruby Syntax in Ruby (RubyConf 2018)
 
Make Your Ruby Script Confusing
Make Your Ruby Script ConfusingMake Your Ruby Script Confusing
Make Your Ruby Script Confusing
 
Hijacking Ruby Syntax in Ruby
Hijacking Ruby Syntax in RubyHijacking Ruby Syntax in Ruby
Hijacking Ruby Syntax in Ruby
 
Lock, Concurrency and Throughput of Exclusive Operations
Lock, Concurrency and Throughput of Exclusive OperationsLock, Concurrency and Throughput of Exclusive Operations
Lock, Concurrency and Throughput of Exclusive Operations
 
Data Processing and Ruby in the World
Data Processing and Ruby in the WorldData Processing and Ruby in the World
Data Processing and Ruby in the World
 
Planet-scale Data Ingestion Pipeline: Bigdam
Planet-scale Data Ingestion Pipeline: BigdamPlanet-scale Data Ingestion Pipeline: Bigdam
Planet-scale Data Ingestion Pipeline: Bigdam
 
Technologies, Data Analytics Service and Enterprise Business
Technologies, Data Analytics Service and Enterprise BusinessTechnologies, Data Analytics Service and Enterprise Business
Technologies, Data Analytics Service and Enterprise Business
 
Ruby and Distributed Storage Systems
Ruby and Distributed Storage SystemsRuby and Distributed Storage Systems
Ruby and Distributed Storage Systems
 
Perfect Norikra 2nd Season
Perfect Norikra 2nd SeasonPerfect Norikra 2nd Season
Perfect Norikra 2nd Season
 
Fluentd 101
Fluentd 101Fluentd 101
Fluentd 101
 
To Have Own Data Analytics Platform, Or NOT To
To Have Own Data Analytics Platform, Or NOT ToTo Have Own Data Analytics Platform, Or NOT To
To Have Own Data Analytics Platform, Or NOT To
 
The Patterns of Distributed Logging and Containers
The Patterns of Distributed Logging and ContainersThe Patterns of Distributed Logging and Containers
The Patterns of Distributed Logging and Containers
 
Modern Black Mages Fighting in the Real World
Modern Black Mages Fighting in the Real WorldModern Black Mages Fighting in the Real World
Modern Black Mages Fighting in the Real World
 
Open Source Software, Distributed Systems, Database as a Cloud Service
Open Source Software, Distributed Systems, Database as a Cloud ServiceOpen Source Software, Distributed Systems, Database as a Cloud Service
Open Source Software, Distributed Systems, Database as a Cloud Service
 
Fluentd Overview, Now and Then
Fluentd Overview, Now and ThenFluentd Overview, Now and Then
Fluentd Overview, Now and Then
 
How to Make Norikra Perfect
How to Make Norikra PerfectHow to Make Norikra Perfect
How to Make Norikra Perfect
 

Recently uploaded

FIDO Alliance Osaka Seminar: Welcome Slides.pdf
FIDO Alliance Osaka Seminar: Welcome Slides.pdfFIDO Alliance Osaka Seminar: Welcome Slides.pdf
FIDO Alliance Osaka Seminar: Welcome Slides.pdf
FIDO Alliance
 
FIDO Alliance Osaka Seminar: PlayStation Passkey Deployment Case Study.pdf
FIDO Alliance Osaka Seminar: PlayStation Passkey Deployment Case Study.pdfFIDO Alliance Osaka Seminar: PlayStation Passkey Deployment Case Study.pdf
FIDO Alliance Osaka Seminar: PlayStation Passkey Deployment Case Study.pdf
FIDO Alliance
 
FIDO Alliance Osaka Seminar: NEC & Yubico Panel.pdf
FIDO Alliance Osaka Seminar: NEC & Yubico Panel.pdfFIDO Alliance Osaka Seminar: NEC & Yubico Panel.pdf
FIDO Alliance Osaka Seminar: NEC & Yubico Panel.pdf
FIDO Alliance
 
FIDO Alliance Osaka Seminar: CloudGate.pdf
FIDO Alliance Osaka Seminar: CloudGate.pdfFIDO Alliance Osaka Seminar: CloudGate.pdf
FIDO Alliance Osaka Seminar: CloudGate.pdf
FIDO Alliance
 
論文紹介:When Visual Prompt Tuning Meets Source-Free Domain Adaptive Semantic Seg...
論文紹介:When Visual Prompt Tuning Meets Source-Free Domain Adaptive Semantic Seg...論文紹介:When Visual Prompt Tuning Meets Source-Free Domain Adaptive Semantic Seg...
論文紹介:When Visual Prompt Tuning Meets Source-Free Domain Adaptive Semantic Seg...
Toru Tamaki
 
CS集会#13_なるほどわからん通信技術 発表資料
CS集会#13_なるほどわからん通信技術 発表資料CS集会#13_なるほどわからん通信技術 発表資料
CS集会#13_なるほどわからん通信技術 発表資料
Yuuitirou528 default
 
FIDO Alliance Osaka Seminar: LY-DOCOMO-KDDI-Mercari Panel.pdf
FIDO Alliance Osaka Seminar: LY-DOCOMO-KDDI-Mercari Panel.pdfFIDO Alliance Osaka Seminar: LY-DOCOMO-KDDI-Mercari Panel.pdf
FIDO Alliance Osaka Seminar: LY-DOCOMO-KDDI-Mercari Panel.pdf
FIDO Alliance
 
2024年度_サイバーエージェント_新卒研修「データベースの歴史」.pptx
2024年度_サイバーエージェント_新卒研修「データベースの歴史」.pptx2024年度_サイバーエージェント_新卒研修「データベースの歴史」.pptx
2024年度_サイバーエージェント_新卒研修「データベースの歴史」.pptx
yassun7010
 
MPAなWebフレームワーク、Astroの紹介 (その2) 2024/05/24の勉強会で発表されたものです。
MPAなWebフレームワーク、Astroの紹介 (その2) 2024/05/24の勉強会で発表されたものです。MPAなWebフレームワーク、Astroの紹介 (その2) 2024/05/24の勉強会で発表されたものです。
MPAなWebフレームワーク、Astroの紹介 (その2) 2024/05/24の勉強会で発表されたものです。
iPride Co., Ltd.
 
TaketoFujikawa_物語のコンセプトに基づく情報アクセス手法の基礎検討_JSAI2024
TaketoFujikawa_物語のコンセプトに基づく情報アクセス手法の基礎検討_JSAI2024TaketoFujikawa_物語のコンセプトに基づく情報アクセス手法の基礎検討_JSAI2024
TaketoFujikawa_物語のコンセプトに基づく情報アクセス手法の基礎検討_JSAI2024
Matsushita Laboratory
 
単腕マニピュレータによる 複数物体の同時組み立ての 基礎的考察 / Basic Approach to Robotic Assembly of Multi...
単腕マニピュレータによる 複数物体の同時組み立ての 基礎的考察 / Basic Approach to Robotic Assembly of Multi...単腕マニピュレータによる 複数物体の同時組み立ての 基礎的考察 / Basic Approach to Robotic Assembly of Multi...
単腕マニピュレータによる 複数物体の同時組み立ての 基礎的考察 / Basic Approach to Robotic Assembly of Multi...
Fukuoka Institute of Technology
 
YugabyteDB適用に向けた取り組みと隠れた魅力 (DSS Asia 2024 発表資料)
YugabyteDB適用に向けた取り組みと隠れた魅力 (DSS Asia 2024 発表資料)YugabyteDB適用に向けた取り組みと隠れた魅力 (DSS Asia 2024 発表資料)
YugabyteDB適用に向けた取り組みと隠れた魅力 (DSS Asia 2024 発表資料)
NTT DATA Technology & Innovation
 
【DLゼミ】XFeat: Accelerated Features for Lightweight Image Matching
【DLゼミ】XFeat: Accelerated Features for Lightweight Image Matching【DLゼミ】XFeat: Accelerated Features for Lightweight Image Matching
【DLゼミ】XFeat: Accelerated Features for Lightweight Image Matching
harmonylab
 
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LBカタログ
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LBカタログLoRaWAN 4チャンネル電流センサー・コンバーター CS01-LBカタログ
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LBカタログ
CRI Japan, Inc.
 
【AI論文解説】Consistency ModelとRectified Flow
【AI論文解説】Consistency ModelとRectified Flow【AI論文解説】Consistency ModelとRectified Flow
【AI論文解説】Consistency ModelとRectified Flow
Sony - Neural Network Libraries
 

Recently uploaded (15)

FIDO Alliance Osaka Seminar: Welcome Slides.pdf
FIDO Alliance Osaka Seminar: Welcome Slides.pdfFIDO Alliance Osaka Seminar: Welcome Slides.pdf
FIDO Alliance Osaka Seminar: Welcome Slides.pdf
 
FIDO Alliance Osaka Seminar: PlayStation Passkey Deployment Case Study.pdf
FIDO Alliance Osaka Seminar: PlayStation Passkey Deployment Case Study.pdfFIDO Alliance Osaka Seminar: PlayStation Passkey Deployment Case Study.pdf
FIDO Alliance Osaka Seminar: PlayStation Passkey Deployment Case Study.pdf
 
FIDO Alliance Osaka Seminar: NEC & Yubico Panel.pdf
FIDO Alliance Osaka Seminar: NEC & Yubico Panel.pdfFIDO Alliance Osaka Seminar: NEC & Yubico Panel.pdf
FIDO Alliance Osaka Seminar: NEC & Yubico Panel.pdf
 
FIDO Alliance Osaka Seminar: CloudGate.pdf
FIDO Alliance Osaka Seminar: CloudGate.pdfFIDO Alliance Osaka Seminar: CloudGate.pdf
FIDO Alliance Osaka Seminar: CloudGate.pdf
 
論文紹介:When Visual Prompt Tuning Meets Source-Free Domain Adaptive Semantic Seg...
論文紹介:When Visual Prompt Tuning Meets Source-Free Domain Adaptive Semantic Seg...論文紹介:When Visual Prompt Tuning Meets Source-Free Domain Adaptive Semantic Seg...
論文紹介:When Visual Prompt Tuning Meets Source-Free Domain Adaptive Semantic Seg...
 
CS集会#13_なるほどわからん通信技術 発表資料
CS集会#13_なるほどわからん通信技術 発表資料CS集会#13_なるほどわからん通信技術 発表資料
CS集会#13_なるほどわからん通信技術 発表資料
 
FIDO Alliance Osaka Seminar: LY-DOCOMO-KDDI-Mercari Panel.pdf
FIDO Alliance Osaka Seminar: LY-DOCOMO-KDDI-Mercari Panel.pdfFIDO Alliance Osaka Seminar: LY-DOCOMO-KDDI-Mercari Panel.pdf
FIDO Alliance Osaka Seminar: LY-DOCOMO-KDDI-Mercari Panel.pdf
 
2024年度_サイバーエージェント_新卒研修「データベースの歴史」.pptx
2024年度_サイバーエージェント_新卒研修「データベースの歴史」.pptx2024年度_サイバーエージェント_新卒研修「データベースの歴史」.pptx
2024年度_サイバーエージェント_新卒研修「データベースの歴史」.pptx
 
MPAなWebフレームワーク、Astroの紹介 (その2) 2024/05/24の勉強会で発表されたものです。
MPAなWebフレームワーク、Astroの紹介 (その2) 2024/05/24の勉強会で発表されたものです。MPAなWebフレームワーク、Astroの紹介 (その2) 2024/05/24の勉強会で発表されたものです。
MPAなWebフレームワーク、Astroの紹介 (その2) 2024/05/24の勉強会で発表されたものです。
 
TaketoFujikawa_物語のコンセプトに基づく情報アクセス手法の基礎検討_JSAI2024
TaketoFujikawa_物語のコンセプトに基づく情報アクセス手法の基礎検討_JSAI2024TaketoFujikawa_物語のコンセプトに基づく情報アクセス手法の基礎検討_JSAI2024
TaketoFujikawa_物語のコンセプトに基づく情報アクセス手法の基礎検討_JSAI2024
 
単腕マニピュレータによる 複数物体の同時組み立ての 基礎的考察 / Basic Approach to Robotic Assembly of Multi...
単腕マニピュレータによる 複数物体の同時組み立ての 基礎的考察 / Basic Approach to Robotic Assembly of Multi...単腕マニピュレータによる 複数物体の同時組み立ての 基礎的考察 / Basic Approach to Robotic Assembly of Multi...
単腕マニピュレータによる 複数物体の同時組み立ての 基礎的考察 / Basic Approach to Robotic Assembly of Multi...
 
YugabyteDB適用に向けた取り組みと隠れた魅力 (DSS Asia 2024 発表資料)
YugabyteDB適用に向けた取り組みと隠れた魅力 (DSS Asia 2024 発表資料)YugabyteDB適用に向けた取り組みと隠れた魅力 (DSS Asia 2024 発表資料)
YugabyteDB適用に向けた取り組みと隠れた魅力 (DSS Asia 2024 発表資料)
 
【DLゼミ】XFeat: Accelerated Features for Lightweight Image Matching
【DLゼミ】XFeat: Accelerated Features for Lightweight Image Matching【DLゼミ】XFeat: Accelerated Features for Lightweight Image Matching
【DLゼミ】XFeat: Accelerated Features for Lightweight Image Matching
 
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LBカタログ
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LBカタログLoRaWAN 4チャンネル電流センサー・コンバーター CS01-LBカタログ
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LBカタログ
 
【AI論文解説】Consistency ModelとRectified Flow
【AI論文解説】Consistency ModelとRectified Flow【AI論文解説】Consistency ModelとRectified Flow
【AI論文解説】Consistency ModelとRectified Flow
 

Should we write such like plugin or not?

  • 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日木曜日
  • 4. Fluentd plugins buffer plugin input plugin output plugin (normal output plugin) filter output plugin meta plugin (input / output) fluent mixin gem 13年3月7日木曜日
  • 5. Input plugins データをfluentdに取り込む dstat, munin, ping-message, tail-ex parseが必要 他ノードとのデータ転送 scribe, flume, zmq, secure-forward 13年3月7日木曜日
  • 6. Output plugins Fluentd内部のデータをデータストアに書き出す mongo, td, couch, s3, pghstore, file-alternative, webhdfs フォーマットが必要 Fluentd内部のデータを外部ツールにポストする growthforecast, growl, splunk, say 13年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-counter 13年3月7日木曜日
  • 8. Meta plugins input/output どちらもある 設定を変数展開したり動的展開したり forest, config-expander, config_pit out_copy 13年3月7日木曜日
  • 9. Fluentd mixin gems 他のプラグインに共通の機能を提供する fluent-mixin-config-placeholders fluent-mixin-plaintextformatter 13年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 DON'T 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.rb 13年3月7日木曜日
  • 14. Write input plugins Write output plugins Don't 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日木曜日