SlideShare a Scribd company logo
1 of 20
Download to read offline
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
 
プログラミング作法
プログラミング作法プログラミング作法
プログラミング作法Kota Uchida
 
Django最速デバッグ指南 PyConAPAC 2013
Django最速デバッグ指南 PyConAPAC 2013Django最速デバッグ指南 PyConAPAC 2013
Django最速デバッグ指南 PyConAPAC 2013hirokiky
 
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学習奮闘記#6Takeshi 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

第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 2014Naotoshi Seo
 
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 RubySATOSHI 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 CoffeeSarah 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?

コンポーネントテストで開発効率を上げよう
コンポーネントテストで開発効率を上げようコンポーネントテストで開発効率を上げよう
コンポーネントテストで開発効率を上げようMatsuoka Hiromitsu
 
GUI Test is (not) necessary
GUI Test is (not) necessaryGUI Test is (not) necessary
GUI Test is (not) necessaryHiroshi 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_v01Motohiro 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
 
Movable Type 6 Overview SPEC2
Movable Type 6 Overview SPEC2Movable Type 6 Overview SPEC2
Movable Type 6 Overview SPEC2Yuji Takayama
 

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-speedSATOSHI 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/OperationsSATOSHI 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 RubySATOSHI 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 ConfusingSATOSHI TAGOMORI
 
Hijacking Ruby Syntax in Ruby
Hijacking Ruby Syntax in RubyHijacking Ruby Syntax in Ruby
Hijacking Ruby Syntax in RubySATOSHI 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 OperationsSATOSHI 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 WorldSATOSHI TAGOMORI
 
Planet-scale Data Ingestion Pipeline: Bigdam
Planet-scale Data Ingestion Pipeline: BigdamPlanet-scale Data Ingestion Pipeline: Bigdam
Planet-scale Data Ingestion Pipeline: BigdamSATOSHI 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 BusinessSATOSHI TAGOMORI
 
Ruby and Distributed Storage Systems
Ruby and Distributed Storage SystemsRuby and Distributed Storage Systems
Ruby and Distributed Storage SystemsSATOSHI TAGOMORI
 
Perfect Norikra 2nd Season
Perfect Norikra 2nd SeasonPerfect Norikra 2nd Season
Perfect Norikra 2nd SeasonSATOSHI 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 ToSATOSHI 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 ContainersSATOSHI 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 WorldSATOSHI 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 ServiceSATOSHI TAGOMORI
 
Fluentd Overview, Now and Then
Fluentd Overview, Now and ThenFluentd Overview, Now and Then
Fluentd Overview, Now and ThenSATOSHI TAGOMORI
 
How to Make Norikra Perfect
How to Make Norikra PerfectHow to Make Norikra Perfect
How to Make Norikra PerfectSATOSHI 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

論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A surveyToru Tamaki
 
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)UEHARA, Tetsutaro
 
論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNetToru Tamaki
 
TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdfTSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdftaisei2219
 
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdfAWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdfFumieNakayama
 
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Yuma Ohgami
 
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...Toru Tamaki
 
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)Hiroki Ichikura
 
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdfクラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdfFumieNakayama
 
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案sugiuralab
 
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...博三 太田
 
SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する       2024/04/19 の勉強会で発表されたものですSOPを理解する       2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものですiPride Co., Ltd.
 

Recently uploaded (12)

論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey
 
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
 
論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet
 
TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdfTSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdf
 
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdfAWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
 
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
 
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
 
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
 
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdfクラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
 
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
 
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
 
SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する       2024/04/19 の勉強会で発表されたものですSOPを理解する       2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものです
 

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日木曜日