Sha256: cd623377117ad04023ac8b263b59cd583624e3f672ff67ed8e6ee85ed7083c57

Contents?: true

Size: 1.12 KB

Versions: 6

Compression:

Stored size: 1.12 KB

Contents

require 'ddtrace/transport/traces'

require 'ddtrace/transport/io/response'
require 'ddtrace/transport/io/client'

module Datadog
  module Transport
    module IO
      # IO transport behavior for traces
      module Traces
        # Response from HTTP transport for traces
        class Response < IO::Response
          include Transport::Traces::Response
        end

        # Extensions for HTTP client
        module Client
          def send_traces(traces)
            # Build a request
            req = Transport::Traces::Request.new(traces)

            send_request(req) do |out, request|
              # Encode trace data
              data = encode_data(encoder, request)

              # Write to IO
              result = if block_given?
                         yield(out, data)
                       else
                         write_data(out, data)
                       end

              # Generate response
              Traces::Response.new(result)
            end
          end
        end

        # Add traces behavior to transport components
        IO::Client.send(:include, Traces::Client)
      end
    end
  end
end

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
ddtrace-0.34.2 lib/ddtrace/transport/io/traces.rb
ddtrace-0.34.1 lib/ddtrace/transport/io/traces.rb
ddtrace-0.34.0 lib/ddtrace/transport/io/traces.rb
ddtrace-0.33.1 lib/ddtrace/transport/io/traces.rb
ddtrace-0.33.0 lib/ddtrace/transport/io/traces.rb
ddtrace-0.32.0 lib/ddtrace/transport/io/traces.rb