diff --git a/api/lib/opentelemetry.rb b/api/lib/opentelemetry.rb index 3234fd782a..f84d38916f 100644 --- a/api/lib/opentelemetry.rb +++ b/api/lib/opentelemetry.rb @@ -28,7 +28,11 @@ module OpenTelemetry # @return [Object, Logger] configured Logger or a default STDOUT Logger. def logger - @logger ||= Logger.new($stdout, level: ENV['OTEL_LOG_LEVEL'] || Logger::INFO) + @logger ||= create_logger + # alternately: Logger.new($stdout, level: ENV['OTEL_LOG_LEVEL'] || Logger::INF, progname: 'OpenTelemetry') + # and clean up the log messages that are prefixed with "OpenTelemetry" + # if we want log records generated for OpenTelemetry logs, I think we can do that, but I imagine this is + # "untraced" territory end # @return [Callable] configured error handler or a default that logs the @@ -69,4 +73,15 @@ def tracer_provider def propagation @propagation ||= Context::Propagation::NoopTextMapPropagator.new end + + private + + def create_logger + logger = Logger.new($stdout, level: ENV['OTEL_LOG_LEVEL'] || Logger::INFO) + # @skip_instrumenting prevents Ruby Logger instrumentation from + # triggering a stack overflow. Logs emitted using OpenTelemetry.logger + # will not be turned into OpenTelemetry LogRecords. + logger.instance_variable_set(:@skip_instrumenting, true) + logger + end end diff --git a/api/opentelemetry-api.gemspec b/api/opentelemetry-api.gemspec index f18bfeec02..620f3a0ba2 100644 --- a/api/opentelemetry-api.gemspec +++ b/api/opentelemetry-api.gemspec @@ -42,4 +42,6 @@ Gem::Specification.new do |spec| spec.metadata['bug_tracker_uri'] = 'https://github.com/open-telemetry/opentelemetry-ruby/issues' spec.metadata['documentation_uri'] = "https://open-telemetry.github.io/opentelemetry-ruby/opentelemetry-api/v#{OpenTelemetry::VERSION}" end + + spec.post_install_message = "The OTel Logs gems have been released on RubyGems! The log-record-processor3 branch is going away on 13 January 2025. Please update your Gemfile to install `opentelemetry-api` directly from RubyGems." end diff --git a/exporter/otlp-logs/README.md b/exporter/otlp-logs/README.md index ed45d75fa5..967becb7b4 100644 --- a/exporter/otlp-logs/README.md +++ b/exporter/otlp-logs/README.md @@ -23,10 +23,8 @@ This gem supports the [v0.20.0 release][otel-proto-release] of OTLP. Install the gem using: ```console - gem install opentelemetry-logs-sdk -gem install opentelemetry-exporter-otlp - +gem install opentelemetry-exporter-otlp-logs ``` Or, if you use [bundler][bundler-home], include `opentelemetry-sdk` in your `Gemfile`. diff --git a/exporter/otlp-logs/opentelemetry-exporter-otlp-logs.gemspec b/exporter/otlp-logs/opentelemetry-exporter-otlp-logs.gemspec index d1c69fceec..0be414f64c 100644 --- a/exporter/otlp-logs/opentelemetry-exporter-otlp-logs.gemspec +++ b/exporter/otlp-logs/opentelemetry-exporter-otlp-logs.gemspec @@ -53,4 +53,6 @@ Gem::Specification.new do |spec| spec.metadata['bug_tracker_uri'] = 'https://github.com/open-telemetry/opentelemetry-ruby/issues' spec.metadata['documentation_uri'] = "https://open-telemetry.github.io/opentelemetry-ruby/opentelemetry-exporter-otlp/v#{OpenTelemetry::Exporter::OTLP::Logs::VERSION}" end + + spec.post_install_message = "The OTel Logs gems have been released on RubyGems! The log-record-processor3 branch is going away on 13 January 2025. Please update your Gemfile to install `opentelemetry-exporter-otlp-logs` directly from RubyGems." end diff --git a/exporter/otlp/opentelemetry-exporter-otlp.gemspec b/exporter/otlp/opentelemetry-exporter-otlp.gemspec index 0371621bbd..c9a55a6f97 100644 --- a/exporter/otlp/opentelemetry-exporter-otlp.gemspec +++ b/exporter/otlp/opentelemetry-exporter-otlp.gemspec @@ -51,4 +51,6 @@ Gem::Specification.new do |spec| spec.metadata['bug_tracker_uri'] = 'https://github.com/open-telemetry/opentelemetry-ruby/issues' spec.metadata['documentation_uri'] = "https://open-telemetry.github.io/opentelemetry-ruby/opentelemetry-exporter-otlp/v#{OpenTelemetry::Exporter::OTLP::VERSION}" end + + spec.post_install_message = "The OTel Logs gems have been released on RubyGems! The log-record-processor3 branch is going away on 13 January 2025. Please update your Gemfile to install `opentelemetry-exporter-otlp` directly from RubyGems." end diff --git a/logs_api/opentelemetry-logs-api.gemspec b/logs_api/opentelemetry-logs-api.gemspec index 0426ff8759..3b85d1ee01 100644 --- a/logs_api/opentelemetry-logs-api.gemspec +++ b/logs_api/opentelemetry-logs-api.gemspec @@ -40,4 +40,7 @@ Gem::Specification.new do |spec| spec.metadata['bug_tracker_uri'] = 'https://github.com/open-telemetry/opentelemetry-ruby/issues' spec.metadata['documentation_uri'] = "https://open-telemetry.github.io/opentelemetry-ruby/opentelemetry-logs-api/v#{OpenTelemetry::Logs::VERSION}" end + + spec.post_install_message = "This code has been released on RubyGems! The log-record-processor3 branch is going away on 13 January 2025. Please update your Gemfiles to install `opentelemetry-logs-api` directly from RubyGems." end + diff --git a/logs_sdk/lib/opentelemetry/sdk/logs/logger_provider.rb b/logs_sdk/lib/opentelemetry/sdk/logs/logger_provider.rb index 35d7d5dc19..7bae2ce74b 100644 --- a/logs_sdk/lib/opentelemetry/sdk/logs/logger_provider.rb +++ b/logs_sdk/lib/opentelemetry/sdk/logs/logger_provider.rb @@ -35,7 +35,7 @@ def initialize(resource: OpenTelemetry::SDK::Resources::Resource.create, log_rec @registry_mutex = Mutex.new end - # Returns an {OpenTelemetry::SDK::Logs::Logger} instance. + # Creates an {OpenTelemetry::SDK::Logs::Logger} instance. # # @param [String] name Instrumentation package name # @param [optional String] version Instrumentation package version diff --git a/logs_sdk/opentelemetry-logs-sdk.gemspec b/logs_sdk/opentelemetry-logs-sdk.gemspec index 766cf6be5d..198febd855 100644 --- a/logs_sdk/opentelemetry-logs-sdk.gemspec +++ b/logs_sdk/opentelemetry-logs-sdk.gemspec @@ -43,4 +43,7 @@ Gem::Specification.new do |spec| spec.metadata['bug_tracker_uri'] = 'https://github.com/open-telemetry/opentelemetry-ruby/issues' spec.metadata['documentation_uri'] = "https://open-telemetry.github.io/opentelemetry-ruby/opentelemetry-logs-sdk/v#{OpenTelemetry::SDK::Logs::VERSION}" end + + spec.post_install_message = "The OTel Logs gems have been released on RubyGems! The log-record-processor3 branch is going away on 13 January 2025. Please update your Gemfile to install `opentelemetry-logs-sdk` directly from RubyGems." end + diff --git a/sdk/opentelemetry-sdk.gemspec b/sdk/opentelemetry-sdk.gemspec index decb49270f..dfc2b3ff40 100644 --- a/sdk/opentelemetry-sdk.gemspec +++ b/sdk/opentelemetry-sdk.gemspec @@ -56,4 +56,6 @@ Gem::Specification.new do |spec| spec.metadata['bug_tracker_uri'] = 'https://github.com/open-telemetry/opentelemetry-ruby/issues' spec.metadata['documentation_uri'] = "https://open-telemetry.github.io/opentelemetry-ruby/opentelemetry-sdk/v#{OpenTelemetry::SDK::VERSION}" end + + spec.post_install_message = "The OTel Logs gems have been released on RubyGems! The log-record-processor3 branch is going away on 13 January 2025. Please update your Gemfile to install `opentelemetry-sdk` directly from RubyGems." end