fluent / fluent-plugin-prometheus

A fluent plugin that collects metrics and exposes for Prometheus.
Apache License 2.0
257 stars 80 forks source link

fluentd-1.12.1: cannot load such file -- ripper (LoadError) #185

Closed jze1 closed 3 years ago

jze1 commented 3 years ago

$ pwd /opt/td-agent/embedded/bin $ ./gem install fluent-plugin-prometheus Building native extensions. This could take a while... Successfully installed msgpack-1.4.2 Fetching: serverengine-2.2.3.gem (100%) Successfully installed serverengine-2.2.3 Fetching: fluentd-1.12.1.gem (100%) Successfully installed fluentd-1.12.1 Fetching: prometheus-client-2.1.0.gem (100%) Successfully installed prometheus-client-2.1.0 Fetching: fluent-plugin-prometheus-2.0.0.gem (100%) Successfully installed fluent-plugin-prometheus-2.0.0 Parsing documentation for msgpack-1.4.2 Installing ri documentation for msgpack-1.4.2 Parsing documentation for serverengine-2.2.3 Installing ri documentation for serverengine-2.2.3 Parsing documentation for fluentd-1.12.1 Installing ri documentation for fluentd-1.12.1 Parsing documentation for prometheus-client-2.1.0 Installing ri documentation for prometheus-client-2.1.0 Parsing documentation for fluent-plugin-prometheus-2.0.0 Installing ri documentation for fluent-plugin-prometheus-2.0.0 Done installing documentation for msgpack, serverengine, fluentd, prometheus-client, fluent-plugin-prometheus after 8 seconds 5 gems installed

$ service td-agent start Starting td-agent: /opt/td-agent/embedded/lib/ruby/site_ruby/2.4.0/rubygems/core_ext/kernel_require.rb:55:in require': cannot load such file -- ripper (LoadError) from /opt/td-agent/embedded/lib/ruby/site_ruby/2.4.0/rubygems/core_ext/kernel_require.rb:55:inrequire' from /opt/td-agent/embedded/lib/ruby/gems/2.4.0/gems/fluentd-1.12.1/lib/fluent/config/literal_parser.rb:22:in <top (required)>' from /opt/td-agent/embedded/lib/ruby/site_ruby/2.4.0/rubygems/core_ext/kernel_require.rb:55:inrequire' from /opt/td-agent/embedded/lib/ruby/site_ruby/2.4.0/rubygems/core_ext/kernel_require.rb:55:in require' from /opt/td-agent/embedded/lib/ruby/gems/2.4.0/gems/fluentd-1.12.1/lib/fluent/config/element.rb:18:in<top (required)>' from /opt/td-agent/embedded/lib/ruby/site_ruby/2.4.0/rubygems/core_ext/kernel_require.rb:55:in require' from /opt/td-agent/embedded/lib/ruby/site_ruby/2.4.0/rubygems/core_ext/kernel_require.rb:55:inrequire' from /opt/td-agent/embedded/lib/ruby/gems/2.4.0/gems/fluentd-1.12.1/lib/fluent/config.rb:18:in <top (required)>' from /opt/td-agent/embedded/lib/ruby/site_ruby/2.4.0/rubygems/core_ext/kernel_require.rb:55:inrequire' from /opt/td-agent/embedded/lib/ruby/site_ruby/2.4.0/rubygems/core_ext/kernel_require.rb:55:in require' from /opt/td-agent/embedded/lib/ruby/gems/2.4.0/gems/fluentd-1.12.1/lib/fluent/supervisor.rb:20:in<top (required)>' from /opt/td-agent/embedded/lib/ruby/site_ruby/2.4.0/rubygems/core_ext/kernel_require.rb:55:in require' from /opt/td-agent/embedded/lib/ruby/site_ruby/2.4.0/rubygems/core_ext/kernel_require.rb:55:inrequire' from /opt/td-agent/embedded/lib/ruby/gems/2.4.0/gems/fluentd-1.12.1/lib/fluent/command/fluentd.rb:19:in <top (required)>' from /opt/td-agent/embedded/lib/ruby/site_ruby/2.4.0/rubygems/core_ext/kernel_require.rb:55:inrequire' from /opt/td-agent/embedded/lib/ruby/site_ruby/2.4.0/rubygems/core_ext/kernel_require.rb:55:in require' from /opt/td-agent/embedded/lib/ruby/gems/2.4.0/gems/fluentd-1.12.1/bin/fluentd:8:in<top (required)>' from /opt/td-agent/embedded/bin/fluentd:23:in load' from /opt/td-agent/embedded/bin/fluentd:23:in<top (required)>' ... ...

AntoineC44 commented 3 years ago
$ docker run -it --entrypoint=/bin/bash ruby:2.4.0
$ apt-get update; apt-get install -y sudo
$ curl -L https://toolbelt.treasuredata.com/sh/install-debian-jessie-td-agent3.sh | sh
$ gem install fluent-plugin-prometheus
$ td-agent

This works with latest plugin version, fluentd 1.12.1 and ruby 2.4. There must be something wrong in your install

jze1 commented 3 years ago

I am not using docker, why? td-agent3 package already has embedded ruby 2.4.0. Yet fluent-plugin-prometheus tries to load ripper module which was deprecated in ruby 1.9 AFAIK.

repeatedly commented 3 years ago

Maybe, the problem is your td-agent is old: https://github.com/treasure-data/omnibus-td-agent/issues/242

jze1 commented 3 years ago

The agent is maybe old but the embedded ruby is still 2.4.0.

AntoineC44 commented 3 years ago

@jze1 docker was for reproducibility from a ruby 2.4.0 base image, seems to work launching directly fluentd, and with td agent 3 version provided (which embeds ruby 2.4.5) seems also to work