ddtrace 1.2.0 → 1.10.1
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 +442 -2
- data/LICENSE-3rdparty.csv +4 -0
- data/README.md +2 -2
- data/ext/ddtrace_profiling_loader/ddtrace_profiling_loader.c +20 -4
- data/ext/ddtrace_profiling_loader/extconf.rb +21 -3
- data/ext/ddtrace_profiling_native_extension/NativeExtensionDesign.md +46 -3
- data/ext/ddtrace_profiling_native_extension/clock_id.h +21 -0
- data/ext/ddtrace_profiling_native_extension/clock_id_from_pthread.c +33 -2
- data/ext/ddtrace_profiling_native_extension/clock_id_noop.c +10 -1
- data/ext/ddtrace_profiling_native_extension/collectors_cpu_and_wall_time_worker.c +821 -0
- data/ext/ddtrace_profiling_native_extension/collectors_dynamic_sampling_rate.c +142 -0
- data/ext/ddtrace_profiling_native_extension/collectors_dynamic_sampling_rate.h +14 -0
- data/ext/ddtrace_profiling_native_extension/collectors_idle_sampling_helper.c +241 -0
- data/ext/ddtrace_profiling_native_extension/collectors_idle_sampling_helper.h +3 -0
- data/ext/ddtrace_profiling_native_extension/collectors_stack.c +186 -85
- data/ext/ddtrace_profiling_native_extension/collectors_stack.h +13 -2
- data/ext/ddtrace_profiling_native_extension/collectors_thread_context.c +978 -0
- data/ext/ddtrace_profiling_native_extension/collectors_thread_context.h +14 -0
- data/ext/ddtrace_profiling_native_extension/extconf.rb +54 -34
- data/ext/ddtrace_profiling_native_extension/helpers.h +17 -0
- data/ext/ddtrace_profiling_native_extension/http_transport.c +127 -121
- data/ext/ddtrace_profiling_native_extension/libdatadog_helpers.h +25 -0
- data/ext/ddtrace_profiling_native_extension/native_extension_helpers.rb +82 -37
- data/ext/ddtrace_profiling_native_extension/private_vm_api_access.c +189 -139
- data/ext/ddtrace_profiling_native_extension/private_vm_api_access.h +15 -6
- data/ext/ddtrace_profiling_native_extension/profiling.c +221 -5
- data/ext/ddtrace_profiling_native_extension/ruby_helpers.c +110 -0
- data/ext/ddtrace_profiling_native_extension/ruby_helpers.h +57 -1
- data/ext/ddtrace_profiling_native_extension/setup_signal_handler.c +115 -0
- data/ext/ddtrace_profiling_native_extension/setup_signal_handler.h +11 -0
- data/ext/ddtrace_profiling_native_extension/stack_recorder.c +489 -45
- data/ext/ddtrace_profiling_native_extension/stack_recorder.h +12 -35
- data/ext/ddtrace_profiling_native_extension/time_helpers.c +17 -0
- data/ext/ddtrace_profiling_native_extension/time_helpers.h +10 -0
- data/lib/datadog/appsec/assets/blocked.html +98 -3
- data/lib/datadog/appsec/assets/blocked.json +1 -0
- data/lib/datadog/appsec/assets/blocked.text +5 -0
- data/lib/datadog/appsec/assets/waf_rules/recommended.json +1722 -636
- data/lib/datadog/appsec/assets/waf_rules/strict.json +366 -74
- data/lib/datadog/appsec/assets.rb +2 -4
- data/lib/datadog/appsec/autoload.rb +5 -10
- data/lib/datadog/appsec/component.rb +41 -0
- data/lib/datadog/appsec/configuration/settings.rb +46 -24
- data/lib/datadog/appsec/configuration.rb +12 -4
- data/lib/datadog/appsec/contrib/auto_instrument.rb +0 -4
- data/lib/datadog/appsec/contrib/configuration/settings.rb +1 -3
- 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 +2 -4
- data/lib/datadog/appsec/contrib/rack/ext.rb +0 -2
- data/lib/datadog/appsec/contrib/rack/gateway/request.rb +97 -0
- data/lib/datadog/appsec/contrib/rack/gateway/response.rb +30 -0
- data/lib/datadog/appsec/contrib/rack/gateway/watcher.rb +117 -110
- data/lib/datadog/appsec/contrib/rack/integration.rb +5 -7
- data/lib/datadog/appsec/contrib/rack/patcher.rb +4 -4
- data/lib/datadog/appsec/contrib/rack/reactive/request.rb +31 -38
- data/lib/datadog/appsec/contrib/rack/reactive/request_body.rb +21 -22
- data/lib/datadog/appsec/contrib/rack/reactive/response.rb +21 -22
- data/lib/datadog/appsec/contrib/rack/request_body_middleware.rb +9 -7
- data/lib/datadog/appsec/contrib/rack/request_middleware.rb +80 -39
- data/lib/datadog/appsec/contrib/rails/configuration/settings.rb +2 -4
- 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 +45 -40
- data/lib/datadog/appsec/contrib/rails/integration.rb +5 -7
- data/lib/datadog/appsec/contrib/rails/patcher.rb +17 -16
- data/lib/datadog/appsec/contrib/rails/reactive/action.rb +24 -23
- data/lib/datadog/appsec/contrib/rails/request.rb +3 -2
- data/lib/datadog/appsec/contrib/rails/request_middleware.rb +0 -2
- data/lib/datadog/appsec/contrib/sinatra/configuration/settings.rb +2 -4
- data/lib/datadog/appsec/contrib/sinatra/ext.rb +1 -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 +82 -75
- data/lib/datadog/appsec/contrib/sinatra/integration.rb +4 -6
- data/lib/datadog/appsec/contrib/sinatra/patcher.rb +33 -18
- data/lib/datadog/appsec/contrib/sinatra/reactive/routed.rb +21 -20
- data/lib/datadog/appsec/contrib/sinatra/request_middleware.rb +0 -2
- data/lib/datadog/appsec/event.rb +8 -16
- data/lib/datadog/appsec/ext.rb +9 -0
- data/lib/datadog/appsec/extensions.rb +51 -23
- data/lib/datadog/appsec/instrumentation/gateway/argument.rb +24 -0
- data/lib/datadog/appsec/instrumentation/gateway.rb +26 -6
- 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 +110 -31
- 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 +12 -9
- data/lib/datadog/appsec/reactive/operation.rb +22 -5
- data/lib/datadog/appsec/reactive/subscriber.rb +2 -1
- data/lib/datadog/appsec/response.rb +61 -0
- data/lib/datadog/appsec/utils/http/media_range.rb +199 -0
- data/lib/datadog/appsec/utils/http/media_type.rb +85 -0
- data/lib/datadog/appsec/utils/http.rb +9 -0
- data/lib/datadog/appsec/utils.rb +7 -0
- data/lib/datadog/appsec.rb +25 -7
- data/lib/datadog/ci/configuration/components.rb +1 -3
- data/lib/datadog/ci/configuration/settings.rb +1 -3
- data/lib/datadog/ci/contrib/cucumber/configuration/settings.rb +2 -4
- data/lib/datadog/ci/contrib/cucumber/ext.rb +0 -2
- data/lib/datadog/ci/contrib/cucumber/formatter.rb +5 -7
- data/lib/datadog/ci/contrib/cucumber/instrumentation.rb +1 -3
- data/lib/datadog/ci/contrib/cucumber/integration.rb +4 -6
- data/lib/datadog/ci/contrib/cucumber/patcher.rb +2 -4
- data/lib/datadog/ci/contrib/rspec/configuration/settings.rb +2 -4
- data/lib/datadog/ci/contrib/rspec/example.rb +5 -7
- data/lib/datadog/ci/contrib/rspec/ext.rb +0 -2
- data/lib/datadog/ci/contrib/rspec/integration.rb +4 -6
- data/lib/datadog/ci/contrib/rspec/patcher.rb +2 -4
- data/lib/datadog/ci/ext/app_types.rb +0 -2
- data/lib/datadog/ci/ext/environment.rb +77 -41
- data/lib/datadog/ci/ext/settings.rb +0 -2
- data/lib/datadog/ci/ext/test.rb +0 -2
- data/lib/datadog/ci/extensions.rb +4 -6
- data/lib/datadog/ci/flush.rb +2 -4
- data/lib/datadog/ci/test.rb +3 -5
- data/lib/datadog/ci.rb +6 -8
- data/lib/datadog/core/buffer/cruby.rb +1 -3
- data/lib/datadog/core/buffer/random.rb +0 -2
- data/lib/datadog/core/buffer/thread_safe.rb +1 -3
- data/lib/datadog/core/chunker.rb +0 -2
- data/lib/datadog/core/configuration/agent_settings_resolver.rb +8 -28
- data/lib/datadog/core/configuration/base.rb +14 -4
- data/lib/datadog/core/configuration/components.rb +31 -299
- data/lib/datadog/core/configuration/dependency_resolver.rb +0 -2
- data/lib/datadog/core/configuration/ext.rb +24 -0
- data/lib/datadog/core/configuration/option.rb +0 -2
- data/lib/datadog/core/configuration/option_definition.rb +12 -5
- data/lib/datadog/core/configuration/option_definition_set.rb +1 -3
- data/lib/datadog/core/configuration/option_set.rb +0 -2
- data/lib/datadog/core/configuration/options.rb +3 -5
- data/lib/datadog/core/configuration/settings.rb +87 -257
- data/lib/datadog/core/configuration.rb +9 -10
- data/lib/datadog/core/diagnostics/environment_logger.rb +10 -7
- data/lib/datadog/core/diagnostics/health.rb +4 -24
- data/lib/datadog/core/encoding.rb +0 -4
- data/lib/datadog/core/environment/cgroup.rb +1 -5
- data/lib/datadog/core/environment/class_count.rb +0 -2
- data/lib/datadog/core/environment/container.rb +1 -5
- data/lib/datadog/core/environment/ext.rb +1 -3
- data/lib/datadog/core/environment/gc.rb +0 -2
- data/lib/datadog/core/environment/identity.rb +2 -4
- data/lib/datadog/core/environment/platform.rb +1 -3
- data/lib/datadog/core/environment/socket.rb +1 -3
- data/lib/datadog/core/environment/thread_count.rb +0 -2
- data/lib/datadog/core/environment/variable_helpers.rb +58 -12
- data/lib/datadog/core/environment/vm_cache.rb +17 -2
- data/lib/datadog/core/error.rb +1 -3
- data/lib/datadog/core/extensions.rb +1 -3
- data/lib/datadog/core/git/ext.rb +0 -2
- data/lib/datadog/core/header_collection.rb +41 -0
- data/lib/datadog/core/logger.rb +0 -2
- data/lib/datadog/core/metrics/client.rb +10 -11
- data/lib/datadog/core/metrics/ext.rb +0 -4
- 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 +3 -5
- data/lib/datadog/core/pin.rb +0 -2
- data/lib/datadog/core/runtime/ext.rb +3 -3
- data/lib/datadog/core/runtime/metrics.rb +27 -13
- data/lib/datadog/core/telemetry/client.rb +77 -0
- data/lib/datadog/core/telemetry/collector.rb +231 -0
- data/lib/datadog/core/telemetry/emitter.rb +46 -0
- data/lib/datadog/core/telemetry/event.rb +67 -0
- data/lib/datadog/core/telemetry/ext.rb +9 -0
- data/lib/datadog/core/telemetry/heartbeat.rb +35 -0
- data/lib/datadog/core/telemetry/http/adapters/net.rb +111 -0
- data/lib/datadog/core/telemetry/http/env.rb +18 -0
- data/lib/datadog/core/telemetry/http/ext.rb +20 -0
- data/lib/datadog/core/telemetry/http/response.rb +64 -0
- data/lib/datadog/core/telemetry/http/transport.rb +51 -0
- data/lib/datadog/core/telemetry/v1/app_event.rb +50 -0
- data/lib/datadog/core/telemetry/v1/application.rb +86 -0
- data/lib/datadog/core/telemetry/v1/configuration.rb +25 -0
- data/lib/datadog/core/telemetry/v1/dependency.rb +36 -0
- data/lib/datadog/core/telemetry/v1/host.rb +51 -0
- data/lib/datadog/core/telemetry/v1/integration.rb +58 -0
- data/lib/datadog/core/telemetry/v1/product.rb +28 -0
- data/lib/datadog/core/telemetry/v1/telemetry_request.rb +100 -0
- data/lib/datadog/core/utils/compression.rb +5 -3
- data/lib/datadog/core/utils/forking.rb +0 -2
- data/lib/datadog/core/utils/network.rb +140 -0
- data/lib/datadog/core/utils/object_set.rb +1 -3
- 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 +5 -2
- data/lib/datadog/core/utils/string_table.rb +1 -3
- data/lib/datadog/core/utils/time.rb +3 -7
- data/lib/datadog/core/utils.rb +1 -24
- data/lib/datadog/core/vendor/ipaddr.rb +78 -0
- 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 +2 -4
- 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 +3 -5
- data/lib/datadog/core/worker.rb +0 -2
- data/lib/datadog/core/workers/async.rb +1 -5
- data/lib/datadog/core/workers/interval_loop.rb +0 -2
- data/lib/datadog/core/workers/polling.rb +2 -4
- data/lib/datadog/core/workers/queue.rb +0 -2
- data/lib/datadog/core/workers/runtime_metrics.rb +4 -6
- data/lib/datadog/core.rb +21 -56
- data/lib/datadog/kit/appsec/events.rb +74 -0
- data/lib/datadog/kit/enable_core_dumps.rb +6 -6
- data/lib/datadog/kit/identity.rb +15 -8
- data/lib/datadog/kit.rb +1 -3
- data/lib/datadog/opentelemetry/api/context.rb +186 -0
- data/lib/datadog/opentelemetry/api/trace/span.rb +14 -0
- data/lib/datadog/opentelemetry/sdk/configurator.rb +37 -0
- data/lib/datadog/opentelemetry/sdk/id_generator.rb +26 -0
- data/lib/datadog/opentelemetry/sdk/propagator.rb +90 -0
- data/lib/datadog/opentelemetry/sdk/span_processor.rb +91 -0
- data/lib/datadog/opentelemetry.rb +47 -0
- data/lib/datadog/opentracer/binary_propagator.rb +0 -2
- data/lib/datadog/opentracer/carrier.rb +0 -2
- data/lib/datadog/opentracer/distributed_headers.rb +7 -11
- data/lib/datadog/opentracer/global_tracer.rb +0 -2
- data/lib/datadog/opentracer/propagator.rb +0 -2
- data/lib/datadog/opentracer/rack_propagator.rb +10 -11
- data/lib/datadog/opentracer/scope.rb +0 -2
- data/lib/datadog/opentracer/scope_manager.rb +0 -2
- data/lib/datadog/opentracer/span.rb +1 -3
- 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 +13 -14
- data/lib/datadog/opentracer/thread_local_scope.rb +0 -2
- data/lib/datadog/opentracer/thread_local_scope_manager.rb +1 -3
- data/lib/datadog/opentracer/tracer.rb +23 -23
- data/lib/datadog/opentracer.rb +16 -18
- data/lib/datadog/profiling/backtrace_location.rb +0 -2
- data/lib/datadog/profiling/buffer.rb +3 -5
- data/lib/datadog/profiling/collectors/code_provenance.rb +0 -2
- data/lib/datadog/profiling/collectors/cpu_and_wall_time_worker.rb +96 -0
- data/lib/datadog/profiling/collectors/dynamic_sampling_rate.rb +12 -0
- data/lib/datadog/profiling/collectors/idle_sampling_helper.rb +66 -0
- data/lib/datadog/profiling/collectors/old_stack.rb +16 -13
- data/lib/datadog/profiling/collectors/stack.rb +3 -10
- data/lib/datadog/profiling/collectors/thread_context.rb +46 -0
- data/lib/datadog/profiling/component.rb +161 -0
- data/lib/datadog/profiling/encoding/profile.rb +1 -3
- data/lib/datadog/profiling/event.rb +0 -2
- data/lib/datadog/profiling/events/stack.rb +1 -3
- data/lib/datadog/profiling/exporter.rb +23 -14
- data/lib/datadog/profiling/ext/forking.rb +36 -39
- data/lib/datadog/profiling/ext.rb +1 -2
- data/lib/datadog/profiling/flush.rb +0 -5
- data/lib/datadog/profiling/http_transport.rb +5 -6
- 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 +8 -7
- data/lib/datadog/profiling/pprof/builder.rb +4 -6
- data/lib/datadog/profiling/pprof/converter.rb +1 -3
- data/lib/datadog/profiling/pprof/message_set.rb +1 -3
- 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 +4 -6
- data/lib/datadog/profiling/pprof/string_table.rb +1 -3
- data/lib/datadog/profiling/pprof/template.rb +5 -7
- data/lib/datadog/profiling/preload.rb +1 -3
- data/lib/datadog/profiling/profiler.rb +7 -2
- data/lib/datadog/profiling/scheduler.rb +8 -12
- data/lib/datadog/profiling/stack_recorder.rb +49 -8
- data/lib/datadog/profiling/tag_builder.rb +5 -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 +2 -11
- data/lib/datadog/profiling/trace_identifiers/ddtrace.rb +2 -4
- data/lib/datadog/profiling/trace_identifiers/helper.rb +1 -3
- data/lib/datadog/profiling.rb +67 -27
- data/lib/datadog/tracing/analytics.rb +1 -3
- data/lib/datadog/tracing/buffer.rb +5 -9
- data/lib/datadog/tracing/client_ip.rb +61 -0
- data/lib/datadog/tracing/component.rb +176 -0
- data/lib/datadog/tracing/configuration/ext.rb +49 -6
- data/lib/datadog/tracing/configuration/settings.rb +451 -0
- data/lib/datadog/tracing/context.rb +1 -3
- data/lib/datadog/tracing/context_provider.rb +2 -4
- data/lib/datadog/tracing/contrib/action_cable/configuration/settings.rb +2 -4
- data/lib/datadog/tracing/contrib/action_cable/event.rb +4 -7
- data/lib/datadog/tracing/contrib/action_cable/events/broadcast.rb +4 -6
- data/lib/datadog/tracing/contrib/action_cable/events/perform_action.rb +3 -5
- data/lib/datadog/tracing/contrib/action_cable/events/transmit.rb +4 -6
- data/lib/datadog/tracing/contrib/action_cable/events.rb +4 -6
- data/lib/datadog/tracing/contrib/action_cable/ext.rb +0 -2
- data/lib/datadog/tracing/contrib/action_cable/instrumentation.rb +3 -6
- data/lib/datadog/tracing/contrib/action_cable/integration.rb +4 -6
- data/lib/datadog/tracing/contrib/action_cable/patcher.rb +4 -6
- data/lib/datadog/tracing/contrib/action_mailer/configuration/settings.rb +2 -4
- data/lib/datadog/tracing/contrib/action_mailer/event.rb +3 -5
- data/lib/datadog/tracing/contrib/action_mailer/events/deliver.rb +3 -5
- data/lib/datadog/tracing/contrib/action_mailer/events/process.rb +3 -5
- data/lib/datadog/tracing/contrib/action_mailer/events.rb +2 -4
- data/lib/datadog/tracing/contrib/action_mailer/ext.rb +0 -2
- data/lib/datadog/tracing/contrib/action_mailer/integration.rb +4 -6
- data/lib/datadog/tracing/contrib/action_mailer/patcher.rb +3 -5
- data/lib/datadog/tracing/contrib/action_pack/action_controller/instrumentation.rb +6 -8
- data/lib/datadog/tracing/contrib/action_pack/action_controller/patcher.rb +2 -4
- data/lib/datadog/tracing/contrib/action_pack/configuration/settings.rb +2 -4
- data/lib/datadog/tracing/contrib/action_pack/ext.rb +0 -2
- data/lib/datadog/tracing/contrib/action_pack/integration.rb +4 -6
- data/lib/datadog/tracing/contrib/action_pack/patcher.rb +2 -4
- data/lib/datadog/tracing/contrib/action_pack/utils.rb +1 -3
- data/lib/datadog/tracing/contrib/action_view/configuration/settings.rb +2 -4
- data/lib/datadog/tracing/contrib/action_view/event.rb +1 -3
- data/lib/datadog/tracing/contrib/action_view/events/render_partial.rb +5 -7
- data/lib/datadog/tracing/contrib/action_view/events/render_template.rb +5 -7
- data/lib/datadog/tracing/contrib/action_view/events.rb +2 -4
- data/lib/datadog/tracing/contrib/action_view/ext.rb +0 -2
- data/lib/datadog/tracing/contrib/action_view/instrumentation/partial_renderer.rb +2 -4
- data/lib/datadog/tracing/contrib/action_view/instrumentation/template_renderer.rb +2 -4
- data/lib/datadog/tracing/contrib/action_view/integration.rb +4 -6
- data/lib/datadog/tracing/contrib/action_view/patcher.rb +7 -9
- data/lib/datadog/tracing/contrib/action_view/utils.rb +1 -3
- data/lib/datadog/tracing/contrib/active_job/configuration/settings.rb +3 -5
- data/lib/datadog/tracing/contrib/active_job/event.rb +3 -5
- data/lib/datadog/tracing/contrib/active_job/events/discard.rb +4 -6
- data/lib/datadog/tracing/contrib/active_job/events/enqueue.rb +4 -6
- data/lib/datadog/tracing/contrib/active_job/events/enqueue_at.rb +4 -6
- data/lib/datadog/tracing/contrib/active_job/events/enqueue_retry.rb +4 -6
- data/lib/datadog/tracing/contrib/active_job/events/perform.rb +4 -6
- data/lib/datadog/tracing/contrib/active_job/events/retry_stopped.rb +4 -6
- data/lib/datadog/tracing/contrib/active_job/events.rb +6 -8
- data/lib/datadog/tracing/contrib/active_job/ext.rb +0 -2
- data/lib/datadog/tracing/contrib/active_job/integration.rb +4 -6
- data/lib/datadog/tracing/contrib/active_job/log_injection.rb +0 -4
- data/lib/datadog/tracing/contrib/active_job/patcher.rb +4 -6
- data/lib/datadog/tracing/contrib/active_model_serializers/configuration/settings.rb +2 -4
- data/lib/datadog/tracing/contrib/active_model_serializers/event.rb +4 -7
- data/lib/datadog/tracing/contrib/active_model_serializers/events/render.rb +3 -5
- data/lib/datadog/tracing/contrib/active_model_serializers/events/serialize.rb +2 -4
- data/lib/datadog/tracing/contrib/active_model_serializers/events.rb +2 -4
- data/lib/datadog/tracing/contrib/active_model_serializers/ext.rb +0 -2
- data/lib/datadog/tracing/contrib/active_model_serializers/integration.rb +3 -5
- data/lib/datadog/tracing/contrib/active_model_serializers/patcher.rb +3 -6
- data/lib/datadog/tracing/contrib/active_record/configuration/makara_resolver.rb +0 -2
- data/lib/datadog/tracing/contrib/active_record/configuration/resolver.rb +2 -4
- data/lib/datadog/tracing/contrib/active_record/configuration/settings.rb +3 -5
- data/lib/datadog/tracing/contrib/active_record/event.rb +1 -3
- data/lib/datadog/tracing/contrib/active_record/events/instantiation.rb +4 -6
- data/lib/datadog/tracing/contrib/active_record/events/sql.rb +6 -8
- data/lib/datadog/tracing/contrib/active_record/events.rb +2 -4
- data/lib/datadog/tracing/contrib/active_record/ext.rb +0 -2
- data/lib/datadog/tracing/contrib/active_record/integration.rb +6 -8
- data/lib/datadog/tracing/contrib/active_record/patcher.rb +2 -4
- data/lib/datadog/tracing/contrib/active_record/utils.rb +2 -4
- data/lib/datadog/tracing/contrib/active_record/vendor/connection_specification.rb +0 -2
- data/lib/datadog/tracing/contrib/active_support/cache/instrumentation.rb +19 -11
- data/lib/datadog/tracing/contrib/active_support/cache/patcher.rb +2 -4
- data/lib/datadog/tracing/contrib/active_support/cache/redis.rb +1 -3
- data/lib/datadog/tracing/contrib/active_support/configuration/settings.rb +2 -4
- data/lib/datadog/tracing/contrib/active_support/ext.rb +0 -2
- data/lib/datadog/tracing/contrib/active_support/integration.rb +5 -7
- data/lib/datadog/tracing/contrib/active_support/notifications/event.rb +1 -3
- data/lib/datadog/tracing/contrib/active_support/notifications/subscriber.rb +1 -3
- data/lib/datadog/tracing/contrib/active_support/notifications/subscription.rb +0 -2
- data/lib/datadog/tracing/contrib/active_support/patcher.rb +2 -4
- data/lib/datadog/tracing/contrib/analytics.rb +1 -3
- data/lib/datadog/tracing/contrib/auto_instrument.rb +4 -6
- data/lib/datadog/tracing/contrib/aws/configuration/settings.rb +6 -5
- data/lib/datadog/tracing/contrib/aws/ext.rb +1 -2
- data/lib/datadog/tracing/contrib/aws/instrumentation.rb +5 -6
- data/lib/datadog/tracing/contrib/aws/integration.rb +3 -5
- data/lib/datadog/tracing/contrib/aws/parsed_context.rb +0 -2
- data/lib/datadog/tracing/contrib/aws/patcher.rb +5 -7
- data/lib/datadog/tracing/contrib/aws/services.rb +0 -4
- data/lib/datadog/tracing/contrib/concurrent_ruby/configuration/settings.rb +2 -4
- 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 +1 -3
- data/lib/datadog/tracing/contrib/concurrent_ruby/integration.rb +3 -5
- data/lib/datadog/tracing/contrib/concurrent_ruby/patcher.rb +2 -5
- data/lib/datadog/tracing/contrib/configurable.rb +2 -4
- data/lib/datadog/tracing/contrib/configuration/resolver.rb +0 -2
- data/lib/datadog/tracing/contrib/configuration/resolvers/pattern_resolver.rb +1 -3
- data/lib/datadog/tracing/contrib/configuration/settings.rb +2 -6
- data/lib/datadog/tracing/contrib/dalli/configuration/settings.rb +6 -5
- data/lib/datadog/tracing/contrib/dalli/ext.rb +2 -2
- data/lib/datadog/tracing/contrib/dalli/instrumentation.rb +10 -7
- data/lib/datadog/tracing/contrib/dalli/integration.rb +3 -5
- data/lib/datadog/tracing/contrib/dalli/patcher.rb +3 -5
- data/lib/datadog/tracing/contrib/dalli/quantize.rb +1 -3
- data/lib/datadog/tracing/contrib/delayed_job/configuration/settings.rb +3 -5
- data/lib/datadog/tracing/contrib/delayed_job/ext.rb +2 -2
- data/lib/datadog/tracing/contrib/delayed_job/integration.rb +3 -5
- data/lib/datadog/tracing/contrib/delayed_job/patcher.rb +8 -4
- data/lib/datadog/tracing/contrib/delayed_job/plugin.rb +11 -6
- data/lib/datadog/tracing/contrib/delayed_job/server_internal_tracer/worker.rb +32 -0
- data/lib/datadog/tracing/contrib/elasticsearch/configuration/settings.rb +7 -5
- data/lib/datadog/tracing/contrib/elasticsearch/ext.rb +3 -2
- data/lib/datadog/tracing/contrib/elasticsearch/integration.rb +3 -5
- data/lib/datadog/tracing/contrib/elasticsearch/patcher.rb +10 -9
- data/lib/datadog/tracing/contrib/elasticsearch/quantize.rb +1 -5
- data/lib/datadog/tracing/contrib/ethon/configuration/settings.rb +8 -5
- data/lib/datadog/tracing/contrib/ethon/easy_patch.rb +6 -9
- data/lib/datadog/tracing/contrib/ethon/ext.rb +1 -2
- data/lib/datadog/tracing/contrib/ethon/integration.rb +4 -6
- data/lib/datadog/tracing/contrib/ethon/multi_patch.rb +5 -6
- data/lib/datadog/tracing/contrib/ethon/patcher.rb +3 -6
- data/lib/datadog/tracing/contrib/excon/configuration/settings.rb +7 -5
- data/lib/datadog/tracing/contrib/excon/ext.rb +1 -2
- data/lib/datadog/tracing/contrib/excon/integration.rb +4 -6
- data/lib/datadog/tracing/contrib/excon/middleware.rb +8 -9
- data/lib/datadog/tracing/contrib/excon/patcher.rb +2 -4
- data/lib/datadog/tracing/contrib/ext.rb +30 -0
- data/lib/datadog/tracing/contrib/extensions.rb +5 -5
- data/lib/datadog/tracing/contrib/faraday/configuration/settings.rb +7 -5
- data/lib/datadog/tracing/contrib/faraday/connection.rb +0 -2
- data/lib/datadog/tracing/contrib/faraday/ext.rb +1 -2
- data/lib/datadog/tracing/contrib/faraday/integration.rb +4 -6
- data/lib/datadog/tracing/contrib/faraday/middleware.rb +8 -10
- data/lib/datadog/tracing/contrib/faraday/patcher.rb +5 -7
- data/lib/datadog/tracing/contrib/faraday/rack_builder.rb +0 -2
- data/lib/datadog/tracing/contrib/grape/configuration/settings.rb +3 -5
- data/lib/datadog/tracing/contrib/grape/endpoint.rb +4 -9
- 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 +3 -5
- data/lib/datadog/tracing/contrib/grape/patcher.rb +4 -6
- data/lib/datadog/tracing/contrib/graphql/configuration/settings.rb +3 -5
- data/lib/datadog/tracing/contrib/graphql/ext.rb +0 -2
- data/lib/datadog/tracing/contrib/graphql/integration.rb +3 -5
- data/lib/datadog/tracing/contrib/graphql/patcher.rb +2 -5
- data/lib/datadog/tracing/contrib/grpc/configuration/settings.rb +9 -6
- data/lib/datadog/tracing/contrib/grpc/datadog_interceptor/client.rb +20 -7
- data/lib/datadog/tracing/contrib/grpc/datadog_interceptor/server.rb +17 -19
- data/lib/datadog/tracing/contrib/grpc/datadog_interceptor.rb +3 -6
- data/lib/datadog/tracing/contrib/grpc/distributed/fetcher.rb +26 -0
- data/lib/datadog/tracing/contrib/grpc/distributed/propagation.rb +42 -0
- data/lib/datadog/tracing/contrib/grpc/ext.rb +4 -2
- data/lib/datadog/tracing/contrib/grpc/integration.rb +11 -6
- data/lib/datadog/tracing/contrib/grpc/intercept_with_datadog.rb +0 -2
- data/lib/datadog/tracing/contrib/grpc/patcher.rb +3 -8
- data/lib/datadog/tracing/contrib/hanami/action_tracer.rb +45 -0
- data/lib/datadog/tracing/contrib/hanami/configuration/settings.rb +20 -0
- data/lib/datadog/tracing/contrib/hanami/ext.rb +22 -0
- data/lib/datadog/tracing/contrib/hanami/integration.rb +42 -0
- data/lib/datadog/tracing/contrib/hanami/patcher.rb +31 -0
- data/lib/datadog/tracing/contrib/hanami/plugin.rb +21 -0
- data/lib/datadog/tracing/contrib/hanami/renderer_policy_tracing.rb +39 -0
- data/lib/datadog/tracing/contrib/hanami/router_tracing.rb +42 -0
- data/lib/datadog/tracing/contrib/http/circuit_breaker.rb +1 -4
- data/lib/datadog/tracing/contrib/http/configuration/settings.rb +13 -5
- data/lib/datadog/tracing/contrib/http/distributed/fetcher.rb +38 -0
- data/lib/datadog/tracing/contrib/http/distributed/propagation.rb +37 -0
- data/lib/datadog/tracing/contrib/http/ext.rb +2 -2
- data/lib/datadog/tracing/contrib/http/instrumentation.rb +8 -12
- data/lib/datadog/tracing/contrib/http/integration.rb +6 -8
- data/lib/datadog/tracing/contrib/http/patcher.rb +3 -5
- data/lib/datadog/tracing/contrib/http_annotation_helper.rb +0 -2
- data/lib/datadog/tracing/contrib/httpclient/configuration/settings.rb +13 -5
- data/lib/datadog/tracing/contrib/httpclient/ext.rb +2 -2
- data/lib/datadog/tracing/contrib/httpclient/instrumentation.rb +9 -11
- data/lib/datadog/tracing/contrib/httpclient/integration.rb +4 -6
- data/lib/datadog/tracing/contrib/httpclient/patcher.rb +3 -5
- data/lib/datadog/tracing/contrib/httprb/configuration/settings.rb +13 -5
- data/lib/datadog/tracing/contrib/httprb/ext.rb +2 -2
- data/lib/datadog/tracing/contrib/httprb/instrumentation.rb +9 -11
- data/lib/datadog/tracing/contrib/httprb/integration.rb +4 -6
- data/lib/datadog/tracing/contrib/httprb/patcher.rb +3 -5
- data/lib/datadog/tracing/contrib/integration.rb +3 -5
- data/lib/datadog/tracing/contrib/kafka/configuration/settings.rb +2 -4
- data/lib/datadog/tracing/contrib/kafka/consumer_event.rb +1 -2
- data/lib/datadog/tracing/contrib/kafka/consumer_group_event.rb +0 -2
- data/lib/datadog/tracing/contrib/kafka/event.rb +4 -5
- data/lib/datadog/tracing/contrib/kafka/events/connection/request.rb +2 -4
- data/lib/datadog/tracing/contrib/kafka/events/consumer/process_batch.rb +3 -5
- data/lib/datadog/tracing/contrib/kafka/events/consumer/process_message.rb +3 -5
- data/lib/datadog/tracing/contrib/kafka/events/consumer_group/heartbeat.rb +4 -6
- data/lib/datadog/tracing/contrib/kafka/events/consumer_group/join_group.rb +4 -6
- data/lib/datadog/tracing/contrib/kafka/events/consumer_group/leave_group.rb +4 -6
- data/lib/datadog/tracing/contrib/kafka/events/consumer_group/sync_group.rb +4 -6
- data/lib/datadog/tracing/contrib/kafka/events/produce_operation/send_messages.rb +3 -4
- data/lib/datadog/tracing/contrib/kafka/events/producer/deliver_messages.rb +3 -4
- data/lib/datadog/tracing/contrib/kafka/events.rb +9 -11
- data/lib/datadog/tracing/contrib/kafka/ext.rb +1 -2
- data/lib/datadog/tracing/contrib/kafka/integration.rb +3 -5
- data/lib/datadog/tracing/contrib/kafka/patcher.rb +3 -5
- data/lib/datadog/tracing/contrib/lograge/configuration/settings.rb +2 -4
- data/lib/datadog/tracing/contrib/lograge/ext.rb +0 -2
- data/lib/datadog/tracing/contrib/lograge/instrumentation.rb +1 -4
- data/lib/datadog/tracing/contrib/lograge/integration.rb +3 -5
- data/lib/datadog/tracing/contrib/lograge/patcher.rb +2 -4
- data/lib/datadog/tracing/contrib/mongodb/configuration/settings.rb +7 -5
- data/lib/datadog/tracing/contrib/mongodb/ext.rb +8 -2
- data/lib/datadog/tracing/contrib/mongodb/instrumentation.rb +3 -5
- data/lib/datadog/tracing/contrib/mongodb/integration.rb +4 -6
- data/lib/datadog/tracing/contrib/mongodb/parsers.rb +1 -3
- data/lib/datadog/tracing/contrib/mongodb/patcher.rb +3 -5
- data/lib/datadog/tracing/contrib/mongodb/subscribers.rb +10 -6
- data/lib/datadog/tracing/contrib/mysql2/configuration/settings.rb +17 -4
- data/lib/datadog/tracing/contrib/mysql2/ext.rb +2 -2
- data/lib/datadog/tracing/contrib/mysql2/instrumentation.rb +20 -7
- data/lib/datadog/tracing/contrib/mysql2/integration.rb +3 -5
- data/lib/datadog/tracing/contrib/mysql2/patcher.rb +2 -4
- data/lib/datadog/tracing/contrib/patchable.rb +0 -2
- data/lib/datadog/tracing/contrib/patcher.rb +16 -6
- data/lib/datadog/tracing/contrib/pg/configuration/settings.rb +17 -4
- data/lib/datadog/tracing/contrib/pg/ext.rb +3 -3
- data/lib/datadog/tracing/contrib/pg/instrumentation.rb +78 -41
- data/lib/datadog/tracing/contrib/pg/integration.rb +3 -5
- data/lib/datadog/tracing/contrib/pg/patcher.rb +2 -4
- data/lib/datadog/tracing/contrib/presto/configuration/settings.rb +6 -5
- data/lib/datadog/tracing/contrib/presto/ext.rb +2 -2
- data/lib/datadog/tracing/contrib/presto/instrumentation.rb +5 -5
- data/lib/datadog/tracing/contrib/presto/integration.rb +3 -5
- data/lib/datadog/tracing/contrib/presto/patcher.rb +4 -6
- data/lib/datadog/tracing/contrib/propagation/sql_comment/comment.rb +41 -0
- data/lib/datadog/tracing/contrib/propagation/sql_comment/ext.rb +31 -0
- data/lib/datadog/tracing/contrib/propagation/sql_comment/mode.rb +26 -0
- data/lib/datadog/tracing/contrib/propagation/sql_comment.rb +45 -0
- data/lib/datadog/tracing/contrib/qless/configuration/settings.rb +2 -4
- data/lib/datadog/tracing/contrib/qless/ext.rb +0 -2
- data/lib/datadog/tracing/contrib/qless/integration.rb +3 -5
- data/lib/datadog/tracing/contrib/qless/patcher.rb +1 -5
- data/lib/datadog/tracing/contrib/qless/qless_job.rb +5 -5
- data/lib/datadog/tracing/contrib/qless/tracer_cleaner.rb +0 -4
- data/lib/datadog/tracing/contrib/que/configuration/settings.rb +3 -5
- data/lib/datadog/tracing/contrib/que/ext.rb +0 -2
- data/lib/datadog/tracing/contrib/que/integration.rb +4 -6
- data/lib/datadog/tracing/contrib/que/patcher.rb +1 -3
- data/lib/datadog/tracing/contrib/que/tracer.rb +5 -3
- data/lib/datadog/tracing/contrib/racecar/configuration/settings.rb +2 -4
- data/lib/datadog/tracing/contrib/racecar/event.rb +5 -7
- data/lib/datadog/tracing/contrib/racecar/events/batch.rb +6 -5
- data/lib/datadog/tracing/contrib/racecar/events/consume.rb +2 -4
- data/lib/datadog/tracing/contrib/racecar/events/message.rb +6 -5
- data/lib/datadog/tracing/contrib/racecar/events.rb +3 -5
- data/lib/datadog/tracing/contrib/racecar/ext.rb +1 -2
- data/lib/datadog/tracing/contrib/racecar/integration.rb +3 -5
- data/lib/datadog/tracing/contrib/racecar/patcher.rb +3 -5
- data/lib/datadog/tracing/contrib/rack/configuration/settings.rb +2 -4
- data/lib/datadog/tracing/contrib/rack/ext.rb +5 -2
- data/lib/datadog/tracing/contrib/rack/header_collection.rb +35 -0
- data/lib/datadog/tracing/contrib/rack/integration.rb +4 -6
- data/lib/datadog/tracing/contrib/rack/middlewares.rb +170 -78
- data/lib/datadog/tracing/contrib/rack/patcher.rb +12 -4
- data/lib/datadog/tracing/contrib/rack/request_queue.rb +0 -2
- data/lib/datadog/tracing/contrib/rails/auto_instrument_railtie.rb +1 -3
- data/lib/datadog/tracing/contrib/rails/configuration/settings.rb +1 -3
- data/lib/datadog/tracing/contrib/rails/ext.rb +0 -2
- data/lib/datadog/tracing/contrib/rails/framework.rb +16 -23
- data/lib/datadog/tracing/contrib/rails/integration.rb +4 -6
- data/lib/datadog/tracing/contrib/rails/log_injection.rb +0 -4
- data/lib/datadog/tracing/contrib/rails/middlewares.rb +1 -4
- data/lib/datadog/tracing/contrib/rails/patcher.rb +7 -10
- data/lib/datadog/tracing/contrib/rails/railtie.rb +3 -5
- data/lib/datadog/tracing/contrib/rails/utils.rb +1 -3
- data/lib/datadog/tracing/contrib/rake/configuration/settings.rb +16 -3
- data/lib/datadog/tracing/contrib/rake/ext.rb +0 -2
- data/lib/datadog/tracing/contrib/rake/instrumentation.rb +12 -9
- data/lib/datadog/tracing/contrib/rake/integration.rb +3 -5
- data/lib/datadog/tracing/contrib/rake/patcher.rb +3 -6
- data/lib/datadog/tracing/contrib/redis/configuration/resolver.rb +1 -3
- data/lib/datadog/tracing/contrib/redis/configuration/settings.rb +6 -5
- data/lib/datadog/tracing/contrib/redis/ext.rb +3 -2
- data/lib/datadog/tracing/contrib/redis/instrumentation.rb +36 -28
- data/lib/datadog/tracing/contrib/redis/integration.rb +37 -6
- data/lib/datadog/tracing/contrib/redis/patcher.rb +56 -14
- data/lib/datadog/tracing/contrib/redis/quantize.rb +11 -10
- data/lib/datadog/tracing/contrib/redis/tags.rb +12 -12
- data/lib/datadog/tracing/contrib/redis/trace_middleware.rb +70 -0
- 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 +3 -5
- data/lib/datadog/tracing/contrib/resque/ext.rb +0 -2
- data/lib/datadog/tracing/contrib/resque/integration.rb +3 -5
- data/lib/datadog/tracing/contrib/resque/patcher.rb +2 -4
- data/lib/datadog/tracing/contrib/resque/resque_job.rb +7 -6
- data/lib/datadog/tracing/contrib/rest_client/configuration/settings.rb +8 -5
- data/lib/datadog/tracing/contrib/rest_client/ext.rb +1 -2
- data/lib/datadog/tracing/contrib/rest_client/integration.rb +3 -5
- data/lib/datadog/tracing/contrib/rest_client/patcher.rb +2 -5
- data/lib/datadog/tracing/contrib/rest_client/request_patch.rb +6 -7
- data/lib/datadog/tracing/contrib/semantic_logger/configuration/settings.rb +2 -4
- data/lib/datadog/tracing/contrib/semantic_logger/ext.rb +0 -2
- data/lib/datadog/tracing/contrib/semantic_logger/instrumentation.rb +1 -4
- data/lib/datadog/tracing/contrib/semantic_logger/integration.rb +3 -5
- data/lib/datadog/tracing/contrib/semantic_logger/patcher.rb +2 -4
- data/lib/datadog/tracing/contrib/sequel/configuration/settings.rb +2 -4
- data/lib/datadog/tracing/contrib/sequel/database.rb +4 -7
- data/lib/datadog/tracing/contrib/sequel/dataset.rb +4 -7
- data/lib/datadog/tracing/contrib/sequel/ext.rb +0 -2
- data/lib/datadog/tracing/contrib/sequel/integration.rb +3 -5
- data/lib/datadog/tracing/contrib/sequel/patcher.rb +3 -5
- data/lib/datadog/tracing/contrib/sequel/utils.rb +2 -4
- data/lib/datadog/tracing/contrib/shoryuken/configuration/settings.rb +3 -5
- data/lib/datadog/tracing/contrib/shoryuken/ext.rb +1 -2
- data/lib/datadog/tracing/contrib/shoryuken/integration.rb +4 -6
- data/lib/datadog/tracing/contrib/shoryuken/patcher.rb +1 -3
- data/lib/datadog/tracing/contrib/shoryuken/tracer.rb +5 -3
- data/lib/datadog/tracing/contrib/sidekiq/client_tracer.rb +11 -7
- data/lib/datadog/tracing/contrib/sidekiq/configuration/settings.rb +3 -5
- data/lib/datadog/tracing/contrib/sidekiq/ext.rb +6 -2
- data/lib/datadog/tracing/contrib/sidekiq/integration.rb +3 -5
- data/lib/datadog/tracing/contrib/sidekiq/patcher.rb +14 -9
- data/lib/datadog/tracing/contrib/sidekiq/server_internal_tracer/heartbeat.rb +23 -3
- data/lib/datadog/tracing/contrib/sidekiq/server_internal_tracer/job_fetch.rb +2 -2
- data/lib/datadog/tracing/contrib/sidekiq/server_internal_tracer/{scheduled_push.rb → redis_info.rb} +7 -8
- data/lib/datadog/tracing/contrib/sidekiq/server_internal_tracer/scheduled_poller.rb +55 -0
- data/lib/datadog/tracing/contrib/sidekiq/server_tracer.rb +12 -8
- data/lib/datadog/tracing/contrib/sidekiq/tracing.rb +2 -4
- data/lib/datadog/tracing/contrib/sinatra/configuration/settings.rb +2 -4
- data/lib/datadog/tracing/contrib/sinatra/env.rb +14 -27
- data/lib/datadog/tracing/contrib/sinatra/ext.rb +7 -5
- data/lib/datadog/tracing/contrib/sinatra/framework.rb +0 -4
- data/lib/datadog/tracing/contrib/sinatra/headers.rb +1 -3
- data/lib/datadog/tracing/contrib/sinatra/integration.rb +3 -5
- data/lib/datadog/tracing/contrib/sinatra/patcher.rb +6 -9
- data/lib/datadog/tracing/contrib/sinatra/tracer.rb +15 -90
- data/lib/datadog/tracing/contrib/sinatra/tracer_middleware.rb +20 -18
- data/lib/datadog/tracing/contrib/sneakers/configuration/settings.rb +2 -4
- data/lib/datadog/tracing/contrib/sneakers/ext.rb +1 -2
- data/lib/datadog/tracing/contrib/sneakers/integration.rb +4 -6
- data/lib/datadog/tracing/contrib/sneakers/patcher.rb +2 -4
- data/lib/datadog/tracing/contrib/sneakers/tracer.rb +7 -5
- data/lib/datadog/tracing/contrib/status_code_matcher.rb +2 -4
- data/lib/datadog/tracing/contrib/stripe/configuration/settings.rb +33 -0
- data/lib/datadog/tracing/contrib/stripe/ext.rb +26 -0
- data/lib/datadog/tracing/contrib/stripe/integration.rb +43 -0
- data/lib/datadog/tracing/contrib/stripe/patcher.rb +28 -0
- data/lib/datadog/tracing/contrib/stripe/request.rb +67 -0
- data/lib/datadog/tracing/contrib/sucker_punch/configuration/settings.rb +2 -4
- 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 +3 -6
- data/lib/datadog/tracing/contrib/sucker_punch/integration.rb +3 -5
- data/lib/datadog/tracing/contrib/sucker_punch/patcher.rb +4 -8
- 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 +92 -14
- data/lib/datadog/tracing/contrib.rb +50 -50
- data/lib/datadog/tracing/correlation.rb +16 -4
- data/lib/datadog/{core → tracing}/diagnostics/ext.rb +1 -8
- data/lib/datadog/tracing/diagnostics/health.rb +38 -0
- data/lib/datadog/tracing/distributed/b3_multi.rb +72 -0
- data/lib/datadog/tracing/distributed/b3_single.rb +68 -0
- data/lib/datadog/tracing/distributed/datadog.rb +200 -0
- data/lib/datadog/tracing/distributed/datadog_tags_codec.rb +84 -0
- data/lib/datadog/tracing/distributed/fetcher.rb +21 -0
- data/lib/datadog/tracing/distributed/headers/ext.rb +19 -16
- data/lib/datadog/tracing/distributed/helpers.rb +27 -40
- data/lib/datadog/tracing/distributed/none.rb +18 -0
- data/lib/datadog/tracing/distributed/propagation.rb +126 -0
- data/lib/datadog/tracing/distributed/trace_context.rb +373 -0
- data/lib/datadog/tracing/event.rb +1 -3
- data/lib/datadog/tracing/flush.rb +57 -37
- data/lib/datadog/tracing/metadata/analytics.rb +2 -4
- data/lib/datadog/tracing/metadata/errors.rb +2 -4
- data/lib/datadog/tracing/metadata/ext.rb +18 -12
- data/lib/datadog/tracing/metadata/tagging.rb +17 -4
- data/lib/datadog/tracing/metadata.rb +3 -5
- data/lib/datadog/tracing/pipeline/span_filter.rb +10 -8
- data/lib/datadog/tracing/pipeline/span_processor.rb +0 -2
- data/lib/datadog/tracing/pipeline.rb +3 -5
- data/lib/datadog/tracing/propagation/http.rb +3 -100
- data/lib/datadog/tracing/runtime/metrics.rb +1 -3
- data/lib/datadog/tracing/sampling/all_sampler.rb +1 -3
- data/lib/datadog/tracing/sampling/ext.rb +30 -1
- data/lib/datadog/tracing/sampling/matcher.rb +0 -2
- data/lib/datadog/tracing/sampling/priority_sampler.rb +62 -11
- data/lib/datadog/tracing/sampling/rate_by_key_sampler.rb +10 -13
- data/lib/datadog/tracing/sampling/rate_by_service_sampler.rb +32 -10
- data/lib/datadog/tracing/sampling/rate_limiter.rb +4 -3
- data/lib/datadog/tracing/sampling/rate_sampler.rb +27 -12
- data/lib/datadog/tracing/sampling/rule.rb +3 -5
- data/lib/datadog/tracing/sampling/rule_sampler.rb +8 -9
- data/lib/datadog/tracing/sampling/sampler.rb +0 -2
- data/lib/datadog/tracing/sampling/span/ext.rb +25 -0
- data/lib/datadog/tracing/sampling/span/matcher.rb +9 -0
- data/lib/datadog/tracing/sampling/span/rule.rb +82 -0
- data/lib/datadog/tracing/sampling/span/rule_parser.rb +104 -0
- data/lib/datadog/tracing/sampling/span/sampler.rb +75 -0
- data/lib/datadog/tracing/span.rb +6 -24
- data/lib/datadog/tracing/span_operation.rb +11 -14
- data/lib/datadog/tracing/sync_writer.rb +5 -7
- data/lib/datadog/tracing/trace_digest.rb +88 -4
- data/lib/datadog/tracing/trace_operation.rb +60 -17
- data/lib/datadog/tracing/trace_segment.rb +20 -10
- data/lib/datadog/tracing/tracer.rb +49 -23
- data/lib/datadog/tracing/utils.rb +81 -0
- data/lib/datadog/tracing/workers/trace_writer.rb +9 -11
- data/lib/datadog/tracing/workers.rb +3 -5
- data/lib/datadog/tracing/writer.rb +12 -7
- data/lib/datadog/tracing.rb +8 -10
- data/lib/ddtrace/auto_instrument.rb +9 -4
- data/lib/ddtrace/auto_instrument_base.rb +0 -2
- data/lib/ddtrace/profiling/preload.rb +0 -2
- data/lib/ddtrace/transport/ext.rb +7 -3
- data/lib/ddtrace/transport/http/adapters/net.rb +3 -4
- data/lib/ddtrace/transport/http/adapters/registry.rb +0 -2
- data/lib/ddtrace/transport/http/adapters/test.rb +1 -3
- data/lib/ddtrace/transport/http/adapters/unix_socket.rb +2 -4
- 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 +1 -3
- data/lib/ddtrace/transport/http/api/spec.rb +0 -2
- data/lib/ddtrace/transport/http/api.rb +4 -6
- data/lib/ddtrace/transport/http/builder.rb +5 -7
- data/lib/ddtrace/transport/http/client.rb +2 -4
- data/lib/ddtrace/transport/http/env.rb +0 -2
- data/lib/ddtrace/transport/http/response.rb +1 -3
- data/lib/ddtrace/transport/http/statistics.rb +1 -3
- data/lib/ddtrace/transport/http/traces.rb +6 -8
- data/lib/ddtrace/transport/http.rb +11 -12
- data/lib/ddtrace/transport/io/client.rb +2 -4
- data/lib/ddtrace/transport/io/response.rb +1 -3
- data/lib/ddtrace/transport/io/traces.rb +3 -7
- data/lib/ddtrace/transport/io.rb +3 -5
- 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 +2 -4
- data/lib/ddtrace/transport/trace_formatter.rb +21 -12
- data/lib/ddtrace/transport/traces.rb +9 -9
- data/lib/ddtrace/version.rb +2 -4
- data/lib/ddtrace.rb +6 -10
- metadata +131 -50
- data/.editorconfig +0 -22
- data/.gitignore +0 -58
- data/CONTRIBUTING.md +0 -81
- data/ddtrace.gemspec +0 -71
- data/docs/0.x-trace.png +0 -0
- data/docs/1.0-trace.png +0 -0
- data/docs/AutoInstrumentation.md +0 -36
- data/docs/Deprecation.md +0 -8
- data/docs/DevelopmentGuide.md +0 -259
- data/docs/GettingStarted.md +0 -2712
- data/docs/ProfilingDevelopment.md +0 -109
- data/docs/PublicApi.md +0 -14
- data/docs/UpgradeGuide.md +0 -736
- data/ext/ddtrace_profiling_native_extension/collectors_cpu_and_wall_time.c +0 -269
- data/ext/ddtrace_profiling_native_extension/libddprof_helpers.h +0 -13
- data/lib/datadog/appsec/assets/waf_rules/risky.json +0 -1499
- data/lib/datadog/appsec/contrib/rack/request.rb +0 -58
- data/lib/datadog/appsec/contrib/rack/response.rb +0 -24
- data/lib/datadog/profiling/collectors/cpu_and_wall_time.rb +0 -42
- data/lib/datadog/profiling/old_ext.rb +0 -42
- data/lib/datadog/profiling/transport/http/api/endpoint.rb +0 -85
- data/lib/datadog/profiling/transport/http/api/instance.rb +0 -38
- data/lib/datadog/profiling/transport/http/api/spec.rb +0 -42
- data/lib/datadog/profiling/transport/http/api.rb +0 -45
- data/lib/datadog/profiling/transport/http/builder.rb +0 -30
- data/lib/datadog/profiling/transport/http/client.rb +0 -37
- data/lib/datadog/profiling/transport/http/response.rb +0 -21
- data/lib/datadog/profiling/transport/http.rb +0 -112
- data/lib/datadog/tracing/distributed/headers/b3.rb +0 -55
- data/lib/datadog/tracing/distributed/headers/b3_single.rb +0 -67
- data/lib/datadog/tracing/distributed/headers/datadog.rb +0 -52
- data/lib/datadog/tracing/distributed/headers/parser.rb +0 -37
- data/lib/datadog/tracing/distributed/metadata/b3.rb +0 -55
- data/lib/datadog/tracing/distributed/metadata/b3_single.rb +0 -66
- data/lib/datadog/tracing/distributed/metadata/datadog.rb +0 -73
- data/lib/datadog/tracing/distributed/metadata/parser.rb +0 -34
- data/lib/datadog/tracing/propagation/grpc.rb +0 -98
|
@@ -1,21 +1,20 @@
|
|
|
1
|
-
# typed: false
|
|
2
|
-
|
|
3
1
|
require 'logger'
|
|
4
2
|
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
3
|
+
require_relative 'base'
|
|
4
|
+
require_relative 'ext'
|
|
5
|
+
require_relative '../environment/ext'
|
|
6
|
+
require_relative '../runtime/ext'
|
|
7
|
+
require_relative '../telemetry/ext'
|
|
8
|
+
require_relative '../../profiling/ext'
|
|
9
|
+
|
|
10
|
+
require_relative '../../tracing/configuration/settings'
|
|
10
11
|
|
|
11
12
|
module Datadog
|
|
12
13
|
module Core
|
|
13
14
|
module Configuration
|
|
14
|
-
# Global configuration settings for the
|
|
15
|
+
# Global configuration settings for the Datadog library.
|
|
15
16
|
# @public_api
|
|
16
17
|
# rubocop:disable Metrics/BlockLength
|
|
17
|
-
# rubocop:disable Metrics/ClassLength
|
|
18
|
-
# rubocop:disable Layout/LineLength
|
|
19
18
|
class Settings
|
|
20
19
|
include Base
|
|
21
20
|
|
|
@@ -99,7 +98,7 @@ module Datadog
|
|
|
99
98
|
# @default `DD_TRACE_DEBUG` environment variable, otherwise `false`
|
|
100
99
|
# @return [Boolean]
|
|
101
100
|
option :debug do |o|
|
|
102
|
-
o.default { env_to_bool(Datadog::Core::
|
|
101
|
+
o.default { env_to_bool(Datadog::Core::Configuration::Ext::Diagnostics::ENV_DEBUG_ENABLED, false) }
|
|
103
102
|
o.lazy
|
|
104
103
|
o.on_set do |enabled|
|
|
105
104
|
# Enable rich debug print statements.
|
|
@@ -110,7 +109,6 @@ module Datadog
|
|
|
110
109
|
|
|
111
110
|
# Internal {Datadog::Statsd} metrics collection.
|
|
112
111
|
#
|
|
113
|
-
# The list of metrics collected can be found in {Datadog::Core::Diagnostics::Ext::Health::Metrics}.
|
|
114
112
|
# @public_api
|
|
115
113
|
settings :health_metrics do
|
|
116
114
|
# Enable health metrics collection.
|
|
@@ -118,7 +116,7 @@ module Datadog
|
|
|
118
116
|
# @default `DD_HEALTH_METRICS_ENABLED` environment variable, otherwise `false`
|
|
119
117
|
# @return [Boolean]
|
|
120
118
|
option :enabled do |o|
|
|
121
|
-
o.default { env_to_bool(Datadog::Core::
|
|
119
|
+
o.default { env_to_bool(Datadog::Core::Configuration::Ext::Diagnostics::ENV_HEALTH_METRICS_ENABLED, false) }
|
|
122
120
|
o.lazy
|
|
123
121
|
end
|
|
124
122
|
|
|
@@ -144,7 +142,7 @@ module Datadog
|
|
|
144
142
|
# @return [Boolean,nil]
|
|
145
143
|
option :enabled do |o|
|
|
146
144
|
# Defaults to nil as we want to know when the default value is being used
|
|
147
|
-
o.default { env_to_bool(Datadog::Core::
|
|
145
|
+
o.default { env_to_bool(Datadog::Core::Configuration::Ext::Diagnostics::ENV_STARTUP_LOGS_ENABLED, nil) }
|
|
148
146
|
o.lazy
|
|
149
147
|
end
|
|
150
148
|
end
|
|
@@ -206,10 +204,13 @@ 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
|
|
212
211
|
# produced profiles. Increasing this may increase the overhead of profiling.
|
|
212
|
+
#
|
|
213
|
+
# @default `DD_PROFILING_MAX_FRAMES` environment variable, otherwise 400
|
|
213
214
|
option :max_frames do |o|
|
|
214
215
|
o.default { env_to_int(Profiling::Ext::ENV_MAX_FRAMES, 400) }
|
|
215
216
|
o.lazy
|
|
@@ -230,16 +231,63 @@ module Datadog
|
|
|
230
231
|
end
|
|
231
232
|
end
|
|
232
233
|
|
|
233
|
-
#
|
|
234
|
-
# 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.
|
|
235
236
|
option :code_provenance_enabled, default: true
|
|
236
237
|
|
|
237
|
-
#
|
|
238
|
-
#
|
|
238
|
+
# No longer does anything, and will be removed on dd-trace-rb 2.0.
|
|
239
|
+
#
|
|
240
|
+
# This was added as a temporary support option in case of issues with the new `Profiling::HttpTransport` class
|
|
241
|
+
# but we're now confident it's working nicely so we've removed the old code path.
|
|
239
242
|
option :legacy_transport_enabled do |o|
|
|
240
|
-
o.
|
|
243
|
+
o.on_set do
|
|
244
|
+
Datadog.logger.warn(
|
|
245
|
+
'The profiling.advanced.legacy_transport_enabled setting has been deprecated for removal and no ' \
|
|
246
|
+
'longer does anything. Please remove it from your Datadog.configure block.'
|
|
247
|
+
)
|
|
248
|
+
end
|
|
249
|
+
end
|
|
250
|
+
|
|
251
|
+
# Forces enabling the new CPU Profiling 2.0 profiler (see ddtrace release notes for more details).
|
|
252
|
+
#
|
|
253
|
+
# Note that setting this to "false" (or not setting it) will not prevent the new profiler from
|
|
254
|
+
# being automatically used in the future.
|
|
255
|
+
# This option will be deprecated for removal once the new profiler gets enabled by default for all customers.
|
|
256
|
+
option :force_enable_new_profiler do |o|
|
|
257
|
+
o.default { env_to_bool('DD_PROFILING_FORCE_ENABLE_NEW', false) }
|
|
258
|
+
o.lazy
|
|
259
|
+
end
|
|
260
|
+
|
|
261
|
+
# Forces enabling of profiling of time/resources spent in Garbage Collection.
|
|
262
|
+
#
|
|
263
|
+
# Note that setting this to "false" (or not setting it) will not prevent the feature from being
|
|
264
|
+
# being automatically enabled in the future.
|
|
265
|
+
#
|
|
266
|
+
# This toggle was added because, although this feature is safe and enabled by default on Ruby 2.x,
|
|
267
|
+
# on Ruby 3.x it can break in applications that make use of Ractors due to two Ruby VM bugs:
|
|
268
|
+
# https://bugs.ruby-lang.org/issues/19112 AND https://bugs.ruby-lang.org/issues/18464.
|
|
269
|
+
#
|
|
270
|
+
# If you use Ruby 3.x and your application does not use Ractors (or if your Ruby has been patched), the
|
|
271
|
+
# feature is fully safe to enable and this toggle can be used to do so.
|
|
272
|
+
#
|
|
273
|
+
# Furthermore, currently this feature can add a lot of overhead for GC-heavy workloads.
|
|
274
|
+
#
|
|
275
|
+
# We expect the once the above issues are overcome, we'll automatically enable the feature on fixed Ruby
|
|
276
|
+
# versions.
|
|
277
|
+
option :force_enable_gc_profiling do |o|
|
|
278
|
+
o.default { env_to_bool('DD_PROFILING_FORCE_ENABLE_GC', false) }
|
|
241
279
|
o.lazy
|
|
242
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.')
|
|
243
291
|
end
|
|
244
292
|
|
|
245
293
|
# @public_api
|
|
@@ -313,8 +361,8 @@ module Datadog
|
|
|
313
361
|
|
|
314
362
|
# Parse tags from environment
|
|
315
363
|
env_to_list(Core::Environment::Ext::ENV_TAGS, comma_separated_only: false).each do |tag|
|
|
316
|
-
|
|
317
|
-
tags[
|
|
364
|
+
key, value = tag.split(':', 2)
|
|
365
|
+
tags[key] = value if value && !value.empty?
|
|
318
366
|
end
|
|
319
367
|
|
|
320
368
|
# Override tags if defined
|
|
@@ -373,240 +421,6 @@ module Datadog
|
|
|
373
421
|
end
|
|
374
422
|
end
|
|
375
423
|
|
|
376
|
-
# Tracer specific configurations.
|
|
377
|
-
# @public_api
|
|
378
|
-
settings :tracing do
|
|
379
|
-
# Legacy [App Analytics](https://docs.datadoghq.com/tracing/legacy_app_analytics/) configuration.
|
|
380
|
-
#
|
|
381
|
-
# @configure_with {Datadog::Tracing}
|
|
382
|
-
# @deprecated Use [Trace Retention and Ingestion](https://docs.datadoghq.com/tracing/trace_retention_and_ingestion/)
|
|
383
|
-
# controls.
|
|
384
|
-
# @public_api
|
|
385
|
-
settings :analytics do
|
|
386
|
-
# @default `DD_TRACE_ANALYTICS_ENABLED` environment variable, otherwise `nil`
|
|
387
|
-
# @return [Boolean,nil]
|
|
388
|
-
option :enabled do |o|
|
|
389
|
-
o.default { env_to_bool(Tracing::Configuration::Ext::Analytics::ENV_TRACE_ANALYTICS_ENABLED, nil) }
|
|
390
|
-
o.lazy
|
|
391
|
-
end
|
|
392
|
-
end
|
|
393
|
-
|
|
394
|
-
# [Distributed Tracing](https://docs.datadoghq.com/tracing/setup_overview/setup/ruby/#distributed-tracing) propagation
|
|
395
|
-
# style configuration.
|
|
396
|
-
#
|
|
397
|
-
# The supported formats are:
|
|
398
|
-
# * `Datadog`: Datadog propagation format, described by [Distributed Tracing](https://docs.datadoghq.com/tracing/setup_overview/setup/ruby/#distributed-tracing).
|
|
399
|
-
# * `B3`: B3 Propagation using multiple headers, described by [openzipkin/b3-propagation](https://github.com/openzipkin/b3-propagation#multiple-headers).
|
|
400
|
-
# * `B3 single header`: B3 Propagation using a single header, described by [openzipkin/b3-propagation](https://github.com/openzipkin/b3-propagation#single-header).
|
|
401
|
-
#
|
|
402
|
-
# @public_api
|
|
403
|
-
settings :distributed_tracing do
|
|
404
|
-
# An ordered list of what data propagation styles the tracer will use to extract distributed tracing propagation
|
|
405
|
-
# data from incoming requests and messages.
|
|
406
|
-
#
|
|
407
|
-
# The tracer will try to find distributed headers in the order they are present in the list provided to this option.
|
|
408
|
-
# The first format to have valid data present will be used.
|
|
409
|
-
#
|
|
410
|
-
# @default `DD_PROPAGATION_STYLE_EXTRACT` environment variable (comma-separated list),
|
|
411
|
-
# otherwise `['Datadog','B3','B3 single header']`.
|
|
412
|
-
# @return [Array<String>]
|
|
413
|
-
option :propagation_extract_style do |o|
|
|
414
|
-
o.default do
|
|
415
|
-
# Look for all headers by default
|
|
416
|
-
env_to_list(
|
|
417
|
-
Tracing::Configuration::Ext::Distributed::ENV_PROPAGATION_STYLE_EXTRACT,
|
|
418
|
-
[
|
|
419
|
-
Tracing::Configuration::Ext::Distributed::PROPAGATION_STYLE_DATADOG,
|
|
420
|
-
Tracing::Configuration::Ext::Distributed::PROPAGATION_STYLE_B3,
|
|
421
|
-
Tracing::Configuration::Ext::Distributed::PROPAGATION_STYLE_B3_SINGLE_HEADER
|
|
422
|
-
], comma_separated_only: true
|
|
423
|
-
)
|
|
424
|
-
end
|
|
425
|
-
|
|
426
|
-
o.lazy
|
|
427
|
-
end
|
|
428
|
-
|
|
429
|
-
# The data propagation styles the tracer will use to inject distributed tracing propagation
|
|
430
|
-
# data into outgoing requests and messages.
|
|
431
|
-
#
|
|
432
|
-
# The tracer will inject data from all styles specified in this option.
|
|
433
|
-
#
|
|
434
|
-
# @default `DD_PROPAGATION_STYLE_INJECT` environment variable (comma-separated list), otherwise `['Datadog']`.
|
|
435
|
-
# @return [Array<String>]
|
|
436
|
-
option :propagation_inject_style do |o|
|
|
437
|
-
o.default do
|
|
438
|
-
env_to_list(
|
|
439
|
-
Tracing::Configuration::Ext::Distributed::ENV_PROPAGATION_STYLE_INJECT,
|
|
440
|
-
[Tracing::Configuration::Ext::Distributed::PROPAGATION_STYLE_DATADOG], comma_separated_only: true # Only inject Datadog headers by default
|
|
441
|
-
)
|
|
442
|
-
end
|
|
443
|
-
|
|
444
|
-
o.lazy
|
|
445
|
-
end
|
|
446
|
-
end
|
|
447
|
-
|
|
448
|
-
# Enable trace collection and span generation.
|
|
449
|
-
#
|
|
450
|
-
# You can use this option to disable tracing without having to
|
|
451
|
-
# remove the library as a whole.
|
|
452
|
-
#
|
|
453
|
-
# @default `DD_TRACE_ENABLED` environment variable, otherwise `true`
|
|
454
|
-
# @return [Boolean]
|
|
455
|
-
option :enabled do |o|
|
|
456
|
-
o.default { env_to_bool(Datadog::Core::Diagnostics::Ext::DD_TRACE_ENABLED, true) }
|
|
457
|
-
o.lazy
|
|
458
|
-
end
|
|
459
|
-
|
|
460
|
-
# A custom tracer instance.
|
|
461
|
-
#
|
|
462
|
-
# It must respect the contract of {Datadog::Tracing::Tracer}.
|
|
463
|
-
# It's recommended to delegate methods to {Datadog::Tracing::Tracer} to ease the implementation
|
|
464
|
-
# of a custom tracer.
|
|
465
|
-
#
|
|
466
|
-
# This option will not return the live tracer instance: it only holds a custom tracing instance, if any.
|
|
467
|
-
#
|
|
468
|
-
# For internal use only.
|
|
469
|
-
#
|
|
470
|
-
# @default `nil`
|
|
471
|
-
# @return [Object,nil]
|
|
472
|
-
option :instance
|
|
473
|
-
|
|
474
|
-
# Automatic correlation between tracing and logging.
|
|
475
|
-
# @see https://docs.datadoghq.com/tracing/setup_overview/setup/ruby/#trace-correlation
|
|
476
|
-
# @return [Boolean]
|
|
477
|
-
option :log_injection do |o|
|
|
478
|
-
o.default { env_to_bool(Tracing::Configuration::Ext::Correlation::ENV_LOGS_INJECTION_ENABLED, true) }
|
|
479
|
-
o.lazy
|
|
480
|
-
end
|
|
481
|
-
|
|
482
|
-
# Configures an alternative trace transport behavior, where
|
|
483
|
-
# traces can be sent to the agent and backend before all spans
|
|
484
|
-
# have finished.
|
|
485
|
-
#
|
|
486
|
-
# This is useful for long-running jobs or very large traces.
|
|
487
|
-
#
|
|
488
|
-
# The trace flame graph will display the partial trace as it is received and constantly
|
|
489
|
-
# update with new spans as they are flushed.
|
|
490
|
-
# @public_api
|
|
491
|
-
settings :partial_flush do
|
|
492
|
-
# Enable partial trace flushing.
|
|
493
|
-
#
|
|
494
|
-
# @default `false`
|
|
495
|
-
# @return [Boolean]
|
|
496
|
-
option :enabled, default: false
|
|
497
|
-
|
|
498
|
-
# Minimum number of finished spans required in a single unfinished trace before
|
|
499
|
-
# the tracer will consider that trace for partial flushing.
|
|
500
|
-
#
|
|
501
|
-
# This option helps preserve a minimum amount of batching in the
|
|
502
|
-
# flushing process, reducing network overhead.
|
|
503
|
-
#
|
|
504
|
-
# This threshold only applies to unfinished traces. Traces that have finished
|
|
505
|
-
# are always flushed immediately.
|
|
506
|
-
#
|
|
507
|
-
# @default 500
|
|
508
|
-
# @return [Integer]
|
|
509
|
-
option :min_spans_threshold, default: 500
|
|
510
|
-
end
|
|
511
|
-
|
|
512
|
-
# Enables {https://docs.datadoghq.com/tracing/trace_retention_and_ingestion/#datadog-intelligent-retention-filter
|
|
513
|
-
# Datadog intelligent retention filter}.
|
|
514
|
-
# @default `true`
|
|
515
|
-
# @return [Boolean,nil]
|
|
516
|
-
option :priority_sampling
|
|
517
|
-
|
|
518
|
-
option :report_hostname do |o|
|
|
519
|
-
o.default { env_to_bool(Tracing::Configuration::Ext::NET::ENV_REPORT_HOSTNAME, false) }
|
|
520
|
-
o.lazy
|
|
521
|
-
end
|
|
522
|
-
|
|
523
|
-
# A custom sampler instance.
|
|
524
|
-
# The object must respect the {Datadog::Tracing::Sampling::Sampler} interface.
|
|
525
|
-
# @default `nil`
|
|
526
|
-
# @return [Object,nil]
|
|
527
|
-
option :sampler
|
|
528
|
-
|
|
529
|
-
# Client-side sampling configuration.
|
|
530
|
-
# @public_api
|
|
531
|
-
settings :sampling do
|
|
532
|
-
# Default sampling rate for the tracer.
|
|
533
|
-
#
|
|
534
|
-
# If `nil`, the trace uses an automatic sampling strategy that tries to ensure
|
|
535
|
-
# the collection of traces that are considered important (e.g. traces with an error, traces
|
|
536
|
-
# for resources not seen recently).
|
|
537
|
-
#
|
|
538
|
-
# @default `DD_TRACE_SAMPLE_RATE` environment variable, otherwise `nil`.
|
|
539
|
-
# @return [Float,nil]
|
|
540
|
-
option :default_rate do |o|
|
|
541
|
-
o.default { env_to_float(Tracing::Configuration::Ext::Sampling::ENV_SAMPLE_RATE, nil) }
|
|
542
|
-
o.lazy
|
|
543
|
-
end
|
|
544
|
-
|
|
545
|
-
# Rate limit for number of spans per second.
|
|
546
|
-
#
|
|
547
|
-
# Spans created above the limit will contribute to service metrics, but won't
|
|
548
|
-
# have their payload stored.
|
|
549
|
-
#
|
|
550
|
-
# @default `DD_TRACE_RATE_LIMIT` environment variable, otherwise 100.
|
|
551
|
-
# @return [Numeric,nil]
|
|
552
|
-
option :rate_limit do |o|
|
|
553
|
-
o.default { env_to_float(Tracing::Configuration::Ext::Sampling::ENV_RATE_LIMIT, 100) }
|
|
554
|
-
o.lazy
|
|
555
|
-
end
|
|
556
|
-
end
|
|
557
|
-
|
|
558
|
-
# [Continuous Integration Visibility](https://docs.datadoghq.com/continuous_integration/) configuration.
|
|
559
|
-
# @public_api
|
|
560
|
-
settings :test_mode do
|
|
561
|
-
# Enable test mode. This allows the tracer to collect spans from test runs.
|
|
562
|
-
#
|
|
563
|
-
# It also prevents the tracer from collecting spans in a production environment. Only use in a test environment.
|
|
564
|
-
#
|
|
565
|
-
# @default `DD_TRACE_TEST_MODE_ENABLED` environment variable, otherwise `false`
|
|
566
|
-
# @return [Boolean]
|
|
567
|
-
option :enabled do |o|
|
|
568
|
-
o.default { env_to_bool(Tracing::Configuration::Ext::Test::ENV_MODE_ENABLED, false) }
|
|
569
|
-
o.lazy
|
|
570
|
-
end
|
|
571
|
-
|
|
572
|
-
option :trace_flush do |o|
|
|
573
|
-
o.default { nil }
|
|
574
|
-
o.lazy
|
|
575
|
-
end
|
|
576
|
-
|
|
577
|
-
option :writer_options do |o|
|
|
578
|
-
o.default { {} }
|
|
579
|
-
o.lazy
|
|
580
|
-
end
|
|
581
|
-
end
|
|
582
|
-
|
|
583
|
-
# @see file:docs/GettingStarted.md#configuring-the-transport-layer Configuring the transport layer
|
|
584
|
-
#
|
|
585
|
-
# A {Proc} that configures a custom tracer transport.
|
|
586
|
-
# @yield Receives a {Datadog::Transport::HTTP} that can be modified with custom adapters and settings.
|
|
587
|
-
# @yieldparam [Datadog::Transport::HTTP] t transport to be configured.
|
|
588
|
-
# @default `nil`
|
|
589
|
-
# @return [Proc,nil]
|
|
590
|
-
option :transport_options, default: nil
|
|
591
|
-
|
|
592
|
-
# A custom writer instance.
|
|
593
|
-
# The object must respect the {Datadog::Tracing::Writer} interface.
|
|
594
|
-
#
|
|
595
|
-
# This option is recommended for internal use only.
|
|
596
|
-
#
|
|
597
|
-
# @default `nil`
|
|
598
|
-
# @return [Object,nil]
|
|
599
|
-
option :writer
|
|
600
|
-
|
|
601
|
-
# A custom {Hash} with keyword options to be passed to {Datadog::Tracing::Writer#initialize}.
|
|
602
|
-
#
|
|
603
|
-
# This option is recommended for internal use only.
|
|
604
|
-
#
|
|
605
|
-
# @default `{}`
|
|
606
|
-
# @return [Hash,nil]
|
|
607
|
-
option :writer_options, default: ->(_i) { {} }, lazy: true
|
|
608
|
-
end
|
|
609
|
-
|
|
610
424
|
# The `version` tag in Datadog. Use it to enable [Deployment Tracking](https://docs.datadoghq.com/tracing/deployment_tracking/).
|
|
611
425
|
# @see https://docs.datadoghq.com/getting_started/tagging/unified_service_tagging
|
|
612
426
|
# @default `DD_VERSION` environment variable, otherwise `nils`
|
|
@@ -616,10 +430,26 @@ module Datadog
|
|
|
616
430
|
o.default { ENV.fetch(Core::Environment::Ext::ENV_VERSION, nil) }
|
|
617
431
|
o.lazy
|
|
618
432
|
end
|
|
433
|
+
|
|
434
|
+
# Client-side telemetry configuration
|
|
435
|
+
# @public_api
|
|
436
|
+
settings :telemetry do
|
|
437
|
+
# Enable telemetry collection. This allows telemetry events to be emitted to the telemetry API.
|
|
438
|
+
#
|
|
439
|
+
# @default `DD_INSTRUMENTATION_TELEMETRY_ENABLED` environment variable, otherwise `false`. In a future release,
|
|
440
|
+
# this value will be changed to `true` by default as documented [here](https://docs.datadoghq.com/tracing/configure_data_security/#telemetry-collection).
|
|
441
|
+
# @return [Boolean]
|
|
442
|
+
option :enabled do |o|
|
|
443
|
+
o.default { env_to_bool(Core::Telemetry::Ext::ENV_ENABLED, false) }
|
|
444
|
+
o.lazy
|
|
445
|
+
end
|
|
446
|
+
end
|
|
447
|
+
|
|
448
|
+
# TODO: Tracing should manage its own settings.
|
|
449
|
+
# Keep this extension here for now to keep things working.
|
|
450
|
+
extend Datadog::Tracing::Configuration::Settings
|
|
619
451
|
end
|
|
620
452
|
# rubocop:enable Metrics/BlockLength
|
|
621
|
-
# rubocop:enable Metrics/ClassLength
|
|
622
|
-
# rubocop:enable Layout/LineLength
|
|
623
453
|
end
|
|
624
454
|
end
|
|
625
455
|
end
|
|
@@ -1,16 +1,13 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
require 'datadog/core/pin'
|
|
1
|
+
require_relative 'configuration/components'
|
|
2
|
+
require_relative 'configuration/settings'
|
|
3
|
+
require_relative 'telemetry/emitter'
|
|
4
|
+
require_relative 'logger'
|
|
5
|
+
require_relative 'pin'
|
|
7
6
|
|
|
8
7
|
module Datadog
|
|
9
8
|
module Core
|
|
10
9
|
# Configuration provides a unique access point for configurations
|
|
11
|
-
module Configuration
|
|
12
|
-
include Kernel # Ensure that kernel methods are always available (https://sorbet.org/docs/error-reference#7003)
|
|
13
|
-
|
|
10
|
+
module Configuration
|
|
14
11
|
# Used to ensure that @components initialization/reconfiguration is performed one-at-a-time, by a single thread.
|
|
15
12
|
#
|
|
16
13
|
# This is important because components can end up being accessed from multiple application threads (for instance on
|
|
@@ -89,7 +86,9 @@ module Datadog
|
|
|
89
86
|
if components?
|
|
90
87
|
replace_components!(configuration, @components)
|
|
91
88
|
else
|
|
92
|
-
build_components(configuration)
|
|
89
|
+
components = build_components(configuration)
|
|
90
|
+
components.telemetry.started!
|
|
91
|
+
components
|
|
93
92
|
end
|
|
94
93
|
)
|
|
95
94
|
end
|
|
@@ -1,5 +1,3 @@
|
|
|
1
|
-
# typed: true
|
|
2
|
-
|
|
3
1
|
require 'date'
|
|
4
2
|
require 'json'
|
|
5
3
|
require 'rbconfig'
|
|
@@ -106,10 +104,14 @@ module Datadog
|
|
|
106
104
|
Datadog.configuration.version
|
|
107
105
|
end
|
|
108
106
|
|
|
109
|
-
# @return [String] target agent URL for trace flushing
|
|
107
|
+
# @return [String, nil] target agent URL for trace flushing
|
|
110
108
|
def agent_url
|
|
111
109
|
# Retrieve the effect agent URL, regardless of how it was configured
|
|
112
110
|
transport = Tracing.send(:tracer).writer.transport
|
|
111
|
+
|
|
112
|
+
# return `nil` with IO transport
|
|
113
|
+
return unless transport.respond_to?(:client)
|
|
114
|
+
|
|
113
115
|
adapter = transport.client.api.adapter
|
|
114
116
|
adapter.url
|
|
115
117
|
end
|
|
@@ -151,7 +153,7 @@ module Datadog
|
|
|
151
153
|
def sampling_rules
|
|
152
154
|
sampler = Datadog.configuration.tracing.sampler
|
|
153
155
|
return nil unless sampler.is_a?(Tracing::Sampling::PrioritySampler) &&
|
|
154
|
-
|
|
156
|
+
sampler.priority_sampler.is_a?(Tracing::Sampling::RuleSampler)
|
|
155
157
|
|
|
156
158
|
sampler.priority_sampler.rules.map do |rule|
|
|
157
159
|
next unless rule.is_a?(Tracing::Sampling::SimpleRule)
|
|
@@ -217,9 +219,9 @@ module Datadog
|
|
|
217
219
|
!!Datadog.configuration.diagnostics.health_metrics.enabled
|
|
218
220
|
end
|
|
219
221
|
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
222
|
+
def profiling_enabled
|
|
223
|
+
!!Datadog.configuration.profiling.enabled
|
|
224
|
+
end
|
|
223
225
|
|
|
224
226
|
# TODO: Populate when automatic log correlation is implemented
|
|
225
227
|
# def logs_correlation_enabled
|
|
@@ -250,6 +252,7 @@ module Datadog
|
|
|
250
252
|
partial_flushing_enabled: partial_flushing_enabled,
|
|
251
253
|
priority_sampling_enabled: priority_sampling_enabled,
|
|
252
254
|
health_metrics_enabled: health_metrics_enabled,
|
|
255
|
+
profiling_enabled: profiling_enabled,
|
|
253
256
|
**instrumented_integrations_settings
|
|
254
257
|
}
|
|
255
258
|
end
|
|
@@ -1,7 +1,5 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
require 'datadog/core/diagnostics/ext'
|
|
4
|
-
require 'datadog/core/metrics/client'
|
|
1
|
+
require_relative '../metrics/client'
|
|
2
|
+
require_relative '../../tracing/diagnostics/health'
|
|
5
3
|
|
|
6
4
|
module Datadog
|
|
7
5
|
module Core
|
|
@@ -10,26 +8,8 @@ module Datadog
|
|
|
10
8
|
module Health
|
|
11
9
|
# Health metrics for diagnostics
|
|
12
10
|
class Metrics < Core::Metrics::Client
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
count :api_responses, Ext::Health::Metrics::METRIC_API_RESPONSES
|
|
16
|
-
count :error_context_overflow, Ext::Health::Metrics::METRIC_ERROR_CONTEXT_OVERFLOW
|
|
17
|
-
count :error_instrumentation_patch, Ext::Health::Metrics::METRIC_ERROR_INSTRUMENTATION_PATCH
|
|
18
|
-
count :error_span_finish, Ext::Health::Metrics::METRIC_ERROR_SPAN_FINISH
|
|
19
|
-
count :error_unfinished_spans, Ext::Health::Metrics::METRIC_ERROR_UNFINISHED_SPANS
|
|
20
|
-
count :instrumentation_patched, Ext::Health::Metrics::METRIC_INSTRUMENTATION_PATCHED
|
|
21
|
-
count :queue_accepted, Ext::Health::Metrics::METRIC_QUEUE_ACCEPTED
|
|
22
|
-
count :queue_accepted_lengths, Ext::Health::Metrics::METRIC_QUEUE_ACCEPTED_LENGTHS
|
|
23
|
-
count :queue_dropped, Ext::Health::Metrics::METRIC_QUEUE_DROPPED
|
|
24
|
-
count :traces_filtered, Ext::Health::Metrics::METRIC_TRACES_FILTERED
|
|
25
|
-
count :transport_trace_too_large, Ext::Health::Metrics::METRIC_TRANSPORT_TRACE_TOO_LARGE
|
|
26
|
-
count :transport_chunked, Ext::Health::Metrics::METRIC_TRANSPORT_CHUNKED
|
|
27
|
-
count :writer_cpu_time, Ext::Health::Metrics::METRIC_WRITER_CPU_TIME
|
|
28
|
-
|
|
29
|
-
gauge :queue_length, Ext::Health::Metrics::METRIC_QUEUE_LENGTH
|
|
30
|
-
gauge :queue_max_length, Ext::Health::Metrics::METRIC_QUEUE_MAX_LENGTH
|
|
31
|
-
gauge :queue_spans, Ext::Health::Metrics::METRIC_QUEUE_SPANS
|
|
32
|
-
gauge :sampling_service_cache_length, Ext::Health::Metrics::METRIC_SAMPLING_SERVICE_CACHE_LENGTH
|
|
11
|
+
# TODO: Don't reference this. Have tracing add its metrics behavior.
|
|
12
|
+
extend Tracing::Diagnostics::Health::Metrics
|
|
33
13
|
end
|
|
34
14
|
end
|
|
35
15
|
end
|
|
@@ -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,6 +1,4 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
require 'datadog/core/environment/ext'
|
|
1
|
+
require_relative 'ext'
|
|
4
2
|
|
|
5
3
|
module Datadog
|
|
6
4
|
module Core
|
|
@@ -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,14 +1,10 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
require 'datadog/core/environment/cgroup'
|
|
1
|
+
require_relative 'cgroup'
|
|
4
2
|
|
|
5
3
|
module Datadog
|
|
6
4
|
module Core
|
|
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
|
|