Sha256: 49f1ac3ddbc80d8d7b136762ac3a00370ae0aa18f77bf1695d0786d4595b9acf

Contents?: true

Size: 923 Bytes

Versions: 12

Compression:

Stored size: 923 Bytes

Contents

# typed: true

require_relative '../tracing/metadata/ext'
require_relative '../tracing/flush'

module Datadog
  module CI
    module Flush
      # Common behavior for CI flushing
      module Tagging
        # Decorate a trace with CI tags
        def get_trace(trace_op)
          trace = trace_op.flush!

          # Origin tag is required on every span
          trace.spans.each do |span|
            span.set_tag(
              Tracing::Metadata::Ext::Distributed::TAG_ORIGIN,
              trace.origin
            )
          end

          trace
        end
      end

      # Consumes only completed traces (where all spans have finished)
      class Finished < Tracing::Flush::Finished
        prepend Tagging
      end

      # Performs partial trace flushing to avoid large traces residing in memory for too long
      class Partial < Tracing::Flush::Partial
        prepend Tagging
      end
    end
  end
end

Version data entries

12 entries across 12 versions & 1 rubygems

Version Path
ddtrace-1.9.0 lib/datadog/ci/flush.rb
ddtrace-1.8.0 lib/datadog/ci/flush.rb
ddtrace-1.7.0 lib/datadog/ci/flush.rb
ddtrace-1.6.1 lib/datadog/ci/flush.rb
ddtrace-1.6.0 lib/datadog/ci/flush.rb
ddtrace-1.5.2 lib/datadog/ci/flush.rb
ddtrace-1.5.1 lib/datadog/ci/flush.rb
ddtrace-1.5.0 lib/datadog/ci/flush.rb
ddtrace-1.4.2 lib/datadog/ci/flush.rb
ddtrace-1.4.1 lib/datadog/ci/flush.rb
ddtrace-1.4.0 lib/datadog/ci/flush.rb
ddtrace-1.3.0 lib/datadog/ci/flush.rb