Module: Datadog::Correlation

Defined in:
lib/ddtrace/correlation.rb

Overview

Contains behavior for managing correlations with tracing e.g. Retrieve a correlation to the current trace for logging, etc.

Constant Summary collapse

Identifier =

Struct representing correlation

Struct.new(:trace_id, :span_id).tap do |struct|
  # Do this #class_eval here for Ruby 1.9.3 support.
  # Ruby 2.0+ supports passing a block to Struct::new instead.
  struct.class_eval do
    def initialize(*args)
      super
      self.trace_id = trace_id || 0
      self.span_id = span_id || 0
    end

    def to_s
      "dd.trace_id=#{trace_id} dd.span_id=#{span_id}"
    end
  end
end.freeze
NULL_IDENTIFIER =
Identifier.new.freeze

Class Method Summary collapse

Class Method Details

.identifier_from_context(context) ⇒ Object

Produces a CorrelationIdentifier from the Context provided



27
28
29
30
# File 'lib/ddtrace/correlation.rb', line 27

def identifier_from_context(context)
  return NULL_IDENTIFIER if context.nil?
  Identifier.new(context.trace_id, context.span_id).freeze
end