module OpenTelemetry

OpenTelemetry is an open source observability framework, providing a general-purpose API, SDK, and related tools required for the instrumentation of cloud-native software, frameworks, and libraries.

The OpenTelemetry module provides global accessors for telemetry objects.

Copyright The OpenTelemetry Authors

SPDX-License-Identifier: Apache-2.0

Copyright The OpenTelemetry Authors

SPDX-License-Identifier: Apache-2.0

Copyright The OpenTelemetry Authors

SPDX-License-Identifier: Apache-2.0

Copyright The OpenTelemetry Authors

SPDX-License-Identifier: Apache-2.0

Copyright The OpenTelemetry Authors

SPDX-License-Identifier: Apache-2.0

Copyright The OpenTelemetry Authors

SPDX-License-Identifier: Apache-2.0

Copyright The OpenTelemetry Authors

SPDX-License-Identifier: Apache-2.0

Copyright The OpenTelemetry Authors

SPDX-License-Identifier: Apache-2.0

Copyright The OpenTelemetry Authors

SPDX-License-Identifier: Apache-2.0

Copyright The OpenTelemetry Authors

SPDX-License-Identifier: Apache-2.0

Copyright The OpenTelemetry Authors

SPDX-License-Identifier: Apache-2.0

Copyright The OpenTelemetry Authors

SPDX-License-Identifier: Apache-2.0

Copyright The OpenTelemetry Authors

SPDX-License-Identifier: Apache-2.0

Copyright The OpenTelemetry Authors

SPDX-License-Identifier: Apache-2.0

Copyright The OpenTelemetry Authors

SPDX-License-Identifier: Apache-2.0

Copyright The OpenTelemetry Authors

SPDX-License-Identifier: Apache-2.0

Copyright The OpenTelemetry Authors

SPDX-License-Identifier: Apache-2.0

Copyright The OpenTelemetry Authors

SPDX-License-Identifier: Apache-2.0

Copyright The OpenTelemetry Authors

SPDX-License-Identifier: Apache-2.0

Copyright The OpenTelemetry Authors

SPDX-License-Identifier: Apache-2.0

Copyright The OpenTelemetry Authors

SPDX-License-Identifier: Apache-2.0

Copyright The OpenTelemetry Authors

SPDX-License-Identifier: Apache-2.0

Copyright The OpenTelemetry Authors

SPDX-License-Identifier: Apache-2.0

Copyright The OpenTelemetry Authors

SPDX-License-Identifier: Apache-2.0

Copyright The OpenTelemetry Authors

SPDX-License-Identifier: Apache-2.0

Copyright The OpenTelemetry Authors

SPDX-License-Identifier: Apache-2.0

Copyright The OpenTelemetry Authors

SPDX-License-Identifier: Apache-2.0

Copyright The OpenTelemetry Authors

SPDX-License-Identifier: Apache-2.0

Copyright The OpenTelemetry Authors

SPDX-License-Identifier: Apache-2.0

Constants

VERSION

Current OpenTelemetry version

Attributes

baggage[W]
error_handler[W]
logger[W]
propagation[W]

Public Instance Methods

baggage() click to toggle source

@return [Object, Baggage::NoopManager] registered

baggage manager or a default no-op implementation of the
manager.
# File lib/opentelemetry.rb, line 71
def baggage
  @baggage ||= Baggage::NoopManager.new
end
error_handler() click to toggle source

@return [Callable] configured error handler or a default that logs the

exception and message at ERROR level.
# File lib/opentelemetry.rb, line 36
def error_handler
  @error_handler ||= ->(exception: nil, message: nil) { logger.error("OpenTelemetry error: #{[message, exception&.message].compact.join(' - ')}") }
end
handle_error(exception: nil, message: nil) click to toggle source

Handles an error by calling the configured error_handler.

@param [optional Exception] exception The exception to be handled @param [optional String] message An error message.

# File lib/opentelemetry.rb, line 44
def handle_error(exception: nil, message: nil)
  error_handler.call(exception: exception, message: message)
end
logger() click to toggle source

@return [Object, Logger] configured Logger or a default STDOUT Logger.

# File lib/opentelemetry.rb, line 30
def logger
  @logger ||= Logger.new(STDOUT, level: ENV['OTEL_LOG_LEVEL'] || Logger::INFO)
end
propagation() click to toggle source

@return [Context::Propagation::Propagator] a propagator instance

# File lib/opentelemetry.rb, line 76
def propagation
  @propagation ||= Context::Propagation::NoopTextMapPropagator.new
end
tracer_provider() click to toggle source

@return [Object, Trace::TracerProvider] registered tracer provider or a

default no-op implementation of the tracer provider.
# File lib/opentelemetry.rb, line 64
def tracer_provider
  @mutex.synchronize { @tracer_provider }
end
tracer_provider=(provider) click to toggle source

Register the global tracer provider.

@param [TracerProvider] provider A tracer provider to register as the

global instance.
# File lib/opentelemetry.rb, line 52
def tracer_provider=(provider)
  @mutex.synchronize do
    if @tracer_provider.instance_of? Internal::ProxyTracerProvider
      logger.debug("Upgrading default proxy tracer provider to #{provider.class}")
      @tracer_provider.delegate = provider
    end
    @tracer_provider = provider
  end
end