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.
27 28 29 |
# File 'lib/langfuse/otel_setup.rb', line 27 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.
72 73 74 |
# File 'lib/langfuse/otel_setup.rb', line 72 def force_flush(timeout: 30) @tracer_provider&.force_flush(timeout: timeout) end |
.initialized? ⇒ Boolean
Check if Langfuse tracing has been initialized.
79 80 81 |
# File 'lib/langfuse/otel_setup.rb', line 79 def initialized? !@tracer_provider.nil? end |
.setup(config) ⇒ OpenTelemetry::SDK::Trace::TracerProvider
Initialize Langfuse’s internal tracer provider without mutating global OpenTelemetry state.
33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 |
# File 'lib/langfuse/otel_setup.rb', line 33 def setup(config) validate_tracing_config!(config) return existing_provider_for(config) if initialized? candidate_provider = nil provider = nil created = false candidate_provider = build_tracer_provider(config) provider, created = publish_provider(candidate_provider, tracing_config_snapshot(config)) unless created candidate_provider.shutdown(timeout: 30) return existing_provider_for(config) end log_initialized(config) 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.
58 59 60 61 62 63 64 65 66 |
# File 'lib/langfuse/otel_setup.rb', line 58 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 |