Module: Datadog::Contrib::Redis::Instrumentation::InstanceMethods
- Defined in:
- lib/ddtrace/contrib/redis/instrumentation.rb
Overview
InstanceMethods - implementing instrumentation
Instance Method Summary collapse
Instance Method Details
#call(*args, &block) ⇒ Object
17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 |
# File 'lib/ddtrace/contrib/redis/instrumentation.rb', line 17 def call(*args, &block) pin = Datadog::Pin.get_from(self) return super unless pin && pin.tracer response = nil pin.tracer.trace(Datadog::Contrib::Redis::Ext::SPAN_COMMAND) do |span| span.service = pin.service span.span_type = Datadog::Contrib::Redis::Ext::TYPE span.resource = get_command(args) Datadog::Contrib::Redis::Tags.(self, span) response = super end response end |
#call_pipeline(*args, &block) ⇒ Object
34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 |
# File 'lib/ddtrace/contrib/redis/instrumentation.rb', line 34 def call_pipeline(*args, &block) pin = Datadog::Pin.get_from(self) return super unless pin && pin.tracer response = nil pin.tracer.trace(Datadog::Contrib::Redis::Ext::SPAN_COMMAND) do |span| span.service = pin.service span.span_type = Datadog::Contrib::Redis::Ext::TYPE commands = get_pipeline_commands(args) span.resource = commands.join("\n") span.set_metric Datadog::Contrib::Redis::Ext::METRIC_PIPELINE_LEN, commands.length Datadog::Contrib::Redis::Tags.(self, span) response = super end response end |
#datadog_pin ⇒ Object
53 54 55 56 57 58 59 60 61 62 63 |
# File 'lib/ddtrace/contrib/redis/instrumentation.rb', line 53 def datadog_pin @datadog_pin ||= begin pin = Datadog::Pin.new( datadog_configuration[:service_name], app: Ext::APP, app_type: Datadog::Ext::AppTypes::DB, tracer: -> { datadog_configuration[:tracer] } ) pin.onto(self) end end |