Module: Datadog::Tracing::Contrib::Redis::TraceMiddleware

Defined in:
lib/datadog/tracing/contrib/redis/trace_middleware.rb

Overview

Instrumentation for Redis 5+

Instance Method Summary collapse

Instance Method Details

#call(commands, redis_config) ⇒ Object



12
13
14
15
16
17
18
19
20
21
22
23
24
25
# File 'lib/datadog/tracing/contrib/redis/trace_middleware.rb', line 12

def call(commands, redis_config)
  Tracing.trace(Contrib::Redis::Ext::SPAN_COMMAND) do |span|
    datadog_configuration = resolve(redis_config)
    resource = get_command(commands, datadog_configuration[:command_args])

    span.service = datadog_configuration[:service_name]
    span.span_type = Contrib::Redis::Ext::TYPE
    span.resource = resource

    Contrib::Redis::Tags.set_common_tags(redis_config, span, datadog_configuration[:command_args])

    super
  end
end

#call_pipelined(commands, redis_config) ⇒ Object



27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
# File 'lib/datadog/tracing/contrib/redis/trace_middleware.rb', line 27

def call_pipelined(commands, redis_config)
  Tracing.trace(Contrib::Redis::Ext::SPAN_COMMAND) do |span|
    datadog_configuration = resolve(redis_config)
    pipelined_commands = get_pipeline_commands(commands, datadog_configuration[:command_args])

    span.service = datadog_configuration[:service_name]
    span.span_type = Contrib::Redis::Ext::TYPE
    span.resource = pipelined_commands.join("\n")
    span.set_metric Contrib::Redis::Ext::METRIC_PIPELINE_LEN, pipelined_commands.length

    Contrib::Redis::Tags.set_common_tags(redis_config, span, datadog_configuration[:command_args])

    super
  end
end