embulkでOutputPlugin ‘bigquery’ is not found. が発生した

先日開発したembulk-input-prometheusを利用して、BigQueryに情報をロードしようとしたところ下記のエラーが発生した。

org.embulk.config.ConfigException: OutputPlugin 'bigquery' is not found.
org.jruby.proxy.org.embulk.config.ConfigException$Proxy1: Unknown output plugin 'bigquery'. embulk/output/bigquery.rb is not installed. Run 'embulk gem search -rd embulk-output' command to find plugins.
        at org.embulk.plugin.PluginManager.buildPluginNotFoundException(PluginManager.java:75)
        at org.embulk.plugin.PluginManager.newPluginWithoutWrapper(PluginManager.java:61)
        at org.embulk.plugin.PluginManager.newPlugin(PluginManager.java:28)
        at org.embulk.spi.ExecSession.newPlugin(ExecSession.java:162)
        at org.embulk.spi.Exec.newPlugin(Exec.java:67)
        at org.embulk.exec.BulkLoader$ProcessPluginSet.<init>(BulkLoader.java:428)
 

該当箇所のjavaのソースコード読んでもcatchされててあまり深い情報がそのままでは取れなかったので、embulkのgem版を準備して実行したところ、

Gem::ConflictError: Unable to activate signet-0.11.0, because faraday-1.0.1 conflicts with faraday (~> 0.9)
              raise_if_conflicts at /root/.rbenv/versions/jruby-9.1.17.0/lib/ruby/stdlib/rubygems/specification.rb:2291
                        activate at /root/.rbenv/versions/jruby-9.1.17.0/lib/ruby/stdlib/rubygems/specification.rb:1411
  block in activate_dependencies at /root/.rbenv/versions/jruby-9.1.17.0/lib/ruby/stdlib/rubygems/specification.rb:1445
                            each at org/jruby/RubyArray.java:1735
           activate_dependencies at /root/.rbenv/versions/jruby-9.1.17.0/lib/ruby/stdlib/rubygems/specification.rb:1431
                        activate at /root/.rbenv/versions/jruby-9.1.17.0/lib/ruby/stdlib/rubygems/specification.rb:1413
                    try_activate at /root/.rbenv/versions/jruby-9.1.17.0/lib/ruby/stdlib/rubygems.rb:220
                         require at /root/.rbenv/versions/jruby-9.1.17.0/lib/ruby/stdlib/rubygems/core_ext/kernel_require.rb:126

faradayのバージョンが signetembulk-input-prometheus で利用している prometheus apiで衝突しているらしかったので、バージョン依存の記述を合わせて解決した。

これ、embulkでgemのconflictが起きたときにnot foundになるのちょい追えなくて不便だからどこかでおかわり案件かなぁ。

カテゴリー: tech