ddtrace 1.12.1 → 1.18.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 +388 -10
- data/ext/ddtrace_profiling_native_extension/NativeExtensionDesign.md +3 -5
- data/ext/ddtrace_profiling_native_extension/clock_id.h +0 -3
- data/ext/ddtrace_profiling_native_extension/clock_id_from_pthread.c +3 -22
- data/ext/ddtrace_profiling_native_extension/clock_id_noop.c +0 -1
- data/ext/ddtrace_profiling_native_extension/collectors_cpu_and_wall_time_worker.c +41 -6
- data/ext/ddtrace_profiling_native_extension/collectors_idle_sampling_helper.c +3 -0
- data/ext/ddtrace_profiling_native_extension/collectors_stack.c +76 -24
- data/ext/ddtrace_profiling_native_extension/collectors_stack.h +1 -1
- data/ext/ddtrace_profiling_native_extension/collectors_thread_context.c +292 -27
- data/ext/ddtrace_profiling_native_extension/collectors_thread_context.h +1 -1
- data/ext/ddtrace_profiling_native_extension/extconf.rb +40 -10
- data/ext/ddtrace_profiling_native_extension/http_transport.c +48 -16
- data/ext/ddtrace_profiling_native_extension/libdatadog_helpers.c +42 -0
- data/ext/ddtrace_profiling_native_extension/libdatadog_helpers.h +6 -0
- data/ext/ddtrace_profiling_native_extension/native_extension_helpers.rb +1 -1
- data/ext/ddtrace_profiling_native_extension/pid_controller.c +57 -0
- data/ext/ddtrace_profiling_native_extension/pid_controller.h +45 -0
- data/ext/ddtrace_profiling_native_extension/private_vm_api_access.c +136 -32
- data/ext/ddtrace_profiling_native_extension/private_vm_api_access.h +12 -0
- data/ext/ddtrace_profiling_native_extension/profiling.c +1 -2
- data/ext/ddtrace_profiling_native_extension/stack_recorder.c +81 -50
- data/ext/ddtrace_profiling_native_extension/stack_recorder.h +13 -3
- data/ext/ddtrace_profiling_native_extension/time_helpers.c +40 -4
- data/ext/ddtrace_profiling_native_extension/time_helpers.h +14 -0
- data/lib/datadog/appsec/assets/waf_rules/processors.json +92 -0
- data/lib/datadog/appsec/assets/waf_rules/recommended.json +698 -75
- data/lib/datadog/appsec/assets/waf_rules/scanners.json +114 -0
- data/lib/datadog/appsec/assets/waf_rules/strict.json +98 -8
- data/lib/datadog/appsec/assets.rb +8 -0
- data/lib/datadog/appsec/component.rb +21 -2
- data/lib/datadog/appsec/configuration/settings.rb +167 -189
- data/lib/datadog/appsec/configuration.rb +0 -79
- data/lib/datadog/appsec/contrib/auto_instrument.rb +2 -4
- data/lib/datadog/appsec/contrib/devise/event.rb +57 -0
- data/lib/datadog/appsec/contrib/devise/ext.rb +13 -0
- data/lib/datadog/appsec/contrib/devise/integration.rb +42 -0
- data/lib/datadog/appsec/contrib/devise/patcher/authenticatable_patch.rb +76 -0
- data/lib/datadog/appsec/contrib/devise/patcher/registration_controller_patch.rb +54 -0
- data/lib/datadog/appsec/contrib/devise/patcher.rb +45 -0
- data/lib/datadog/appsec/contrib/devise/resource.rb +35 -0
- data/lib/datadog/appsec/contrib/devise/tracking.rb +49 -0
- data/lib/datadog/appsec/contrib/rack/ext.rb +2 -1
- data/lib/datadog/appsec/contrib/rack/gateway/request.rb +6 -2
- data/lib/datadog/appsec/contrib/rack/gateway/watcher.rb +8 -6
- data/lib/datadog/appsec/contrib/rack/reactive/request.rb +3 -8
- data/lib/datadog/appsec/contrib/rack/reactive/request_body.rb +3 -6
- data/lib/datadog/appsec/contrib/rack/reactive/response.rb +3 -6
- data/lib/datadog/appsec/contrib/rack/request_body_middleware.rb +3 -2
- data/lib/datadog/appsec/contrib/rack/request_middleware.rb +36 -17
- data/lib/datadog/appsec/contrib/rails/ext.rb +3 -2
- data/lib/datadog/appsec/contrib/rails/framework.rb +1 -3
- data/lib/datadog/appsec/contrib/rails/gateway/watcher.rb +3 -2
- data/lib/datadog/appsec/contrib/rails/patcher.rb +17 -11
- data/lib/datadog/appsec/contrib/rails/reactive/action.rb +3 -6
- data/lib/datadog/appsec/contrib/sinatra/ext.rb +2 -1
- data/lib/datadog/appsec/contrib/sinatra/framework.rb +1 -3
- data/lib/datadog/appsec/contrib/sinatra/gateway/watcher.rb +6 -4
- data/lib/datadog/appsec/contrib/sinatra/patcher.rb +13 -7
- data/lib/datadog/appsec/contrib/sinatra/reactive/routed.rb +3 -6
- data/lib/datadog/appsec/event.rb +106 -50
- data/lib/datadog/appsec/extensions.rb +1 -130
- data/lib/datadog/appsec/monitor/gateway/watcher.rb +3 -3
- data/lib/datadog/appsec/monitor/reactive/set_user.rb +3 -6
- data/lib/datadog/appsec/processor/actions.rb +49 -0
- data/lib/datadog/appsec/processor/rule_loader.rb +60 -0
- data/lib/datadog/appsec/processor/rule_merger.rb +22 -2
- data/lib/datadog/appsec/processor.rb +35 -7
- data/lib/datadog/appsec/rate_limiter.rb +1 -1
- data/lib/datadog/appsec/remote.rb +17 -11
- data/lib/datadog/appsec/response.rb +82 -4
- data/lib/datadog/appsec/sample_rate.rb +21 -0
- data/lib/datadog/appsec.rb +3 -4
- data/lib/datadog/core/backport.rb +51 -0
- data/lib/datadog/core/configuration/agent_settings_resolver.rb +38 -29
- data/lib/datadog/core/configuration/base.rb +6 -16
- data/lib/datadog/core/configuration/components.rb +15 -3
- data/lib/datadog/core/configuration/ext.rb +28 -5
- data/lib/datadog/core/configuration/option.rb +269 -21
- data/lib/datadog/core/configuration/option_definition.rb +73 -32
- data/lib/datadog/core/configuration/options.rb +27 -15
- data/lib/datadog/core/configuration/settings.rb +182 -102
- data/lib/datadog/core/configuration.rb +4 -0
- data/lib/datadog/core/diagnostics/environment_logger.rb +130 -234
- data/lib/datadog/core/environment/execution.rb +103 -0
- data/lib/datadog/core/environment/ext.rb +13 -11
- data/lib/datadog/core/environment/variable_helpers.rb +0 -69
- data/lib/datadog/core/environment/yjit.rb +58 -0
- data/lib/datadog/core/error.rb +1 -0
- data/lib/datadog/core/git/ext.rb +26 -22
- data/lib/datadog/core/logging/ext.rb +3 -1
- data/lib/datadog/core/metrics/ext.rb +7 -5
- data/lib/datadog/core/remote/client/capabilities.rb +6 -1
- data/lib/datadog/core/remote/client.rb +3 -0
- data/lib/datadog/core/remote/component.rb +27 -36
- data/lib/datadog/core/remote/configuration/content.rb +28 -1
- data/lib/datadog/core/remote/configuration/repository.rb +3 -1
- data/lib/datadog/core/remote/ext.rb +1 -1
- data/lib/datadog/core/remote/negotiation.rb +19 -6
- data/lib/datadog/core/remote/transport/config.rb +60 -0
- data/lib/datadog/core/remote/transport/http/api/instance.rb +39 -0
- data/lib/datadog/core/remote/transport/http/api/spec.rb +21 -0
- data/lib/datadog/core/remote/transport/http/api.rb +58 -0
- data/lib/datadog/core/remote/transport/http/builder.rb +219 -0
- data/lib/datadog/core/remote/transport/http/client.rb +48 -0
- data/lib/datadog/core/remote/transport/http/config.rb +280 -0
- data/lib/datadog/core/remote/transport/http/negotiation.rb +146 -0
- data/lib/datadog/core/remote/transport/http.rb +179 -0
- data/lib/datadog/core/{transport → remote/transport}/negotiation.rb +25 -23
- data/lib/datadog/core/remote/worker.rb +4 -1
- data/lib/datadog/core/runtime/ext.rb +22 -12
- data/lib/datadog/core/runtime/metrics.rb +43 -0
- data/lib/datadog/core/telemetry/client.rb +12 -2
- data/lib/datadog/core/telemetry/collector.rb +13 -4
- data/lib/datadog/core/telemetry/emitter.rb +4 -2
- data/lib/datadog/core/telemetry/event.rb +19 -4
- data/lib/datadog/core/telemetry/ext.rb +4 -1
- data/lib/datadog/core/telemetry/heartbeat.rb +2 -4
- data/lib/datadog/core/telemetry/http/ext.rb +10 -8
- data/lib/datadog/core/telemetry/http/transport.rb +2 -0
- data/lib/datadog/core/telemetry/v2/app_client_configuration_change.rb +41 -0
- data/lib/datadog/core/telemetry/v2/request.rb +29 -0
- data/lib/datadog/core/transport/ext.rb +47 -0
- data/lib/datadog/core/transport/http/adapters/net.rb +168 -0
- data/lib/datadog/core/transport/http/adapters/registry.rb +29 -0
- data/lib/datadog/core/transport/http/adapters/test.rb +89 -0
- data/lib/datadog/core/transport/http/adapters/unix_socket.rb +83 -0
- data/lib/datadog/core/transport/http/api/endpoint.rb +31 -0
- data/lib/datadog/core/transport/http/api/fallbacks.rb +26 -0
- data/lib/datadog/core/transport/http/api/map.rb +18 -0
- data/lib/datadog/core/transport/http/env.rb +62 -0
- data/lib/datadog/core/transport/http/response.rb +60 -0
- data/lib/datadog/core/transport/parcel.rb +22 -0
- data/lib/datadog/core/transport/request.rb +17 -0
- data/lib/datadog/core/transport/response.rb +64 -0
- data/lib/datadog/core/utils/duration.rb +52 -0
- data/lib/datadog/core/utils/hash.rb +47 -0
- data/lib/datadog/core/utils/network.rb +1 -1
- data/lib/datadog/core/utils/safe_dup.rb +27 -20
- data/lib/datadog/core/utils.rb +1 -1
- data/lib/datadog/core/workers/async.rb +3 -2
- data/lib/datadog/core/workers/polling.rb +2 -2
- data/lib/datadog/kit/appsec/events.rb +139 -89
- data/lib/datadog/kit/enable_core_dumps.rb +5 -6
- data/lib/datadog/kit/identity.rb +80 -65
- data/lib/datadog/opentelemetry/api/context.rb +10 -3
- data/lib/datadog/opentelemetry/sdk/propagator.rb +2 -1
- data/lib/datadog/opentelemetry/sdk/span_processor.rb +48 -5
- data/lib/datadog/opentelemetry/sdk/trace/span.rb +167 -0
- data/lib/datadog/opentelemetry/trace.rb +58 -0
- data/lib/datadog/opentelemetry.rb +1 -0
- data/lib/datadog/opentracer/text_map_propagator.rb +2 -1
- data/lib/datadog/opentracer.rb +9 -0
- data/lib/datadog/profiling/collectors/cpu_and_wall_time_worker.rb +16 -17
- data/lib/datadog/profiling/collectors/idle_sampling_helper.rb +3 -1
- data/lib/datadog/profiling/collectors/thread_context.rb +17 -2
- data/lib/datadog/profiling/component.rb +69 -94
- data/lib/datadog/profiling/diagnostics/environment_logger.rb +39 -0
- data/lib/datadog/profiling/exporter.rb +5 -1
- data/lib/datadog/profiling/ext.rb +0 -12
- data/lib/datadog/profiling/flush.rb +7 -5
- data/lib/datadog/profiling/http_transport.rb +19 -6
- data/lib/datadog/profiling/load_native_extension.rb +7 -1
- data/lib/datadog/profiling/native_extension.rb +0 -21
- data/lib/datadog/profiling/profiler.rb +36 -13
- data/lib/datadog/profiling/scheduler.rb +16 -9
- data/lib/datadog/profiling.rb +16 -78
- data/lib/datadog/tracing/component.rb +70 -11
- data/lib/datadog/tracing/configuration/agent_settings_resolver.rb +13 -0
- data/lib/datadog/tracing/configuration/dynamic/option.rb +71 -0
- data/lib/datadog/tracing/configuration/dynamic.rb +64 -0
- data/lib/datadog/tracing/configuration/ext.rb +40 -32
- data/lib/datadog/tracing/configuration/http.rb +74 -0
- data/lib/datadog/tracing/configuration/settings.rb +134 -98
- data/lib/datadog/tracing/contrib/action_cable/configuration/settings.rb +9 -6
- data/lib/datadog/tracing/contrib/action_cable/ext.rb +20 -18
- data/lib/datadog/tracing/contrib/action_mailer/configuration/settings.rb +9 -6
- data/lib/datadog/tracing/contrib/action_mailer/ext.rb +20 -18
- data/lib/datadog/tracing/contrib/action_pack/configuration/settings.rb +9 -7
- data/lib/datadog/tracing/contrib/action_pack/ext.rb +10 -8
- data/lib/datadog/tracing/contrib/action_view/configuration/settings.rb +9 -6
- data/lib/datadog/tracing/contrib/action_view/ext.rb +12 -10
- data/lib/datadog/tracing/contrib/active_job/configuration/settings.rb +13 -7
- data/lib/datadog/tracing/contrib/active_job/ext.rb +25 -23
- data/lib/datadog/tracing/contrib/active_job/log_injection.rb +1 -1
- data/lib/datadog/tracing/contrib/active_job/patcher.rb +1 -1
- data/lib/datadog/tracing/contrib/active_model_serializers/configuration/settings.rb +9 -6
- data/lib/datadog/tracing/contrib/active_model_serializers/ext.rb +12 -10
- data/lib/datadog/tracing/contrib/active_record/configuration/resolver.rb +18 -11
- data/lib/datadog/tracing/contrib/active_record/configuration/settings.rb +9 -7
- data/lib/datadog/tracing/contrib/active_record/events/sql.rb +2 -6
- data/lib/datadog/tracing/contrib/active_record/ext.rb +17 -15
- data/lib/datadog/tracing/contrib/active_record/utils.rb +1 -1
- data/lib/datadog/tracing/contrib/active_support/cache/instrumentation.rb +106 -202
- data/lib/datadog/tracing/contrib/active_support/cache/patcher.rb +3 -0
- data/lib/datadog/tracing/contrib/active_support/configuration/settings.rb +9 -7
- data/lib/datadog/tracing/contrib/active_support/ext.rb +18 -16
- data/lib/datadog/tracing/contrib/aws/configuration/settings.rb +14 -7
- data/lib/datadog/tracing/contrib/aws/ext.rb +37 -24
- data/lib/datadog/tracing/contrib/aws/instrumentation.rb +16 -5
- data/lib/datadog/tracing/contrib/concurrent_ruby/configuration/settings.rb +3 -2
- data/lib/datadog/tracing/contrib/concurrent_ruby/context_composite_executor_service.rb +14 -14
- data/lib/datadog/tracing/contrib/concurrent_ruby/ext.rb +4 -2
- data/lib/datadog/tracing/contrib/concurrent_ruby/future_patch.rb +3 -10
- data/lib/datadog/tracing/contrib/concurrent_ruby/integration.rb +2 -1
- data/lib/datadog/tracing/contrib/concurrent_ruby/patcher.rb +8 -1
- data/lib/datadog/tracing/contrib/concurrent_ruby/promises_future_patch.rb +22 -0
- data/lib/datadog/tracing/contrib/configuration/settings.rb +1 -1
- data/lib/datadog/tracing/contrib/dalli/configuration/settings.rb +20 -7
- data/lib/datadog/tracing/contrib/dalli/ext.rb +26 -11
- data/lib/datadog/tracing/contrib/dalli/instrumentation.rb +17 -8
- data/lib/datadog/tracing/contrib/delayed_job/configuration/settings.rb +13 -7
- data/lib/datadog/tracing/contrib/delayed_job/ext.rb +16 -14
- data/lib/datadog/tracing/contrib/elasticsearch/configuration/settings.rb +14 -7
- data/lib/datadog/tracing/contrib/elasticsearch/ext.rb +21 -15
- data/lib/datadog/tracing/contrib/elasticsearch/patcher.rb +104 -99
- data/lib/datadog/tracing/contrib/ethon/configuration/settings.rb +16 -9
- data/lib/datadog/tracing/contrib/ethon/easy_patch.rb +48 -3
- data/lib/datadog/tracing/contrib/ethon/ext.rb +19 -11
- data/lib/datadog/tracing/contrib/ethon/multi_patch.rb +6 -3
- data/lib/datadog/tracing/contrib/excon/configuration/settings.rb +19 -10
- data/lib/datadog/tracing/contrib/excon/ext.rb +16 -8
- data/lib/datadog/tracing/contrib/excon/middleware.rb +25 -5
- data/lib/datadog/tracing/contrib/ext.rb +26 -1
- data/lib/datadog/tracing/contrib/extensions.rb +32 -0
- data/lib/datadog/tracing/contrib/faraday/configuration/settings.rb +20 -10
- data/lib/datadog/tracing/contrib/faraday/ext.rb +16 -8
- data/lib/datadog/tracing/contrib/faraday/middleware.rb +21 -5
- data/lib/datadog/tracing/contrib/grape/configuration/settings.rb +8 -6
- data/lib/datadog/tracing/contrib/grape/ext.rb +16 -14
- data/lib/datadog/tracing/contrib/graphql/configuration/settings.rb +8 -6
- data/lib/datadog/tracing/contrib/graphql/ext.rb +7 -5
- data/lib/datadog/tracing/contrib/grpc/configuration/settings.rb +39 -9
- data/lib/datadog/tracing/contrib/grpc/datadog_interceptor/client.rb +39 -20
- data/lib/datadog/tracing/contrib/grpc/datadog_interceptor/server.rb +37 -18
- data/lib/datadog/tracing/contrib/grpc/datadog_interceptor.rb +0 -4
- data/lib/datadog/tracing/contrib/grpc/ext.rb +16 -13
- data/lib/datadog/tracing/contrib/grpc/formatting.rb +127 -0
- data/lib/datadog/tracing/contrib/hanami/configuration/settings.rb +3 -2
- data/lib/datadog/tracing/contrib/hanami/ext.rb +10 -8
- data/lib/datadog/tracing/contrib/http/circuit_breaker.rb +5 -8
- data/lib/datadog/tracing/contrib/http/configuration/settings.rb +33 -11
- data/lib/datadog/tracing/contrib/http/ext.rb +16 -9
- data/lib/datadog/tracing/contrib/http/instrumentation.rb +27 -7
- data/lib/datadog/tracing/contrib/httpclient/configuration/settings.rb +33 -11
- data/lib/datadog/tracing/contrib/httpclient/ext.rb +17 -9
- data/lib/datadog/tracing/contrib/httpclient/instrumentation.rb +22 -5
- data/lib/datadog/tracing/contrib/httprb/configuration/settings.rb +33 -11
- data/lib/datadog/tracing/contrib/httprb/ext.rb +16 -9
- data/lib/datadog/tracing/contrib/httprb/instrumentation.rb +22 -5
- data/lib/datadog/tracing/contrib/kafka/configuration/settings.rb +9 -6
- data/lib/datadog/tracing/contrib/kafka/ext.rb +42 -39
- data/lib/datadog/tracing/contrib/lograge/configuration/settings.rb +3 -2
- data/lib/datadog/tracing/contrib/lograge/ext.rb +3 -1
- data/lib/datadog/tracing/contrib/lograge/instrumentation.rb +2 -17
- data/lib/datadog/tracing/contrib/mongodb/configuration/settings.rb +14 -7
- data/lib/datadog/tracing/contrib/mongodb/ext.rb +20 -16
- data/lib/datadog/tracing/contrib/mongodb/subscribers.rb +16 -5
- data/lib/datadog/tracing/contrib/mysql2/configuration/settings.rb +17 -14
- data/lib/datadog/tracing/contrib/mysql2/ext.rb +15 -10
- data/lib/datadog/tracing/contrib/mysql2/instrumentation.rb +20 -6
- data/lib/datadog/tracing/contrib/opensearch/configuration/settings.rb +52 -0
- data/lib/datadog/tracing/contrib/opensearch/ext.rb +37 -0
- data/lib/datadog/tracing/contrib/opensearch/integration.rb +44 -0
- data/lib/datadog/tracing/contrib/opensearch/patcher.rb +135 -0
- data/lib/datadog/tracing/contrib/opensearch/quantize.rb +81 -0
- data/lib/datadog/tracing/contrib/pg/configuration/settings.rb +22 -14
- data/lib/datadog/tracing/contrib/pg/ext.rb +22 -19
- data/lib/datadog/tracing/contrib/pg/instrumentation.rb +38 -5
- data/lib/datadog/tracing/contrib/presto/configuration/settings.rb +14 -7
- data/lib/datadog/tracing/contrib/presto/ext.rb +25 -20
- data/lib/datadog/tracing/contrib/presto/instrumentation.rb +14 -5
- data/lib/datadog/tracing/contrib/propagation/sql_comment/ext.rb +12 -10
- data/lib/datadog/tracing/contrib/propagation/sql_comment.rb +1 -1
- data/lib/datadog/tracing/contrib/qless/configuration/settings.rb +12 -8
- data/lib/datadog/tracing/contrib/qless/ext.rb +14 -12
- data/lib/datadog/tracing/contrib/que/configuration/settings.rb +21 -12
- data/lib/datadog/tracing/contrib/racecar/configuration/settings.rb +9 -7
- data/lib/datadog/tracing/contrib/racecar/event.rb +5 -5
- data/lib/datadog/tracing/contrib/racecar/ext.rb +20 -18
- data/lib/datadog/tracing/contrib/rack/configuration/settings.rb +16 -12
- data/lib/datadog/tracing/contrib/rack/ext.rb +18 -16
- data/lib/datadog/tracing/contrib/rack/header_collection.rb +3 -0
- data/lib/datadog/tracing/contrib/rack/header_tagging.rb +63 -0
- data/lib/datadog/tracing/contrib/rack/middlewares.rb +8 -49
- data/lib/datadog/tracing/contrib/rails/configuration/settings.rb +19 -15
- data/lib/datadog/tracing/contrib/rails/ext.rb +7 -5
- data/lib/datadog/tracing/contrib/rails/log_injection.rb +7 -10
- data/lib/datadog/tracing/contrib/rails/patcher.rb +10 -41
- data/lib/datadog/tracing/contrib/rails/railtie.rb +3 -3
- data/lib/datadog/tracing/contrib/rake/configuration/settings.rb +13 -10
- data/lib/datadog/tracing/contrib/rake/ext.rb +14 -12
- data/lib/datadog/tracing/contrib/redis/configuration/settings.rb +17 -9
- data/lib/datadog/tracing/contrib/redis/ext.rb +22 -15
- data/lib/datadog/tracing/contrib/redis/instrumentation.rb +3 -38
- data/lib/datadog/tracing/contrib/redis/tags.rb +16 -7
- data/lib/datadog/tracing/contrib/redis/trace_middleware.rb +46 -33
- data/lib/datadog/tracing/contrib/resque/configuration/settings.rb +13 -7
- data/lib/datadog/tracing/contrib/resque/ext.rb +9 -7
- data/lib/datadog/tracing/contrib/rest_client/configuration/settings.rb +16 -9
- data/lib/datadog/tracing/contrib/rest_client/ext.rb +15 -8
- data/lib/datadog/tracing/contrib/rest_client/request_patch.rb +25 -5
- data/lib/datadog/tracing/contrib/roda/configuration/settings.rb +9 -6
- data/lib/datadog/tracing/contrib/semantic_logger/configuration/settings.rb +3 -2
- data/lib/datadog/tracing/contrib/semantic_logger/ext.rb +3 -1
- data/lib/datadog/tracing/contrib/semantic_logger/instrumentation.rb +4 -20
- data/lib/datadog/tracing/contrib/sequel/configuration/settings.rb +9 -6
- data/lib/datadog/tracing/contrib/sequel/ext.rb +10 -8
- data/lib/datadog/tracing/contrib/sequel/utils.rb +7 -7
- data/lib/datadog/tracing/contrib/shoryuken/configuration/settings.rb +14 -8
- data/lib/datadog/tracing/contrib/shoryuken/ext.rb +14 -12
- data/lib/datadog/tracing/contrib/sidekiq/configuration/settings.rb +18 -11
- data/lib/datadog/tracing/contrib/sidekiq/ext.rb +32 -30
- data/lib/datadog/tracing/contrib/sinatra/configuration/settings.rb +11 -9
- data/lib/datadog/tracing/contrib/sinatra/env.rb +0 -17
- data/lib/datadog/tracing/contrib/sinatra/ext.rb +21 -19
- data/lib/datadog/tracing/contrib/sinatra/tracer_middleware.rb +3 -14
- data/lib/datadog/tracing/contrib/sneakers/configuration/settings.rb +14 -8
- data/lib/datadog/tracing/contrib/sneakers/ext.rb +1 -0
- data/lib/datadog/tracing/contrib/sneakers/tracer.rb +1 -1
- data/lib/datadog/tracing/contrib/span_attribute_schema.rb +74 -10
- data/lib/datadog/tracing/contrib/stripe/configuration/settings.rb +9 -6
- data/lib/datadog/tracing/contrib/sucker_punch/configuration/settings.rb +9 -6
- data/lib/datadog/tracing/contrib/sucker_punch/ext.rb +15 -13
- data/lib/datadog/tracing/contrib/utils/database.rb +5 -3
- data/lib/datadog/tracing/contrib/utils/quantization/http.rb +11 -11
- data/lib/datadog/tracing/contrib.rb +1 -0
- data/lib/datadog/tracing/correlation.rb +29 -12
- data/lib/datadog/tracing/diagnostics/environment_logger.rb +165 -0
- data/lib/datadog/tracing/diagnostics/ext.rb +21 -19
- data/lib/datadog/tracing/distributed/b3_multi.rb +2 -2
- data/lib/datadog/tracing/distributed/b3_single.rb +1 -1
- data/lib/datadog/tracing/distributed/datadog.rb +0 -1
- data/lib/datadog/tracing/distributed/propagation.rb +35 -34
- data/lib/datadog/tracing/distributed/trace_context.rb +52 -17
- data/lib/datadog/tracing/metadata/ext.rb +9 -6
- data/lib/datadog/tracing/metadata/tagging.rb +3 -3
- data/lib/datadog/tracing/remote.rb +78 -0
- data/lib/datadog/tracing/sampling/rule_sampler.rb +29 -0
- data/lib/datadog/tracing/span_operation.rb +3 -15
- data/lib/datadog/tracing/sync_writer.rb +3 -3
- data/lib/datadog/tracing/trace_digest.rb +31 -0
- data/lib/datadog/tracing/trace_operation.rb +16 -3
- data/lib/datadog/tracing/trace_segment.rb +5 -2
- data/lib/datadog/tracing/tracer.rb +12 -1
- data/lib/datadog/{core → tracing}/transport/http/api/instance.rb +1 -1
- data/lib/datadog/{core → tracing}/transport/http/api/spec.rb +1 -1
- data/lib/datadog/tracing/transport/http/api.rb +43 -0
- data/lib/datadog/{core → tracing}/transport/http/builder.rb +13 -68
- data/lib/datadog/tracing/transport/http/client.rb +57 -0
- data/lib/datadog/tracing/transport/http/statistics.rb +47 -0
- data/lib/datadog/tracing/transport/http/traces.rb +152 -0
- data/lib/datadog/tracing/transport/http.rb +124 -0
- data/lib/datadog/tracing/transport/io/client.rb +89 -0
- data/lib/datadog/tracing/transport/io/response.rb +27 -0
- data/lib/datadog/tracing/transport/io/traces.rb +101 -0
- data/lib/datadog/tracing/transport/io.rb +30 -0
- data/lib/datadog/tracing/transport/serializable_trace.rb +126 -0
- data/lib/datadog/tracing/transport/statistics.rb +77 -0
- data/lib/datadog/tracing/transport/trace_formatter.rb +209 -0
- data/lib/datadog/tracing/transport/traces.rb +224 -0
- data/lib/datadog/tracing/workers/trace_writer.rb +6 -4
- data/lib/datadog/tracing/workers.rb +4 -2
- data/lib/datadog/tracing/writer.rb +5 -2
- data/lib/ddtrace/transport/ext.rb +22 -14
- data/lib/ddtrace/version.rb +9 -12
- data/lib/ddtrace.rb +1 -1
- metadata +101 -93
- data/lib/datadog/ci/configuration/components.rb +0 -32
- data/lib/datadog/ci/configuration/settings.rb +0 -53
- data/lib/datadog/ci/contrib/cucumber/configuration/settings.rb +0 -33
- data/lib/datadog/ci/contrib/cucumber/ext.rb +0 -20
- data/lib/datadog/ci/contrib/cucumber/formatter.rb +0 -94
- data/lib/datadog/ci/contrib/cucumber/instrumentation.rb +0 -28
- data/lib/datadog/ci/contrib/cucumber/integration.rb +0 -47
- data/lib/datadog/ci/contrib/cucumber/patcher.rb +0 -27
- data/lib/datadog/ci/contrib/rspec/configuration/settings.rb +0 -33
- data/lib/datadog/ci/contrib/rspec/example.rb +0 -68
- data/lib/datadog/ci/contrib/rspec/ext.rb +0 -19
- data/lib/datadog/ci/contrib/rspec/integration.rb +0 -48
- data/lib/datadog/ci/contrib/rspec/patcher.rb +0 -27
- data/lib/datadog/ci/ext/app_types.rb +0 -9
- data/lib/datadog/ci/ext/environment.rb +0 -575
- data/lib/datadog/ci/ext/settings.rb +0 -10
- data/lib/datadog/ci/ext/test.rb +0 -35
- data/lib/datadog/ci/extensions.rb +0 -19
- data/lib/datadog/ci/flush.rb +0 -38
- data/lib/datadog/ci/test.rb +0 -81
- data/lib/datadog/ci.rb +0 -20
- data/lib/datadog/core/configuration/dependency_resolver.rb +0 -28
- data/lib/datadog/core/configuration/option_definition_set.rb +0 -22
- data/lib/datadog/core/configuration/option_set.rb +0 -10
- data/lib/datadog/core/transport/config.rb +0 -58
- data/lib/datadog/core/transport/http/api.rb +0 -57
- data/lib/datadog/core/transport/http/client.rb +0 -45
- data/lib/datadog/core/transport/http/config.rb +0 -268
- data/lib/datadog/core/transport/http/negotiation.rb +0 -144
- data/lib/datadog/core/transport/http.rb +0 -169
- data/lib/datadog/core/utils/object_set.rb +0 -43
- data/lib/datadog/core/utils/string_table.rb +0 -47
- data/lib/datadog/profiling/backtrace_location.rb +0 -34
- data/lib/datadog/profiling/buffer.rb +0 -43
- data/lib/datadog/profiling/collectors/old_stack.rb +0 -301
- data/lib/datadog/profiling/encoding/profile.rb +0 -41
- data/lib/datadog/profiling/event.rb +0 -15
- data/lib/datadog/profiling/events/stack.rb +0 -82
- data/lib/datadog/profiling/old_recorder.rb +0 -107
- data/lib/datadog/profiling/pprof/builder.rb +0 -125
- data/lib/datadog/profiling/pprof/converter.rb +0 -102
- data/lib/datadog/profiling/pprof/message_set.rb +0 -16
- data/lib/datadog/profiling/pprof/payload.rb +0 -20
- data/lib/datadog/profiling/pprof/pprof.proto +0 -212
- data/lib/datadog/profiling/pprof/pprof_pb.rb +0 -81
- data/lib/datadog/profiling/pprof/stack_sample.rb +0 -139
- data/lib/datadog/profiling/pprof/string_table.rb +0 -12
- data/lib/datadog/profiling/pprof/template.rb +0 -118
- data/lib/datadog/profiling/trace_identifiers/ddtrace.rb +0 -43
- data/lib/datadog/profiling/trace_identifiers/helper.rb +0 -45
- data/lib/datadog/tracing/contrib/sinatra/headers.rb +0 -35
- data/lib/ddtrace/transport/http/adapters/net.rb +0 -168
- data/lib/ddtrace/transport/http/adapters/registry.rb +0 -27
- data/lib/ddtrace/transport/http/adapters/test.rb +0 -85
- data/lib/ddtrace/transport/http/adapters/unix_socket.rb +0 -77
- data/lib/ddtrace/transport/http/api/endpoint.rb +0 -29
- data/lib/ddtrace/transport/http/api/fallbacks.rb +0 -24
- data/lib/ddtrace/transport/http/api/instance.rb +0 -35
- data/lib/ddtrace/transport/http/api/map.rb +0 -16
- data/lib/ddtrace/transport/http/api/spec.rb +0 -17
- data/lib/ddtrace/transport/http/api.rb +0 -39
- data/lib/ddtrace/transport/http/builder.rb +0 -176
- data/lib/ddtrace/transport/http/client.rb +0 -52
- data/lib/ddtrace/transport/http/env.rb +0 -58
- data/lib/ddtrace/transport/http/response.rb +0 -58
- data/lib/ddtrace/transport/http/statistics.rb +0 -43
- data/lib/ddtrace/transport/http/traces.rb +0 -144
- data/lib/ddtrace/transport/http.rb +0 -117
- data/lib/ddtrace/transport/io/client.rb +0 -85
- data/lib/ddtrace/transport/io/response.rb +0 -25
- data/lib/ddtrace/transport/io/traces.rb +0 -99
- data/lib/ddtrace/transport/io.rb +0 -28
- data/lib/ddtrace/transport/parcel.rb +0 -20
- data/lib/ddtrace/transport/request.rb +0 -15
- data/lib/ddtrace/transport/response.rb +0 -60
- data/lib/ddtrace/transport/serializable_trace.rb +0 -122
- data/lib/ddtrace/transport/statistics.rb +0 -75
- data/lib/ddtrace/transport/trace_formatter.rb +0 -198
- data/lib/ddtrace/transport/traces.rb +0 -216
|
@@ -1,4 +1,6 @@
|
|
|
1
1
|
require_relative '../../tracing/configuration/ext'
|
|
2
|
+
require_relative '../../core/environment/variable_helpers'
|
|
3
|
+
require_relative 'http'
|
|
2
4
|
|
|
3
5
|
module Datadog
|
|
4
6
|
module Tracing
|
|
@@ -26,8 +28,8 @@ module Datadog
|
|
|
26
28
|
# @default `DD_TRACE_ANALYTICS_ENABLED` environment variable, otherwise `nil`
|
|
27
29
|
# @return [Boolean,nil]
|
|
28
30
|
option :enabled do |o|
|
|
29
|
-
o.
|
|
30
|
-
o.
|
|
31
|
+
o.type :bool, nilable: true
|
|
32
|
+
o.env Tracing::Configuration::Ext::Analytics::ENV_TRACE_ANALYTICS_ENABLED
|
|
31
33
|
end
|
|
32
34
|
end
|
|
33
35
|
|
|
@@ -51,24 +53,20 @@ module Datadog
|
|
|
51
53
|
# otherwise `['Datadog','b3multi','b3']`.
|
|
52
54
|
# @return [Array<String>]
|
|
53
55
|
option :propagation_extract_style do |o|
|
|
54
|
-
o.
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
)
|
|
69
|
-
end
|
|
70
|
-
|
|
71
|
-
o.on_set do |styles|
|
|
56
|
+
o.type :array
|
|
57
|
+
o.deprecated_env Tracing::Configuration::Ext::Distributed::ENV_PROPAGATION_STYLE_EXTRACT_OLD
|
|
58
|
+
o.env Tracing::Configuration::Ext::Distributed::ENV_PROPAGATION_STYLE_EXTRACT
|
|
59
|
+
# DEV-2.0: Change default value to `tracecontext, Datadog`.
|
|
60
|
+
# Look for all headers by default
|
|
61
|
+
o.default(
|
|
62
|
+
[
|
|
63
|
+
Tracing::Configuration::Ext::Distributed::PROPAGATION_STYLE_DATADOG,
|
|
64
|
+
Tracing::Configuration::Ext::Distributed::PROPAGATION_STYLE_B3_MULTI_HEADER,
|
|
65
|
+
Tracing::Configuration::Ext::Distributed::PROPAGATION_STYLE_B3_SINGLE_HEADER,
|
|
66
|
+
Tracing::Configuration::Ext::Distributed::PROPAGATION_STYLE_TRACE_CONTEXT,
|
|
67
|
+
]
|
|
68
|
+
)
|
|
69
|
+
o.after_set do |styles|
|
|
72
70
|
# Modernize B3 options
|
|
73
71
|
# DEV-2.0: Can be removed with the removal of deprecated B3 constants.
|
|
74
72
|
styles.map! do |style|
|
|
@@ -82,8 +80,6 @@ module Datadog
|
|
|
82
80
|
end
|
|
83
81
|
end
|
|
84
82
|
end
|
|
85
|
-
|
|
86
|
-
o.lazy
|
|
87
83
|
end
|
|
88
84
|
|
|
89
85
|
# The data propagation styles the tracer will use to inject distributed tracing propagation
|
|
@@ -94,19 +90,15 @@ module Datadog
|
|
|
94
90
|
# @default `DD_TRACE_PROPAGATION_STYLE_INJECT` environment variable (comma-separated list), otherwise `['Datadog']`.
|
|
95
91
|
# @return [Array<String>]
|
|
96
92
|
option :propagation_inject_style do |o|
|
|
97
|
-
o.
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
)
|
|
107
|
-
end
|
|
108
|
-
|
|
109
|
-
o.on_set do |styles|
|
|
93
|
+
o.type :array
|
|
94
|
+
o.deprecated_env Tracing::Configuration::Ext::Distributed::ENV_PROPAGATION_STYLE_INJECT_OLD
|
|
95
|
+
o.env Tracing::Configuration::Ext::Distributed::ENV_PROPAGATION_STYLE_INJECT
|
|
96
|
+
# DEV-2.0: Change default value to `tracecontext, Datadog`.
|
|
97
|
+
o.default [
|
|
98
|
+
Tracing::Configuration::Ext::Distributed::PROPAGATION_STYLE_DATADOG,
|
|
99
|
+
Tracing::Configuration::Ext::Distributed::PROPAGATION_STYLE_TRACE_CONTEXT,
|
|
100
|
+
]
|
|
101
|
+
o.after_set do |styles|
|
|
110
102
|
# Modernize B3 options
|
|
111
103
|
# DEV-2.0: Can be removed with the removal of deprecated B3 constants.
|
|
112
104
|
styles.map! do |style|
|
|
@@ -120,8 +112,6 @@ module Datadog
|
|
|
120
112
|
end
|
|
121
113
|
end
|
|
122
114
|
end
|
|
123
|
-
|
|
124
|
-
o.lazy
|
|
125
115
|
end
|
|
126
116
|
|
|
127
117
|
# An ordered list of what data propagation styles the tracer will use to extract distributed tracing propagation
|
|
@@ -133,12 +123,11 @@ module Datadog
|
|
|
133
123
|
# @default `DD_TRACE_PROPAGATION_STYLE` environment variable (comma-separated list).
|
|
134
124
|
# @return [Array<String>]
|
|
135
125
|
option :propagation_style do |o|
|
|
136
|
-
o.
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
next unless styles
|
|
126
|
+
o.type :array
|
|
127
|
+
o.env Configuration::Ext::Distributed::ENV_PROPAGATION_STYLE
|
|
128
|
+
o.default []
|
|
129
|
+
o.after_set do |styles|
|
|
130
|
+
next if styles.empty?
|
|
142
131
|
|
|
143
132
|
# Modernize B3 options
|
|
144
133
|
# DEV-2.0: Can be removed with the removal of deprecated B3 constants.
|
|
@@ -156,8 +145,17 @@ module Datadog
|
|
|
156
145
|
set_option(:propagation_extract_style, styles)
|
|
157
146
|
set_option(:propagation_inject_style, styles)
|
|
158
147
|
end
|
|
148
|
+
end
|
|
159
149
|
|
|
160
|
-
|
|
150
|
+
# Strictly stop at the first successfully serialized style.
|
|
151
|
+
# This prevents the tracer from enriching the extracted context with information from
|
|
152
|
+
# other valid propagations styles present in the request.
|
|
153
|
+
# @default `DD_TRACE_PROPAGATION_EXTRACT_FIRST` environment variable, otherwise `false`.
|
|
154
|
+
# @return [Boolean]
|
|
155
|
+
option :propagation_extract_first do |o|
|
|
156
|
+
o.env Tracing::Configuration::Ext::Distributed::EXTRACT_FIRST
|
|
157
|
+
o.default false
|
|
158
|
+
o.type :bool
|
|
161
159
|
end
|
|
162
160
|
end
|
|
163
161
|
|
|
@@ -169,17 +167,37 @@ module Datadog
|
|
|
169
167
|
# @default `DD_TRACE_ENABLED` environment variable, otherwise `true`
|
|
170
168
|
# @return [Boolean]
|
|
171
169
|
option :enabled do |o|
|
|
172
|
-
o.
|
|
173
|
-
o.
|
|
170
|
+
o.env Tracing::Configuration::Ext::ENV_ENABLED
|
|
171
|
+
o.default true
|
|
172
|
+
o.type :bool
|
|
173
|
+
end
|
|
174
|
+
|
|
175
|
+
# Comma-separated, case-insensitive list of header names that are reported in incoming and outgoing HTTP requests.
|
|
176
|
+
#
|
|
177
|
+
# Each header in the list can either be:
|
|
178
|
+
# * A header name, which is mapped to the respective tags `http.request.headers.<header name>` and `http.response.headers.<header name>`.
|
|
179
|
+
# * A key value pair, "header name:tag name", which is mapped to the span tag `tag name`.
|
|
180
|
+
#
|
|
181
|
+
# You can mix the two types of header declaration in the same list.
|
|
182
|
+
# Tag names will be normalized based on the [Datadog tag normalization rules](https://docs.datadoghq.com/getting_started/tagging/#defining-tags).
|
|
183
|
+
#
|
|
184
|
+
# @default `DD_TRACE_HEADER_TAGS` environment variable, otherwise an empty set of tags
|
|
185
|
+
# @return [Array<String>]
|
|
186
|
+
option :header_tags do |o|
|
|
187
|
+
o.env Configuration::Ext::ENV_HEADER_TAGS
|
|
188
|
+
o.type :array
|
|
189
|
+
o.default []
|
|
190
|
+
o.setter { |header_tags, _| Configuration::HTTP::HeaderTags.new(header_tags) }
|
|
174
191
|
end
|
|
175
192
|
|
|
176
193
|
# Enable 128 bit trace id generation.
|
|
177
194
|
#
|
|
178
|
-
# @default `DD_TRACE_128_BIT_TRACEID_GENERATION_ENABLED` environment variable, otherwise `
|
|
195
|
+
# @default `DD_TRACE_128_BIT_TRACEID_GENERATION_ENABLED` environment variable, otherwise `true`
|
|
179
196
|
# @return [Boolean]
|
|
180
197
|
option :trace_id_128_bit_generation_enabled do |o|
|
|
181
|
-
o.
|
|
182
|
-
o.
|
|
198
|
+
o.env Tracing::Configuration::Ext::ENV_TRACE_ID_128_BIT_GENERATION_ENABLED
|
|
199
|
+
o.default true
|
|
200
|
+
o.type :bool
|
|
183
201
|
end
|
|
184
202
|
|
|
185
203
|
# Enable 128 bit trace id injected for logging.
|
|
@@ -189,8 +207,9 @@ module Datadog
|
|
|
189
207
|
#
|
|
190
208
|
# It is not supported by our backend yet. Do not enable it.
|
|
191
209
|
option :trace_id_128_bit_logging_enabled do |o|
|
|
192
|
-
o.
|
|
193
|
-
o.
|
|
210
|
+
o.env Tracing::Configuration::Ext::Correlation::ENV_TRACE_ID_128_BIT_LOGGING_ENABLED
|
|
211
|
+
o.default false
|
|
212
|
+
o.type :bool
|
|
194
213
|
end
|
|
195
214
|
|
|
196
215
|
# A custom tracer instance.
|
|
@@ -211,8 +230,9 @@ module Datadog
|
|
|
211
230
|
# @see https://docs.datadoghq.com/tracing/setup_overview/setup/ruby/#trace-correlation
|
|
212
231
|
# @return [Boolean]
|
|
213
232
|
option :log_injection do |o|
|
|
214
|
-
o.
|
|
215
|
-
o.
|
|
233
|
+
o.env Tracing::Configuration::Ext::Correlation::ENV_LOGS_INJECTION_ENABLED
|
|
234
|
+
o.default true
|
|
235
|
+
o.type :bool
|
|
216
236
|
end
|
|
217
237
|
|
|
218
238
|
# Configures an alternative trace transport behavior, where
|
|
@@ -229,7 +249,7 @@ module Datadog
|
|
|
229
249
|
#
|
|
230
250
|
# @default `false`
|
|
231
251
|
# @return [Boolean]
|
|
232
|
-
option :enabled, default: false
|
|
252
|
+
option :enabled, default: false, type: :bool
|
|
233
253
|
|
|
234
254
|
# Minimum number of finished spans required in a single unfinished trace before
|
|
235
255
|
# the tracer will consider that trace for partial flushing.
|
|
@@ -242,7 +262,7 @@ module Datadog
|
|
|
242
262
|
#
|
|
243
263
|
# @default 500
|
|
244
264
|
# @return [Integer]
|
|
245
|
-
option :min_spans_threshold, default: 500
|
|
265
|
+
option :min_spans_threshold, default: 500, type: :int
|
|
246
266
|
end
|
|
247
267
|
|
|
248
268
|
# Enables {https://docs.datadoghq.com/tracing/trace_retention_and_ingestion/#datadog-intelligent-retention-filter
|
|
@@ -252,8 +272,9 @@ module Datadog
|
|
|
252
272
|
option :priority_sampling
|
|
253
273
|
|
|
254
274
|
option :report_hostname do |o|
|
|
255
|
-
o.
|
|
256
|
-
o.
|
|
275
|
+
o.env Tracing::Configuration::Ext::NET::ENV_REPORT_HOSTNAME
|
|
276
|
+
o.default false
|
|
277
|
+
o.type :bool
|
|
257
278
|
end
|
|
258
279
|
|
|
259
280
|
# A custom sampler instance.
|
|
@@ -273,10 +294,10 @@ module Datadog
|
|
|
273
294
|
# for resources not seen recently).
|
|
274
295
|
#
|
|
275
296
|
# @default `DD_TRACE_SAMPLE_RATE` environment variable, otherwise `nil`.
|
|
276
|
-
# @return [Float,nil]
|
|
297
|
+
# @return [Float, nil]
|
|
277
298
|
option :default_rate do |o|
|
|
278
|
-
o.
|
|
279
|
-
o.
|
|
299
|
+
o.type :float, nilable: true
|
|
300
|
+
o.env Tracing::Configuration::Ext::Sampling::ENV_SAMPLE_RATE
|
|
280
301
|
end
|
|
281
302
|
|
|
282
303
|
# Rate limit for number of spans per second.
|
|
@@ -287,8 +308,25 @@ module Datadog
|
|
|
287
308
|
# @default `DD_TRACE_RATE_LIMIT` environment variable, otherwise 100.
|
|
288
309
|
# @return [Numeric,nil]
|
|
289
310
|
option :rate_limit do |o|
|
|
290
|
-
o.
|
|
291
|
-
o.
|
|
311
|
+
o.type :int, nilable: true
|
|
312
|
+
o.env Tracing::Configuration::Ext::Sampling::ENV_RATE_LIMIT
|
|
313
|
+
o.default 100
|
|
314
|
+
end
|
|
315
|
+
|
|
316
|
+
# Trace sampling rules.
|
|
317
|
+
# These rules control whether a trace is kept or dropped by the tracer.
|
|
318
|
+
#
|
|
319
|
+
# The `rules` format is a String with a JSON array of objects:
|
|
320
|
+
# Each object must have a `sample_rate`, and the `name` and `service` fields
|
|
321
|
+
# are optional. The `sample_rate` value must be between 0.0 and 1.0 (inclusive).
|
|
322
|
+
# `name` and `service` are Strings that allow the `sample_rate` to be applied only
|
|
323
|
+
# to traces matching the `name` and `service`.
|
|
324
|
+
#
|
|
325
|
+
# @default `DD_TRACE_SAMPLING_RULES` environment variable. Otherwise `nil`.
|
|
326
|
+
# @return [String,nil]
|
|
327
|
+
# @public_api
|
|
328
|
+
option :rules do |o|
|
|
329
|
+
o.default { ENV.fetch(Configuration::Ext::Sampling::ENV_RULES, nil) }
|
|
292
330
|
end
|
|
293
331
|
|
|
294
332
|
# Single span sampling rules.
|
|
@@ -303,6 +341,7 @@ module Datadog
|
|
|
303
341
|
# @return [String,nil]
|
|
304
342
|
# @public_api
|
|
305
343
|
option :span_rules do |o|
|
|
344
|
+
o.type :string, nilable: true
|
|
306
345
|
o.default do
|
|
307
346
|
rules = ENV[Tracing::Configuration::Ext::Sampling::Span::ENV_SPAN_SAMPLING_RULES]
|
|
308
347
|
rules_file = ENV[Tracing::Configuration::Ext::Sampling::Span::ENV_SPAN_SAMPLING_RULES_FILE]
|
|
@@ -330,7 +369,6 @@ module Datadog
|
|
|
330
369
|
end
|
|
331
370
|
end
|
|
332
371
|
end
|
|
333
|
-
o.lazy
|
|
334
372
|
end
|
|
335
373
|
end
|
|
336
374
|
|
|
@@ -344,30 +382,36 @@ module Datadog
|
|
|
344
382
|
# @default `DD_TRACE_TEST_MODE_ENABLED` environment variable, otherwise `false`
|
|
345
383
|
# @return [Boolean]
|
|
346
384
|
option :enabled do |o|
|
|
347
|
-
o.
|
|
348
|
-
o.
|
|
385
|
+
o.type :bool
|
|
386
|
+
o.default false
|
|
387
|
+
o.env Tracing::Configuration::Ext::Test::ENV_MODE_ENABLED
|
|
349
388
|
end
|
|
350
389
|
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
o.
|
|
390
|
+
# Use async writer in test mode
|
|
391
|
+
option :async do |o|
|
|
392
|
+
o.type :bool
|
|
393
|
+
o.default false
|
|
354
394
|
end
|
|
355
395
|
|
|
396
|
+
option :trace_flush
|
|
397
|
+
|
|
356
398
|
option :writer_options do |o|
|
|
357
|
-
o.
|
|
358
|
-
o.
|
|
399
|
+
o.type :hash
|
|
400
|
+
o.default({})
|
|
359
401
|
end
|
|
360
402
|
end
|
|
361
403
|
|
|
362
404
|
# @see file:docs/GettingStarted.md#configuring-the-transport-layer Configuring the transport layer
|
|
363
405
|
#
|
|
364
406
|
# A {Proc} that configures a custom tracer transport.
|
|
365
|
-
# @yield Receives a {Datadog::Transport::HTTP} that can be modified with custom adapters and settings.
|
|
366
|
-
# @yieldparam [Datadog::Transport::HTTP] t transport to be configured.
|
|
407
|
+
# @yield Receives a {Datadog::Tracing::Transport::HTTP} that can be modified with custom adapters and settings.
|
|
408
|
+
# @yieldparam [Datadog::Tracing::Transport::HTTP] t transport to be configured.
|
|
367
409
|
# @default `nil`
|
|
368
410
|
# @return [Proc,nil]
|
|
369
|
-
option :transport_options
|
|
370
|
-
|
|
411
|
+
option :transport_options do |o|
|
|
412
|
+
o.type :proc, nilable: true
|
|
413
|
+
o.default nil
|
|
414
|
+
end
|
|
371
415
|
# A custom writer instance.
|
|
372
416
|
# The object must respect the {Datadog::Tracing::Writer} interface.
|
|
373
417
|
#
|
|
@@ -382,8 +426,11 @@ module Datadog
|
|
|
382
426
|
# This option is recommended for internal use only.
|
|
383
427
|
#
|
|
384
428
|
# @default `{}`
|
|
385
|
-
# @return [Hash
|
|
386
|
-
option :writer_options
|
|
429
|
+
# @return [Hash]
|
|
430
|
+
option :writer_options do |o|
|
|
431
|
+
o.type :hash
|
|
432
|
+
o.default({})
|
|
433
|
+
end
|
|
387
434
|
|
|
388
435
|
# Client IP configuration
|
|
389
436
|
# @public_api
|
|
@@ -398,21 +445,23 @@ module Datadog
|
|
|
398
445
|
# @default `DD_TRACE_CLIENT_IP_ENABLED` environment variable, otherwise `false`.
|
|
399
446
|
# @return [Boolean]
|
|
400
447
|
option :enabled do |o|
|
|
448
|
+
o.type :bool
|
|
401
449
|
o.default do
|
|
402
|
-
disabled = env_to_bool(Tracing::Configuration::Ext::ClientIp::ENV_DISABLED)
|
|
450
|
+
disabled = Core::Environment::VariableHelpers.env_to_bool(Tracing::Configuration::Ext::ClientIp::ENV_DISABLED)
|
|
403
451
|
|
|
404
452
|
enabled = if disabled.nil?
|
|
405
453
|
false
|
|
406
454
|
else
|
|
407
|
-
Datadog.
|
|
455
|
+
Datadog::Core.log_deprecation do
|
|
456
|
+
"#{Tracing::Configuration::Ext::ClientIp::ENV_DISABLED} environment variable is deprecated, use #{Tracing::Configuration::Ext::ClientIp::ENV_ENABLED} instead."
|
|
457
|
+
end
|
|
408
458
|
|
|
409
459
|
!disabled
|
|
410
460
|
end
|
|
411
461
|
|
|
412
462
|
# ENABLED env var takes precedence over deprecated DISABLED
|
|
413
|
-
env_to_bool(Tracing::Configuration::Ext::ClientIp::ENV_ENABLED, enabled)
|
|
463
|
+
Core::Environment::VariableHelpers.env_to_bool(Tracing::Configuration::Ext::ClientIp::ENV_ENABLED, enabled)
|
|
414
464
|
end
|
|
415
|
-
o.lazy
|
|
416
465
|
end
|
|
417
466
|
|
|
418
467
|
# An optional name of a custom header to resolve the client IP from.
|
|
@@ -420,8 +469,8 @@ module Datadog
|
|
|
420
469
|
# @default `DD_TRACE_CLIENT_IP_HEADER` environment variable, otherwise `nil`.
|
|
421
470
|
# @return [String,nil]
|
|
422
471
|
option :header_name do |o|
|
|
423
|
-
o.
|
|
424
|
-
o.
|
|
472
|
+
o.type :string, nilable: true
|
|
473
|
+
o.env Tracing::Configuration::Ext::ClientIp::ENV_HEADER_NAME
|
|
425
474
|
end
|
|
426
475
|
end
|
|
427
476
|
|
|
@@ -434,22 +483,9 @@ module Datadog
|
|
|
434
483
|
# @default `DD_TRACE_X_DATADOG_TAGS_MAX_LENGTH` environment variable, otherwise `512`
|
|
435
484
|
# @return [Integer]
|
|
436
485
|
option :x_datadog_tags_max_length do |o|
|
|
437
|
-
o.
|
|
438
|
-
o.
|
|
439
|
-
|
|
440
|
-
|
|
441
|
-
# Schema version for span attributes that enables various features
|
|
442
|
-
#
|
|
443
|
-
# @default `DD_TRACE_SPAN_ATTRIBUTE_SCHEMA` environment variable, otherwise default `v0` currently
|
|
444
|
-
# @return [String]
|
|
445
|
-
option :span_attribute_schema do |o|
|
|
446
|
-
o.default do
|
|
447
|
-
ENV.fetch(
|
|
448
|
-
Tracing::Configuration::Ext::SpanAttributeSchema::ENV_SPAN_ATTRIBUTE_SCHEMA,
|
|
449
|
-
Tracing::Configuration::Ext::SpanAttributeSchema::DEFAULT_VERSION
|
|
450
|
-
)
|
|
451
|
-
end
|
|
452
|
-
o.lazy
|
|
486
|
+
o.type :int
|
|
487
|
+
o.env Tracing::Configuration::Ext::Distributed::ENV_X_DATADOG_TAGS_MAX_LENGTH
|
|
488
|
+
o.default 512
|
|
453
489
|
end
|
|
454
490
|
end
|
|
455
491
|
end
|
|
@@ -12,18 +12,21 @@ module Datadog
|
|
|
12
12
|
# @public_api
|
|
13
13
|
class Settings < Contrib::Configuration::Settings
|
|
14
14
|
option :enabled do |o|
|
|
15
|
-
o.
|
|
16
|
-
o.
|
|
15
|
+
o.type :bool
|
|
16
|
+
o.env Ext::ENV_ENABLED
|
|
17
|
+
o.default true
|
|
17
18
|
end
|
|
18
19
|
|
|
19
20
|
option :analytics_enabled do |o|
|
|
20
|
-
o.
|
|
21
|
-
o.
|
|
21
|
+
o.type :bool
|
|
22
|
+
o.env Ext::ENV_ANALYTICS_ENABLED
|
|
23
|
+
o.default false
|
|
22
24
|
end
|
|
23
25
|
|
|
24
26
|
option :analytics_sample_rate do |o|
|
|
25
|
-
o.
|
|
26
|
-
o.
|
|
27
|
+
o.type :float
|
|
28
|
+
o.env Ext::ENV_ANALYTICS_SAMPLE_RATE
|
|
29
|
+
o.default 1.0
|
|
27
30
|
end
|
|
28
31
|
|
|
29
32
|
option :service_name
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
1
3
|
module Datadog
|
|
2
4
|
module Tracing
|
|
3
5
|
module Contrib
|
|
@@ -5,24 +7,24 @@ module Datadog
|
|
|
5
7
|
# ActionCable integration constants
|
|
6
8
|
# @public_api Changing resource names, tag names, or environment variables creates breaking changes.
|
|
7
9
|
module Ext
|
|
8
|
-
ENV_ENABLED = 'DD_TRACE_ACTION_CABLE_ENABLED'
|
|
9
|
-
ENV_ANALYTICS_ENABLED = 'DD_TRACE_ACTION_CABLE_ANALYTICS_ENABLED'
|
|
10
|
-
ENV_ANALYTICS_SAMPLE_RATE = 'DD_TRACE_ACTION_CABLE_ANALYTICS_SAMPLE_RATE'
|
|
11
|
-
SPAN_ACTION = 'action_cable.action'
|
|
12
|
-
SPAN_BROADCAST = 'action_cable.broadcast'
|
|
13
|
-
SPAN_ON_OPEN = 'action_cable.on_open'
|
|
14
|
-
SPAN_TRANSMIT = 'action_cable.transmit'
|
|
15
|
-
TAG_ACTION = 'action_cable.action'
|
|
16
|
-
TAG_BROADCAST_CODER = 'action_cable.broadcast.coder'
|
|
17
|
-
TAG_CHANNEL = 'action_cable.channel'
|
|
18
|
-
TAG_CHANNEL_CLASS = 'action_cable.channel_class'
|
|
19
|
-
TAG_COMPONENT = 'action_cable'
|
|
20
|
-
TAG_CONNECTION = 'action_cable.connection'
|
|
21
|
-
TAG_OPERATION_ACTION = 'action'
|
|
22
|
-
TAG_OPERATION_BROADCAST = 'broadcast'
|
|
23
|
-
TAG_OPERATION_ON_OPEN = 'on_open'
|
|
24
|
-
TAG_OPERATION_TRANSMIT = 'transmit'
|
|
25
|
-
TAG_TRANSMIT_VIA = 'action_cable.transmit.via'
|
|
10
|
+
ENV_ENABLED = 'DD_TRACE_ACTION_CABLE_ENABLED'
|
|
11
|
+
ENV_ANALYTICS_ENABLED = 'DD_TRACE_ACTION_CABLE_ANALYTICS_ENABLED'
|
|
12
|
+
ENV_ANALYTICS_SAMPLE_RATE = 'DD_TRACE_ACTION_CABLE_ANALYTICS_SAMPLE_RATE'
|
|
13
|
+
SPAN_ACTION = 'action_cable.action'
|
|
14
|
+
SPAN_BROADCAST = 'action_cable.broadcast'
|
|
15
|
+
SPAN_ON_OPEN = 'action_cable.on_open'
|
|
16
|
+
SPAN_TRANSMIT = 'action_cable.transmit'
|
|
17
|
+
TAG_ACTION = 'action_cable.action'
|
|
18
|
+
TAG_BROADCAST_CODER = 'action_cable.broadcast.coder'
|
|
19
|
+
TAG_CHANNEL = 'action_cable.channel'
|
|
20
|
+
TAG_CHANNEL_CLASS = 'action_cable.channel_class'
|
|
21
|
+
TAG_COMPONENT = 'action_cable'
|
|
22
|
+
TAG_CONNECTION = 'action_cable.connection'
|
|
23
|
+
TAG_OPERATION_ACTION = 'action'
|
|
24
|
+
TAG_OPERATION_BROADCAST = 'broadcast'
|
|
25
|
+
TAG_OPERATION_ON_OPEN = 'on_open'
|
|
26
|
+
TAG_OPERATION_TRANSMIT = 'transmit'
|
|
27
|
+
TAG_TRANSMIT_VIA = 'action_cable.transmit.via'
|
|
26
28
|
end
|
|
27
29
|
end
|
|
28
30
|
end
|
|
@@ -12,18 +12,21 @@ module Datadog
|
|
|
12
12
|
# @public_api
|
|
13
13
|
class Settings < Contrib::Configuration::Settings
|
|
14
14
|
option :enabled do |o|
|
|
15
|
-
o.
|
|
16
|
-
o.
|
|
15
|
+
o.type :bool
|
|
16
|
+
o.env Ext::ENV_ENABLED
|
|
17
|
+
o.default true
|
|
17
18
|
end
|
|
18
19
|
|
|
19
20
|
option :analytics_enabled do |o|
|
|
20
|
-
o.
|
|
21
|
-
o.
|
|
21
|
+
o.type :bool
|
|
22
|
+
o.env Ext::ENV_ANALYTICS_ENABLED
|
|
23
|
+
o.default false
|
|
22
24
|
end
|
|
23
25
|
|
|
24
26
|
option :analytics_sample_rate do |o|
|
|
25
|
-
o.
|
|
26
|
-
o.
|
|
27
|
+
o.type :float
|
|
28
|
+
o.env Ext::ENV_ANALYTICS_SAMPLE_RATE
|
|
29
|
+
o.default 1.0
|
|
27
30
|
end
|
|
28
31
|
|
|
29
32
|
option :service_name
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
1
3
|
module Datadog
|
|
2
4
|
module Tracing
|
|
3
5
|
module Contrib
|
|
@@ -5,25 +7,25 @@ module Datadog
|
|
|
5
7
|
# ActionMailer integration constants
|
|
6
8
|
# @public_api Changing resource names, tag names, or environment variables creates breaking changes.
|
|
7
9
|
module Ext
|
|
8
|
-
ENV_ENABLED = 'DD_TRACE_ACTION_MAILER_ENABLED'
|
|
9
|
-
ENV_ANALYTICS_ENABLED = 'DD_TRACE_ACTION_MAILER_ANALYTICS_ENABLED'
|
|
10
|
-
ENV_ANALYTICS_SAMPLE_RATE = 'DD_TRACE_ACTION_MAILER_ANALYTICS_SAMPLE_RATE'
|
|
11
|
-
SPAN_PROCESS = 'action_mailer.process'
|
|
12
|
-
SPAN_DELIVER = 'action_mailer.deliver'
|
|
13
|
-
TAG_COMPONENT = 'action_mailer'
|
|
14
|
-
TAG_ACTION = 'action_mailer.action'
|
|
15
|
-
TAG_MAILER = 'action_mailer.mailer'
|
|
16
|
-
TAG_MSG_ID = 'action_mailer.message_id'
|
|
17
|
-
TAG_OPERATION_DELIVER = 'deliver'
|
|
18
|
-
TAG_OPERATION_PROCESS = 'process'
|
|
10
|
+
ENV_ENABLED = 'DD_TRACE_ACTION_MAILER_ENABLED'
|
|
11
|
+
ENV_ANALYTICS_ENABLED = 'DD_TRACE_ACTION_MAILER_ANALYTICS_ENABLED'
|
|
12
|
+
ENV_ANALYTICS_SAMPLE_RATE = 'DD_TRACE_ACTION_MAILER_ANALYTICS_SAMPLE_RATE'
|
|
13
|
+
SPAN_PROCESS = 'action_mailer.process'
|
|
14
|
+
SPAN_DELIVER = 'action_mailer.deliver'
|
|
15
|
+
TAG_COMPONENT = 'action_mailer'
|
|
16
|
+
TAG_ACTION = 'action_mailer.action'
|
|
17
|
+
TAG_MAILER = 'action_mailer.mailer'
|
|
18
|
+
TAG_MSG_ID = 'action_mailer.message_id'
|
|
19
|
+
TAG_OPERATION_DELIVER = 'deliver'
|
|
20
|
+
TAG_OPERATION_PROCESS = 'process'
|
|
19
21
|
|
|
20
|
-
TAG_SUBJECT = 'action_mailer.subject'
|
|
21
|
-
TAG_TO = 'action_mailer.to'
|
|
22
|
-
TAG_FROM = 'action_mailer.from'
|
|
23
|
-
TAG_BCC = 'action_mailer.bcc'
|
|
24
|
-
TAG_CC = 'action_mailer.cc'
|
|
25
|
-
TAG_DATE = 'action_mailer.date'
|
|
26
|
-
TAG_PERFORM_DELIVERIES = 'action_mailer.perform_deliveries'
|
|
22
|
+
TAG_SUBJECT = 'action_mailer.subject'
|
|
23
|
+
TAG_TO = 'action_mailer.to'
|
|
24
|
+
TAG_FROM = 'action_mailer.from'
|
|
25
|
+
TAG_BCC = 'action_mailer.bcc'
|
|
26
|
+
TAG_CC = 'action_mailer.cc'
|
|
27
|
+
TAG_DATE = 'action_mailer.date'
|
|
28
|
+
TAG_PERFORM_DELIVERIES = 'action_mailer.perform_deliveries'
|
|
27
29
|
end
|
|
28
30
|
end
|
|
29
31
|
end
|
|
@@ -12,23 +12,25 @@ module Datadog
|
|
|
12
12
|
# @public_api
|
|
13
13
|
class Settings < Contrib::Configuration::Settings
|
|
14
14
|
option :enabled do |o|
|
|
15
|
-
o.
|
|
16
|
-
o.
|
|
15
|
+
o.type :bool
|
|
16
|
+
o.env Ext::ENV_ENABLED
|
|
17
|
+
o.default true
|
|
17
18
|
end
|
|
18
19
|
|
|
19
20
|
option :analytics_enabled do |o|
|
|
20
|
-
o.
|
|
21
|
-
o.
|
|
21
|
+
o.type :bool, nilable: true
|
|
22
|
+
o.env Ext::ENV_ANALYTICS_ENABLED
|
|
22
23
|
end
|
|
23
24
|
|
|
24
25
|
option :analytics_sample_rate do |o|
|
|
25
|
-
o.
|
|
26
|
-
o.
|
|
26
|
+
o.type :float
|
|
27
|
+
o.env Ext::ENV_ANALYTICS_SAMPLE_RATE
|
|
28
|
+
o.default 1.0
|
|
27
29
|
end
|
|
28
30
|
|
|
29
31
|
# DEV-2.0: Breaking changes for removal.
|
|
30
32
|
option :exception_controller do |o|
|
|
31
|
-
o.
|
|
33
|
+
o.after_set do |value|
|
|
32
34
|
if value
|
|
33
35
|
Datadog::Core.log_deprecation do
|
|
34
36
|
'The error controller is now automatically detected. '\
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
1
3
|
module Datadog
|
|
2
4
|
module Tracing
|
|
3
5
|
module Contrib
|
|
@@ -5,14 +7,14 @@ module Datadog
|
|
|
5
7
|
# ActionPack integration constants
|
|
6
8
|
# @public_api Changing resource names, tag names, or environment variables creates breaking changes.
|
|
7
9
|
module Ext
|
|
8
|
-
ENV_ENABLED = 'DD_TRACE_ACTION_PACK_ENABLED'
|
|
9
|
-
ENV_ANALYTICS_ENABLED = 'DD_TRACE_ACTION_PACK_ANALYTICS_ENABLED'
|
|
10
|
-
ENV_ANALYTICS_SAMPLE_RATE = 'DD_TRACE_ACTION_PACK_ANALYTICS_SAMPLE_RATE'
|
|
11
|
-
SPAN_ACTION_CONTROLLER = 'rails.action_controller'
|
|
12
|
-
TAG_COMPONENT = 'action_pack'
|
|
13
|
-
TAG_OPERATION_CONTROLLER = 'controller'
|
|
14
|
-
TAG_ROUTE_ACTION = 'rails.route.action'
|
|
15
|
-
TAG_ROUTE_CONTROLLER = 'rails.route.controller'
|
|
10
|
+
ENV_ENABLED = 'DD_TRACE_ACTION_PACK_ENABLED'
|
|
11
|
+
ENV_ANALYTICS_ENABLED = 'DD_TRACE_ACTION_PACK_ANALYTICS_ENABLED'
|
|
12
|
+
ENV_ANALYTICS_SAMPLE_RATE = 'DD_TRACE_ACTION_PACK_ANALYTICS_SAMPLE_RATE'
|
|
13
|
+
SPAN_ACTION_CONTROLLER = 'rails.action_controller'
|
|
14
|
+
TAG_COMPONENT = 'action_pack'
|
|
15
|
+
TAG_OPERATION_CONTROLLER = 'controller'
|
|
16
|
+
TAG_ROUTE_ACTION = 'rails.route.action'
|
|
17
|
+
TAG_ROUTE_CONTROLLER = 'rails.route.controller'
|
|
16
18
|
end
|
|
17
19
|
end
|
|
18
20
|
end
|