Module: LaunchDarklyObservability::ControllerHelpers
- Extended by:
- ActiveSupport::Concern
- Defined in:
- lib/launchdarkly_observability/rails.rb
Overview
Controller helper methods for Rails
These helpers provide convenient access to observability features within Rails controllers.
Instance Method Summary collapse
-
#launchdarkly_trace_id ⇒ String?
The current OpenTelemetry trace ID.
- #record_launchdarkly_exception(exception, attributes: {}) ⇒ Object
-
#with_launchdarkly_span(name, attributes: {}) {|span| ... } ⇒ Object
The result of the block.
Instance Method Details
#launchdarkly_trace_id ⇒ String?
Returns The current OpenTelemetry trace ID.
31 32 33 34 35 36 37 38 |
# File 'lib/launchdarkly_observability/rails.rb', line 31 def launchdarkly_trace_id return nil unless defined?(OpenTelemetry) span = OpenTelemetry::Trace.current_span return nil unless span&.context&.valid? span.context.hex_trace_id end |
#record_launchdarkly_exception(exception, attributes: {}) ⇒ Object
57 58 59 60 61 62 63 64 65 |
# File 'lib/launchdarkly_observability/rails.rb', line 57 def record_launchdarkly_exception(exception, attributes: {}) return unless defined?(OpenTelemetry) span = OpenTelemetry::Trace.current_span return unless span span.record_exception(exception, attributes: SourceContext.exception_attributes(exception).merge(attributes)) span.status = OpenTelemetry::Trace::Status.error(exception.) end |
#with_launchdarkly_span(name, attributes: {}) {|span| ... } ⇒ Object
Returns The result of the block.
44 45 46 47 48 49 50 51 52 53 |
# File 'lib/launchdarkly_observability/rails.rb', line 44 def with_launchdarkly_span(name, attributes: {}, &block) return yield unless defined?(OpenTelemetry) && OpenTelemetry.tracer_provider tracer = OpenTelemetry.tracer_provider.tracer( 'launchdarkly-ruby-rails', LaunchDarklyObservability::VERSION ) tracer.in_span(name, attributes: attributes, &block) end |