ddtrace 1.9.0 → 1.10.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/CHANGELOG.md +63 -2
- data/ext/ddtrace_profiling_loader/extconf.rb +0 -2
- data/ext/ddtrace_profiling_native_extension/collectors_cpu_and_wall_time_worker.c +81 -36
- data/ext/ddtrace_profiling_native_extension/collectors_idle_sampling_helper.c +3 -3
- data/ext/ddtrace_profiling_native_extension/collectors_stack.c +37 -48
- data/ext/ddtrace_profiling_native_extension/collectors_stack.h +3 -1
- data/ext/ddtrace_profiling_native_extension/{collectors_cpu_and_wall_time.c → collectors_thread_context.c} +222 -143
- data/ext/ddtrace_profiling_native_extension/collectors_thread_context.h +14 -0
- data/ext/ddtrace_profiling_native_extension/extconf.rb +7 -18
- data/ext/ddtrace_profiling_native_extension/http_transport.c +25 -32
- data/ext/ddtrace_profiling_native_extension/libdatadog_helpers.h +9 -2
- data/ext/ddtrace_profiling_native_extension/native_extension_helpers.rb +9 -9
- data/ext/ddtrace_profiling_native_extension/private_vm_api_access.c +7 -121
- data/ext/ddtrace_profiling_native_extension/private_vm_api_access.h +1 -1
- data/ext/ddtrace_profiling_native_extension/profiling.c +2 -2
- data/ext/ddtrace_profiling_native_extension/ruby_helpers.c +2 -2
- data/ext/ddtrace_profiling_native_extension/ruby_helpers.h +1 -1
- data/ext/ddtrace_profiling_native_extension/stack_recorder.c +125 -21
- data/ext/ddtrace_profiling_native_extension/stack_recorder.h +9 -34
- data/lib/datadog/appsec/assets/waf_rules/recommended.json +321 -185
- data/lib/datadog/appsec/assets/waf_rules/strict.json +59 -2
- data/lib/datadog/appsec/assets.rb +0 -2
- data/lib/datadog/appsec/autoload.rb +4 -11
- data/lib/datadog/appsec/component.rb +41 -0
- data/lib/datadog/appsec/configuration/settings.rb +8 -3
- data/lib/datadog/appsec/configuration.rb +4 -2
- data/lib/datadog/appsec/contrib/auto_instrument.rb +0 -2
- data/lib/datadog/appsec/contrib/configuration/settings.rb +0 -2
- data/lib/datadog/appsec/contrib/integration.rb +0 -2
- data/lib/datadog/appsec/contrib/patcher.rb +0 -2
- data/lib/datadog/appsec/contrib/rack/configuration/settings.rb +0 -2
- data/lib/datadog/appsec/contrib/rack/ext.rb +0 -2
- data/lib/datadog/appsec/contrib/rack/gateway/request.rb +104 -0
- data/lib/datadog/appsec/contrib/rack/gateway/response.rb +30 -0
- data/lib/datadog/appsec/contrib/rack/gateway/watcher.rb +111 -109
- data/lib/datadog/appsec/contrib/rack/integration.rb +0 -2
- data/lib/datadog/appsec/contrib/rack/patcher.rb +2 -2
- data/lib/datadog/appsec/contrib/rack/reactive/request.rb +18 -21
- data/lib/datadog/appsec/contrib/rack/reactive/request_body.rb +10 -11
- data/lib/datadog/appsec/contrib/rack/reactive/response.rb +10 -11
- data/lib/datadog/appsec/contrib/rack/request_body_middleware.rb +6 -4
- data/lib/datadog/appsec/contrib/rack/request_middleware.rb +40 -26
- data/lib/datadog/appsec/contrib/rails/configuration/settings.rb +0 -2
- data/lib/datadog/appsec/contrib/rails/ext.rb +0 -2
- data/lib/datadog/appsec/contrib/rails/framework.rb +0 -2
- data/lib/datadog/appsec/contrib/rails/gateway/request.rb +67 -0
- data/lib/datadog/appsec/contrib/rails/gateway/watcher.rb +41 -37
- data/lib/datadog/appsec/contrib/rails/integration.rb +0 -2
- data/lib/datadog/appsec/contrib/rails/patcher.rb +3 -3
- data/lib/datadog/appsec/contrib/rails/reactive/action.rb +12 -11
- data/lib/datadog/appsec/contrib/rails/request.rb +0 -2
- data/lib/datadog/appsec/contrib/rails/request_middleware.rb +0 -2
- data/lib/datadog/appsec/contrib/sinatra/configuration/settings.rb +0 -2
- data/lib/datadog/appsec/contrib/sinatra/ext.rb +0 -2
- data/lib/datadog/appsec/contrib/sinatra/framework.rb +0 -2
- data/lib/datadog/appsec/contrib/sinatra/gateway/request.rb +17 -0
- data/lib/datadog/appsec/contrib/sinatra/gateway/route_params.rb +23 -0
- data/lib/datadog/appsec/contrib/sinatra/gateway/watcher.rb +76 -71
- data/lib/datadog/appsec/contrib/sinatra/integration.rb +0 -2
- data/lib/datadog/appsec/contrib/sinatra/patcher.rb +12 -4
- data/lib/datadog/appsec/contrib/sinatra/reactive/routed.rb +10 -9
- data/lib/datadog/appsec/contrib/sinatra/request_middleware.rb +0 -2
- data/lib/datadog/appsec/event.rb +4 -8
- data/lib/datadog/appsec/ext.rb +9 -0
- data/lib/datadog/appsec/extensions.rb +10 -2
- data/lib/datadog/appsec/instrumentation/gateway/argument.rb +24 -0
- data/lib/datadog/appsec/instrumentation/gateway.rb +11 -5
- data/lib/datadog/appsec/instrumentation.rb +9 -0
- data/lib/datadog/appsec/monitor/gateway/watcher.rb +86 -0
- data/lib/datadog/appsec/monitor/reactive/set_user.rb +61 -0
- data/lib/datadog/appsec/monitor.rb +11 -0
- data/lib/datadog/appsec/processor.rb +74 -25
- data/lib/datadog/appsec/rate_limiter.rb +0 -2
- data/lib/datadog/appsec/reactive/address_hash.rb +6 -2
- data/lib/datadog/appsec/reactive/engine.rb +10 -7
- data/lib/datadog/appsec/reactive/operation.rb +19 -2
- data/lib/datadog/appsec/reactive/subscriber.rb +2 -1
- data/lib/datadog/appsec/response.rb +0 -2
- data/lib/datadog/appsec/utils/http/media_range.rb +0 -2
- data/lib/datadog/appsec/utils/http/media_type.rb +0 -2
- data/lib/datadog/appsec.rb +20 -2
- data/lib/datadog/ci/configuration/components.rb +0 -2
- data/lib/datadog/ci/configuration/settings.rb +0 -2
- data/lib/datadog/ci/contrib/cucumber/configuration/settings.rb +0 -2
- data/lib/datadog/ci/contrib/cucumber/ext.rb +0 -2
- data/lib/datadog/ci/contrib/cucumber/formatter.rb +0 -2
- data/lib/datadog/ci/contrib/cucumber/instrumentation.rb +0 -2
- data/lib/datadog/ci/contrib/cucumber/integration.rb +0 -2
- data/lib/datadog/ci/contrib/cucumber/patcher.rb +0 -2
- data/lib/datadog/ci/contrib/rspec/configuration/settings.rb +0 -2
- data/lib/datadog/ci/contrib/rspec/example.rb +0 -2
- data/lib/datadog/ci/contrib/rspec/ext.rb +0 -2
- data/lib/datadog/ci/contrib/rspec/integration.rb +0 -2
- data/lib/datadog/ci/contrib/rspec/patcher.rb +0 -2
- data/lib/datadog/ci/ext/app_types.rb +0 -2
- data/lib/datadog/ci/ext/environment.rb +0 -4
- data/lib/datadog/ci/ext/settings.rb +0 -2
- data/lib/datadog/ci/ext/test.rb +0 -2
- data/lib/datadog/ci/extensions.rb +0 -2
- data/lib/datadog/ci/flush.rb +0 -2
- data/lib/datadog/ci/test.rb +0 -2
- data/lib/datadog/ci.rb +0 -2
- data/lib/datadog/core/buffer/cruby.rb +0 -2
- data/lib/datadog/core/buffer/random.rb +0 -2
- data/lib/datadog/core/buffer/thread_safe.rb +0 -2
- data/lib/datadog/core/chunker.rb +0 -2
- data/lib/datadog/core/configuration/agent_settings_resolver.rb +0 -17
- data/lib/datadog/core/configuration/base.rb +0 -2
- data/lib/datadog/core/configuration/components.rb +14 -318
- data/lib/datadog/core/configuration/dependency_resolver.rb +0 -2
- data/lib/datadog/core/configuration/ext.rb +0 -2
- data/lib/datadog/core/configuration/option.rb +0 -2
- data/lib/datadog/core/configuration/option_definition.rb +0 -2
- data/lib/datadog/core/configuration/option_definition_set.rb +0 -2
- data/lib/datadog/core/configuration/option_set.rb +0 -2
- data/lib/datadog/core/configuration/options.rb +0 -2
- data/lib/datadog/core/configuration/settings.rb +14 -5
- data/lib/datadog/core/configuration.rb +0 -4
- data/lib/datadog/core/diagnostics/environment_logger.rb +0 -2
- data/lib/datadog/core/diagnostics/health.rb +0 -2
- data/lib/datadog/core/encoding.rb +0 -4
- data/lib/datadog/core/environment/cgroup.rb +0 -4
- data/lib/datadog/core/environment/class_count.rb +0 -2
- data/lib/datadog/core/environment/container.rb +0 -4
- data/lib/datadog/core/environment/ext.rb +0 -2
- data/lib/datadog/core/environment/gc.rb +0 -2
- data/lib/datadog/core/environment/identity.rb +0 -2
- data/lib/datadog/core/environment/platform.rb +0 -2
- data/lib/datadog/core/environment/socket.rb +0 -2
- data/lib/datadog/core/environment/thread_count.rb +0 -2
- data/lib/datadog/core/environment/variable_helpers.rb +0 -2
- data/lib/datadog/core/environment/vm_cache.rb +17 -2
- data/lib/datadog/core/error.rb +0 -2
- data/lib/datadog/core/extensions.rb +0 -2
- data/lib/datadog/core/git/ext.rb +0 -2
- data/lib/datadog/core/logger.rb +0 -2
- data/lib/datadog/core/metrics/client.rb +0 -2
- data/lib/datadog/core/metrics/ext.rb +0 -2
- data/lib/datadog/core/metrics/helpers.rb +0 -2
- data/lib/datadog/core/metrics/logging.rb +0 -2
- data/lib/datadog/core/metrics/metric.rb +0 -2
- data/lib/datadog/core/metrics/options.rb +0 -2
- data/lib/datadog/core/pin.rb +0 -2
- data/lib/datadog/core/runtime/ext.rb +2 -2
- data/lib/datadog/core/runtime/metrics.rb +21 -7
- data/lib/datadog/core/telemetry/client.rb +0 -2
- data/lib/datadog/core/telemetry/collector.rb +0 -2
- data/lib/datadog/core/telemetry/emitter.rb +0 -2
- data/lib/datadog/core/telemetry/event.rb +0 -4
- data/lib/datadog/core/telemetry/ext.rb +0 -2
- data/lib/datadog/core/telemetry/heartbeat.rb +0 -2
- data/lib/datadog/core/telemetry/http/adapters/net.rb +0 -2
- data/lib/datadog/core/telemetry/http/env.rb +0 -2
- data/lib/datadog/core/telemetry/http/response.rb +0 -4
- data/lib/datadog/core/telemetry/http/transport.rb +0 -2
- data/lib/datadog/core/telemetry/v1/app_event.rb +0 -2
- data/lib/datadog/core/utils/compression.rb +0 -2
- data/lib/datadog/core/utils/forking.rb +0 -2
- data/lib/datadog/core/utils/object_set.rb +0 -2
- data/lib/datadog/core/utils/only_once.rb +0 -2
- data/lib/datadog/core/utils/safe_dup.rb +0 -2
- data/lib/datadog/core/utils/sequence.rb +0 -2
- data/lib/datadog/core/utils/string_table.rb +0 -2
- data/lib/datadog/core/utils/time.rb +0 -4
- data/lib/datadog/core/utils.rb +0 -2
- data/lib/datadog/core/vendor/multipart-post/multipart/post/composite_read_io.rb +0 -2
- data/lib/datadog/core/vendor/multipart-post/multipart/post/multipartable.rb +0 -2
- data/lib/datadog/core/vendor/multipart-post/multipart/post/parts.rb +0 -2
- data/lib/datadog/core/vendor/multipart-post/multipart/post/version.rb +0 -2
- data/lib/datadog/core/vendor/multipart-post/multipart/post.rb +0 -2
- data/lib/datadog/core/vendor/multipart-post/multipart.rb +0 -2
- data/lib/datadog/core/vendor/multipart-post/net/http/post/multipart.rb +0 -2
- data/lib/datadog/core/worker.rb +0 -2
- data/lib/datadog/core/workers/async.rb +0 -2
- data/lib/datadog/core/workers/interval_loop.rb +0 -2
- data/lib/datadog/core/workers/polling.rb +0 -2
- data/lib/datadog/core/workers/queue.rb +0 -2
- data/lib/datadog/core/workers/runtime_metrics.rb +0 -2
- data/lib/datadog/core.rb +0 -1
- data/lib/datadog/kit/appsec/events.rb +0 -1
- data/lib/datadog/kit/enable_core_dumps.rb +5 -6
- data/lib/datadog/kit/identity.rb +7 -1
- data/lib/datadog/kit.rb +0 -2
- data/lib/datadog/opentelemetry/api/context.rb +0 -1
- data/lib/datadog/opentelemetry/api/trace/span.rb +0 -1
- data/lib/datadog/opentelemetry/sdk/configurator.rb +0 -1
- data/lib/datadog/opentelemetry/sdk/id_generator.rb +0 -1
- data/lib/datadog/opentelemetry/sdk/propagator.rb +0 -1
- data/lib/datadog/opentelemetry/sdk/span_processor.rb +0 -1
- data/lib/datadog/opentelemetry.rb +0 -1
- data/lib/datadog/opentracer/binary_propagator.rb +0 -2
- data/lib/datadog/opentracer/carrier.rb +0 -2
- data/lib/datadog/opentracer/distributed_headers.rb +0 -2
- data/lib/datadog/opentracer/global_tracer.rb +0 -2
- data/lib/datadog/opentracer/propagator.rb +0 -2
- data/lib/datadog/opentracer/rack_propagator.rb +0 -2
- data/lib/datadog/opentracer/scope.rb +0 -2
- data/lib/datadog/opentracer/scope_manager.rb +0 -2
- data/lib/datadog/opentracer/span.rb +0 -2
- data/lib/datadog/opentracer/span_context.rb +0 -2
- data/lib/datadog/opentracer/span_context_factory.rb +0 -2
- data/lib/datadog/opentracer/text_map_propagator.rb +0 -2
- data/lib/datadog/opentracer/thread_local_scope.rb +0 -2
- data/lib/datadog/opentracer/thread_local_scope_manager.rb +0 -2
- data/lib/datadog/opentracer/tracer.rb +0 -2
- data/lib/datadog/opentracer.rb +0 -2
- data/lib/datadog/profiling/backtrace_location.rb +0 -2
- data/lib/datadog/profiling/buffer.rb +0 -2
- data/lib/datadog/profiling/collectors/code_provenance.rb +0 -2
- data/lib/datadog/profiling/collectors/cpu_and_wall_time_worker.rb +12 -7
- data/lib/datadog/profiling/collectors/dynamic_sampling_rate.rb +0 -2
- data/lib/datadog/profiling/collectors/idle_sampling_helper.rb +1 -3
- data/lib/datadog/profiling/collectors/old_stack.rb +1 -5
- data/lib/datadog/profiling/collectors/stack.rb +0 -2
- data/lib/datadog/profiling/collectors/{cpu_and_wall_time.rb → thread_context.rb} +8 -5
- data/lib/datadog/profiling/component.rb +161 -0
- data/lib/datadog/profiling/encoding/profile.rb +0 -2
- data/lib/datadog/profiling/event.rb +0 -2
- data/lib/datadog/profiling/events/stack.rb +0 -2
- data/lib/datadog/profiling/exporter.rb +0 -2
- data/lib/datadog/profiling/ext/forking.rb +0 -2
- data/lib/datadog/profiling/ext.rb +0 -2
- data/lib/datadog/profiling/flush.rb +0 -2
- data/lib/datadog/profiling/http_transport.rb +0 -2
- data/lib/datadog/profiling/load_native_extension.rb +0 -2
- data/lib/datadog/profiling/native_extension.rb +0 -2
- data/lib/datadog/profiling/old_recorder.rb +0 -2
- data/lib/datadog/profiling/pprof/builder.rb +0 -2
- data/lib/datadog/profiling/pprof/converter.rb +0 -2
- data/lib/datadog/profiling/pprof/message_set.rb +0 -2
- data/lib/datadog/profiling/pprof/payload.rb +0 -2
- data/lib/datadog/profiling/pprof/pprof_pb.rb +0 -2
- data/lib/datadog/profiling/pprof/stack_sample.rb +0 -2
- data/lib/datadog/profiling/pprof/string_table.rb +0 -2
- data/lib/datadog/profiling/pprof/template.rb +0 -2
- data/lib/datadog/profiling/preload.rb +0 -2
- data/lib/datadog/profiling/profiler.rb +0 -2
- data/lib/datadog/profiling/scheduler.rb +0 -2
- data/lib/datadog/profiling/stack_recorder.rb +3 -8
- data/lib/datadog/profiling/tag_builder.rb +0 -2
- data/lib/datadog/profiling/tasks/exec.rb +0 -2
- data/lib/datadog/profiling/tasks/help.rb +0 -2
- data/lib/datadog/profiling/tasks/setup.rb +0 -2
- data/lib/datadog/profiling/trace_identifiers/ddtrace.rb +0 -2
- data/lib/datadog/profiling/trace_identifiers/helper.rb +0 -2
- data/lib/datadog/profiling.rb +44 -7
- data/lib/datadog/tracing/analytics.rb +0 -2
- data/lib/datadog/tracing/buffer.rb +0 -4
- data/lib/datadog/tracing/client_ip.rb +0 -2
- data/lib/datadog/tracing/component.rb +176 -0
- data/lib/datadog/tracing/configuration/ext.rb +2 -2
- data/lib/datadog/tracing/configuration/settings.rb +20 -2
- data/lib/datadog/tracing/context.rb +0 -2
- data/lib/datadog/tracing/context_provider.rb +0 -2
- data/lib/datadog/tracing/contrib/action_cable/configuration/settings.rb +0 -2
- data/lib/datadog/tracing/contrib/action_cable/event.rb +0 -2
- data/lib/datadog/tracing/contrib/action_cable/events/broadcast.rb +0 -2
- data/lib/datadog/tracing/contrib/action_cable/events/perform_action.rb +0 -2
- data/lib/datadog/tracing/contrib/action_cable/events/transmit.rb +0 -2
- data/lib/datadog/tracing/contrib/action_cable/events.rb +0 -2
- data/lib/datadog/tracing/contrib/action_cable/ext.rb +0 -2
- data/lib/datadog/tracing/contrib/action_cable/instrumentation.rb +0 -2
- data/lib/datadog/tracing/contrib/action_cable/integration.rb +0 -2
- data/lib/datadog/tracing/contrib/action_cable/patcher.rb +0 -2
- data/lib/datadog/tracing/contrib/action_mailer/configuration/settings.rb +0 -2
- data/lib/datadog/tracing/contrib/action_mailer/event.rb +0 -2
- data/lib/datadog/tracing/contrib/action_mailer/events/deliver.rb +0 -2
- data/lib/datadog/tracing/contrib/action_mailer/events/process.rb +0 -2
- data/lib/datadog/tracing/contrib/action_mailer/events.rb +0 -2
- data/lib/datadog/tracing/contrib/action_mailer/ext.rb +0 -2
- data/lib/datadog/tracing/contrib/action_mailer/integration.rb +0 -2
- data/lib/datadog/tracing/contrib/action_mailer/patcher.rb +0 -2
- data/lib/datadog/tracing/contrib/action_pack/action_controller/instrumentation.rb +0 -2
- data/lib/datadog/tracing/contrib/action_pack/action_controller/patcher.rb +0 -2
- data/lib/datadog/tracing/contrib/action_pack/configuration/settings.rb +0 -2
- data/lib/datadog/tracing/contrib/action_pack/ext.rb +0 -2
- data/lib/datadog/tracing/contrib/action_pack/integration.rb +0 -2
- data/lib/datadog/tracing/contrib/action_pack/patcher.rb +0 -2
- data/lib/datadog/tracing/contrib/action_pack/utils.rb +0 -2
- data/lib/datadog/tracing/contrib/action_view/configuration/settings.rb +0 -2
- data/lib/datadog/tracing/contrib/action_view/event.rb +0 -2
- data/lib/datadog/tracing/contrib/action_view/events/render_partial.rb +0 -2
- data/lib/datadog/tracing/contrib/action_view/events/render_template.rb +0 -2
- data/lib/datadog/tracing/contrib/action_view/events.rb +0 -2
- data/lib/datadog/tracing/contrib/action_view/ext.rb +0 -2
- data/lib/datadog/tracing/contrib/action_view/instrumentation/partial_renderer.rb +0 -2
- data/lib/datadog/tracing/contrib/action_view/instrumentation/template_renderer.rb +0 -2
- data/lib/datadog/tracing/contrib/action_view/integration.rb +0 -2
- data/lib/datadog/tracing/contrib/action_view/patcher.rb +0 -2
- data/lib/datadog/tracing/contrib/action_view/utils.rb +0 -2
- data/lib/datadog/tracing/contrib/active_job/configuration/settings.rb +0 -2
- data/lib/datadog/tracing/contrib/active_job/event.rb +0 -2
- data/lib/datadog/tracing/contrib/active_job/events/discard.rb +0 -2
- data/lib/datadog/tracing/contrib/active_job/events/enqueue.rb +0 -2
- data/lib/datadog/tracing/contrib/active_job/events/enqueue_at.rb +0 -2
- data/lib/datadog/tracing/contrib/active_job/events/enqueue_retry.rb +0 -2
- data/lib/datadog/tracing/contrib/active_job/events/perform.rb +0 -2
- data/lib/datadog/tracing/contrib/active_job/events/retry_stopped.rb +0 -2
- data/lib/datadog/tracing/contrib/active_job/events.rb +0 -2
- data/lib/datadog/tracing/contrib/active_job/ext.rb +0 -2
- data/lib/datadog/tracing/contrib/active_job/integration.rb +0 -2
- data/lib/datadog/tracing/contrib/active_job/log_injection.rb +0 -2
- data/lib/datadog/tracing/contrib/active_job/patcher.rb +0 -2
- data/lib/datadog/tracing/contrib/active_model_serializers/configuration/settings.rb +0 -2
- data/lib/datadog/tracing/contrib/active_model_serializers/event.rb +0 -2
- data/lib/datadog/tracing/contrib/active_model_serializers/events/render.rb +0 -2
- data/lib/datadog/tracing/contrib/active_model_serializers/events/serialize.rb +0 -2
- data/lib/datadog/tracing/contrib/active_model_serializers/events.rb +0 -2
- data/lib/datadog/tracing/contrib/active_model_serializers/ext.rb +0 -2
- data/lib/datadog/tracing/contrib/active_model_serializers/integration.rb +0 -2
- data/lib/datadog/tracing/contrib/active_model_serializers/patcher.rb +0 -2
- data/lib/datadog/tracing/contrib/active_record/configuration/makara_resolver.rb +0 -2
- data/lib/datadog/tracing/contrib/active_record/configuration/resolver.rb +0 -2
- data/lib/datadog/tracing/contrib/active_record/configuration/settings.rb +0 -2
- data/lib/datadog/tracing/contrib/active_record/event.rb +0 -2
- data/lib/datadog/tracing/contrib/active_record/events/instantiation.rb +0 -2
- data/lib/datadog/tracing/contrib/active_record/events/sql.rb +0 -2
- data/lib/datadog/tracing/contrib/active_record/events.rb +0 -2
- data/lib/datadog/tracing/contrib/active_record/ext.rb +0 -2
- data/lib/datadog/tracing/contrib/active_record/integration.rb +0 -2
- data/lib/datadog/tracing/contrib/active_record/patcher.rb +0 -2
- data/lib/datadog/tracing/contrib/active_record/utils.rb +0 -2
- data/lib/datadog/tracing/contrib/active_record/vendor/connection_specification.rb +0 -2
- data/lib/datadog/tracing/contrib/active_support/cache/instrumentation.rb +0 -2
- data/lib/datadog/tracing/contrib/active_support/cache/patcher.rb +0 -2
- data/lib/datadog/tracing/contrib/active_support/cache/redis.rb +0 -2
- data/lib/datadog/tracing/contrib/active_support/configuration/settings.rb +0 -2
- data/lib/datadog/tracing/contrib/active_support/ext.rb +0 -2
- data/lib/datadog/tracing/contrib/active_support/integration.rb +0 -2
- data/lib/datadog/tracing/contrib/active_support/notifications/event.rb +0 -2
- data/lib/datadog/tracing/contrib/active_support/notifications/subscriber.rb +0 -2
- data/lib/datadog/tracing/contrib/active_support/notifications/subscription.rb +0 -2
- data/lib/datadog/tracing/contrib/active_support/patcher.rb +0 -2
- data/lib/datadog/tracing/contrib/analytics.rb +0 -2
- data/lib/datadog/tracing/contrib/auto_instrument.rb +0 -2
- data/lib/datadog/tracing/contrib/aws/configuration/settings.rb +0 -2
- data/lib/datadog/tracing/contrib/aws/ext.rb +0 -2
- data/lib/datadog/tracing/contrib/aws/instrumentation.rb +0 -2
- data/lib/datadog/tracing/contrib/aws/integration.rb +0 -2
- data/lib/datadog/tracing/contrib/aws/parsed_context.rb +0 -2
- data/lib/datadog/tracing/contrib/aws/patcher.rb +0 -2
- data/lib/datadog/tracing/contrib/aws/services.rb +0 -2
- data/lib/datadog/tracing/contrib/concurrent_ruby/configuration/settings.rb +0 -2
- data/lib/datadog/tracing/contrib/concurrent_ruby/context_composite_executor_service.rb +0 -2
- data/lib/datadog/tracing/contrib/concurrent_ruby/ext.rb +0 -2
- data/lib/datadog/tracing/contrib/concurrent_ruby/future_patch.rb +0 -2
- data/lib/datadog/tracing/contrib/concurrent_ruby/integration.rb +0 -2
- data/lib/datadog/tracing/contrib/concurrent_ruby/patcher.rb +0 -3
- data/lib/datadog/tracing/contrib/configurable.rb +0 -2
- data/lib/datadog/tracing/contrib/configuration/resolver.rb +0 -2
- data/lib/datadog/tracing/contrib/configuration/resolvers/pattern_resolver.rb +0 -2
- data/lib/datadog/tracing/contrib/configuration/settings.rb +0 -4
- data/lib/datadog/tracing/contrib/dalli/configuration/settings.rb +0 -2
- data/lib/datadog/tracing/contrib/dalli/ext.rb +0 -2
- data/lib/datadog/tracing/contrib/dalli/instrumentation.rb +2 -2
- data/lib/datadog/tracing/contrib/dalli/integration.rb +0 -2
- data/lib/datadog/tracing/contrib/dalli/patcher.rb +0 -2
- data/lib/datadog/tracing/contrib/dalli/quantize.rb +0 -2
- data/lib/datadog/tracing/contrib/delayed_job/configuration/settings.rb +0 -2
- data/lib/datadog/tracing/contrib/delayed_job/ext.rb +0 -2
- data/lib/datadog/tracing/contrib/delayed_job/integration.rb +0 -2
- data/lib/datadog/tracing/contrib/delayed_job/patcher.rb +0 -2
- data/lib/datadog/tracing/contrib/delayed_job/plugin.rb +4 -2
- data/lib/datadog/tracing/contrib/delayed_job/server_internal_tracer/worker.rb +2 -2
- data/lib/datadog/tracing/contrib/elasticsearch/configuration/settings.rb +0 -2
- data/lib/datadog/tracing/contrib/elasticsearch/ext.rb +0 -2
- data/lib/datadog/tracing/contrib/elasticsearch/integration.rb +0 -2
- data/lib/datadog/tracing/contrib/elasticsearch/patcher.rb +3 -4
- data/lib/datadog/tracing/contrib/elasticsearch/quantize.rb +0 -4
- data/lib/datadog/tracing/contrib/ethon/configuration/settings.rb +0 -2
- data/lib/datadog/tracing/contrib/ethon/easy_patch.rb +0 -2
- data/lib/datadog/tracing/contrib/ethon/ext.rb +0 -2
- data/lib/datadog/tracing/contrib/ethon/integration.rb +0 -2
- data/lib/datadog/tracing/contrib/ethon/multi_patch.rb +0 -2
- data/lib/datadog/tracing/contrib/ethon/patcher.rb +0 -3
- data/lib/datadog/tracing/contrib/excon/configuration/settings.rb +0 -2
- data/lib/datadog/tracing/contrib/excon/ext.rb +0 -2
- data/lib/datadog/tracing/contrib/excon/integration.rb +0 -2
- data/lib/datadog/tracing/contrib/excon/middleware.rb +0 -2
- data/lib/datadog/tracing/contrib/excon/patcher.rb +0 -2
- data/lib/datadog/tracing/contrib/ext.rb +5 -0
- data/lib/datadog/tracing/contrib/extensions.rb +0 -2
- data/lib/datadog/tracing/contrib/faraday/configuration/settings.rb +0 -2
- data/lib/datadog/tracing/contrib/faraday/connection.rb +0 -2
- data/lib/datadog/tracing/contrib/faraday/ext.rb +0 -2
- data/lib/datadog/tracing/contrib/faraday/integration.rb +0 -2
- data/lib/datadog/tracing/contrib/faraday/middleware.rb +0 -2
- data/lib/datadog/tracing/contrib/faraday/patcher.rb +0 -2
- data/lib/datadog/tracing/contrib/faraday/rack_builder.rb +0 -2
- data/lib/datadog/tracing/contrib/grape/configuration/settings.rb +0 -2
- data/lib/datadog/tracing/contrib/grape/endpoint.rb +0 -2
- data/lib/datadog/tracing/contrib/grape/ext.rb +0 -2
- data/lib/datadog/tracing/contrib/grape/instrumentation.rb +0 -2
- data/lib/datadog/tracing/contrib/grape/integration.rb +0 -2
- data/lib/datadog/tracing/contrib/grape/patcher.rb +0 -2
- data/lib/datadog/tracing/contrib/graphql/configuration/settings.rb +0 -2
- data/lib/datadog/tracing/contrib/graphql/ext.rb +0 -2
- data/lib/datadog/tracing/contrib/graphql/integration.rb +0 -2
- data/lib/datadog/tracing/contrib/graphql/patcher.rb +0 -2
- data/lib/datadog/tracing/contrib/grpc/configuration/settings.rb +0 -2
- data/lib/datadog/tracing/contrib/grpc/datadog_interceptor/client.rb +0 -2
- data/lib/datadog/tracing/contrib/grpc/datadog_interceptor/server.rb +0 -2
- data/lib/datadog/tracing/contrib/grpc/datadog_interceptor.rb +0 -2
- data/lib/datadog/tracing/contrib/grpc/distributed/fetcher.rb +0 -1
- data/lib/datadog/tracing/contrib/grpc/distributed/propagation.rb +0 -1
- data/lib/datadog/tracing/contrib/grpc/ext.rb +0 -2
- data/lib/datadog/tracing/contrib/grpc/integration.rb +8 -3
- data/lib/datadog/tracing/contrib/grpc/intercept_with_datadog.rb +0 -2
- data/lib/datadog/tracing/contrib/grpc/patcher.rb +0 -3
- data/lib/datadog/tracing/contrib/hanami/action_tracer.rb +0 -2
- data/lib/datadog/tracing/contrib/hanami/configuration/settings.rb +0 -2
- data/lib/datadog/tracing/contrib/hanami/ext.rb +0 -2
- data/lib/datadog/tracing/contrib/hanami/integration.rb +0 -2
- data/lib/datadog/tracing/contrib/hanami/patcher.rb +0 -2
- data/lib/datadog/tracing/contrib/hanami/plugin.rb +0 -2
- data/lib/datadog/tracing/contrib/hanami/renderer_policy_tracing.rb +0 -2
- data/lib/datadog/tracing/contrib/hanami/router_tracing.rb +0 -2
- data/lib/datadog/tracing/contrib/http/circuit_breaker.rb +0 -2
- data/lib/datadog/tracing/contrib/http/configuration/settings.rb +0 -2
- data/lib/datadog/tracing/contrib/http/distributed/fetcher.rb +0 -1
- data/lib/datadog/tracing/contrib/http/distributed/propagation.rb +0 -1
- data/lib/datadog/tracing/contrib/http/ext.rb +0 -2
- data/lib/datadog/tracing/contrib/http/instrumentation.rb +0 -2
- data/lib/datadog/tracing/contrib/http/integration.rb +0 -2
- data/lib/datadog/tracing/contrib/http/patcher.rb +0 -2
- data/lib/datadog/tracing/contrib/http_annotation_helper.rb +0 -2
- data/lib/datadog/tracing/contrib/httpclient/configuration/settings.rb +0 -2
- data/lib/datadog/tracing/contrib/httpclient/ext.rb +0 -2
- data/lib/datadog/tracing/contrib/httpclient/instrumentation.rb +0 -2
- data/lib/datadog/tracing/contrib/httpclient/integration.rb +0 -2
- data/lib/datadog/tracing/contrib/httpclient/patcher.rb +0 -2
- data/lib/datadog/tracing/contrib/httprb/configuration/settings.rb +0 -2
- data/lib/datadog/tracing/contrib/httprb/ext.rb +0 -2
- data/lib/datadog/tracing/contrib/httprb/instrumentation.rb +0 -2
- data/lib/datadog/tracing/contrib/httprb/integration.rb +0 -2
- data/lib/datadog/tracing/contrib/httprb/patcher.rb +0 -2
- data/lib/datadog/tracing/contrib/integration.rb +0 -2
- data/lib/datadog/tracing/contrib/kafka/configuration/settings.rb +0 -2
- data/lib/datadog/tracing/contrib/kafka/consumer_event.rb +0 -2
- data/lib/datadog/tracing/contrib/kafka/consumer_group_event.rb +0 -2
- data/lib/datadog/tracing/contrib/kafka/event.rb +1 -2
- data/lib/datadog/tracing/contrib/kafka/events/connection/request.rb +0 -2
- data/lib/datadog/tracing/contrib/kafka/events/consumer/process_batch.rb +0 -2
- data/lib/datadog/tracing/contrib/kafka/events/consumer/process_message.rb +0 -2
- data/lib/datadog/tracing/contrib/kafka/events/consumer_group/heartbeat.rb +0 -2
- data/lib/datadog/tracing/contrib/kafka/events/consumer_group/join_group.rb +0 -2
- data/lib/datadog/tracing/contrib/kafka/events/consumer_group/leave_group.rb +0 -2
- data/lib/datadog/tracing/contrib/kafka/events/consumer_group/sync_group.rb +0 -2
- data/lib/datadog/tracing/contrib/kafka/events/produce_operation/send_messages.rb +0 -2
- data/lib/datadog/tracing/contrib/kafka/events/producer/deliver_messages.rb +0 -2
- data/lib/datadog/tracing/contrib/kafka/events.rb +0 -2
- data/lib/datadog/tracing/contrib/kafka/ext.rb +1 -2
- data/lib/datadog/tracing/contrib/kafka/integration.rb +0 -2
- data/lib/datadog/tracing/contrib/kafka/patcher.rb +0 -2
- data/lib/datadog/tracing/contrib/lograge/configuration/settings.rb +0 -2
- data/lib/datadog/tracing/contrib/lograge/ext.rb +0 -2
- data/lib/datadog/tracing/contrib/lograge/instrumentation.rb +0 -2
- data/lib/datadog/tracing/contrib/lograge/integration.rb +0 -2
- data/lib/datadog/tracing/contrib/lograge/patcher.rb +0 -2
- data/lib/datadog/tracing/contrib/mongodb/configuration/settings.rb +0 -2
- data/lib/datadog/tracing/contrib/mongodb/ext.rb +0 -2
- data/lib/datadog/tracing/contrib/mongodb/instrumentation.rb +0 -2
- data/lib/datadog/tracing/contrib/mongodb/integration.rb +0 -2
- data/lib/datadog/tracing/contrib/mongodb/parsers.rb +0 -2
- data/lib/datadog/tracing/contrib/mongodb/patcher.rb +0 -2
- data/lib/datadog/tracing/contrib/mongodb/subscribers.rb +0 -2
- data/lib/datadog/tracing/contrib/mysql2/configuration/settings.rb +0 -2
- data/lib/datadog/tracing/contrib/mysql2/ext.rb +0 -2
- data/lib/datadog/tracing/contrib/mysql2/instrumentation.rb +0 -2
- data/lib/datadog/tracing/contrib/mysql2/integration.rb +0 -2
- data/lib/datadog/tracing/contrib/mysql2/patcher.rb +0 -2
- data/lib/datadog/tracing/contrib/patchable.rb +0 -2
- data/lib/datadog/tracing/contrib/patcher.rb +0 -2
- data/lib/datadog/tracing/contrib/pg/configuration/settings.rb +0 -2
- data/lib/datadog/tracing/contrib/pg/ext.rb +0 -2
- data/lib/datadog/tracing/contrib/pg/instrumentation.rb +0 -2
- data/lib/datadog/tracing/contrib/pg/integration.rb +0 -2
- data/lib/datadog/tracing/contrib/pg/patcher.rb +0 -2
- data/lib/datadog/tracing/contrib/presto/configuration/settings.rb +0 -2
- data/lib/datadog/tracing/contrib/presto/ext.rb +1 -2
- data/lib/datadog/tracing/contrib/presto/instrumentation.rb +3 -2
- data/lib/datadog/tracing/contrib/presto/integration.rb +0 -2
- data/lib/datadog/tracing/contrib/presto/patcher.rb +0 -2
- data/lib/datadog/tracing/contrib/propagation/sql_comment/comment.rb +0 -2
- data/lib/datadog/tracing/contrib/propagation/sql_comment/ext.rb +0 -2
- data/lib/datadog/tracing/contrib/propagation/sql_comment/mode.rb +0 -2
- data/lib/datadog/tracing/contrib/propagation/sql_comment.rb +0 -2
- data/lib/datadog/tracing/contrib/qless/configuration/settings.rb +0 -2
- data/lib/datadog/tracing/contrib/qless/ext.rb +0 -2
- data/lib/datadog/tracing/contrib/qless/integration.rb +0 -2
- data/lib/datadog/tracing/contrib/qless/patcher.rb +0 -3
- data/lib/datadog/tracing/contrib/qless/qless_job.rb +3 -2
- data/lib/datadog/tracing/contrib/qless/tracer_cleaner.rb +0 -2
- data/lib/datadog/tracing/contrib/que/configuration/settings.rb +0 -2
- data/lib/datadog/tracing/contrib/que/ext.rb +0 -2
- data/lib/datadog/tracing/contrib/que/integration.rb +0 -2
- data/lib/datadog/tracing/contrib/que/patcher.rb +0 -2
- data/lib/datadog/tracing/contrib/que/tracer.rb +2 -2
- data/lib/datadog/tracing/contrib/racecar/configuration/settings.rb +0 -2
- data/lib/datadog/tracing/contrib/racecar/event.rb +1 -2
- data/lib/datadog/tracing/contrib/racecar/events/batch.rb +0 -2
- data/lib/datadog/tracing/contrib/racecar/events/consume.rb +0 -2
- data/lib/datadog/tracing/contrib/racecar/events/message.rb +0 -2
- data/lib/datadog/tracing/contrib/racecar/events.rb +0 -2
- data/lib/datadog/tracing/contrib/racecar/ext.rb +1 -2
- data/lib/datadog/tracing/contrib/racecar/integration.rb +0 -2
- data/lib/datadog/tracing/contrib/racecar/patcher.rb +0 -2
- data/lib/datadog/tracing/contrib/rack/configuration/settings.rb +0 -2
- data/lib/datadog/tracing/contrib/rack/ext.rb +5 -2
- data/lib/datadog/tracing/contrib/rack/integration.rb +0 -2
- data/lib/datadog/tracing/contrib/rack/middlewares.rb +42 -18
- data/lib/datadog/tracing/contrib/rack/patcher.rb +0 -2
- data/lib/datadog/tracing/contrib/rack/request_queue.rb +0 -2
- data/lib/datadog/tracing/contrib/rails/auto_instrument_railtie.rb +0 -2
- data/lib/datadog/tracing/contrib/rails/configuration/settings.rb +0 -2
- data/lib/datadog/tracing/contrib/rails/ext.rb +0 -2
- data/lib/datadog/tracing/contrib/rails/framework.rb +0 -2
- data/lib/datadog/tracing/contrib/rails/integration.rb +0 -2
- data/lib/datadog/tracing/contrib/rails/log_injection.rb +0 -2
- data/lib/datadog/tracing/contrib/rails/middlewares.rb +0 -2
- data/lib/datadog/tracing/contrib/rails/patcher.rb +0 -2
- data/lib/datadog/tracing/contrib/rails/railtie.rb +0 -2
- data/lib/datadog/tracing/contrib/rails/utils.rb +0 -2
- data/lib/datadog/tracing/contrib/rake/configuration/settings.rb +0 -2
- data/lib/datadog/tracing/contrib/rake/ext.rb +0 -2
- data/lib/datadog/tracing/contrib/rake/instrumentation.rb +0 -2
- data/lib/datadog/tracing/contrib/rake/integration.rb +0 -2
- data/lib/datadog/tracing/contrib/rake/patcher.rb +0 -2
- data/lib/datadog/tracing/contrib/redis/configuration/resolver.rb +0 -2
- data/lib/datadog/tracing/contrib/redis/configuration/settings.rb +0 -2
- data/lib/datadog/tracing/contrib/redis/ext.rb +0 -2
- data/lib/datadog/tracing/contrib/redis/instrumentation.rb +0 -2
- data/lib/datadog/tracing/contrib/redis/integration.rb +0 -2
- data/lib/datadog/tracing/contrib/redis/patcher.rb +0 -2
- data/lib/datadog/tracing/contrib/redis/quantize.rb +0 -2
- data/lib/datadog/tracing/contrib/redis/tags.rb +0 -2
- data/lib/datadog/tracing/contrib/redis/trace_middleware.rb +0 -2
- data/lib/datadog/tracing/contrib/redis/vendor/resolver.rb +0 -2
- data/lib/datadog/tracing/contrib/registerable.rb +0 -2
- data/lib/datadog/tracing/contrib/registry.rb +0 -2
- data/lib/datadog/tracing/contrib/resque/configuration/settings.rb +0 -2
- data/lib/datadog/tracing/contrib/resque/ext.rb +0 -2
- data/lib/datadog/tracing/contrib/resque/integration.rb +0 -2
- data/lib/datadog/tracing/contrib/resque/patcher.rb +0 -2
- data/lib/datadog/tracing/contrib/resque/resque_job.rb +2 -2
- data/lib/datadog/tracing/contrib/rest_client/configuration/settings.rb +0 -2
- data/lib/datadog/tracing/contrib/rest_client/ext.rb +0 -2
- data/lib/datadog/tracing/contrib/rest_client/integration.rb +0 -2
- data/lib/datadog/tracing/contrib/rest_client/patcher.rb +0 -3
- data/lib/datadog/tracing/contrib/rest_client/request_patch.rb +0 -2
- data/lib/datadog/tracing/contrib/semantic_logger/configuration/settings.rb +0 -2
- data/lib/datadog/tracing/contrib/semantic_logger/ext.rb +0 -2
- data/lib/datadog/tracing/contrib/semantic_logger/instrumentation.rb +0 -2
- data/lib/datadog/tracing/contrib/semantic_logger/integration.rb +0 -2
- data/lib/datadog/tracing/contrib/semantic_logger/patcher.rb +0 -2
- data/lib/datadog/tracing/contrib/sequel/configuration/settings.rb +0 -2
- data/lib/datadog/tracing/contrib/sequel/database.rb +0 -2
- data/lib/datadog/tracing/contrib/sequel/dataset.rb +0 -2
- data/lib/datadog/tracing/contrib/sequel/ext.rb +0 -2
- data/lib/datadog/tracing/contrib/sequel/integration.rb +0 -2
- data/lib/datadog/tracing/contrib/sequel/patcher.rb +0 -2
- data/lib/datadog/tracing/contrib/sequel/utils.rb +0 -2
- data/lib/datadog/tracing/contrib/shoryuken/configuration/settings.rb +0 -2
- data/lib/datadog/tracing/contrib/shoryuken/ext.rb +1 -2
- data/lib/datadog/tracing/contrib/shoryuken/integration.rb +0 -2
- data/lib/datadog/tracing/contrib/shoryuken/patcher.rb +0 -2
- data/lib/datadog/tracing/contrib/shoryuken/tracer.rb +2 -2
- data/lib/datadog/tracing/contrib/sidekiq/client_tracer.rb +2 -2
- data/lib/datadog/tracing/contrib/sidekiq/configuration/settings.rb +0 -2
- data/lib/datadog/tracing/contrib/sidekiq/ext.rb +0 -2
- data/lib/datadog/tracing/contrib/sidekiq/integration.rb +0 -2
- data/lib/datadog/tracing/contrib/sidekiq/patcher.rb +0 -2
- data/lib/datadog/tracing/contrib/sidekiq/server_internal_tracer/heartbeat.rb +4 -2
- data/lib/datadog/tracing/contrib/sidekiq/server_internal_tracer/job_fetch.rb +2 -2
- data/lib/datadog/tracing/contrib/sidekiq/server_internal_tracer/redis_info.rb +2 -2
- data/lib/datadog/tracing/contrib/sidekiq/server_internal_tracer/scheduled_poller.rb +4 -2
- data/lib/datadog/tracing/contrib/sidekiq/server_tracer.rb +2 -2
- data/lib/datadog/tracing/contrib/sidekiq/tracing.rb +0 -2
- data/lib/datadog/tracing/contrib/sinatra/configuration/settings.rb +0 -2
- data/lib/datadog/tracing/contrib/sinatra/env.rb +0 -2
- data/lib/datadog/tracing/contrib/sinatra/ext.rb +0 -2
- data/lib/datadog/tracing/contrib/sinatra/framework.rb +0 -2
- data/lib/datadog/tracing/contrib/sinatra/headers.rb +0 -2
- data/lib/datadog/tracing/contrib/sinatra/integration.rb +0 -2
- data/lib/datadog/tracing/contrib/sinatra/patcher.rb +0 -3
- data/lib/datadog/tracing/contrib/sinatra/tracer.rb +0 -2
- data/lib/datadog/tracing/contrib/sinatra/tracer_middleware.rb +0 -2
- data/lib/datadog/tracing/contrib/sneakers/configuration/settings.rb +0 -2
- data/lib/datadog/tracing/contrib/sneakers/ext.rb +1 -2
- data/lib/datadog/tracing/contrib/sneakers/integration.rb +0 -2
- data/lib/datadog/tracing/contrib/sneakers/patcher.rb +0 -2
- data/lib/datadog/tracing/contrib/sneakers/tracer.rb +3 -2
- data/lib/datadog/tracing/contrib/status_code_matcher.rb +0 -2
- data/lib/datadog/tracing/contrib/stripe/patcher.rb +0 -1
- data/lib/datadog/tracing/contrib/sucker_punch/configuration/settings.rb +0 -2
- data/lib/datadog/tracing/contrib/sucker_punch/exception_handler.rb +0 -2
- data/lib/datadog/tracing/contrib/sucker_punch/ext.rb +0 -2
- data/lib/datadog/tracing/contrib/sucker_punch/instrumentation.rb +0 -2
- data/lib/datadog/tracing/contrib/sucker_punch/integration.rb +0 -2
- data/lib/datadog/tracing/contrib/sucker_punch/patcher.rb +0 -3
- data/lib/datadog/tracing/contrib/utils/database.rb +0 -2
- data/lib/datadog/tracing/contrib/utils/quantization/hash.rb +0 -2
- data/lib/datadog/tracing/contrib/utils/quantization/http.rb +0 -4
- data/lib/datadog/tracing/contrib.rb +0 -2
- data/lib/datadog/tracing/correlation.rb +15 -3
- data/lib/datadog/tracing/diagnostics/ext.rb +0 -2
- data/lib/datadog/tracing/diagnostics/health.rb +0 -2
- data/lib/datadog/tracing/distributed/b3_multi.rb +12 -6
- data/lib/datadog/tracing/distributed/b3_single.rb +8 -6
- data/lib/datadog/tracing/distributed/datadog.rb +58 -11
- data/lib/datadog/tracing/distributed/datadog_tags_codec.rb +0 -1
- data/lib/datadog/tracing/distributed/fetcher.rb +0 -9
- data/lib/datadog/tracing/distributed/headers/ext.rb +0 -1
- data/lib/datadog/tracing/distributed/helpers.rb +21 -36
- data/lib/datadog/tracing/distributed/none.rb +0 -1
- data/lib/datadog/tracing/distributed/propagation.rb +0 -1
- data/lib/datadog/tracing/distributed/trace_context.rb +8 -13
- data/lib/datadog/tracing/event.rb +0 -2
- data/lib/datadog/tracing/flush.rb +0 -2
- data/lib/datadog/tracing/metadata/analytics.rb +0 -2
- data/lib/datadog/tracing/metadata/errors.rb +0 -2
- data/lib/datadog/tracing/metadata/ext.rb +6 -2
- data/lib/datadog/tracing/metadata/tagging.rb +0 -2
- data/lib/datadog/tracing/metadata.rb +0 -2
- data/lib/datadog/tracing/pipeline/span_filter.rb +0 -2
- data/lib/datadog/tracing/pipeline/span_processor.rb +0 -2
- data/lib/datadog/tracing/pipeline.rb +0 -2
- data/lib/datadog/tracing/propagation/http.rb +0 -2
- data/lib/datadog/tracing/runtime/metrics.rb +0 -2
- data/lib/datadog/tracing/sampling/all_sampler.rb +0 -2
- data/lib/datadog/tracing/sampling/ext.rb +0 -2
- data/lib/datadog/tracing/sampling/matcher.rb +0 -2
- data/lib/datadog/tracing/sampling/priority_sampler.rb +0 -2
- data/lib/datadog/tracing/sampling/rate_by_key_sampler.rb +0 -2
- data/lib/datadog/tracing/sampling/rate_by_service_sampler.rb +0 -2
- data/lib/datadog/tracing/sampling/rate_limiter.rb +0 -2
- data/lib/datadog/tracing/sampling/rate_sampler.rb +0 -2
- data/lib/datadog/tracing/sampling/rule.rb +0 -2
- data/lib/datadog/tracing/sampling/rule_sampler.rb +0 -2
- data/lib/datadog/tracing/sampling/sampler.rb +0 -2
- data/lib/datadog/tracing/span.rb +0 -2
- data/lib/datadog/tracing/span_operation.rb +1 -3
- data/lib/datadog/tracing/sync_writer.rb +0 -2
- data/lib/datadog/tracing/trace_digest.rb +0 -2
- data/lib/datadog/tracing/trace_operation.rb +1 -3
- data/lib/datadog/tracing/trace_segment.rb +7 -2
- data/lib/datadog/tracing/tracer.rb +0 -2
- data/lib/datadog/tracing/utils.rb +33 -2
- data/lib/datadog/tracing/workers/trace_writer.rb +0 -2
- data/lib/datadog/tracing/workers.rb +0 -2
- data/lib/datadog/tracing/writer.rb +0 -2
- data/lib/datadog/tracing.rb +0 -2
- data/lib/ddtrace/auto_instrument.rb +0 -2
- data/lib/ddtrace/auto_instrument_base.rb +0 -2
- data/lib/ddtrace/profiling/preload.rb +0 -2
- data/lib/ddtrace/transport/ext.rb +0 -2
- data/lib/ddtrace/transport/http/adapters/net.rb +0 -2
- data/lib/ddtrace/transport/http/adapters/registry.rb +0 -2
- data/lib/ddtrace/transport/http/adapters/test.rb +0 -2
- data/lib/ddtrace/transport/http/adapters/unix_socket.rb +0 -2
- data/lib/ddtrace/transport/http/api/endpoint.rb +0 -2
- data/lib/ddtrace/transport/http/api/fallbacks.rb +0 -2
- data/lib/ddtrace/transport/http/api/instance.rb +0 -2
- data/lib/ddtrace/transport/http/api/map.rb +0 -2
- data/lib/ddtrace/transport/http/api/spec.rb +0 -2
- data/lib/ddtrace/transport/http/api.rb +0 -2
- data/lib/ddtrace/transport/http/builder.rb +0 -2
- data/lib/ddtrace/transport/http/client.rb +0 -2
- data/lib/ddtrace/transport/http/env.rb +0 -2
- data/lib/ddtrace/transport/http/response.rb +0 -2
- data/lib/ddtrace/transport/http/statistics.rb +0 -2
- data/lib/ddtrace/transport/http/traces.rb +0 -2
- data/lib/ddtrace/transport/http.rb +0 -4
- data/lib/ddtrace/transport/io/client.rb +0 -2
- data/lib/ddtrace/transport/io/response.rb +0 -2
- data/lib/ddtrace/transport/io/traces.rb +0 -4
- data/lib/ddtrace/transport/io.rb +0 -2
- data/lib/ddtrace/transport/parcel.rb +0 -4
- data/lib/ddtrace/transport/request.rb +0 -2
- data/lib/ddtrace/transport/response.rb +0 -2
- data/lib/ddtrace/transport/serializable_trace.rb +9 -5
- data/lib/ddtrace/transport/statistics.rb +0 -2
- data/lib/ddtrace/transport/trace_formatter.rb +7 -2
- data/lib/ddtrace/transport/traces.rb +0 -2
- data/lib/ddtrace/version.rb +1 -3
- data/lib/ddtrace.rb +1 -5
- metadata +27 -16
- data/ext/ddtrace_profiling_native_extension/collectors_cpu_and_wall_time.h +0 -9
- data/lib/datadog/appsec/assets/waf_rules/risky.json +0 -1499
- data/lib/datadog/appsec/contrib/rack/request.rb +0 -78
- data/lib/datadog/appsec/contrib/rack/response.rb +0 -24
|
@@ -1,5 +1,3 @@
|
|
|
1
|
-
# typed: false
|
|
2
|
-
|
|
3
1
|
require_relative 'agent_settings_resolver'
|
|
4
2
|
require_relative '../diagnostics/environment_logger'
|
|
5
3
|
require_relative '../diagnostics/health'
|
|
@@ -8,11 +6,9 @@ require_relative '../runtime/metrics'
|
|
|
8
6
|
require_relative '../telemetry/client'
|
|
9
7
|
require_relative '../workers/runtime_metrics'
|
|
10
8
|
|
|
11
|
-
require_relative '../../tracing/
|
|
12
|
-
require_relative '../../
|
|
13
|
-
require_relative '../../
|
|
14
|
-
require_relative '../../tracing/sampling/span/rule_parser'
|
|
15
|
-
require_relative '../../tracing/sampling/span/sampler'
|
|
9
|
+
require_relative '../../tracing/component'
|
|
10
|
+
require_relative '../../profiling/component'
|
|
11
|
+
require_relative '../../appsec/component'
|
|
16
12
|
|
|
17
13
|
module Datadog
|
|
18
14
|
module Core
|
|
@@ -20,6 +16,9 @@ module Datadog
|
|
|
20
16
|
# Global components for the trace library.
|
|
21
17
|
class Components
|
|
22
18
|
class << self
|
|
19
|
+
include Datadog::Tracing::Component
|
|
20
|
+
include Datadog::Profiling::Component
|
|
21
|
+
|
|
23
22
|
def build_health_metrics(settings)
|
|
24
23
|
settings = settings.diagnostics.health_metrics
|
|
25
24
|
options = { enabled: settings.enabled }
|
|
@@ -56,316 +55,6 @@ module Datadog
|
|
|
56
55
|
def build_telemetry(settings)
|
|
57
56
|
Telemetry::Client.new(enabled: settings.telemetry.enabled)
|
|
58
57
|
end
|
|
59
|
-
|
|
60
|
-
def build_tracer(settings, agent_settings)
|
|
61
|
-
# If a custom tracer has been provided, use it instead.
|
|
62
|
-
# Ignore all other options (they should already be configured.)
|
|
63
|
-
tracer = settings.tracing.instance
|
|
64
|
-
return tracer unless tracer.nil?
|
|
65
|
-
|
|
66
|
-
# Apply test mode settings if test mode is activated
|
|
67
|
-
if settings.tracing.test_mode.enabled
|
|
68
|
-
trace_flush = build_test_mode_trace_flush(settings)
|
|
69
|
-
sampler = build_test_mode_sampler
|
|
70
|
-
writer = build_test_mode_writer(settings, agent_settings)
|
|
71
|
-
else
|
|
72
|
-
trace_flush = build_trace_flush(settings)
|
|
73
|
-
sampler = build_sampler(settings)
|
|
74
|
-
writer = build_writer(settings, agent_settings)
|
|
75
|
-
end
|
|
76
|
-
|
|
77
|
-
subscribe_to_writer_events!(writer, sampler, settings.tracing.test_mode.enabled)
|
|
78
|
-
|
|
79
|
-
Tracing::Tracer.new(
|
|
80
|
-
default_service: settings.service,
|
|
81
|
-
enabled: settings.tracing.enabled,
|
|
82
|
-
trace_flush: trace_flush,
|
|
83
|
-
sampler: sampler,
|
|
84
|
-
span_sampler: build_span_sampler(settings),
|
|
85
|
-
writer: writer,
|
|
86
|
-
tags: build_tracer_tags(settings),
|
|
87
|
-
)
|
|
88
|
-
end
|
|
89
|
-
|
|
90
|
-
def build_trace_flush(settings)
|
|
91
|
-
if settings.tracing.partial_flush.enabled
|
|
92
|
-
Tracing::Flush::Partial.new(
|
|
93
|
-
min_spans_before_partial_flush: settings.tracing.partial_flush.min_spans_threshold
|
|
94
|
-
)
|
|
95
|
-
else
|
|
96
|
-
Tracing::Flush::Finished.new
|
|
97
|
-
end
|
|
98
|
-
end
|
|
99
|
-
|
|
100
|
-
# TODO: Sampler should be a top-level component.
|
|
101
|
-
# It is currently part of the Tracer initialization
|
|
102
|
-
# process, but can take a variety of options (including
|
|
103
|
-
# a fully custom instance) that makes the Tracer
|
|
104
|
-
# initialization process complex.
|
|
105
|
-
def build_sampler(settings)
|
|
106
|
-
if (sampler = settings.tracing.sampler)
|
|
107
|
-
if settings.tracing.priority_sampling == false
|
|
108
|
-
sampler
|
|
109
|
-
else
|
|
110
|
-
ensure_priority_sampling(sampler, settings)
|
|
111
|
-
end
|
|
112
|
-
elsif settings.tracing.priority_sampling == false
|
|
113
|
-
Tracing::Sampling::RuleSampler.new(
|
|
114
|
-
rate_limit: settings.tracing.sampling.rate_limit,
|
|
115
|
-
default_sample_rate: settings.tracing.sampling.default_rate
|
|
116
|
-
)
|
|
117
|
-
else
|
|
118
|
-
Tracing::Sampling::PrioritySampler.new(
|
|
119
|
-
base_sampler: Tracing::Sampling::AllSampler.new,
|
|
120
|
-
post_sampler: Tracing::Sampling::RuleSampler.new(
|
|
121
|
-
rate_limit: settings.tracing.sampling.rate_limit,
|
|
122
|
-
default_sample_rate: settings.tracing.sampling.default_rate
|
|
123
|
-
)
|
|
124
|
-
)
|
|
125
|
-
end
|
|
126
|
-
end
|
|
127
|
-
|
|
128
|
-
def ensure_priority_sampling(sampler, settings)
|
|
129
|
-
if sampler.is_a?(Tracing::Sampling::PrioritySampler)
|
|
130
|
-
sampler
|
|
131
|
-
else
|
|
132
|
-
Tracing::Sampling::PrioritySampler.new(
|
|
133
|
-
base_sampler: sampler,
|
|
134
|
-
post_sampler: Tracing::Sampling::RuleSampler.new(
|
|
135
|
-
rate_limit: settings.tracing.sampling.rate_limit,
|
|
136
|
-
default_sample_rate: settings.tracing.sampling.default_rate
|
|
137
|
-
)
|
|
138
|
-
)
|
|
139
|
-
end
|
|
140
|
-
end
|
|
141
|
-
|
|
142
|
-
# TODO: Writer should be a top-level component.
|
|
143
|
-
# It is currently part of the Tracer initialization
|
|
144
|
-
# process, but can take a variety of options (including
|
|
145
|
-
# a fully custom instance) that makes the Tracer
|
|
146
|
-
# initialization process complex.
|
|
147
|
-
def build_writer(settings, agent_settings)
|
|
148
|
-
if (writer = settings.tracing.writer)
|
|
149
|
-
return writer
|
|
150
|
-
end
|
|
151
|
-
|
|
152
|
-
Tracing::Writer.new(agent_settings: agent_settings, **settings.tracing.writer_options)
|
|
153
|
-
end
|
|
154
|
-
|
|
155
|
-
def subscribe_to_writer_events!(writer, sampler, test_mode)
|
|
156
|
-
return unless writer.respond_to?(:events) # Check if it's a custom, external writer
|
|
157
|
-
|
|
158
|
-
writer.events.after_send.subscribe(&WRITER_RECORD_ENVIRONMENT_INFORMATION_CALLBACK)
|
|
159
|
-
|
|
160
|
-
return unless sampler.is_a?(Tracing::Sampling::PrioritySampler)
|
|
161
|
-
|
|
162
|
-
# DEV: We need to ignore priority sampling updates coming from the agent in test mode
|
|
163
|
-
# because test mode wants to *unconditionally* sample all traces.
|
|
164
|
-
#
|
|
165
|
-
# This can cause trace metrics to be overestimated, but that's a trade-off we take
|
|
166
|
-
# here to achieve 100% sampling rate.
|
|
167
|
-
return if test_mode
|
|
168
|
-
|
|
169
|
-
writer.events.after_send.subscribe(&writer_update_priority_sampler_rates_callback(sampler))
|
|
170
|
-
end
|
|
171
|
-
|
|
172
|
-
WRITER_RECORD_ENVIRONMENT_INFORMATION_CALLBACK = lambda do |_, responses|
|
|
173
|
-
Core::Diagnostics::EnvironmentLogger.log!(responses)
|
|
174
|
-
end
|
|
175
|
-
|
|
176
|
-
# Create new lambda for writer callback,
|
|
177
|
-
# capture the current sampler in the callback closure.
|
|
178
|
-
def writer_update_priority_sampler_rates_callback(sampler)
|
|
179
|
-
lambda do |_, responses|
|
|
180
|
-
response = responses.last
|
|
181
|
-
|
|
182
|
-
next unless response && !response.internal_error? && response.service_rates
|
|
183
|
-
|
|
184
|
-
sampler.update(response.service_rates, decision: Tracing::Sampling::Ext::Decision::AGENT_RATE)
|
|
185
|
-
end
|
|
186
|
-
end
|
|
187
|
-
|
|
188
|
-
def build_span_sampler(settings)
|
|
189
|
-
rules = Tracing::Sampling::Span::RuleParser.parse_json(settings.tracing.sampling.span_rules)
|
|
190
|
-
Tracing::Sampling::Span::Sampler.new(rules || [])
|
|
191
|
-
end
|
|
192
|
-
|
|
193
|
-
def build_profiler(settings, agent_settings, tracer)
|
|
194
|
-
return unless settings.profiling.enabled
|
|
195
|
-
|
|
196
|
-
# Workaround for weird dependency direction: the Core::Configuration::Components class currently has a
|
|
197
|
-
# dependency on individual products, in this case the Profiler.
|
|
198
|
-
# (Note "currently": in the future we want to change this so core classes don't depend on specific products)
|
|
199
|
-
#
|
|
200
|
-
# If the current file included a `require 'datadog/profiler'` at its beginning, we would generate circular
|
|
201
|
-
# requires when used from profiling:
|
|
202
|
-
#
|
|
203
|
-
# datadog/profiling
|
|
204
|
-
# └─requires─> datadog/core
|
|
205
|
-
# └─requires─> datadog/core/configuration/components
|
|
206
|
-
# └─requires─> datadog/profiling # Loop!
|
|
207
|
-
#
|
|
208
|
-
# ...thus in #1998 we removed such a require.
|
|
209
|
-
#
|
|
210
|
-
# On the other hand, if datadog/core is loaded by a different product and no general `require 'ddtrace'` is
|
|
211
|
-
# done, then profiling may not be loaded, and thus to avoid this issue we do a require here (which is a
|
|
212
|
-
# no-op if profiling is already loaded).
|
|
213
|
-
require_relative '../../profiling'
|
|
214
|
-
return unless Profiling.supported?
|
|
215
|
-
|
|
216
|
-
unless defined?(Profiling::Tasks::Setup)
|
|
217
|
-
# In #1545 a user reported a NameError due to this constant being uninitialized
|
|
218
|
-
# I've documented my suspicion on why that happened in
|
|
219
|
-
# https://github.com/DataDog/dd-trace-rb/issues/1545#issuecomment-856049025
|
|
220
|
-
#
|
|
221
|
-
# > Thanks for the info! It seems to feed into my theory: there's two moments in the code where we check if
|
|
222
|
-
# > profiler is "supported": 1) when loading ddtrace (inside preload) and 2) when starting the profile
|
|
223
|
-
# > after Datadog.configure gets run.
|
|
224
|
-
# > The problem is that the code assumes that both checks 1) and 2) will always reach the same conclusion:
|
|
225
|
-
# > either profiler is supported, or profiler is not supported.
|
|
226
|
-
# > In the problematic case, it looks like in your case check 1 decides that profiler is not
|
|
227
|
-
# > supported => doesn't load it, and then check 2 decides that it is => assumes it is loaded and tries to
|
|
228
|
-
# > start it.
|
|
229
|
-
#
|
|
230
|
-
# I was never able to validate if this was the issue or why exactly .supported? would change its mind BUT
|
|
231
|
-
# just in case it happens again, I've left this check which avoids breaking the user's application AND
|
|
232
|
-
# would instead direct them to report it to us instead, so that we can investigate what's wrong.
|
|
233
|
-
#
|
|
234
|
-
# TODO: As of June 2021, most checks in .supported? are related to the google-protobuf gem; so it's
|
|
235
|
-
# very likely that it was the origin of the issue we saw. Thus, if, as planned we end up moving away from
|
|
236
|
-
# protobuf OR enough time has passed and no users saw the issue again, we can remove this check altogether.
|
|
237
|
-
Datadog.logger.error(
|
|
238
|
-
'Profiling was marked as supported and enabled, but setup task was not loaded properly. ' \
|
|
239
|
-
'Please report this at https://github.com/DataDog/dd-trace-rb/blob/master/CONTRIBUTING.md#found-a-bug'
|
|
240
|
-
)
|
|
241
|
-
|
|
242
|
-
return
|
|
243
|
-
end
|
|
244
|
-
|
|
245
|
-
# Load extensions needed to support some of the Profiling features
|
|
246
|
-
Profiling::Tasks::Setup.new.run
|
|
247
|
-
|
|
248
|
-
# NOTE: Please update the Initialization section of ProfilingDevelopment.md with any changes to this method
|
|
249
|
-
|
|
250
|
-
if settings.profiling.advanced.force_enable_new_profiler
|
|
251
|
-
print_new_profiler_warnings
|
|
252
|
-
|
|
253
|
-
recorder = Datadog::Profiling::StackRecorder.new
|
|
254
|
-
collector = Datadog::Profiling::Collectors::CpuAndWallTimeWorker.new(
|
|
255
|
-
recorder: recorder,
|
|
256
|
-
max_frames: settings.profiling.advanced.max_frames,
|
|
257
|
-
tracer: tracer,
|
|
258
|
-
gc_profiling_enabled: should_enable_gc_profiling?(settings)
|
|
259
|
-
)
|
|
260
|
-
else
|
|
261
|
-
trace_identifiers_helper = Profiling::TraceIdentifiers::Helper.new(
|
|
262
|
-
tracer: tracer,
|
|
263
|
-
endpoint_collection_enabled: settings.profiling.advanced.endpoint.collection.enabled
|
|
264
|
-
)
|
|
265
|
-
|
|
266
|
-
recorder = build_profiler_old_recorder(settings)
|
|
267
|
-
collector = build_profiler_oldstack_collector(settings, recorder, trace_identifiers_helper)
|
|
268
|
-
end
|
|
269
|
-
|
|
270
|
-
exporter = build_profiler_exporter(settings, recorder)
|
|
271
|
-
transport = build_profiler_transport(settings, agent_settings)
|
|
272
|
-
scheduler = Profiling::Scheduler.new(exporter: exporter, transport: transport)
|
|
273
|
-
|
|
274
|
-
Profiling::Profiler.new([collector], scheduler)
|
|
275
|
-
end
|
|
276
|
-
|
|
277
|
-
private
|
|
278
|
-
|
|
279
|
-
def build_tracer_tags(settings)
|
|
280
|
-
settings.tags.dup.tap do |tags|
|
|
281
|
-
tags[Core::Environment::Ext::TAG_ENV] = settings.env unless settings.env.nil?
|
|
282
|
-
tags[Core::Environment::Ext::TAG_VERSION] = settings.version unless settings.version.nil?
|
|
283
|
-
end
|
|
284
|
-
end
|
|
285
|
-
|
|
286
|
-
def build_test_mode_trace_flush(settings)
|
|
287
|
-
# If context flush behavior is provided, use it instead.
|
|
288
|
-
settings.tracing.test_mode.trace_flush || build_trace_flush(settings)
|
|
289
|
-
end
|
|
290
|
-
|
|
291
|
-
def build_test_mode_sampler
|
|
292
|
-
# Do not sample any spans for tests; all must be preserved.
|
|
293
|
-
# Set priority sampler to ensure the agent doesn't drop any traces.
|
|
294
|
-
Tracing::Sampling::PrioritySampler.new(
|
|
295
|
-
base_sampler: Tracing::Sampling::AllSampler.new,
|
|
296
|
-
post_sampler: Tracing::Sampling::AllSampler.new
|
|
297
|
-
)
|
|
298
|
-
end
|
|
299
|
-
|
|
300
|
-
def build_test_mode_writer(settings, agent_settings)
|
|
301
|
-
# Flush traces synchronously, to guarantee they are written.
|
|
302
|
-
writer_options = settings.tracing.test_mode.writer_options || {}
|
|
303
|
-
Tracing::SyncWriter.new(agent_settings: agent_settings, **writer_options)
|
|
304
|
-
end
|
|
305
|
-
|
|
306
|
-
def build_profiler_old_recorder(settings)
|
|
307
|
-
Profiling::OldRecorder.new([Profiling::Events::StackSample], settings.profiling.advanced.max_events)
|
|
308
|
-
end
|
|
309
|
-
|
|
310
|
-
def build_profiler_exporter(settings, recorder)
|
|
311
|
-
code_provenance_collector =
|
|
312
|
-
(Profiling::Collectors::CodeProvenance.new if settings.profiling.advanced.code_provenance_enabled)
|
|
313
|
-
|
|
314
|
-
Profiling::Exporter.new(pprof_recorder: recorder, code_provenance_collector: code_provenance_collector)
|
|
315
|
-
end
|
|
316
|
-
|
|
317
|
-
def build_profiler_oldstack_collector(settings, old_recorder, trace_identifiers_helper)
|
|
318
|
-
Profiling::Collectors::OldStack.new(
|
|
319
|
-
old_recorder,
|
|
320
|
-
trace_identifiers_helper: trace_identifiers_helper,
|
|
321
|
-
max_frames: settings.profiling.advanced.max_frames
|
|
322
|
-
)
|
|
323
|
-
end
|
|
324
|
-
|
|
325
|
-
def build_profiler_transport(settings, agent_settings)
|
|
326
|
-
settings.profiling.exporter.transport ||
|
|
327
|
-
Profiling::HttpTransport.new(
|
|
328
|
-
agent_settings: agent_settings,
|
|
329
|
-
site: settings.site,
|
|
330
|
-
api_key: settings.api_key,
|
|
331
|
-
upload_timeout_seconds: settings.profiling.upload.timeout_seconds,
|
|
332
|
-
)
|
|
333
|
-
end
|
|
334
|
-
|
|
335
|
-
def should_enable_gc_profiling?(settings)
|
|
336
|
-
# See comments on the setting definition for more context on why it exists.
|
|
337
|
-
if settings.profiling.advanced.force_enable_gc_profiling
|
|
338
|
-
if Gem::Version.new(RUBY_VERSION) >= Gem::Version.new('3')
|
|
339
|
-
Datadog.logger.debug(
|
|
340
|
-
'Profiling time/resources spent in Garbage Collection force enabled. Do not use Ractors in combination ' \
|
|
341
|
-
'with this option as profiles will be incomplete.'
|
|
342
|
-
)
|
|
343
|
-
end
|
|
344
|
-
|
|
345
|
-
true
|
|
346
|
-
else
|
|
347
|
-
false
|
|
348
|
-
end
|
|
349
|
-
end
|
|
350
|
-
|
|
351
|
-
def print_new_profiler_warnings
|
|
352
|
-
if Gem::Version.new(RUBY_VERSION) >= Gem::Version.new('2.6')
|
|
353
|
-
Datadog.logger.warn(
|
|
354
|
-
'New Ruby profiler has been force-enabled. This feature is in beta state. We do not yet recommend ' \
|
|
355
|
-
'running it in production environments. Please report any issues ' \
|
|
356
|
-
'you run into to Datadog support or via <https://github.com/datadog/dd-trace-rb/issues/new>!'
|
|
357
|
-
)
|
|
358
|
-
else
|
|
359
|
-
# For more details on the issue, see the "BIG Issue" comment on `gvl_owner` function in
|
|
360
|
-
# `private_vm_api_access.c`.
|
|
361
|
-
Datadog.logger.warn(
|
|
362
|
-
'New Ruby profiler has been force-enabled on a legacy Ruby version (< 2.6). This is not recommended in ' \
|
|
363
|
-
'production environments, as due to limitations in Ruby APIs, we suspect it may lead to crashes in very ' \
|
|
364
|
-
'rare situations. Please report any issues you run into to Datadog support or ' \
|
|
365
|
-
'via <https://github.com/datadog/dd-trace-rb/issues/new>!'
|
|
366
|
-
)
|
|
367
|
-
end
|
|
368
|
-
end
|
|
369
58
|
end
|
|
370
59
|
|
|
371
60
|
attr_reader \
|
|
@@ -374,7 +63,8 @@ module Datadog
|
|
|
374
63
|
:profiler,
|
|
375
64
|
:runtime_metrics,
|
|
376
65
|
:telemetry,
|
|
377
|
-
:tracer
|
|
66
|
+
:tracer,
|
|
67
|
+
:appsec
|
|
378
68
|
|
|
379
69
|
def initialize(settings)
|
|
380
70
|
# Logger
|
|
@@ -396,6 +86,9 @@ module Datadog
|
|
|
396
86
|
|
|
397
87
|
# Telemetry
|
|
398
88
|
@telemetry = self.class.build_telemetry(settings)
|
|
89
|
+
|
|
90
|
+
# AppSec
|
|
91
|
+
@appsec = Datadog::AppSec::Component.build_appsec_component(settings.appsec)
|
|
399
92
|
end
|
|
400
93
|
|
|
401
94
|
# Starts up components
|
|
@@ -418,6 +111,9 @@ module Datadog
|
|
|
418
111
|
# If it has another instance to compare to, it will compare
|
|
419
112
|
# and avoid tearing down parts still in use.
|
|
420
113
|
def shutdown!(replacement = nil)
|
|
114
|
+
# Decommission AppSec
|
|
115
|
+
appsec.shutdown! if appsec
|
|
116
|
+
|
|
421
117
|
# Shutdown the old tracer, unless it's still being used.
|
|
422
118
|
# (e.g. a custom tracer instance passed in.)
|
|
423
119
|
tracer.shutdown! unless replacement && tracer == replacement.tracer
|
|
@@ -1,5 +1,3 @@
|
|
|
1
|
-
# typed: false
|
|
2
|
-
|
|
3
1
|
require 'logger'
|
|
4
2
|
|
|
5
3
|
require_relative 'base'
|
|
@@ -206,6 +204,7 @@ module Datadog
|
|
|
206
204
|
# This should never be reduced, as it can cause the resulting profiles to become biased.
|
|
207
205
|
# The current default should be enough for most services, allowing 16 threads to be sampled around 30 times
|
|
208
206
|
# per second for a 60 second period.
|
|
207
|
+
# This setting is ignored when CPU Profiling 2.0 is in use.
|
|
209
208
|
option :max_events, default: 32768
|
|
210
209
|
|
|
211
210
|
# Controls the maximum number of frames for each thread sampled. Can be tuned to avoid omitted frames in the
|
|
@@ -232,8 +231,8 @@ module Datadog
|
|
|
232
231
|
end
|
|
233
232
|
end
|
|
234
233
|
|
|
235
|
-
#
|
|
236
|
-
# categorization of stack traces.
|
|
234
|
+
# Can be used to disable the gathering of names and versions of gems in use by the service, used to power
|
|
235
|
+
# grouping and categorization of stack traces.
|
|
237
236
|
option :code_provenance_enabled, default: true
|
|
238
237
|
|
|
239
238
|
# No longer does anything, and will be removed on dd-trace-rb 2.0.
|
|
@@ -249,7 +248,7 @@ module Datadog
|
|
|
249
248
|
end
|
|
250
249
|
end
|
|
251
250
|
|
|
252
|
-
# Forces enabling the new
|
|
251
|
+
# Forces enabling the new CPU Profiling 2.0 profiler (see ddtrace release notes for more details).
|
|
253
252
|
#
|
|
254
253
|
# Note that setting this to "false" (or not setting it) will not prevent the new profiler from
|
|
255
254
|
# being automatically used in the future.
|
|
@@ -279,6 +278,16 @@ module Datadog
|
|
|
279
278
|
o.default { env_to_bool('DD_PROFILING_FORCE_ENABLE_GC', false) }
|
|
280
279
|
o.lazy
|
|
281
280
|
end
|
|
281
|
+
|
|
282
|
+
# Can be used to enable/disable the Datadog::Profiling.allocation_count feature.
|
|
283
|
+
#
|
|
284
|
+
# This feature is safe and enabled by default on Ruby 2.x, but
|
|
285
|
+
# on Ruby 3.x it can break in applications that make use of Ractors due to two Ruby VM bugs:
|
|
286
|
+
# https://bugs.ruby-lang.org/issues/19112 AND https://bugs.ruby-lang.org/issues/18464.
|
|
287
|
+
#
|
|
288
|
+
# If you use Ruby 3.x and your application does not use Ractors (or if your Ruby has been patched), the
|
|
289
|
+
# feature is fully safe to enable and this toggle can be used to do so.
|
|
290
|
+
option :allocation_counting_enabled, default: RUBY_VERSION.start_with?('2.')
|
|
282
291
|
end
|
|
283
292
|
|
|
284
293
|
# @public_api
|
|
@@ -1,5 +1,3 @@
|
|
|
1
|
-
# typed: true
|
|
2
|
-
|
|
3
1
|
require_relative 'configuration/components'
|
|
4
2
|
require_relative 'configuration/settings'
|
|
5
3
|
require_relative 'telemetry/emitter'
|
|
@@ -10,8 +8,6 @@ module Datadog
|
|
|
10
8
|
module Core
|
|
11
9
|
# Configuration provides a unique access point for configurations
|
|
12
10
|
module Configuration
|
|
13
|
-
include Kernel # Ensure that kernel methods are always available (https://sorbet.org/docs/error-reference#7003)
|
|
14
|
-
|
|
15
11
|
# Used to ensure that @components initialization/reconfiguration is performed one-at-a-time, by a single thread.
|
|
16
12
|
#
|
|
17
13
|
# This is important because components can end up being accessed from multiple application threads (for instance on
|
|
@@ -1,5 +1,3 @@
|
|
|
1
|
-
# typed: true
|
|
2
|
-
|
|
3
1
|
require 'json'
|
|
4
2
|
require 'msgpack'
|
|
5
3
|
|
|
@@ -10,8 +8,6 @@ module Datadog
|
|
|
10
8
|
# Encoder interface that provides the logic to encode traces and service
|
|
11
9
|
# @abstract
|
|
12
10
|
module Encoder
|
|
13
|
-
include Kernel # Ensure that kernel methods are always available (https://sorbet.org/docs/error-reference#7003)
|
|
14
|
-
|
|
15
11
|
def content_type
|
|
16
12
|
raise NotImplementedError
|
|
17
13
|
end
|
|
@@ -1,5 +1,3 @@
|
|
|
1
|
-
# typed: true
|
|
2
|
-
|
|
3
1
|
require_relative 'ext'
|
|
4
2
|
|
|
5
3
|
module Datadog
|
|
@@ -10,8 +8,6 @@ module Datadog
|
|
|
10
8
|
# about the current Linux container identity.
|
|
11
9
|
# @see https://man7.org/linux/man-pages/man7/cgroups.7.html
|
|
12
10
|
module Cgroup
|
|
13
|
-
include Kernel # Ensure that kernel methods are always available (https://sorbet.org/docs/error-reference#7003)
|
|
14
|
-
|
|
15
11
|
LINE_REGEX = /^(\d+):([^:]*):(.+)$/.freeze
|
|
16
12
|
|
|
17
13
|
Descriptor = Struct.new(
|
|
@@ -1,5 +1,3 @@
|
|
|
1
|
-
# typed: true
|
|
2
|
-
|
|
3
1
|
require_relative 'cgroup'
|
|
4
2
|
|
|
5
3
|
module Datadog
|
|
@@ -7,8 +5,6 @@ module Datadog
|
|
|
7
5
|
module Environment
|
|
8
6
|
# For container environments
|
|
9
7
|
module Container
|
|
10
|
-
include Kernel # Ensure that kernel methods are always available (https://sorbet.org/docs/error-reference#7003)
|
|
11
|
-
|
|
12
8
|
UUID_PATTERN = '[0-9a-f]{8}[-_]?[0-9a-f]{4}[-_]?[0-9a-f]{4}[-_]?[0-9a-f]{4}[-_]?[0-9a-f]{12}'.freeze
|
|
13
9
|
CONTAINER_PATTERN = '[0-9a-f]{64}'.freeze
|
|
14
10
|
|
|
@@ -1,5 +1,3 @@
|
|
|
1
|
-
# typed: true
|
|
2
|
-
|
|
3
1
|
module Datadog
|
|
4
2
|
module Core
|
|
5
3
|
module Environment
|
|
@@ -20,6 +18,9 @@ module Datadog
|
|
|
20
18
|
# Whenever a constant creation busts the global constant cache
|
|
21
19
|
# this value is incremented. This has a measurable performance impact
|
|
22
20
|
# and thus show be avoided after application warm up.
|
|
21
|
+
#
|
|
22
|
+
# This was removed in Ruby 3.2.
|
|
23
|
+
# @see https://github.com/ruby/ruby/blob/master/doc/NEWS/NEWS-3.2.0.md#implementation-improvements
|
|
23
24
|
def global_constant_state
|
|
24
25
|
::RubyVM.stat[:global_constant_state]
|
|
25
26
|
end
|
|
@@ -38,6 +39,20 @@ module Datadog
|
|
|
38
39
|
::RubyVM.stat[:global_method_state]
|
|
39
40
|
end
|
|
40
41
|
|
|
42
|
+
# Introduced in Ruby 3.2 to match an improved cache implementation.
|
|
43
|
+
#
|
|
44
|
+
# @see https://bugs.ruby-lang.org/issues/18589
|
|
45
|
+
def constant_cache_invalidations
|
|
46
|
+
::RubyVM.stat[:constant_cache_invalidations]
|
|
47
|
+
end
|
|
48
|
+
|
|
49
|
+
# Introduced in Ruby 3.2 to match an improved cache implementation.
|
|
50
|
+
#
|
|
51
|
+
# @see https://bugs.ruby-lang.org/issues/18589
|
|
52
|
+
def constant_cache_misses
|
|
53
|
+
::RubyVM.stat[:constant_cache_misses]
|
|
54
|
+
end
|
|
55
|
+
|
|
41
56
|
def available?
|
|
42
57
|
defined?(::RubyVM) && ::RubyVM.respond_to?(:stat)
|
|
43
58
|
end
|
data/lib/datadog/core/error.rb
CHANGED