opentelemetry-ruby: Requiring OTLP exporter breaks as of 0.24.1

Description of the bug

Requiring "opentelemetry/exporter/otlp" fails as of the 0.24.1 release with an uninitialized constant error:

~/.rbenv/versions/3.2.1/lib/ruby/gems/3.2.0/gems/opentelemetry-exporter-otlp-0.24.1/lib/opentelemetry/exporter/otlp/exporter.rb:38:in `<class:Exporter>': uninitialized constant OpenTelemetry::Exporter::OTLP::VERSION (NameError)

Share details about your runtime

Operating system details: macOS, Ventura 13.3.1 (a) RUBY_ENGINE: “ruby” RUBY_VERSION: “3.2.0” RUBY_DESCRIPTION: “ruby 3.2.1 (2023-02-08 revision 31819e82c8) [arm64-darwin22]”

Share a simplified reproduction if possible

require "bundler/inline"

gemfile(true) do
  source "https://rubygems.org"

  gem "opentelemetry-api"
  gem "opentelemetry-sdk"
  gem "opentelemetry-exporter-otlp"
end

require "opentelemetry-api"
require "opentelemetry-sdk"
require "opentelemetry/exporter/otlp"

OpenTelemetry::SDK.configure do |c|
  c.service_name = "Demo"
end

About this issue

  • Original URL
  • State: closed
  • Created a year ago
  • Comments: 15 (12 by maintainers)

Most upvoted comments

I understand Ruby 2.7 is EoL but I would like to revisit this.

The latest version of opentelemetry-exporter-otlp that supports Ruby 2.7 is 0.24.1 meaning people stuck on that version of Ruby are guaranteed to hit this

I really think this should be released as 0.24.2 to avoid the problem.

or un-publish 0.24.1?

there is no simple way to un-publish gem and yanking is not really recommended

@robertlaurin Would it be possible to release this also as 0.24.2? Anyone who depended on ~> 0.24.0 (like us) will get a permanently broken version until they bump the version.

You can require opentelemetry/exporter/otlp/version before opentelemetry-exporter-otlp if your need it to work before the fix.

e.g.

require 'opentelemetry/exporter/otlp/version'
require 'opentelemetry-exporter-otlp'