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/context/propagation/propagation.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/default_getter.rb,
lib/opentelemetry/context/propagation/default_setter.rb,
lib/opentelemetry/context/propagation/noop_extractor.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.12.1'

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.



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

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.



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

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.



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

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.



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

def meter_provider
  @meter_provider ||= Metrics::MeterProvider.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.



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

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.



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

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:



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

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

#propagationContext::Propagation::Propagation

Returns an instance of the propagation API.

Returns:



72
73
74
# File 'lib/opentelemetry.rb', line 72

def propagation
  @propagation ||= Context::Propagation::Propagation.new
end