Sha256: 1679b9a11c5d4c0282e0d705f4b02b59c462419cb40cb190ac8a5b97d1503a50
Contents?: true
Size: 1.23 KB
Versions: 3
Compression:
Stored size: 1.23 KB
Contents
require 'ddtrace/runtime/metrics' module Datadog # SyncWriter flushes both services and traces synchronously class SyncWriter attr_reader \ :runtime_metrics, :transport def initialize(options = {}) @transport = options.fetch(:transport) do transport_options = options.fetch(:transport_options, {}) HTTPTransport.new(transport_options) end # Runtime metrics @runtime_metrics = options.fetch(:runtime_metrics) do Runtime::Metrics.new end end def write(trace, services = nil) unless services.nil? Datadog::Patcher.do_once('SyncWriter#write') do Datadog::Tracer.log.warn(%( write: Writing services has been deprecated and no longer need to be provided. write(traces, services) can be updted to write(traces) )) end end perform_concurrently( proc { flush_trace(trace) } ) rescue => e Tracer.log.debug(e) end private def perform_concurrently(*tasks) tasks.map { |task| Thread.new(&task) }.each(&:join) end def flush_trace(trace) processed_traces = Pipeline.process!([trace]) transport.send(:traces, processed_traces) end end end
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
ddtrace-0.23.3 | lib/ddtrace/sync_writer.rb |
ddtrace-0.23.2 | lib/ddtrace/sync_writer.rb |
ddtrace-0.23.1 | lib/ddtrace/sync_writer.rb |