Sha256: 7472736c7473a806668fa95e257384ad3d9c53835e23df4f07b72bc96a7d58ff

Contents?: true

Size: 1.02 KB

Versions: 7

Compression:

Stored size: 1.02 KB

Contents

# typed: true

require_relative '../../../../ddtrace/transport/http/client'
require_relative '../../../../ddtrace/transport/request'

module Datadog
  module Profiling
    module Transport
      module HTTP
        # Routes, encodes, and sends tracer data to the trace agent via HTTP.
        class Client < Datadog::Transport::HTTP::Client
          def export(flush)
            send_profiling_flush(flush)
          end

          def send_profiling_flush(flush)
            # Build a request
            request = flush
            send_payload(request).tap do |response|
              if response.ok?
                Datadog.logger.debug('Successfully reported profiling data')
              else
                Datadog.logger.debug { "Failed to report profiling data -- #{response.inspect}" }
              end
            end
          end

          def send_payload(request)
            send_request(request) do |api, env|
              api.send_profiling_flush(env)
            end
          end
        end
      end
    end
  end
end

Version data entries

7 entries across 7 versions & 1 rubygems

Version Path
ddtrace-1.5.2 lib/datadog/profiling/transport/http/client.rb
ddtrace-1.5.1 lib/datadog/profiling/transport/http/client.rb
ddtrace-1.5.0 lib/datadog/profiling/transport/http/client.rb
ddtrace-1.4.2 lib/datadog/profiling/transport/http/client.rb
ddtrace-1.4.1 lib/datadog/profiling/transport/http/client.rb
ddtrace-1.4.0 lib/datadog/profiling/transport/http/client.rb
ddtrace-1.3.0 lib/datadog/profiling/transport/http/client.rb