SlideShare a Scribd company logo
1 of 51
Download to read offline
Fluentdの開発支援の話
Fluentd の Windows 版の機能に関わる開発支援の裏話
Hiroshi Hatake
株式会社クリアコード
Fluentd meetup in Matsue
Hiroshi Hatake Fluentd の開発支援の話
自己紹介
Hiroshi Hatake
Twitter: @cosmo
GitHub: @cosmo0920
株式会社クリアコード
OSS サポート (開発・導入支援・時間制サポート etc.)
をしています。1
1
https://www.clear-code.com/services/floss/development.html
Hiroshi Hatake Fluentd の開発支援の話
1 はじめに
2 Fluentd の開発支援の話
3 Fluentd v0.14 の新機能のおさらい
4 Fluentd の Windows サポート
5 Windows での Ruby のエコシステム
6 win32-api gem のサポート
7 windows-pr gem の Fluentd に関わる Issue の解決
8 まとめ
Hiroshi Hatake Fluentd の開発支援の話
Fluentdの開発支援の話
開発支援でやってきた内容
Fluentd 0.12.16 の secret parameter が入った前後から開
発支援をしています
メモリダンプの機能
Parser/Formatter のテストドライバ
built-in のプラグインの v0.14 の API への移行
AppVeyor の導入のお手伝い
メンテナンスが活発でない gem を引き取ってメンテナ
ンス
プラグインへ各種 PR etc.
Hiroshi Hatake Fluentd の開発支援の話
Fluentdの開発支援の話
開発支援でやってきた内容
Fluentd 0.12.16 の secret parameter が入った前後から開
発支援をしています
メモリダンプの機能
Parser/Formatter のテストドライバ
built-in のプラグインの v0.14 の API への移行
AppVeyor の導入のお手伝い
メンテナンスが活発でない gem を引き取ってメンテナ
ンス
プラグインへ各種 PR etc.
Hiroshi Hatake Fluentd の開発支援の話
Fluentdの開発支援の話
Fluentd v0.14の開発支援をしていく中で、
FluentdのWindows向けの機能で依存して
いるgemのメンテナンスを引き取った話
をします。
Hiroshi Hatake Fluentd の開発支援の話
Fluentd v0.14の新機能3
のおさらい
Windowsサポート
高精度な時刻サポート
新しいプラグインAPI
routerの使用の強制 2
2
Engine.emit がバグ扱いになりました
3
http://www.fluentd.org/blog/fluentd-v0.14.0-has-been-released
Hiroshi Hatake Fluentd の開発支援の話
Fluentd v0.14の新機能3
のおさらい
Windowsサポート
高精度な時刻サポート
新しいプラグインAPI
routerの使用の強制 2
2
Engine.emit がバグ扱いになりました
3
http://www.fluentd.org/blog/fluentd-v0.14.0-has-been-released
Hiroshi Hatake Fluentd の開発支援の話
FluentdのWindowsサポート
つまり、Fluentd v0.14の開発ではWindows
も考慮した開発が必要。
Hiroshi Hatake Fluentd の開発支援の話
FluentdのWindowsサポート
つまり、Fluentd v0.14の開発ではWindows
も考慮した開発が必要。
Hiroshi Hatake Fluentd の開発支援の話
FluentdのWindows版で増えている依存関係
(抜粋)
if /mswin|mingw/ =~ RUBY_PLATFORM
gem. add_runtime_dependency ("win32 -service", ["~> 0.8.3"])
gem. add_runtime_dependency ("win32 -ipc", ["~> 0.6.1"])
gem. add_runtime_dependency ("win32 -event", ["~> 0.6.1"])
gem. add_runtime_dependency ("windows -pr", ["~> 1.2.5"])
end
Hiroshi Hatake Fluentd の開発支援の話
Windows版で増えている依存関係
win32-service
win32-ipc
win32-event
windows-pr
windows-api
win32-api
Hiroshi Hatake Fluentd の開発支援の話
今回話す話す内容のgemとFluentdの関係図
Windows サービスに関わる箇所 (winsvc) が依存しています。
Hiroshi Hatake Fluentd の開発支援の話
今回話す話す内容に関わるgemたち
windows-pr
windows-api
win32-api
Hiroshi Hatake Fluentd の開発支援の話
今回話す話す内容に関わるgemたち
windows-pr
windows-api
win32-api C拡張を含むgem
Hiroshi Hatake Fluentd の開発支援の話
C拡張とは?
C 拡張で何かできるの?
Ruby には C extension という C により Ruby を拡張できる機
能があります。
これにより、C のライブラリの機能を Ruby に取り込むこと
ができます。
Hiroshi Hatake Fluentd の開発支援の話
C拡張とは?
C 拡張で何かできるの?
Ruby には C extension という C により Ruby を拡張できる機
能があります。
これにより、C のライブラリの機能を Ruby に取り込むこと
ができます。
代表例:
Hiroshi Hatake Fluentd の開発支援の話
C拡張とは?
C 拡張で何かできるの?
Ruby には C extension という C により Ruby を拡張できる機
能があります。
これにより、C のライブラリの機能を Ruby に取り込むこと
ができます。
代表例:
Windows の COM の機能をバインドした Win32OLE
Hiroshi Hatake Fluentd の開発支援の話
C拡張とは?
C 拡張で何かできるの?
Ruby には C extension という C により Ruby を拡張できる機
能があります。
これにより、C のライブラリの機能を Ruby に取り込むこと
ができます。
代表例:
Windows の COM の機能をバインドした Win32OLE
Groonga の C ライブラリをバインドした Rroonga
Hiroshi Hatake Fluentd の開発支援の話
C拡張とは?
C 拡張で何かできるの?
Ruby には C extension という C により Ruby を拡張できる機
能があります。
これにより、C のライブラリの機能を Ruby に取り込むこと
ができます。
代表例:
Windows の COM の機能をバインドした Win32OLE
Groonga の C ライブラリをバインドした Rroonga
GTK+のライブラリをバインドした Ruby-GNOME2
Hiroshi Hatake Fluentd の開発支援の話
C拡張とは?
C 拡張を含む gem の注意点
gem のユーザーは依存しているライブラリをシステム
にインストールする必要があります
gem のユーザーは C のソースをビルドするための開発
環境をシステムにインストールする必要があります
Hiroshi Hatake Fluentd の開発支援の話
C拡張とは?
C 拡張を含む gem の注意点
gem のユーザーは依存しているライブラリをシステム
にインストールする必要があります
実は dll や dylib、so だけでも Ruby の C 拡張から機能が
呼べることができれば使う分には大丈夫です。
gem のユーザーは C のソースをビルドするための開発
環境をシステムにインストールする必要があります
Hiroshi Hatake Fluentd の開発支援の話
WindowsでのRubyのエコシステム– fat gem とは
fat gem とは
fat gem という gem の中に Ruby の C 拡張のバイナリ
をパッケージングできるしくみがあります。
Fluentd でも使っている cool.io4
でもこの仕組みを使用
しています。
4
https://github.com/tarcieri/cool.io
Hiroshi Hatake Fluentd の開発支援の話
RubyのC拡張のバイナリをgemにパッケージ
ング
利点・欠点
利点
C 拡張を予め入れておくことで、Windows で Ruby を使
うユーザーが C 拡張をビルドしなくてもよくなります
欠点
新しい Ruby が出たらそれ用の gem をリリースしなけ
ればなりません
開発者がパッケージングする手間が増えます
クロスコンパイルするのに一手間
Hiroshi Hatake Fluentd の開発支援の話
RubyのC拡張のバイナリをgemにパッケージ
ング
それでも fat gem を提供する理由
ユーザーからすると fat gem が提供されていた方が嬉
しい
Windows ユーザーはあまり開発環境を構築していない
Hiroshi Hatake Fluentd の開発支援の話
win32-api gem
win32-api とは
元は djberg96 氏 5
作。
Win32API を Ruby から呼び出せるようにする gem です。
Ruby 本体の API にはないコールバックサポートがありま
す。
#include < windows.h > # WIN32API のおまじない
5
https://github.com/djberg96
Hiroshi Hatake Fluentd の開発支援の話
win32-api gemのコード例
require ’win32/api ’
include Win32
EnumWindows = API.new(’EnumWindows ’, ’KP’, ’L’, ’user32 ’)
GetWindowText = API.new(’GetWindowText ’, ’LPI ’, ’I’, ’user32 ’)
EnumWindowsProc = API :: Callback.new(’LP’, ’I’){| handle , param|
buf = "0" * 200
GetWindowText .call(handle , buf , 200);
puts buf.strip unless buf.strip.empty?
buf.index(param ). nil? ? true : false
}
EnumWindows .call(EnumWindowsProc , ’UEDIT32 ’)
win32-api のコメントから抜粋 6
。
6
https://github.com/djberg96/win32-
api/blob/master/ext/win32/api.c#L157-L171
Hiroshi Hatake Fluentd の開発支援の話
win32-apiのRuby 2.3サポート
Ruby 2.3 がサポートされていなかったので Issue
を上げました
Support precompiled binaries for Ruby 2.3:
https://github.com/djberg96/win32-api/issues/16
Hiroshi Hatake Fluentd の開発支援の話
win32-apiのRuby 2.3サポート
@djberg98 “@cosmo0920 I don’t suppose you
would be interested in taking over this
project, would you?”7
7
https://github.com/djberg96/win32-
api/issues/16#issuecomment-212021651
Hiroshi Hatake Fluentd の開発支援の話
win32-apiのRuby 2.3サポート
つまりどういうこと?
Hiroshi Hatake Fluentd の開発支援の話
win32-apiのRuby 2.3サポート
真意がよくわからないので聞いてみま
しょう
Hiroshi Hatake Fluentd の開発支援の話
win32-apiのRuby 2.3サポート
@cosmo0920(me) “What do you want to
do for me? Just building universal gem?
Or, entirely taking over this project?”
Hiroshi Hatake Fluentd の開発支援の話
win32-apiのRuby 2.3サポート
@cosmo0920(me) “What do you want to
do for me? Just building universal gem?
Or, entirely taking over this project?”
@djberg96 “@cosmo0920 Completely
taking over project.”
Hiroshi Hatake Fluentd の開発支援の話
win32-apiのRuby 2.3サポート
Hiroshi Hatake Fluentd の開発支援の話
win32-apiのRuby 2.3サポート
訳:完全に引き継いでください。
Hiroshi Hatake Fluentd の開発支援の話
win32-apiのRuby 2.3サポート
訳:完全に引き継いでください。
Hiroshi Hatake Fluentd の開発支援の話
win32-apiのRuby 2.3サポート
実はメンテナを探していた
= Maintainer Wanted! Since I no longer use this project, I
would like to turn it over to someone who has the skill, time
and desire to keep it going.8
8
https://github.com/cosmo0920/win32-
api/blob/eef0b35dd095f43cac0d48824a782ecbb31a25d6/README#L118
Hiroshi Hatake Fluentd の開発支援の話
win32-apiのRuby 2.3サポート
実はメンテナを探していた
= Maintainer Wanted! Since I no longer use this project, I
would like to turn it over to someone who has the skill, time
and desire to keep it going.8
訳: メンテナ求む! このプロジェクトはもう使っていない
ので、技術があり、時間と続けていく心意気のある誰かに
譲りたい。
8
https://github.com/cosmo0920/win32-
api/blob/eef0b35dd095f43cac0d48824a782ecbb31a25d6/README#L118
Hiroshi Hatake Fluentd の開発支援の話
win32-apiのRuby 2.3サポート
win32-apiプロジェクトのmasterを引き継
ぎました。
Hiroshi Hatake Fluentd の開発支援の話
win32-apiのRuby 2.3サポート
win32-apiプロジェクトのmasterを引き継
ぎました。
windows-api, windows-pr プロジェクトの master も合わせて引き
継ぎました。
Hiroshi Hatake Fluentd の開発支援の話
win32-apiのRuby 2.3サポート
Ruby 2.3 に対応
させる9
作業と、AppVeyor10
の導入11
の作業を行いました。
9
https://github.com/cosmo0920/win32-api/pull/18
10
https://www.appveyor.com/
11
https://github.com/cosmo0920/win32-api/pull/20
Hiroshi Hatake Fluentd の開発支援の話
win32-apiのRuby 2.3サポート
1.6.0としてRuby 2.3のサポートと、Ruby
1.8.7と1.9.0のサポートを切ったバージョ
ン1.6.0をリリース済みです。12
12
https://rubygems.org/gems/win32-
api/versions/1.6.0-universal-mingw32
Hiroshi Hatake Fluentd の開発支援の話
windows-api gemのサポート
windows-api gem
AppVeyor の導入をしました。13
13
https://github.com/cosmo0920/windows-api/pull/6
Hiroshi Hatake Fluentd の開発支援の話
windows-pr gem
windows-pr gem のサポート
メンテナンスを引き継いでからすぐに Issue を解決すること
となりました。14
対応する Fluentd 側の Issue は
https://github.com/fluent/fluentd/issues/920
14
https://github.com/cosmo0920/windows-pr/issues/13
Hiroshi Hatake Fluentd の開発支援の話
windows-pr gemのサポート
in tail が Windows 上で問題を起こしていた
in tail で監視しているファイルが削除されると、
undefinedmethod‘pe = for# < Fluent :: TailInput ::
TailWatcher :: NullIOHandler ::: 0x0000000XXXXXXXX > ”‘
というエラーが起きていました。
Hiroshi Hatake Fluentd の開発支援の話
windows-pr gemのサポート
何が起きていたのか
INVALID HANDLE VALUE が 32bit と 64bit では異なる
定数として扱わなければなりません。しかし、
0xFFFFFFFF がハードコートされてしまっていました。
64bit 環境では INVALID HANDLE VALUE が
0xFFFFFFFFFFFFFFFF となるように修正しました。15
16
15
https://github.com/cosmo0920/windows-pr/pull/15
16
ただし、この修正は CRuby に対しては有効で、JRuby に対してはバ
グを含んでいます。
Hiroshi Hatake Fluentd の開発支援の話
windows-pr gemのサポート
64bit Windows 環境での不正な定数の修正を行いました。17
17
https://github.com/cosmo0920/windows-pr/pull/15
Hiroshi Hatake Fluentd の開発支援の話
windows-pr gemのサポート
また、合わせて AppVeyor の導入も行いました。18
18
https://github.com/cosmo0920/windows-pr/pull/14
Hiroshi Hatake Fluentd の開発支援の話
windows-pr gemのサポート
無事、依存先の Fluentd の in tail の問題は治ったとのこと
です。
Hiroshi Hatake Fluentd の開発支援の話
windows-pr gemのサポート
INVALID FILE HANLDEの64bit Windows
環境での定数の不具合を修正したバー
ジョン1.2.5をリリース済みです。19
19
https://rubygems.org/gems/windows-pr/versions/1.2.5
Hiroshi Hatake Fluentd の開発支援の話
まとめ
Fluentd の Windows 版の機能で依存している gem のメンテ
ナンスを引き取った話をしました。
その際に、単に引き取るだけでなく、よりメンテナンスが
しやすい方向にしていく変更を入れました。
Windows で Ruby を使う際には、C 拡張や Windows に関わる
Ruby や gem の問題に対応しているメンテナの存在を思い出
してあげてください。
Hiroshi Hatake Fluentd の開発支援の話

More Related Content

What's hot

20130228 Goノススメ(BPStudy #66)
20130228 Goノススメ(BPStudy #66)20130228 Goノススメ(BPStudy #66)
20130228 Goノススメ(BPStudy #66)Yoshifumi Yamaguchi
 
20130316 プログラミング言語Go
20130316 プログラミング言語Go20130316 プログラミング言語Go
20130316 プログラミング言語GoYoshifumi Yamaguchi
 
tse - Pythonによるテキスト整形ユーティリティ
tse - Pythonによるテキスト整形ユーティリティtse - Pythonによるテキスト整形ユーティリティ
tse - Pythonによるテキスト整形ユーティリティAtsuo Ishimoto
 
HTTP2 時代の Web - web over http2
HTTP2 時代の Web - web over http2HTTP2 時代の Web - web over http2
HTTP2 時代の Web - web over http2Jxck Jxck
 
H2O - making HTTP better
H2O - making HTTP betterH2O - making HTTP better
H2O - making HTTP betterKazuho Oku
 
HTTP/2時代のウェブサイト設計
HTTP/2時代のウェブサイト設計HTTP/2時代のウェブサイト設計
HTTP/2時代のウェブサイト設計Kazuho Oku
 
2017年春のPerl
2017年春のPerl2017年春のPerl
2017年春のPerlcharsbar
 
HTTPとサーバ技術の最新動向
HTTPとサーバ技術の最新動向HTTPとサーバ技術の最新動向
HTTPとサーバ技術の最新動向Kazuho Oku
 
Gocon2017:Goのロギング周りの考察
Gocon2017:Goのロギング周りの考察Gocon2017:Goのロギング周りの考察
Gocon2017:Goのロギング周りの考察貴仁 大和屋
 
minneで学ぶクラウド脳
minneで学ぶクラウド脳minneで学ぶクラウド脳
minneで学ぶクラウド脳Uchio Kondo
 
PHP AST 徹底解説(補遺)
PHP AST 徹底解説(補遺)PHP AST 徹底解説(補遺)
PHP AST 徹底解説(補遺)do_aki
 
HTTP/2でも初めてみます?
HTTP/2でも初めてみます?HTTP/2でも初めてみます?
HTTP/2でも初めてみます?Kento Kawakami
 
なぜ、PHPのmbstring.func_overloadをdeprecatedにするのに5年かかったのか? - 慢心、環境の違い
なぜ、PHPのmbstring.func_overloadをdeprecatedにするのに5年かかったのか? - 慢心、環境の違い なぜ、PHPのmbstring.func_overloadをdeprecatedにするのに5年かかったのか? - 慢心、環境の違い
なぜ、PHPのmbstring.func_overloadをdeprecatedにするのに5年かかったのか? - 慢心、環境の違い sasezaki
 
Raspberry pi三分クッキング(さいたま開発勉強会 Vol 9)
Raspberry pi三分クッキング(さいたま開発勉強会 Vol 9)Raspberry pi三分クッキング(さいたま開発勉強会 Vol 9)
Raspberry pi三分クッキング(さいたま開発勉強会 Vol 9)integra66
 
Walter ファミリーの紹介 at Shibuya.go#1
Walter ファミリーの紹介 at Shibuya.go#1Walter ファミリーの紹介 at Shibuya.go#1
Walter ファミリーの紹介 at Shibuya.go#1Gosuke Miyashita
 
いまさらComposer
いまさらComposerいまさらComposer
いまさらComposerMika Kane
 

What's hot (20)

Rust-DPDK
Rust-DPDKRust-DPDK
Rust-DPDK
 
20130228 Goノススメ(BPStudy #66)
20130228 Goノススメ(BPStudy #66)20130228 Goノススメ(BPStudy #66)
20130228 Goノススメ(BPStudy #66)
 
20130316 プログラミング言語Go
20130316 プログラミング言語Go20130316 プログラミング言語Go
20130316 プログラミング言語Go
 
tse - Pythonによるテキスト整形ユーティリティ
tse - Pythonによるテキスト整形ユーティリティtse - Pythonによるテキスト整形ユーティリティ
tse - Pythonによるテキスト整形ユーティリティ
 
H2O and php
H2O and phpH2O and php
H2O and php
 
ECMAScript没proposal追悼式
ECMAScript没proposal追悼式ECMAScript没proposal追悼式
ECMAScript没proposal追悼式
 
HTTP2 時代の Web - web over http2
HTTP2 時代の Web - web over http2HTTP2 時代の Web - web over http2
HTTP2 時代の Web - web over http2
 
H2O - making HTTP better
H2O - making HTTP betterH2O - making HTTP better
H2O - making HTTP better
 
HTTP/2時代のウェブサイト設計
HTTP/2時代のウェブサイト設計HTTP/2時代のウェブサイト設計
HTTP/2時代のウェブサイト設計
 
2017年春のPerl
2017年春のPerl2017年春のPerl
2017年春のPerl
 
HTTPとサーバ技術の最新動向
HTTPとサーバ技術の最新動向HTTPとサーバ技術の最新動向
HTTPとサーバ技術の最新動向
 
Gocon2017:Goのロギング周りの考察
Gocon2017:Goのロギング周りの考察Gocon2017:Goのロギング周りの考察
Gocon2017:Goのロギング周りの考察
 
minneで学ぶクラウド脳
minneで学ぶクラウド脳minneで学ぶクラウド脳
minneで学ぶクラウド脳
 
PHP AST 徹底解説(補遺)
PHP AST 徹底解説(補遺)PHP AST 徹底解説(補遺)
PHP AST 徹底解説(補遺)
 
HTTP/2でも初めてみます?
HTTP/2でも初めてみます?HTTP/2でも初めてみます?
HTTP/2でも初めてみます?
 
なぜ、PHPのmbstring.func_overloadをdeprecatedにするのに5年かかったのか? - 慢心、環境の違い
なぜ、PHPのmbstring.func_overloadをdeprecatedにするのに5年かかったのか? - 慢心、環境の違い なぜ、PHPのmbstring.func_overloadをdeprecatedにするのに5年かかったのか? - 慢心、環境の違い
なぜ、PHPのmbstring.func_overloadをdeprecatedにするのに5年かかったのか? - 慢心、環境の違い
 
How to run P4 BMv2
How to run P4 BMv2How to run P4 BMv2
How to run P4 BMv2
 
Raspberry pi三分クッキング(さいたま開発勉強会 Vol 9)
Raspberry pi三分クッキング(さいたま開発勉強会 Vol 9)Raspberry pi三分クッキング(さいたま開発勉強会 Vol 9)
Raspberry pi三分クッキング(さいたま開発勉強会 Vol 9)
 
Walter ファミリーの紹介 at Shibuya.go#1
Walter ファミリーの紹介 at Shibuya.go#1Walter ファミリーの紹介 at Shibuya.go#1
Walter ファミリーの紹介 at Shibuya.go#1
 
いまさらComposer
いまさらComposerいまさらComposer
いまさらComposer
 

Viewers also liked

How To Write Middleware In Ruby
How To Write Middleware In RubyHow To Write Middleware In Ruby
How To Write Middleware In RubySATOSHI TAGOMORI
 
Fighting API Compatibility On Fluentd Using "Black Magic"
Fighting API Compatibility On Fluentd Using "Black Magic"Fighting API Compatibility On Fluentd Using "Black Magic"
Fighting API Compatibility On Fluentd Using "Black Magic"SATOSHI TAGOMORI
 
How to Make Norikra Perfect
How to Make Norikra PerfectHow to Make Norikra Perfect
How to Make Norikra PerfectSATOSHI 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
 
Fluentd Overview, Now and Then
Fluentd Overview, Now and ThenFluentd Overview, Now and Then
Fluentd Overview, Now and ThenSATOSHI 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
 
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
 
AWSにおけるバッチ処理の ベストプラクティス - Developers.IO Meetup 05
AWSにおけるバッチ処理の ベストプラクティス - Developers.IO Meetup 05AWSにおけるバッチ処理の ベストプラクティス - Developers.IO Meetup 05
AWSにおけるバッチ処理の ベストプラクティス - Developers.IO Meetup 05都元ダイスケ Miyamoto
 
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
 
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
 
Fluentd v0.14 Plugin API Details
Fluentd v0.14 Plugin API DetailsFluentd v0.14 Plugin API Details
Fluentd v0.14 Plugin API DetailsSATOSHI TAGOMORI
 
Distributed Logging Architecture in Container Era
Distributed Logging Architecture in Container EraDistributed Logging Architecture in Container Era
Distributed Logging Architecture in Container EraSATOSHI TAGOMORI
 

Viewers also liked (13)

How To Write Middleware In Ruby
How To Write Middleware In RubyHow To Write Middleware In Ruby
How To Write Middleware In Ruby
 
Fighting API Compatibility On Fluentd Using "Black Magic"
Fighting API Compatibility On Fluentd Using "Black Magic"Fighting API Compatibility On Fluentd Using "Black Magic"
Fighting API Compatibility On Fluentd Using "Black Magic"
 
How to Make Norikra Perfect
How to Make Norikra PerfectHow to Make Norikra Perfect
How to Make Norikra Perfect
 
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
 
Fluentd Overview, Now and Then
Fluentd Overview, Now and ThenFluentd Overview, Now and Then
Fluentd Overview, Now and Then
 
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
 
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
 
AWSにおけるバッチ処理の ベストプラクティス - Developers.IO Meetup 05
AWSにおけるバッチ処理の ベストプラクティス - Developers.IO Meetup 05AWSにおけるバッチ処理の ベストプラクティス - Developers.IO Meetup 05
AWSにおけるバッチ処理の ベストプラクティス - Developers.IO Meetup 05
 
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
 
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 v0.14 Plugin API Details
Fluentd v0.14 Plugin API DetailsFluentd v0.14 Plugin API Details
Fluentd v0.14 Plugin API Details
 
Distributed Logging Architecture in Container Era
Distributed Logging Architecture in Container EraDistributed Logging Architecture in Container Era
Distributed Logging Architecture in Container Era
 

Similar to 20160730 fluentd meetup in matsue slide

Sphinxで作る貢献しやすい ドキュメント翻訳の仕組み
Sphinxで作る貢献しやすいドキュメント翻訳の仕組みSphinxで作る貢献しやすいドキュメント翻訳の仕組み
Sphinxで作る貢献しやすい ドキュメント翻訳の仕組みTakayuki Shimizukawa
 
今時のオンプレなgithubクローン環境構築
今時のオンプレなgithubクローン環境構築今時のオンプレなgithubクローン環境構築
今時のオンプレなgithubクローン環境構築You&I
 
20120125 チーム開発
20120125 チーム開発20120125 チーム開発
20120125 チーム開発s_taichan
 
20120125 チーム開発
20120125 チーム開発20120125 チーム開発
20120125 チーム開発Taichi Shindo
 
How to use GPL software in closed source Android application
How to use GPL software in closed source Android applicationHow to use GPL software in closed source Android application
How to use GPL software in closed source Android applicationandropenguin
 
Git 初心者講座 by forkwell
Git 初心者講座 by forkwellGit 初心者講座 by forkwell
Git 初心者講座 by forkwellsinsoku listy
 
.NET Coreとツール類の今
.NET Coreとツール類の今.NET Coreとツール類の今
.NET Coreとツール類の今Yuki Igarashi
 
DartPad+CodePenで、Flutterを体験してみよう
DartPad+CodePenで、Flutterを体験してみようDartPad+CodePenで、Flutterを体験してみよう
DartPad+CodePenで、Flutterを体験してみようcch-robo
 
Chrome Apps & Chromeウェブストア概要
Chrome Apps & Chromeウェブストア概要Chrome Apps & Chromeウェブストア概要
Chrome Apps & Chromeウェブストア概要yoshikawa_t
 
もしWordPressユーザーがGitを使ったら 〜WordPressテーマを共同編集しよう〜
もしWordPressユーザーがGitを使ったら 〜WordPressテーマを共同編集しよう〜もしWordPressユーザーがGitを使ったら 〜WordPressテーマを共同編集しよう〜
もしWordPressユーザーがGitを使ったら 〜WordPressテーマを共同編集しよう〜Takashi Uemura
 
オープンセミナー香川2012 LT
オープンセミナー香川2012 LTオープンセミナー香川2012 LT
オープンセミナー香川2012 LTKouta Imanaka
 
C++CLIで、ネイティブCの保守開発に.NETを使って楽をしよう
C++CLIで、ネイティブCの保守開発に.NETを使って楽をしようC++CLIで、ネイティブCの保守開発に.NETを使って楽をしよう
C++CLIで、ネイティブCの保守開発に.NETを使って楽をしようStudy Group by SciencePark Corp.
 
技術選択とアーキテクトの役割
技術選択とアーキテクトの役割技術選択とアーキテクトの役割
技術選択とアーキテクトの役割Toru Yamaguchi
 
GitHub Releasesからインストールしたコマンドを管理する
GitHub Releasesからインストールしたコマンドを管理するGitHub Releasesからインストールしたコマンドを管理する
GitHub Releasesからインストールしたコマンドを管理するjiro4989
 
MakeGoodで快適なテスト駆動開発を
MakeGoodで快適なテスト駆動開発をMakeGoodで快適なテスト駆動開発を
MakeGoodで快適なテスト駆動開発をAtsuhiro Kubo
 

Similar to 20160730 fluentd meetup in matsue slide (20)

Sphinxで作る貢献しやすい ドキュメント翻訳の仕組み
Sphinxで作る貢献しやすいドキュメント翻訳の仕組みSphinxで作る貢献しやすいドキュメント翻訳の仕組み
Sphinxで作る貢献しやすい ドキュメント翻訳の仕組み
 
今時のオンプレなgithubクローン環境構築
今時のオンプレなgithubクローン環境構築今時のオンプレなgithubクローン環境構築
今時のオンプレなgithubクローン環境構築
 
P4p20120408
P4p20120408P4p20120408
P4p20120408
 
20120125 チーム開発
20120125 チーム開発20120125 チーム開発
20120125 チーム開発
 
20120125 チーム開発
20120125 チーム開発20120125 チーム開発
20120125 チーム開発
 
How to use GPL software in closed source Android application
How to use GPL software in closed source Android applicationHow to use GPL software in closed source Android application
How to use GPL software in closed source Android application
 
Git 初心者講座 by forkwell
Git 初心者講座 by forkwellGit 初心者講座 by forkwell
Git 初心者講座 by forkwell
 
.NET Coreとツール類の今
.NET Coreとツール類の今.NET Coreとツール類の今
.NET Coreとツール類の今
 
Git tutorial
Git tutorialGit tutorial
Git tutorial
 
Risolutoとは
RisolutoとはRisolutoとは
Risolutoとは
 
DartPad+CodePenで、Flutterを体験してみよう
DartPad+CodePenで、Flutterを体験してみようDartPad+CodePenで、Flutterを体験してみよう
DartPad+CodePenで、Flutterを体験してみよう
 
Chrome Apps & Chromeウェブストア概要
Chrome Apps & Chromeウェブストア概要Chrome Apps & Chromeウェブストア概要
Chrome Apps & Chromeウェブストア概要
 
もしWordPressユーザーがGitを使ったら 〜WordPressテーマを共同編集しよう〜
もしWordPressユーザーがGitを使ったら 〜WordPressテーマを共同編集しよう〜もしWordPressユーザーがGitを使ったら 〜WordPressテーマを共同編集しよう〜
もしWordPressユーザーがGitを使ったら 〜WordPressテーマを共同編集しよう〜
 
オープンセミナー香川2012 LT
オープンセミナー香川2012 LTオープンセミナー香川2012 LT
オープンセミナー香川2012 LT
 
SnapDishの事例
SnapDishの事例SnapDishの事例
SnapDishの事例
 
C++CLIで、ネイティブCの保守開発に.NETを使って楽をしよう
C++CLIで、ネイティブCの保守開発に.NETを使って楽をしようC++CLIで、ネイティブCの保守開発に.NETを使って楽をしよう
C++CLIで、ネイティブCの保守開発に.NETを使って楽をしよう
 
技術選択とアーキテクトの役割
技術選択とアーキテクトの役割技術選択とアーキテクトの役割
技術選択とアーキテクトの役割
 
Yahoo! JAPAN MEETUP #21~Gitを使ったチーム開発体験@名古屋~
Yahoo! JAPAN MEETUP #21~Gitを使ったチーム開発体験@名古屋~ Yahoo! JAPAN MEETUP #21~Gitを使ったチーム開発体験@名古屋~
Yahoo! JAPAN MEETUP #21~Gitを使ったチーム開発体験@名古屋~
 
GitHub Releasesからインストールしたコマンドを管理する
GitHub Releasesからインストールしたコマンドを管理するGitHub Releasesからインストールしたコマンドを管理する
GitHub Releasesからインストールしたコマンドを管理する
 
MakeGoodで快適なテスト駆動開発を
MakeGoodで快適なテスト駆動開発をMakeGoodで快適なテスト駆動開発を
MakeGoodで快適なテスト駆動開発を
 

More from cosmo0920

Prometheus meetup tokyo#3 slide
Prometheus meetup tokyo#3 slidePrometheus meetup tokyo#3 slide
Prometheus meetup tokyo#3 slidecosmo0920
 
Fluentd meetup 2019
Fluentd meetup 2019Fluentd meetup 2019
Fluentd meetup 2019cosmo0920
 
新宿Scala座2014 3月号スライド
新宿Scala座2014 3月号スライド新宿Scala座2014 3月号スライド
新宿Scala座2014 3月号スライドcosmo0920
 
Kernelvm-9th-lt
Kernelvm-9th-ltKernelvm-9th-lt
Kernelvm-9th-ltcosmo0920
 
カーネル VM懇親会LT
カーネル VM懇親会LTカーネル VM懇親会LT
カーネル VM懇親会LTcosmo0920
 
カーネルVm関西その参lt
カーネルVm関西その参ltカーネルVm関西その参lt
カーネルVm関西その参ltcosmo0920
 

More from cosmo0920 (6)

Prometheus meetup tokyo#3 slide
Prometheus meetup tokyo#3 slidePrometheus meetup tokyo#3 slide
Prometheus meetup tokyo#3 slide
 
Fluentd meetup 2019
Fluentd meetup 2019Fluentd meetup 2019
Fluentd meetup 2019
 
新宿Scala座2014 3月号スライド
新宿Scala座2014 3月号スライド新宿Scala座2014 3月号スライド
新宿Scala座2014 3月号スライド
 
Kernelvm-9th-lt
Kernelvm-9th-ltKernelvm-9th-lt
Kernelvm-9th-lt
 
カーネル VM懇親会LT
カーネル VM懇親会LTカーネル VM懇親会LT
カーネル VM懇親会LT
 
カーネルVm関西その参lt
カーネルVm関西その参ltカーネルVm関西その参lt
カーネルVm関西その参lt
 

20160730 fluentd meetup in matsue slide