lib/datadog/tracing/writer.rb
require_relative 'event' require_relative 'runtime/metrics' require_relative 'workers' require_relative 'transport/http' module Datadog module Tracing # Processor that sends traces and metadata to the agent # DEV: Our goal is for {Datadog::Tracing::Workers::TraceWriter} to replace this class in the future # @public_api class Writer attr_reader \ :transport, :worker, :events def initialize(options = {}) # writer and transport parameters @buff_size = options.fetch(:buffer_size, Workers::AsyncTransport::DEFAULT_BUFFER_MAX_SIZE) @flush_interval = options.fetch(:flush_interval, Workers::AsyncTransport::DEFAULT_FLUSH_INTERVAL) transport_options = options.fetch(:transport_options, {}) transport_options[:agent_settings] = options[:agent_settings] if options.key?(:agent_settings) # transport and buffers @transport = options.fetch(:transport) do Transport::HTTP.default(**transport_options) end @shutdown_timeout = options.fetch(:shutdown_timeout, Workers::AsyncTransport::DEFAULT_SHUTDOWN_TIMEOUT) # handles the thread creation after an eventual fork @mutex_after_fork = Mutex.new @pid = nil @traces_flushed = 0 # one worker for traces @worker = nil # Once stopped, this writer instance cannot be restarted. # This allow for graceful shutdown, while preventing # the host application from inadvertently start new # threads during shutdown. @stopped = false # Callback handler @events = Events.new end # Explicitly starts the {Writer}'s internal worker. # # The {Writer} is also automatically started when necessary during calls to {.write}. def start @mutex_after_fork.synchronize do return false if @stopped pid = Process.pid return if @worker && pid == @pid @pid = pid start_worker true end end # spawns a worker for spans; they share the same transport which is thread-safe # @!visibility private def start_worker @trace_handler = ->(items, transport) { send_spans(items, transport) } @worker = Workers::AsyncTransport.new( transport: @transport, buffer_size: @buff_size, on_trace: @trace_handler, interval: @flush_interval, shutdown_timeout: @shutdown_timeout ) @worker.start end # Gracefully shuts down this writer. # # Once stopped methods calls won't fail, but # no internal work will be performed. # # It is not possible to restart a stopped writer instance. def stop @mutex_after_fork.synchronize { stop_worker } end def stop_worker @stopped = true return if @worker.nil? @worker.stop @worker = nil true end private :start_worker, :stop_worker # flush spans to the trace-agent, handles spans only # @!visibility private def send_spans(traces, transport) return true if traces.empty? # Send traces and get responses responses = transport.send_traces(traces) # Tally up successful flushes responses.reject { |x| x.internal_error? || x.server_error? }.each do |response| @traces_flushed += response.trace_count end events.after_send.publish(self, responses) # Return if server error occurred. !responses.find(&:server_error?) end # enqueue the trace for submission to the API def write(trace) # In multiprocess environments, the main process initializes the +Writer+ instance and if # the process forks (i.e. a web server like Unicorn or Puma with multiple workers) the new # processes will share the same +Writer+ until the first write (COW). Because of that, # each process owns a different copy of the +@buffer+ after each write and so the # +AsyncTransport+ will not send data to the trace agent. # # This check ensures that if a process doesn't own the current +Writer+, async workers # will be initialized again (but only once for each process). start if @worker.nil? || @pid != Process.pid # TODO: Remove this, and have the tracer pump traces directly to runtime metrics # instead of working through the trace writer. # Associate trace with runtime metrics Runtime::Metrics.associate_trace(trace) worker_local = @worker if worker_local worker_local.enqueue_trace(trace) elsif !@stopped Datadog.logger.debug('Writer either failed to start or was stopped before #write could complete') end end # stats returns a dictionary of stats about the writer. def stats { traces_flushed: @traces_flushed, transport: @transport.stats } end # Callback behavior class Events attr_reader \ :after_send def initialize @after_send = AfterSend.new end # Triggered after the writer sends traces through the transport. # Provides the Writer instance and transport response list to the callback. class AfterSend < Tracing::Event def initialize super(:after_send) end end end private def reset_stats! @traces_flushed = 0 @transport.stats.reset! end end end end
Source Files
- lib/datadog/appsec.rb
- lib/datadog/appsec/assets.rb
- lib/datadog/appsec/autoload.rb
- lib/datadog/appsec/component.rb
- lib/datadog/appsec/configuration.rb
- lib/datadog/appsec/configuration/settings.rb
- lib/datadog/appsec/contrib/auto_instrument.rb
- lib/datadog/appsec/contrib/devise/event.rb
- lib/datadog/appsec/contrib/devise/ext.rb
- lib/datadog/appsec/contrib/devise/integration.rb
- lib/datadog/appsec/contrib/devise/patcher.rb
- lib/datadog/appsec/contrib/devise/patcher/authenticatable_patch.rb
- lib/datadog/appsec/contrib/devise/patcher/registration_controller_patch.rb
- lib/datadog/appsec/contrib/devise/resource.rb
- lib/datadog/appsec/contrib/devise/tracking.rb
- lib/datadog/appsec/contrib/integration.rb
- lib/datadog/appsec/contrib/patcher.rb
- lib/datadog/appsec/contrib/rack/ext.rb
- lib/datadog/appsec/contrib/rack/gateway/request.rb
- lib/datadog/appsec/contrib/rack/gateway/response.rb
- lib/datadog/appsec/contrib/rack/gateway/watcher.rb
- lib/datadog/appsec/contrib/rack/integration.rb
- lib/datadog/appsec/contrib/rack/patcher.rb
- lib/datadog/appsec/contrib/rack/reactive/request.rb
- lib/datadog/appsec/contrib/rack/reactive/request_body.rb
- lib/datadog/appsec/contrib/rack/reactive/response.rb
- lib/datadog/appsec/contrib/rack/request_body_middleware.rb
- lib/datadog/appsec/contrib/rack/request_middleware.rb
- lib/datadog/appsec/contrib/rails/ext.rb
- lib/datadog/appsec/contrib/rails/framework.rb
- lib/datadog/appsec/contrib/rails/gateway/request.rb
- lib/datadog/appsec/contrib/rails/gateway/watcher.rb
- lib/datadog/appsec/contrib/rails/integration.rb
- lib/datadog/appsec/contrib/rails/patcher.rb
- lib/datadog/appsec/contrib/rails/reactive/action.rb
- lib/datadog/appsec/contrib/rails/request.rb
- lib/datadog/appsec/contrib/rails/request_middleware.rb
- lib/datadog/appsec/contrib/sinatra/ext.rb
- lib/datadog/appsec/contrib/sinatra/framework.rb
- lib/datadog/appsec/contrib/sinatra/gateway/request.rb
- lib/datadog/appsec/contrib/sinatra/gateway/route_params.rb
- lib/datadog/appsec/contrib/sinatra/gateway/watcher.rb
- lib/datadog/appsec/contrib/sinatra/integration.rb
- lib/datadog/appsec/contrib/sinatra/patcher.rb
- lib/datadog/appsec/contrib/sinatra/reactive/routed.rb
- lib/datadog/appsec/contrib/sinatra/request_middleware.rb
- lib/datadog/appsec/event.rb
- lib/datadog/appsec/ext.rb
- lib/datadog/appsec/extensions.rb
- lib/datadog/appsec/instrumentation.rb
- lib/datadog/appsec/instrumentation/gateway.rb
- lib/datadog/appsec/instrumentation/gateway/argument.rb
- lib/datadog/appsec/monitor.rb
- lib/datadog/appsec/monitor/gateway/watcher.rb
- lib/datadog/appsec/monitor/reactive/set_user.rb
- lib/datadog/appsec/processor.rb
- lib/datadog/appsec/processor/actions.rb
- lib/datadog/appsec/processor/rule_loader.rb
- lib/datadog/appsec/processor/rule_merger.rb
- lib/datadog/appsec/rate_limiter.rb
- lib/datadog/appsec/reactive/address_hash.rb
- lib/datadog/appsec/reactive/engine.rb
- lib/datadog/appsec/reactive/operation.rb
- lib/datadog/appsec/reactive/subscriber.rb
- lib/datadog/appsec/remote.rb
- lib/datadog/appsec/response.rb
- lib/datadog/appsec/sample_rate.rb
- lib/datadog/appsec/scope.rb
- lib/datadog/appsec/utils.rb
- lib/datadog/appsec/utils/http.rb
- lib/datadog/appsec/utils/http/media_range.rb
- lib/datadog/appsec/utils/http/media_type.rb
- lib/datadog/core.rb
- lib/datadog/core/backport.rb
- lib/datadog/core/buffer/cruby.rb
- lib/datadog/core/buffer/random.rb
- lib/datadog/core/buffer/thread_safe.rb
- lib/datadog/core/chunker.rb
- lib/datadog/core/configuration.rb
- lib/datadog/core/configuration/agent_settings_resolver.rb
- lib/datadog/core/configuration/base.rb
- lib/datadog/core/configuration/components.rb
- lib/datadog/core/configuration/ext.rb
- lib/datadog/core/configuration/option.rb
- lib/datadog/core/configuration/option_definition.rb
- lib/datadog/core/configuration/options.rb
- lib/datadog/core/configuration/settings.rb
- lib/datadog/core/diagnostics/environment_logger.rb
- lib/datadog/core/diagnostics/health.rb
- lib/datadog/core/encoding.rb
- lib/datadog/core/environment/cgroup.rb
- lib/datadog/core/environment/class_count.rb
- lib/datadog/core/environment/container.rb
- lib/datadog/core/environment/execution.rb
- lib/datadog/core/environment/ext.rb
- lib/datadog/core/environment/gc.rb
- lib/datadog/core/environment/identity.rb
- lib/datadog/core/environment/platform.rb
- lib/datadog/core/environment/socket.rb
- lib/datadog/core/environment/thread_count.rb
- lib/datadog/core/environment/variable_helpers.rb
- lib/datadog/core/environment/vm_cache.rb
- lib/datadog/core/environment/yjit.rb
- lib/datadog/core/error.rb
- lib/datadog/core/extensions.rb
- lib/datadog/core/git/ext.rb
- lib/datadog/core/header_collection.rb
- lib/datadog/core/logger.rb
- lib/datadog/core/logging/ext.rb
- lib/datadog/core/metrics/client.rb
- lib/datadog/core/metrics/ext.rb
- lib/datadog/core/metrics/helpers.rb
- lib/datadog/core/metrics/logging.rb
- lib/datadog/core/metrics/metric.rb
- lib/datadog/core/metrics/options.rb
- lib/datadog/core/pin.rb
- lib/datadog/core/remote.rb
- lib/datadog/core/remote/client.rb
- lib/datadog/core/remote/client/capabilities.rb
- lib/datadog/core/remote/component.rb
- lib/datadog/core/remote/configuration.rb
- lib/datadog/core/remote/configuration/content.rb
- lib/datadog/core/remote/configuration/digest.rb
- lib/datadog/core/remote/configuration/path.rb
- lib/datadog/core/remote/configuration/repository.rb
- lib/datadog/core/remote/configuration/target.rb
- lib/datadog/core/remote/dispatcher.rb
- lib/datadog/core/remote/ext.rb
- lib/datadog/core/remote/negotiation.rb
- lib/datadog/core/remote/transport/config.rb
- lib/datadog/core/remote/transport/http.rb
- lib/datadog/core/remote/transport/http/api.rb
- lib/datadog/core/remote/transport/http/api/instance.rb
- lib/datadog/core/remote/transport/http/api/spec.rb
- lib/datadog/core/remote/transport/http/builder.rb
- lib/datadog/core/remote/transport/http/client.rb
- lib/datadog/core/remote/transport/http/config.rb
- lib/datadog/core/remote/transport/http/negotiation.rb
- lib/datadog/core/remote/transport/negotiation.rb
- lib/datadog/core/remote/worker.rb
- lib/datadog/core/runtime/ext.rb
- lib/datadog/core/runtime/metrics.rb
- lib/datadog/core/telemetry/client.rb
- lib/datadog/core/telemetry/collector.rb
- lib/datadog/core/telemetry/emitter.rb
- lib/datadog/core/telemetry/event.rb
- lib/datadog/core/telemetry/ext.rb
- lib/datadog/core/telemetry/heartbeat.rb
- lib/datadog/core/telemetry/http/adapters/net.rb
- lib/datadog/core/telemetry/http/env.rb
- lib/datadog/core/telemetry/http/ext.rb
- lib/datadog/core/telemetry/http/response.rb
- lib/datadog/core/telemetry/http/transport.rb
- lib/datadog/core/telemetry/v1/app_event.rb
- lib/datadog/core/telemetry/v1/application.rb
- lib/datadog/core/telemetry/v1/configuration.rb
- lib/datadog/core/telemetry/v1/dependency.rb
- lib/datadog/core/telemetry/v1/host.rb
- lib/datadog/core/telemetry/v1/integration.rb
- lib/datadog/core/telemetry/v1/product.rb
- lib/datadog/core/telemetry/v1/telemetry_request.rb
- lib/datadog/core/telemetry/v2/app_client_configuration_change.rb
- lib/datadog/core/telemetry/v2/request.rb
- lib/datadog/core/transport/ext.rb
- lib/datadog/core/transport/http/adapters/net.rb
- lib/datadog/core/transport/http/adapters/registry.rb
- lib/datadog/core/transport/http/adapters/test.rb
- lib/datadog/core/transport/http/adapters/unix_socket.rb
- lib/datadog/core/transport/http/api/endpoint.rb
- lib/datadog/core/transport/http/api/fallbacks.rb
- lib/datadog/core/transport/http/api/map.rb
- lib/datadog/core/transport/http/env.rb
- lib/datadog/core/transport/http/response.rb
- lib/datadog/core/transport/parcel.rb
- lib/datadog/core/transport/request.rb
- lib/datadog/core/transport/response.rb
- lib/datadog/core/utils.rb
- lib/datadog/core/utils/compression.rb
- lib/datadog/core/utils/duration.rb
- lib/datadog/core/utils/forking.rb
- lib/datadog/core/utils/hash.rb
- lib/datadog/core/utils/network.rb
- lib/datadog/core/utils/only_once.rb
- lib/datadog/core/utils/safe_dup.rb
- lib/datadog/core/utils/sequence.rb
- lib/datadog/core/utils/time.rb
- lib/datadog/core/vendor/ipaddr.rb
- lib/datadog/core/vendor/multipart-post/multipart.rb
- lib/datadog/core/vendor/multipart-post/multipart/post.rb
- lib/datadog/core/vendor/multipart-post/multipart/post/composite_read_io.rb
- lib/datadog/core/vendor/multipart-post/multipart/post/multipartable.rb
- lib/datadog/core/vendor/multipart-post/multipart/post/parts.rb
- lib/datadog/core/vendor/multipart-post/multipart/post/version.rb
- lib/datadog/core/vendor/multipart-post/net/http/post/multipart.rb
- lib/datadog/core/worker.rb
- lib/datadog/core/workers/async.rb
- lib/datadog/core/workers/interval_loop.rb
- lib/datadog/core/workers/polling.rb
- lib/datadog/core/workers/queue.rb
- lib/datadog/core/workers/runtime_metrics.rb
- lib/datadog/kit.rb
- lib/datadog/kit/appsec/events.rb
- lib/datadog/kit/enable_core_dumps.rb
- lib/datadog/kit/identity.rb
- lib/datadog/opentelemetry.rb
- lib/datadog/opentelemetry/api/context.rb
- lib/datadog/opentelemetry/api/trace/span.rb
- lib/datadog/opentelemetry/sdk/configurator.rb
- lib/datadog/opentelemetry/sdk/id_generator.rb
- lib/datadog/opentelemetry/sdk/propagator.rb
- lib/datadog/opentelemetry/sdk/span_processor.rb
- lib/datadog/opentelemetry/sdk/trace/span.rb
- lib/datadog/opentelemetry/trace.rb
- lib/datadog/opentracer.rb
- lib/datadog/opentracer/binary_propagator.rb
- lib/datadog/opentracer/carrier.rb
- lib/datadog/opentracer/distributed_headers.rb
- lib/datadog/opentracer/global_tracer.rb
- lib/datadog/opentracer/propagator.rb
- lib/datadog/opentracer/rack_propagator.rb
- lib/datadog/opentracer/scope.rb
- lib/datadog/opentracer/scope_manager.rb
- lib/datadog/opentracer/span.rb
- lib/datadog/opentracer/span_context.rb
- lib/datadog/opentracer/span_context_factory.rb
- lib/datadog/opentracer/text_map_propagator.rb
- lib/datadog/opentracer/thread_local_scope.rb
- lib/datadog/opentracer/thread_local_scope_manager.rb
- lib/datadog/opentracer/tracer.rb
- lib/datadog/profiling.rb
- lib/datadog/profiling/collectors/code_provenance.rb
- lib/datadog/profiling/collectors/cpu_and_wall_time_worker.rb
- lib/datadog/profiling/collectors/dynamic_sampling_rate.rb
- lib/datadog/profiling/collectors/idle_sampling_helper.rb
- lib/datadog/profiling/collectors/stack.rb
- lib/datadog/profiling/collectors/thread_context.rb
- lib/datadog/profiling/component.rb
- lib/datadog/profiling/diagnostics/environment_logger.rb
- lib/datadog/profiling/exporter.rb
- lib/datadog/profiling/ext.rb
- lib/datadog/profiling/ext/forking.rb
- lib/datadog/profiling/flush.rb
- lib/datadog/profiling/http_transport.rb
- lib/datadog/profiling/load_native_extension.rb
- lib/datadog/profiling/native_extension.rb
- lib/datadog/profiling/preload.rb
- lib/datadog/profiling/profiler.rb
- lib/datadog/profiling/scheduler.rb
- lib/datadog/profiling/stack_recorder.rb
- lib/datadog/profiling/tag_builder.rb
- lib/datadog/profiling/tasks/exec.rb
- lib/datadog/profiling/tasks/help.rb
- lib/datadog/profiling/tasks/setup.rb
- lib/datadog/tracing.rb
- lib/datadog/tracing/analytics.rb
- lib/datadog/tracing/buffer.rb
- lib/datadog/tracing/client_ip.rb
- lib/datadog/tracing/component.rb
- lib/datadog/tracing/configuration/agent_settings_resolver.rb
- lib/datadog/tracing/configuration/dynamic.rb
- lib/datadog/tracing/configuration/dynamic/option.rb
- lib/datadog/tracing/configuration/ext.rb
- lib/datadog/tracing/configuration/http.rb
- lib/datadog/tracing/configuration/settings.rb
- lib/datadog/tracing/context.rb
- lib/datadog/tracing/context_provider.rb
- lib/datadog/tracing/contrib.rb
- lib/datadog/tracing/contrib/action_cable/configuration/settings.rb
- lib/datadog/tracing/contrib/action_cable/event.rb
- lib/datadog/tracing/contrib/action_cable/events.rb
- lib/datadog/tracing/contrib/action_cable/events/broadcast.rb
- lib/datadog/tracing/contrib/action_cable/events/perform_action.rb
- lib/datadog/tracing/contrib/action_cable/events/transmit.rb
- lib/datadog/tracing/contrib/action_cable/ext.rb
- lib/datadog/tracing/contrib/action_cable/instrumentation.rb
- lib/datadog/tracing/contrib/action_cable/integration.rb
- lib/datadog/tracing/contrib/action_cable/patcher.rb
- lib/datadog/tracing/contrib/action_mailer/configuration/settings.rb
- lib/datadog/tracing/contrib/action_mailer/event.rb
- lib/datadog/tracing/contrib/action_mailer/events.rb
- lib/datadog/tracing/contrib/action_mailer/events/deliver.rb
- lib/datadog/tracing/contrib/action_mailer/events/process.rb
- lib/datadog/tracing/contrib/action_mailer/ext.rb
- lib/datadog/tracing/contrib/action_mailer/integration.rb
- lib/datadog/tracing/contrib/action_mailer/patcher.rb
- lib/datadog/tracing/contrib/action_pack/action_controller/instrumentation.rb
- lib/datadog/tracing/contrib/action_pack/action_controller/patcher.rb
- lib/datadog/tracing/contrib/action_pack/configuration/settings.rb
- lib/datadog/tracing/contrib/action_pack/ext.rb
- lib/datadog/tracing/contrib/action_pack/integration.rb
- lib/datadog/tracing/contrib/action_pack/patcher.rb
- lib/datadog/tracing/contrib/action_pack/utils.rb
- lib/datadog/tracing/contrib/action_view/configuration/settings.rb
- lib/datadog/tracing/contrib/action_view/event.rb
- lib/datadog/tracing/contrib/action_view/events.rb
- lib/datadog/tracing/contrib/action_view/events/render_partial.rb
- lib/datadog/tracing/contrib/action_view/events/render_template.rb
- lib/datadog/tracing/contrib/action_view/ext.rb
- lib/datadog/tracing/contrib/action_view/instrumentation/partial_renderer.rb
- lib/datadog/tracing/contrib/action_view/instrumentation/template_renderer.rb
- lib/datadog/tracing/contrib/action_view/integration.rb
- lib/datadog/tracing/contrib/action_view/patcher.rb
- lib/datadog/tracing/contrib/action_view/utils.rb
- lib/datadog/tracing/contrib/active_job/configuration/settings.rb
- lib/datadog/tracing/contrib/active_job/event.rb
- lib/datadog/tracing/contrib/active_job/events.rb
- lib/datadog/tracing/contrib/active_job/events/discard.rb
- lib/datadog/tracing/contrib/active_job/events/enqueue.rb
- lib/datadog/tracing/contrib/active_job/events/enqueue_at.rb
- lib/datadog/tracing/contrib/active_job/events/enqueue_retry.rb
- lib/datadog/tracing/contrib/active_job/events/perform.rb
- lib/datadog/tracing/contrib/active_job/events/retry_stopped.rb
- lib/datadog/tracing/contrib/active_job/ext.rb
- lib/datadog/tracing/contrib/active_job/integration.rb
- lib/datadog/tracing/contrib/active_job/log_injection.rb
- lib/datadog/tracing/contrib/active_job/patcher.rb
- lib/datadog/tracing/contrib/active_model_serializers/configuration/settings.rb
- lib/datadog/tracing/contrib/active_model_serializers/event.rb
- lib/datadog/tracing/contrib/active_model_serializers/events.rb
- lib/datadog/tracing/contrib/active_model_serializers/events/render.rb
- lib/datadog/tracing/contrib/active_model_serializers/events/serialize.rb
- lib/datadog/tracing/contrib/active_model_serializers/ext.rb
- lib/datadog/tracing/contrib/active_model_serializers/integration.rb
- lib/datadog/tracing/contrib/active_model_serializers/patcher.rb
- lib/datadog/tracing/contrib/active_record/configuration/makara_resolver.rb
- lib/datadog/tracing/contrib/active_record/configuration/resolver.rb
- lib/datadog/tracing/contrib/active_record/configuration/settings.rb
- lib/datadog/tracing/contrib/active_record/event.rb
- lib/datadog/tracing/contrib/active_record/events.rb
- lib/datadog/tracing/contrib/active_record/events/instantiation.rb
- lib/datadog/tracing/contrib/active_record/events/sql.rb
- lib/datadog/tracing/contrib/active_record/ext.rb
- lib/datadog/tracing/contrib/active_record/integration.rb
- lib/datadog/tracing/contrib/active_record/patcher.rb
- lib/datadog/tracing/contrib/active_record/utils.rb
- lib/datadog/tracing/contrib/active_record/vendor/connection_specification.rb
- lib/datadog/tracing/contrib/active_support/cache/instrumentation.rb
- lib/datadog/tracing/contrib/active_support/cache/patcher.rb
- lib/datadog/tracing/contrib/active_support/cache/redis.rb
- lib/datadog/tracing/contrib/active_support/configuration/settings.rb
- lib/datadog/tracing/contrib/active_support/ext.rb
- lib/datadog/tracing/contrib/active_support/integration.rb
- lib/datadog/tracing/contrib/active_support/notifications/event.rb
- lib/datadog/tracing/contrib/active_support/notifications/subscriber.rb
- lib/datadog/tracing/contrib/active_support/notifications/subscription.rb
- lib/datadog/tracing/contrib/active_support/patcher.rb
- lib/datadog/tracing/contrib/analytics.rb
- lib/datadog/tracing/contrib/auto_instrument.rb
- lib/datadog/tracing/contrib/aws/configuration/settings.rb
- lib/datadog/tracing/contrib/aws/ext.rb
- lib/datadog/tracing/contrib/aws/instrumentation.rb
- lib/datadog/tracing/contrib/aws/integration.rb
- lib/datadog/tracing/contrib/aws/parsed_context.rb
- lib/datadog/tracing/contrib/aws/patcher.rb
- lib/datadog/tracing/contrib/aws/service/base.rb
- lib/datadog/tracing/contrib/aws/service/dynamodb.rb
- lib/datadog/tracing/contrib/aws/service/eventbridge.rb
- lib/datadog/tracing/contrib/aws/service/kinesis.rb
- lib/datadog/tracing/contrib/aws/service/s3.rb
- lib/datadog/tracing/contrib/aws/service/sns.rb
- lib/datadog/tracing/contrib/aws/service/sqs.rb
- lib/datadog/tracing/contrib/aws/service/states.rb
- lib/datadog/tracing/contrib/aws/services.rb
- lib/datadog/tracing/contrib/concurrent_ruby/configuration/settings.rb
- lib/datadog/tracing/contrib/concurrent_ruby/context_composite_executor_service.rb
- lib/datadog/tracing/contrib/concurrent_ruby/ext.rb
- lib/datadog/tracing/contrib/concurrent_ruby/future_patch.rb
- lib/datadog/tracing/contrib/concurrent_ruby/integration.rb
- lib/datadog/tracing/contrib/concurrent_ruby/patcher.rb
- lib/datadog/tracing/contrib/concurrent_ruby/promises_future_patch.rb
- lib/datadog/tracing/contrib/configurable.rb
- lib/datadog/tracing/contrib/configuration/resolver.rb
- lib/datadog/tracing/contrib/configuration/resolvers/pattern_resolver.rb
- lib/datadog/tracing/contrib/configuration/settings.rb
- lib/datadog/tracing/contrib/dalli/configuration/settings.rb
- lib/datadog/tracing/contrib/dalli/ext.rb
- lib/datadog/tracing/contrib/dalli/instrumentation.rb
- lib/datadog/tracing/contrib/dalli/integration.rb
- lib/datadog/tracing/contrib/dalli/patcher.rb
- lib/datadog/tracing/contrib/dalli/quantize.rb
- lib/datadog/tracing/contrib/delayed_job/configuration/settings.rb
- lib/datadog/tracing/contrib/delayed_job/ext.rb
- lib/datadog/tracing/contrib/delayed_job/integration.rb
- lib/datadog/tracing/contrib/delayed_job/patcher.rb
- lib/datadog/tracing/contrib/delayed_job/plugin.rb
- lib/datadog/tracing/contrib/delayed_job/server_internal_tracer/worker.rb
- lib/datadog/tracing/contrib/elasticsearch/configuration/settings.rb
- lib/datadog/tracing/contrib/elasticsearch/ext.rb
- lib/datadog/tracing/contrib/elasticsearch/integration.rb
- lib/datadog/tracing/contrib/elasticsearch/patcher.rb
- lib/datadog/tracing/contrib/elasticsearch/quantize.rb
- lib/datadog/tracing/contrib/ethon/configuration/settings.rb
- lib/datadog/tracing/contrib/ethon/easy_patch.rb
- lib/datadog/tracing/contrib/ethon/ext.rb
- lib/datadog/tracing/contrib/ethon/integration.rb
- lib/datadog/tracing/contrib/ethon/multi_patch.rb
- lib/datadog/tracing/contrib/ethon/patcher.rb
- lib/datadog/tracing/contrib/excon/configuration/settings.rb
- lib/datadog/tracing/contrib/excon/ext.rb
- lib/datadog/tracing/contrib/excon/integration.rb
- lib/datadog/tracing/contrib/excon/middleware.rb
- lib/datadog/tracing/contrib/excon/patcher.rb
- lib/datadog/tracing/contrib/ext.rb
- lib/datadog/tracing/contrib/extensions.rb
- lib/datadog/tracing/contrib/faraday/configuration/settings.rb
- lib/datadog/tracing/contrib/faraday/connection.rb
- lib/datadog/tracing/contrib/faraday/ext.rb
- lib/datadog/tracing/contrib/faraday/integration.rb
- lib/datadog/tracing/contrib/faraday/middleware.rb
- lib/datadog/tracing/contrib/faraday/patcher.rb
- lib/datadog/tracing/contrib/faraday/rack_builder.rb
- lib/datadog/tracing/contrib/grape/configuration/settings.rb
- lib/datadog/tracing/contrib/grape/endpoint.rb
- lib/datadog/tracing/contrib/grape/ext.rb
- lib/datadog/tracing/contrib/grape/instrumentation.rb
- lib/datadog/tracing/contrib/grape/integration.rb
- lib/datadog/tracing/contrib/grape/patcher.rb
- lib/datadog/tracing/contrib/graphql/configuration/settings.rb
- lib/datadog/tracing/contrib/graphql/ext.rb
- lib/datadog/tracing/contrib/graphql/integration.rb
- lib/datadog/tracing/contrib/graphql/patcher.rb
- lib/datadog/tracing/contrib/grpc/configuration/settings.rb
- lib/datadog/tracing/contrib/grpc/datadog_interceptor.rb
- lib/datadog/tracing/contrib/grpc/datadog_interceptor/client.rb
- lib/datadog/tracing/contrib/grpc/datadog_interceptor/server.rb
- lib/datadog/tracing/contrib/grpc/distributed/fetcher.rb
- lib/datadog/tracing/contrib/grpc/distributed/propagation.rb
- lib/datadog/tracing/contrib/grpc/ext.rb
- lib/datadog/tracing/contrib/grpc/formatting.rb
- lib/datadog/tracing/contrib/grpc/integration.rb
- lib/datadog/tracing/contrib/grpc/intercept_with_datadog.rb
- lib/datadog/tracing/contrib/grpc/patcher.rb
- lib/datadog/tracing/contrib/hanami/action_tracer.rb
- lib/datadog/tracing/contrib/hanami/configuration/settings.rb
- lib/datadog/tracing/contrib/hanami/ext.rb
- lib/datadog/tracing/contrib/hanami/integration.rb
- lib/datadog/tracing/contrib/hanami/patcher.rb
- lib/datadog/tracing/contrib/hanami/plugin.rb
- lib/datadog/tracing/contrib/hanami/renderer_policy_tracing.rb
- lib/datadog/tracing/contrib/hanami/router_tracing.rb
- lib/datadog/tracing/contrib/http/circuit_breaker.rb
- lib/datadog/tracing/contrib/http/configuration/settings.rb
- lib/datadog/tracing/contrib/http/distributed/fetcher.rb
- lib/datadog/tracing/contrib/http/distributed/propagation.rb
- lib/datadog/tracing/contrib/http/ext.rb
- lib/datadog/tracing/contrib/http/instrumentation.rb
- lib/datadog/tracing/contrib/http/integration.rb
- lib/datadog/tracing/contrib/http/patcher.rb
- lib/datadog/tracing/contrib/http_annotation_helper.rb
- lib/datadog/tracing/contrib/httpclient/configuration/settings.rb
- lib/datadog/tracing/contrib/httpclient/ext.rb
- lib/datadog/tracing/contrib/httpclient/instrumentation.rb
- lib/datadog/tracing/contrib/httpclient/integration.rb
- lib/datadog/tracing/contrib/httpclient/patcher.rb
- lib/datadog/tracing/contrib/httprb/configuration/settings.rb
- lib/datadog/tracing/contrib/httprb/ext.rb
- lib/datadog/tracing/contrib/httprb/instrumentation.rb
- lib/datadog/tracing/contrib/httprb/integration.rb
- lib/datadog/tracing/contrib/httprb/patcher.rb
- lib/datadog/tracing/contrib/integration.rb
- lib/datadog/tracing/contrib/kafka/configuration/settings.rb
- lib/datadog/tracing/contrib/kafka/consumer_event.rb
- lib/datadog/tracing/contrib/kafka/consumer_group_event.rb
- lib/datadog/tracing/contrib/kafka/event.rb
- lib/datadog/tracing/contrib/kafka/events.rb
- lib/datadog/tracing/contrib/kafka/events/connection/request.rb
- lib/datadog/tracing/contrib/kafka/events/consumer/process_batch.rb
- lib/datadog/tracing/contrib/kafka/events/consumer/process_message.rb
- lib/datadog/tracing/contrib/kafka/events/consumer_group/heartbeat.rb
- lib/datadog/tracing/contrib/kafka/events/consumer_group/join_group.rb
- lib/datadog/tracing/contrib/kafka/events/consumer_group/leave_group.rb
- lib/datadog/tracing/contrib/kafka/events/consumer_group/sync_group.rb
- lib/datadog/tracing/contrib/kafka/events/produce_operation/send_messages.rb
- lib/datadog/tracing/contrib/kafka/events/producer/deliver_messages.rb
- lib/datadog/tracing/contrib/kafka/ext.rb
- lib/datadog/tracing/contrib/kafka/integration.rb
- lib/datadog/tracing/contrib/kafka/patcher.rb
- lib/datadog/tracing/contrib/lograge/configuration/settings.rb
- lib/datadog/tracing/contrib/lograge/ext.rb
- lib/datadog/tracing/contrib/lograge/instrumentation.rb
- lib/datadog/tracing/contrib/lograge/integration.rb
- lib/datadog/tracing/contrib/lograge/patcher.rb
- lib/datadog/tracing/contrib/mongodb/configuration/settings.rb
- lib/datadog/tracing/contrib/mongodb/ext.rb
- lib/datadog/tracing/contrib/mongodb/instrumentation.rb
- lib/datadog/tracing/contrib/mongodb/integration.rb
- lib/datadog/tracing/contrib/mongodb/parsers.rb
- lib/datadog/tracing/contrib/mongodb/patcher.rb
- lib/datadog/tracing/contrib/mongodb/subscribers.rb
- lib/datadog/tracing/contrib/mysql2/configuration/settings.rb
- lib/datadog/tracing/contrib/mysql2/ext.rb
- lib/datadog/tracing/contrib/mysql2/instrumentation.rb
- lib/datadog/tracing/contrib/mysql2/integration.rb
- lib/datadog/tracing/contrib/mysql2/patcher.rb
- lib/datadog/tracing/contrib/opensearch/configuration/settings.rb
- lib/datadog/tracing/contrib/opensearch/ext.rb
- lib/datadog/tracing/contrib/opensearch/integration.rb
- lib/datadog/tracing/contrib/opensearch/patcher.rb
- lib/datadog/tracing/contrib/opensearch/quantize.rb
- lib/datadog/tracing/contrib/patchable.rb
- lib/datadog/tracing/contrib/patcher.rb
- lib/datadog/tracing/contrib/pg/configuration/settings.rb
- lib/datadog/tracing/contrib/pg/ext.rb
- lib/datadog/tracing/contrib/pg/instrumentation.rb
- lib/datadog/tracing/contrib/pg/integration.rb
- lib/datadog/tracing/contrib/pg/patcher.rb
- lib/datadog/tracing/contrib/presto/configuration/settings.rb
- lib/datadog/tracing/contrib/presto/ext.rb
- lib/datadog/tracing/contrib/presto/instrumentation.rb
- lib/datadog/tracing/contrib/presto/integration.rb
- lib/datadog/tracing/contrib/presto/patcher.rb
- lib/datadog/tracing/contrib/propagation/sql_comment.rb
- lib/datadog/tracing/contrib/propagation/sql_comment/comment.rb
- lib/datadog/tracing/contrib/propagation/sql_comment/ext.rb
- lib/datadog/tracing/contrib/propagation/sql_comment/mode.rb
- lib/datadog/tracing/contrib/qless/configuration/settings.rb
- lib/datadog/tracing/contrib/qless/ext.rb
- lib/datadog/tracing/contrib/qless/integration.rb
- lib/datadog/tracing/contrib/qless/patcher.rb
- lib/datadog/tracing/contrib/qless/qless_job.rb
- lib/datadog/tracing/contrib/qless/tracer_cleaner.rb
- lib/datadog/tracing/contrib/que/configuration/settings.rb
- lib/datadog/tracing/contrib/que/ext.rb
- lib/datadog/tracing/contrib/que/integration.rb
- lib/datadog/tracing/contrib/que/patcher.rb
- lib/datadog/tracing/contrib/que/tracer.rb
- lib/datadog/tracing/contrib/racecar/configuration/settings.rb
- lib/datadog/tracing/contrib/racecar/event.rb
- lib/datadog/tracing/contrib/racecar/events.rb
- lib/datadog/tracing/contrib/racecar/events/batch.rb
- lib/datadog/tracing/contrib/racecar/events/consume.rb
- lib/datadog/tracing/contrib/racecar/events/message.rb
- lib/datadog/tracing/contrib/racecar/ext.rb
- lib/datadog/tracing/contrib/racecar/integration.rb
- lib/datadog/tracing/contrib/racecar/patcher.rb
- lib/datadog/tracing/contrib/rack/configuration/settings.rb
- lib/datadog/tracing/contrib/rack/ext.rb
- lib/datadog/tracing/contrib/rack/header_collection.rb
- lib/datadog/tracing/contrib/rack/header_tagging.rb
- lib/datadog/tracing/contrib/rack/integration.rb
- lib/datadog/tracing/contrib/rack/middlewares.rb
- lib/datadog/tracing/contrib/rack/patcher.rb
- lib/datadog/tracing/contrib/rack/request_queue.rb
- lib/datadog/tracing/contrib/rails/auto_instrument_railtie.rb
- lib/datadog/tracing/contrib/rails/configuration/settings.rb
- lib/datadog/tracing/contrib/rails/ext.rb
- lib/datadog/tracing/contrib/rails/framework.rb
- lib/datadog/tracing/contrib/rails/integration.rb
- lib/datadog/tracing/contrib/rails/log_injection.rb
- lib/datadog/tracing/contrib/rails/middlewares.rb
- lib/datadog/tracing/contrib/rails/patcher.rb
- lib/datadog/tracing/contrib/rails/railtie.rb
- lib/datadog/tracing/contrib/rails/utils.rb
- lib/datadog/tracing/contrib/rake/configuration/settings.rb
- lib/datadog/tracing/contrib/rake/ext.rb
- lib/datadog/tracing/contrib/rake/instrumentation.rb
- lib/datadog/tracing/contrib/rake/integration.rb
- lib/datadog/tracing/contrib/rake/patcher.rb
- lib/datadog/tracing/contrib/redis/configuration/resolver.rb
- lib/datadog/tracing/contrib/redis/configuration/settings.rb
- lib/datadog/tracing/contrib/redis/ext.rb
- lib/datadog/tracing/contrib/redis/instrumentation.rb
- lib/datadog/tracing/contrib/redis/integration.rb
- lib/datadog/tracing/contrib/redis/patcher.rb
- lib/datadog/tracing/contrib/redis/quantize.rb
- lib/datadog/tracing/contrib/redis/tags.rb
- lib/datadog/tracing/contrib/redis/trace_middleware.rb
- lib/datadog/tracing/contrib/redis/vendor/resolver.rb
- lib/datadog/tracing/contrib/registerable.rb
- lib/datadog/tracing/contrib/registry.rb
- lib/datadog/tracing/contrib/resque/configuration/settings.rb
- lib/datadog/tracing/contrib/resque/ext.rb
- lib/datadog/tracing/contrib/resque/integration.rb
- lib/datadog/tracing/contrib/resque/patcher.rb
- lib/datadog/tracing/contrib/resque/resque_job.rb
- lib/datadog/tracing/contrib/rest_client/configuration/settings.rb
- lib/datadog/tracing/contrib/rest_client/ext.rb
- lib/datadog/tracing/contrib/rest_client/integration.rb
- lib/datadog/tracing/contrib/rest_client/patcher.rb
- lib/datadog/tracing/contrib/rest_client/request_patch.rb
- lib/datadog/tracing/contrib/roda/configuration/settings.rb
- lib/datadog/tracing/contrib/roda/ext.rb
- lib/datadog/tracing/contrib/roda/instrumentation.rb
- lib/datadog/tracing/contrib/roda/integration.rb
- lib/datadog/tracing/contrib/roda/patcher.rb
- lib/datadog/tracing/contrib/semantic_logger/configuration/settings.rb
- lib/datadog/tracing/contrib/semantic_logger/ext.rb
- lib/datadog/tracing/contrib/semantic_logger/instrumentation.rb
- lib/datadog/tracing/contrib/semantic_logger/integration.rb
- lib/datadog/tracing/contrib/semantic_logger/patcher.rb
- lib/datadog/tracing/contrib/sequel/configuration/settings.rb
- lib/datadog/tracing/contrib/sequel/database.rb
- lib/datadog/tracing/contrib/sequel/dataset.rb
- lib/datadog/tracing/contrib/sequel/ext.rb
- lib/datadog/tracing/contrib/sequel/integration.rb
- lib/datadog/tracing/contrib/sequel/patcher.rb
- lib/datadog/tracing/contrib/sequel/utils.rb
- lib/datadog/tracing/contrib/shoryuken/configuration/settings.rb
- lib/datadog/tracing/contrib/shoryuken/ext.rb
- lib/datadog/tracing/contrib/shoryuken/integration.rb
- lib/datadog/tracing/contrib/shoryuken/patcher.rb
- lib/datadog/tracing/contrib/shoryuken/tracer.rb
- lib/datadog/tracing/contrib/sidekiq/client_tracer.rb
- lib/datadog/tracing/contrib/sidekiq/configuration/settings.rb
- lib/datadog/tracing/contrib/sidekiq/distributed/propagation.rb
- lib/datadog/tracing/contrib/sidekiq/ext.rb
- lib/datadog/tracing/contrib/sidekiq/integration.rb
- lib/datadog/tracing/contrib/sidekiq/patcher.rb
- lib/datadog/tracing/contrib/sidekiq/server_internal_tracer/heartbeat.rb
- lib/datadog/tracing/contrib/sidekiq/server_internal_tracer/job_fetch.rb
- lib/datadog/tracing/contrib/sidekiq/server_internal_tracer/redis_info.rb
- lib/datadog/tracing/contrib/sidekiq/server_internal_tracer/scheduled_poller.rb
- lib/datadog/tracing/contrib/sidekiq/server_internal_tracer/stop.rb
- lib/datadog/tracing/contrib/sidekiq/server_tracer.rb
- lib/datadog/tracing/contrib/sidekiq/utils.rb
- lib/datadog/tracing/contrib/sinatra/configuration/settings.rb
- lib/datadog/tracing/contrib/sinatra/env.rb
- lib/datadog/tracing/contrib/sinatra/ext.rb
- lib/datadog/tracing/contrib/sinatra/framework.rb
- lib/datadog/tracing/contrib/sinatra/integration.rb
- lib/datadog/tracing/contrib/sinatra/patcher.rb
- lib/datadog/tracing/contrib/sinatra/tracer.rb
- lib/datadog/tracing/contrib/sinatra/tracer_middleware.rb
- lib/datadog/tracing/contrib/sneakers/configuration/settings.rb
- lib/datadog/tracing/contrib/sneakers/ext.rb
- lib/datadog/tracing/contrib/sneakers/integration.rb
- lib/datadog/tracing/contrib/sneakers/patcher.rb
- lib/datadog/tracing/contrib/sneakers/tracer.rb
- lib/datadog/tracing/contrib/span_attribute_schema.rb
- lib/datadog/tracing/contrib/status_code_matcher.rb
- lib/datadog/tracing/contrib/stripe/configuration/settings.rb
- lib/datadog/tracing/contrib/stripe/ext.rb
- lib/datadog/tracing/contrib/stripe/integration.rb
- lib/datadog/tracing/contrib/stripe/patcher.rb
- lib/datadog/tracing/contrib/stripe/request.rb
- lib/datadog/tracing/contrib/sucker_punch/configuration/settings.rb
- lib/datadog/tracing/contrib/sucker_punch/exception_handler.rb
- lib/datadog/tracing/contrib/sucker_punch/ext.rb
- lib/datadog/tracing/contrib/sucker_punch/instrumentation.rb
- lib/datadog/tracing/contrib/sucker_punch/integration.rb
- lib/datadog/tracing/contrib/sucker_punch/patcher.rb
- lib/datadog/tracing/contrib/utils/database.rb
- lib/datadog/tracing/contrib/utils/quantization/hash.rb
- lib/datadog/tracing/contrib/utils/quantization/http.rb
- lib/datadog/tracing/correlation.rb
- lib/datadog/tracing/diagnostics/environment_logger.rb
- lib/datadog/tracing/diagnostics/ext.rb
- lib/datadog/tracing/diagnostics/health.rb
- lib/datadog/tracing/distributed/b3_multi.rb
- lib/datadog/tracing/distributed/b3_single.rb
- lib/datadog/tracing/distributed/datadog.rb
- lib/datadog/tracing/distributed/datadog_tags_codec.rb
- lib/datadog/tracing/distributed/fetcher.rb
- lib/datadog/tracing/distributed/headers/ext.rb
- lib/datadog/tracing/distributed/helpers.rb
- lib/datadog/tracing/distributed/none.rb
- lib/datadog/tracing/distributed/propagation.rb
- lib/datadog/tracing/distributed/trace_context.rb
- lib/datadog/tracing/event.rb
- lib/datadog/tracing/flush.rb
- lib/datadog/tracing/metadata.rb
- lib/datadog/tracing/metadata/analytics.rb
- lib/datadog/tracing/metadata/errors.rb
- lib/datadog/tracing/metadata/ext.rb
- lib/datadog/tracing/metadata/tagging.rb
- lib/datadog/tracing/pipeline.rb
- lib/datadog/tracing/pipeline/span_filter.rb
- lib/datadog/tracing/pipeline/span_processor.rb
- lib/datadog/tracing/propagation/http.rb
- lib/datadog/tracing/remote.rb
- lib/datadog/tracing/runtime/metrics.rb
- lib/datadog/tracing/sampling/all_sampler.rb
- lib/datadog/tracing/sampling/ext.rb
- lib/datadog/tracing/sampling/matcher.rb
- lib/datadog/tracing/sampling/priority_sampler.rb
- lib/datadog/tracing/sampling/rate_by_key_sampler.rb
- lib/datadog/tracing/sampling/rate_by_service_sampler.rb
- lib/datadog/tracing/sampling/rate_limiter.rb
- lib/datadog/tracing/sampling/rate_sampler.rb
- lib/datadog/tracing/sampling/rule.rb
- lib/datadog/tracing/sampling/rule_sampler.rb
- lib/datadog/tracing/sampling/sampler.rb
- lib/datadog/tracing/sampling/span/ext.rb
- lib/datadog/tracing/sampling/span/matcher.rb
- lib/datadog/tracing/sampling/span/rule.rb
- lib/datadog/tracing/sampling/span/rule_parser.rb
- lib/datadog/tracing/sampling/span/sampler.rb
- lib/datadog/tracing/span.rb
- lib/datadog/tracing/span_operation.rb
- lib/datadog/tracing/sync_writer.rb
- lib/datadog/tracing/trace_digest.rb
- lib/datadog/tracing/trace_operation.rb
- lib/datadog/tracing/trace_segment.rb
- lib/datadog/tracing/tracer.rb
- lib/datadog/tracing/transport/http.rb
- lib/datadog/tracing/transport/http/api.rb
- lib/datadog/tracing/transport/http/api/instance.rb
- lib/datadog/tracing/transport/http/api/spec.rb
- lib/datadog/tracing/transport/http/builder.rb
- lib/datadog/tracing/transport/http/client.rb
- lib/datadog/tracing/transport/http/statistics.rb
- lib/datadog/tracing/transport/http/traces.rb
- lib/datadog/tracing/transport/io.rb
- lib/datadog/tracing/transport/io/client.rb
- lib/datadog/tracing/transport/io/response.rb
- lib/datadog/tracing/transport/io/traces.rb
- lib/datadog/tracing/transport/serializable_trace.rb
- lib/datadog/tracing/transport/statistics.rb
- lib/datadog/tracing/transport/trace_formatter.rb
- lib/datadog/tracing/transport/traces.rb
- lib/datadog/tracing/utils.rb
- lib/datadog/tracing/workers.rb
- lib/datadog/tracing/workers/trace_writer.rb
- lib/datadog/tracing/writer.rb
- lib/ddtrace.rb
- lib/ddtrace/auto_instrument.rb
- lib/ddtrace/auto_instrument_base.rb
- lib/ddtrace/profiling/preload.rb
- lib/ddtrace/transport/ext.rb
- lib/ddtrace/version.rb