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, :env, :service, :version) do
  def initialize(*args)
    super
    self.trace_id = trace_id || 0
    self.span_id = span_id || 0
    self.env = env || Datadog.configuration.env
    self.service = service || Datadog.configuration.service
    self.version = version || Datadog.configuration.version
  end

  def to_s
    attributes = []
    attributes << "#{Ext::Correlation::ATTR_ENV}=#{env}" unless env.nil?
    attributes << "#{Ext::Correlation::ATTR_SERVICE}=#{service}" unless service.nil?
    attributes << "#{Ext::Correlation::ATTR_VERSION}=#{version}" unless version.nil?
    attributes << "#{Ext::Correlation::ATTR_TRACE_ID}=#{trace_id}"
    attributes << "#{Ext::Correlation::ATTR_SPAN_ID}=#{span_id}"
    attributes.join(' ')
  end
end.freeze

Class Method Summary collapse

Class Method Details

.identifier_from_context(context) ⇒ Object

Produces a CorrelationIdentifier from the Context provided



34
35
36
37
38
# File 'lib/ddtrace/correlation.rb', line 34

def identifier_from_context(context)
  return Identifier.new.freeze if context.nil?

  Identifier.new(context.trace_id, context.span_id).freeze
end