Module: OpenTelemetry

Extended by:
OpenTelemetry
Included in:
OpenTelemetry
Defined in:
lib/opentelemetry/error.rb,
lib/opentelemetry/trace.rb,
lib/opentelemetry/baggage.rb,
lib/opentelemetry/context.rb,
lib/opentelemetry/metrics.rb,
lib/opentelemetry/version.rb,
lib/opentelemetry/trace/link.rb,
lib/opentelemetry/trace/span.rb,
lib/opentelemetry/context/key.rb,
lib/opentelemetry/trace/status.rb,
lib/opentelemetry/trace/tracer.rb,
lib/opentelemetry/metrics/meter.rb,
lib/opentelemetry/baggage/builder.rb,
lib/opentelemetry/baggage/manager.rb,
lib/opentelemetry/instrumentation.rb,
lib/opentelemetry/metrics/handles.rb,
lib/opentelemetry/trace/span_kind.rb,
lib/opentelemetry/trace/tracestate.rb,
lib/opentelemetry/trace/propagation.rb,
lib/opentelemetry/trace/trace_flags.rb,
lib/opentelemetry/trace/span_context.rb,
lib/opentelemetry/baggage/propagation.rb,
lib/opentelemetry/context/propagation.rb,
lib/opentelemetry/metrics/instruments.rb,
lib/opentelemetry/instrumentation/base.rb,
lib/opentelemetry/trace/tracer_provider.rb,
lib/opentelemetry/metrics/meter_provider.rb,
lib/opentelemetry/instrumentation/registry.rb,
lib/opentelemetry/trace/util/http_to_status.rb,
lib/opentelemetry/context/propagation/propagator.rb,
lib/opentelemetry/trace/propagation/trace_context.rb,
lib/opentelemetry/baggage/propagation/context_keys.rb,
lib/opentelemetry/context/propagation/noop_injector.rb,
lib/opentelemetry/context/propagation/noop_extractor.rb,
lib/opentelemetry/context/propagation/rack_env_getter.rb,
lib/opentelemetry/context/propagation/text_map_getter.rb,
lib/opentelemetry/context/propagation/text_map_setter.rb,
lib/opentelemetry/baggage/propagation/text_map_injector.rb,
lib/opentelemetry/baggage/propagation/text_map_extractor.rb,
lib/opentelemetry/context/propagation/composite_propagator.rb,
lib/opentelemetry/trace/propagation/trace_context/trace_parent.rb,
lib/opentelemetry/trace/propagation/trace_context/text_map_injector.rb,
lib/opentelemetry/trace/propagation/trace_context/text_map_extractor.rb,
lib/opentelemetry.rb

Overview

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.

Defined Under Namespace

Modules: Baggage, Instrumentation, Metrics, Trace Classes: Context, Error

Constant Summary collapse

VERSION =

Current OpenTelemetry version

'0.16.0'

Instance Attribute Summary collapse

Instance Method Summary collapse

Instance Attribute Details

#baggageObject, Baggage::Manager

Returns registered baggage manager or a default no-op implementation of the manager.

Returns:

  • (Object, Baggage::Manager)

    registered baggage manager or a default no-op implementation of the manager.



68
69
70
# File 'lib/opentelemetry.rb', line 68

def baggage
  @baggage ||= Baggage::Manager.new
end

#error_handlerCallable

Returns configured error handler or a default that logs the exception and message at ERROR level.

Returns:

  • (Callable)

    configured error handler or a default that logs the exception and message at ERROR level.



35
36
37
# File 'lib/opentelemetry.rb', line 35

def error_handler
  @error_handler ||= ->(exception: nil, message: nil) { logger.error("OpenTelemetry error: #{[message, exception&.message].compact.join(' - ')}") }
end

#loggerObject, Logger

Returns configured Logger or a default STDOUT Logger.

Returns:

  • (Object, Logger)

    configured Logger or a default STDOUT Logger.



29
30
31
# File 'lib/opentelemetry.rb', line 29

def logger
  @logger ||= Logger.new(STDOUT, level: ENV['OTEL_LOG_LEVEL'] || Logger::INFO)
end

#meter_providerObject, Metrics::MeterProvider

Returns registered meter provider or a default no-op implementation of the meter provider.

Returns:

  • (Object, Metrics::MeterProvider)

    registered meter provider or a default no-op implementation of the meter provider.



55
56
57
# File 'lib/opentelemetry.rb', line 55

def meter_provider
  @meter_provider ||= Metrics::MeterProvider.new
end

#propagationContext::Propagation::Propagator

Returns a propagator instance.

Returns:



73
74
75
76
77
78
# File 'lib/opentelemetry.rb', line 73

def propagation
  @propagation ||= Context::Propagation::Propagator.new(
    Context::Propagation::NoopInjector.new,
    Context::Propagation::NoopExtractor.new
  )
end

#tracer_providerObject, Trace::TracerProvider

Returns registered tracer provider or a default no-op implementation of the tracer provider.

Returns:

  • (Object, Trace::TracerProvider)

    registered tracer provider or a default no-op implementation of the tracer provider.



49
50
51
# File 'lib/opentelemetry.rb', line 49

def tracer_provider
  @tracer_provider ||= Trace::TracerProvider.new
end

Instance Method Details

#handle_error(exception: nil, message: nil) ⇒ Object

Handles an error by calling the configured error_handler.

Parameters:

  • exception (optional Exception) (defaults to: nil)

    The exception to be handled

  • message (optional String) (defaults to: nil)

    An error message.



43
44
45
# File 'lib/opentelemetry.rb', line 43

def handle_error(exception: nil, message: nil)
  error_handler.call(exception: exception, message: message)
end

#instrumentation_registryInstrumentation::Registry

Returns registry containing all known instrumentation.

Returns:



61
62
63
# File 'lib/opentelemetry.rb', line 61

def instrumentation_registry
  @instrumentation_registry ||= Instrumentation::Registry.new
end