Module: Langfuse::OtelSetup
- Defined in:
- lib/langfuse/otel_setup.rb
Overview
OpenTelemetry initialization and setup for Langfuse tracing. rubocop:disable Metrics/ModuleLength
Class Attribute Summary collapse
-
.tracer_provider ⇒ OpenTelemetry::SDK::Trace::TracerProvider?
readonly
The configured internal tracer provider.
Class Method Summary collapse
-
.force_flush(timeout: 30) ⇒ void
Force flush all pending spans on the internal tracer provider.
-
.initialized? ⇒ Boolean
Check if Langfuse tracing has been initialized.
-
.setup(config) ⇒ OpenTelemetry::SDK::Trace::TracerProvider
Initialize Langfuse's internal tracer provider without mutating global OpenTelemetry state.
-
.shutdown(timeout: 30) ⇒ void
Shutdown the internal tracer provider and flush any pending spans.
Class Attribute Details
.tracer_provider ⇒ OpenTelemetry::SDK::Trace::TracerProvider? (readonly)
Returns The configured internal tracer provider.
32 33 34 |
# File 'lib/langfuse/otel_setup.rb', line 32 def tracer_provider @tracer_provider end |
Class Method Details
.force_flush(timeout: 30) ⇒ void
This method returns an undefined value.
Force flush all pending spans on the internal tracer provider.
67 68 69 |
# File 'lib/langfuse/otel_setup.rb', line 67 def force_flush(timeout: 30) @tracer_provider&.force_flush(timeout: timeout) end |
.initialized? ⇒ Boolean
Check if Langfuse tracing has been initialized.
74 75 76 |
# File 'lib/langfuse/otel_setup.rb', line 74 def initialized? !@tracer_provider.nil? end |
.setup(config) ⇒ OpenTelemetry::SDK::Trace::TracerProvider
Initialize Langfuse's internal tracer provider without mutating global OpenTelemetry state.
38 39 40 41 42 43 44 45 46 47 |
# File 'lib/langfuse/otel_setup.rb', line 38 def setup(config) config.validate_tracing! provider, created = setup_mutex.synchronize { setup_locked(config) } log_initialized(config) if created provider rescue StandardError rollback_provider(provider) if created raise end |
.shutdown(timeout: 30) ⇒ void
This method returns an undefined value.
Shutdown the internal tracer provider and flush any pending spans.
53 54 55 56 57 58 59 60 61 |
# File 'lib/langfuse/otel_setup.rb', line 53 def shutdown(timeout: 30) provider = nil setup_mutex.synchronize do provider = @tracer_provider @tracer_provider = nil @config_snapshot = nil end provider&.shutdown(timeout: timeout) end |