module Sequel::Instrumentation
Constants
- COMMON_TAGS
- VERSION
Attributes
tracer[RW]
Public Class Methods
instrument(tracer: OpenTracing.global_tracer)
click to toggle source
# File lib/sequel/instrumentation.rb, line 17 def instrument(tracer: OpenTracing.global_tracer) begin require 'sequel' rescue LoadError return end @tracer = tracer require 'sequel/extensions/database_instrumentation' require 'sequel/extensions/dataset_instrumentation' Sequel::Database.extension :database_instrumentation Sequel::Database.extension :dataset_instrumentation end
trace_query(name, tags) { || ... }
click to toggle source
This method sets up a span and yields the block. Any errors will be caught and tagged before being passed up.
# File lib/sequel/instrumentation.rb, line 35 def trace_query(name, tags) tags.merge!(COMMON_TAGS) scope = @tracer.start_active_span(name, tags: tags) yield rescue StandardError => error if scope scope.span.set_tag('error', true) scope.span.log_kv(key: 'message', value: error.message) end raise error ensure scope.close if scope end