Sha256: 914fa3ee9554892ae594a2fa6f37333cc5dbd5311ba8e055c169e251d3fc5ecb

Contents?: true

Size: 1.37 KB

Versions: 14

Compression:

Stored size: 1.37 KB

Contents

require 'ddtrace/ext/correlation'
require 'ddtrace/environment'

module Datadog
  # Contains behavior for managing correlations with tracing
  # e.g. Retrieve a correlation to the current trace for logging, etc.
  module Correlation
    # Struct representing correlation
    Identifier = 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

    module_function

    # Produces a CorrelationIdentifier from the Context provided
    def identifier_from_context(context)
      return Identifier.new.freeze if context.nil?
      Identifier.new(context.trace_id, context.span_id).freeze
    end
  end
end

Version data entries

14 entries across 14 versions & 2 rubygems

Version Path
ddtrace-0.45.0 lib/ddtrace/correlation.rb
ddtrace-0.44.0 lib/ddtrace/correlation.rb
ddtrace-0.43.0 lib/ddtrace/correlation.rb
ddtrace-0.42.0 lib/ddtrace/correlation.rb
ddtrace-0.41.0 lib/ddtrace/correlation.rb
ls-trace-0.2.0 lib/ddtrace/correlation.rb
ddtrace-0.40.0 lib/ddtrace/correlation.rb
ddtrace-0.39.0 lib/ddtrace/correlation.rb
ddtrace-0.38.0 lib/ddtrace/correlation.rb
ddtrace-0.37.0 lib/ddtrace/correlation.rb
ddtrace-0.36.0 lib/ddtrace/correlation.rb
ddtrace-0.35.2 lib/ddtrace/correlation.rb
ddtrace-0.35.1 lib/ddtrace/correlation.rb
ddtrace-0.35.0 lib/ddtrace/correlation.rb