マネージド・メッセージ・キューのGoogle Cloud Pub/Subを利用するためのfluentdのプラグインとしてfluent-plugin-gcloud-pubsub-customを作りました。
リポジトリは以下です。 github.com
もともと GitHub - mdoi/fluent-plugin-gcloud-pubsub というプラグインがあったものの、最近更新されていなさそうでしたのでforkして新しいプラグインとして公開しました。
元になったfluent-plugin-gcloud-pubsubから大きな変更点として以下があります。
- google-cloud-rubyのバージョンアップに追随
- Pub/Subの各種クォータの制限に対応
- file bufferも使えるように lightening buffer への依存を排除しています。
- formatter, parserプラグインに対応してjson形式以外も指定できるようにした
- エラーハンドリングを改善
- inputプラグインにHTTP RPCでメッセージのpullをstop, startできる機能を追加
- デプロイ時や流量のコントロールなどに使えると思います。
使い方はREADMEを参照してください。
Pub/SubにはAttributeを付与できる機能があるので、Attributeにtagを入れて、pullするときはそれを使ってtagを付与できる機能を、そのうち実装したいと思っています。 forestプラグイン等でtopicをたくさん増やす必要がなくなって便利かなと。
しばらく自分でも使ってみて特に問題は発生していないですが、もし使ってみてバグや欲しい機能とかありましたら、何かでご連絡ください。
【10/30追記】
マルチスレッドでメッセージをpullできる機能をinput pluginに追加しました。