Module: Datadog::Tracing::Contrib::Lograge::Instrumentation::InstanceMethods

Defined in:
lib/datadog/tracing/contrib/lograge/instrumentation.rb

Overview

Instance methods for configuration

Instance Method Summary collapse

Instance Method Details

#custom_options(event) ⇒ Object



15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
# File 'lib/datadog/tracing/contrib/lograge/instrumentation.rb', line 15

def custom_options(event)
  return super unless Datadog.configuration.tracing[:lograge].enabled

  original_custom_options = super(event)

  # Retrieves trace information for current thread
  correlation = Tracing.correlation
  # merge original lambda with datadog context

  datadog_trace_log_hash = {
    # Adds IDs as tags to log output
    dd: {
      # To preserve precision during JSON serialization, use strings for large numbers
      trace_id: correlation.trace_id.to_s,
      span_id: correlation.span_id.to_s,
      env: correlation.env.to_s,
      service: correlation.service.to_s,
      version: correlation.version.to_s
    },
    ddsource: Core::Logging::Ext::DD_SOURCE
  }

  datadog_trace_log_hash.merge(original_custom_options)
end