ddtrace 1.12.1 → 1.23.2
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 +613 -9
- data/LICENSE-3rdparty.csv +1 -1
- data/bin/ddprofrb +15 -0
- data/bin/ddtracerb +3 -1
- data/ext/{ddtrace_profiling_loader/ddtrace_profiling_loader.c → datadog_profiling_loader/datadog_profiling_loader.c} +2 -2
- data/ext/{ddtrace_profiling_loader → datadog_profiling_loader}/extconf.rb +3 -3
- data/ext/{ddtrace_profiling_native_extension → datadog_profiling_native_extension}/NativeExtensionDesign.md +3 -5
- data/ext/{ddtrace_profiling_native_extension → datadog_profiling_native_extension}/clock_id.h +0 -3
- data/ext/{ddtrace_profiling_native_extension → datadog_profiling_native_extension}/clock_id_from_pthread.c +3 -22
- data/ext/{ddtrace_profiling_native_extension → datadog_profiling_native_extension}/clock_id_noop.c +0 -1
- data/ext/{ddtrace_profiling_native_extension → datadog_profiling_native_extension}/collectors_cpu_and_wall_time_worker.c +338 -108
- data/ext/datadog_profiling_native_extension/collectors_discrete_dynamic_sampler.c +422 -0
- data/ext/datadog_profiling_native_extension/collectors_discrete_dynamic_sampler.h +101 -0
- data/ext/{ddtrace_profiling_native_extension → datadog_profiling_native_extension}/collectors_dynamic_sampling_rate.c +22 -14
- data/ext/{ddtrace_profiling_native_extension → datadog_profiling_native_extension}/collectors_dynamic_sampling_rate.h +4 -0
- data/ext/datadog_profiling_native_extension/collectors_gc_profiling_helper.c +156 -0
- data/ext/datadog_profiling_native_extension/collectors_gc_profiling_helper.h +5 -0
- data/ext/{ddtrace_profiling_native_extension → datadog_profiling_native_extension}/collectors_idle_sampling_helper.c +3 -0
- data/ext/{ddtrace_profiling_native_extension → datadog_profiling_native_extension}/collectors_stack.c +111 -118
- data/ext/{ddtrace_profiling_native_extension → datadog_profiling_native_extension}/collectors_stack.h +11 -4
- data/ext/{ddtrace_profiling_native_extension → datadog_profiling_native_extension}/collectors_thread_context.c +545 -144
- data/ext/{ddtrace_profiling_native_extension → datadog_profiling_native_extension}/collectors_thread_context.h +3 -2
- data/ext/{ddtrace_profiling_native_extension → datadog_profiling_native_extension}/extconf.rb +68 -17
- data/ext/datadog_profiling_native_extension/heap_recorder.c +1047 -0
- data/ext/datadog_profiling_native_extension/heap_recorder.h +166 -0
- data/ext/{ddtrace_profiling_native_extension → datadog_profiling_native_extension}/helpers.h +6 -0
- data/ext/{ddtrace_profiling_native_extension → datadog_profiling_native_extension}/http_transport.c +60 -32
- data/ext/datadog_profiling_native_extension/libdatadog_helpers.c +62 -0
- data/ext/datadog_profiling_native_extension/libdatadog_helpers.h +42 -0
- data/ext/{ddtrace_profiling_native_extension → datadog_profiling_native_extension}/native_extension_helpers.rb +50 -4
- data/ext/{ddtrace_profiling_native_extension → datadog_profiling_native_extension}/private_vm_api_access.c +155 -32
- data/ext/{ddtrace_profiling_native_extension → datadog_profiling_native_extension}/private_vm_api_access.h +16 -0
- data/ext/{ddtrace_profiling_native_extension → datadog_profiling_native_extension}/profiling.c +19 -3
- data/ext/datadog_profiling_native_extension/ruby_helpers.c +267 -0
- data/ext/{ddtrace_profiling_native_extension → datadog_profiling_native_extension}/ruby_helpers.h +33 -0
- data/ext/datadog_profiling_native_extension/stack_recorder.c +1040 -0
- data/ext/datadog_profiling_native_extension/stack_recorder.h +27 -0
- data/ext/datadog_profiling_native_extension/time_helpers.c +53 -0
- data/ext/datadog_profiling_native_extension/time_helpers.h +26 -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 +57 -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 +77 -27
- 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/auto_instrument.rb +3 -0
- 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 +20 -7
- data/lib/datadog/core/configuration/ext.rb +28 -5
- data/lib/datadog/core/configuration/option.rb +271 -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 +398 -119
- data/lib/datadog/core/configuration.rb +24 -4
- data/lib/datadog/core/diagnostics/environment_logger.rb +132 -235
- data/lib/datadog/core/environment/class_count.rb +6 -6
- data/lib/datadog/core/environment/execution.rb +103 -0
- data/lib/datadog/core/environment/ext.rb +13 -11
- data/lib/datadog/core/environment/git.rb +25 -0
- data/lib/datadog/core/environment/identity.rb +18 -48
- data/lib/datadog/core/environment/platform.rb +7 -1
- 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 +6 -23
- 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 +7 -2
- data/lib/datadog/core/remote/client.rb +3 -0
- data/lib/datadog/core/remote/component.rb +52 -48
- 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 +2 -1
- data/lib/datadog/core/remote/negotiation.rb +20 -7
- data/lib/datadog/core/remote/tie/tracing.rb +39 -0
- data/lib/datadog/core/remote/tie.rb +27 -0
- 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 +11 -5
- 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 +28 -10
- data/lib/datadog/core/telemetry/emitter.rb +9 -11
- data/lib/datadog/core/telemetry/event.rb +250 -44
- data/lib/datadog/core/telemetry/ext.rb +8 -1
- data/lib/datadog/core/telemetry/heartbeat.rb +3 -7
- data/lib/datadog/core/telemetry/http/ext.rb +13 -8
- data/lib/datadog/core/telemetry/http/response.rb +4 -0
- data/lib/datadog/core/telemetry/http/transport.rb +10 -3
- data/lib/datadog/core/telemetry/request.rb +59 -0
- data/lib/datadog/core/transport/ext.rb +49 -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/url.rb +25 -0
- 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 +5 -3
- 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 +4 -0
- data/lib/datadog/opentracer/text_map_propagator.rb +2 -1
- data/lib/datadog/opentracer.rb +9 -0
- data/lib/datadog/profiling/collectors/code_provenance.rb +10 -4
- data/lib/datadog/profiling/collectors/cpu_and_wall_time_worker.rb +43 -20
- data/lib/datadog/profiling/collectors/idle_sampling_helper.rb +3 -1
- data/lib/datadog/profiling/collectors/info.rb +101 -0
- data/lib/datadog/profiling/collectors/thread_context.rb +17 -2
- data/lib/datadog/profiling/component.rb +248 -97
- data/lib/datadog/profiling/exporter.rb +26 -5
- data/lib/datadog/profiling/ext.rb +2 -12
- data/lib/datadog/profiling/flush.rb +10 -5
- data/lib/datadog/profiling/http_transport.rb +23 -6
- data/lib/datadog/profiling/load_native_extension.rb +25 -6
- data/lib/datadog/profiling/native_extension.rb +1 -22
- data/lib/datadog/profiling/profiler.rb +36 -13
- data/lib/datadog/profiling/scheduler.rb +20 -15
- data/lib/datadog/profiling/stack_recorder.rb +19 -4
- data/lib/datadog/profiling/tag_builder.rb +5 -0
- data/lib/datadog/profiling/tasks/exec.rb +3 -3
- data/lib/datadog/profiling/tasks/help.rb +3 -3
- data/lib/datadog/profiling.rb +28 -79
- 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 -33
- data/lib/datadog/tracing/configuration/http.rb +74 -0
- data/lib/datadog/tracing/configuration/settings.rb +136 -99
- data/lib/datadog/tracing/contrib/action_cable/configuration/settings.rb +10 -6
- data/lib/datadog/tracing/contrib/action_cable/ext.rb +21 -18
- data/lib/datadog/tracing/contrib/action_mailer/configuration/settings.rb +10 -6
- data/lib/datadog/tracing/contrib/action_mailer/events/deliver.rb +1 -1
- data/lib/datadog/tracing/contrib/action_mailer/ext.rb +21 -18
- data/lib/datadog/tracing/contrib/action_pack/configuration/settings.rb +10 -7
- data/lib/datadog/tracing/contrib/action_pack/ext.rb +11 -8
- data/lib/datadog/tracing/contrib/action_view/configuration/settings.rb +10 -6
- data/lib/datadog/tracing/contrib/action_view/ext.rb +13 -10
- data/lib/datadog/tracing/contrib/active_job/configuration/settings.rb +14 -7
- data/lib/datadog/tracing/contrib/active_job/ext.rb +26 -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 +10 -6
- data/lib/datadog/tracing/contrib/active_model_serializers/ext.rb +13 -10
- data/lib/datadog/tracing/contrib/active_record/configuration/resolver.rb +29 -15
- data/lib/datadog/tracing/contrib/active_record/configuration/settings.rb +10 -7
- data/lib/datadog/tracing/contrib/active_record/events/sql.rb +2 -6
- data/lib/datadog/tracing/contrib/active_record/ext.rb +18 -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 +10 -7
- data/lib/datadog/tracing/contrib/active_support/ext.rb +19 -16
- data/lib/datadog/tracing/contrib/analytics.rb +0 -1
- data/lib/datadog/tracing/contrib/aws/configuration/settings.rb +15 -7
- data/lib/datadog/tracing/contrib/aws/ext.rb +38 -24
- data/lib/datadog/tracing/contrib/aws/instrumentation.rb +16 -5
- data/lib/datadog/tracing/contrib/concurrent_ruby/async_patch.rb +20 -0
- 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 +19 -2
- data/lib/datadog/tracing/contrib/concurrent_ruby/promises_future_patch.rb +22 -0
- data/lib/datadog/tracing/contrib/configurable.rb +1 -1
- data/lib/datadog/tracing/contrib/configuration/settings.rb +1 -1
- data/lib/datadog/tracing/contrib/dalli/configuration/settings.rb +21 -7
- data/lib/datadog/tracing/contrib/dalli/ext.rb +27 -11
- data/lib/datadog/tracing/contrib/dalli/instrumentation.rb +17 -8
- data/lib/datadog/tracing/contrib/delayed_job/configuration/settings.rb +14 -7
- data/lib/datadog/tracing/contrib/delayed_job/ext.rb +17 -14
- data/lib/datadog/tracing/contrib/elasticsearch/configuration/settings.rb +15 -7
- data/lib/datadog/tracing/contrib/elasticsearch/ext.rb +22 -15
- data/lib/datadog/tracing/contrib/elasticsearch/patcher.rb +104 -99
- data/lib/datadog/tracing/contrib/ethon/configuration/settings.rb +17 -9
- data/lib/datadog/tracing/contrib/ethon/easy_patch.rb +48 -3
- data/lib/datadog/tracing/contrib/ethon/ext.rb +20 -11
- data/lib/datadog/tracing/contrib/ethon/multi_patch.rb +6 -3
- data/lib/datadog/tracing/contrib/excon/configuration/settings.rb +20 -10
- data/lib/datadog/tracing/contrib/excon/ext.rb +17 -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 +38 -2
- data/lib/datadog/tracing/contrib/faraday/configuration/settings.rb +27 -10
- data/lib/datadog/tracing/contrib/faraday/ext.rb +17 -8
- data/lib/datadog/tracing/contrib/faraday/middleware.rb +22 -6
- data/lib/datadog/tracing/contrib/grape/configuration/settings.rb +9 -6
- data/lib/datadog/tracing/contrib/grape/ext.rb +17 -14
- data/lib/datadog/tracing/contrib/graphql/configuration/settings.rb +9 -6
- data/lib/datadog/tracing/contrib/graphql/ext.rb +8 -5
- data/lib/datadog/tracing/contrib/grpc/configuration/settings.rb +40 -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 +17 -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 +34 -11
- data/lib/datadog/tracing/contrib/http/distributed/fetcher.rb +2 -2
- data/lib/datadog/tracing/contrib/http/ext.rb +17 -9
- data/lib/datadog/tracing/contrib/http/instrumentation.rb +27 -7
- data/lib/datadog/tracing/contrib/httpclient/configuration/settings.rb +34 -11
- data/lib/datadog/tracing/contrib/httpclient/ext.rb +18 -9
- data/lib/datadog/tracing/contrib/httpclient/instrumentation.rb +22 -5
- data/lib/datadog/tracing/contrib/httprb/configuration/settings.rb +34 -11
- data/lib/datadog/tracing/contrib/httprb/ext.rb +17 -9
- data/lib/datadog/tracing/contrib/httprb/instrumentation.rb +22 -5
- data/lib/datadog/tracing/contrib/kafka/configuration/settings.rb +10 -6
- data/lib/datadog/tracing/contrib/kafka/ext.rb +43 -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 +15 -7
- data/lib/datadog/tracing/contrib/mongodb/ext.rb +21 -16
- data/lib/datadog/tracing/contrib/mongodb/subscribers.rb +16 -5
- data/lib/datadog/tracing/contrib/mysql2/configuration/settings.rb +22 -14
- data/lib/datadog/tracing/contrib/mysql2/ext.rb +16 -10
- data/lib/datadog/tracing/contrib/mysql2/instrumentation.rb +22 -7
- data/lib/datadog/tracing/contrib/opensearch/configuration/settings.rb +53 -0
- data/lib/datadog/tracing/contrib/opensearch/ext.rb +38 -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 +23 -14
- data/lib/datadog/tracing/contrib/pg/ext.rb +23 -19
- data/lib/datadog/tracing/contrib/pg/instrumentation.rb +49 -9
- data/lib/datadog/tracing/contrib/presto/configuration/settings.rb +15 -7
- data/lib/datadog/tracing/contrib/presto/ext.rb +26 -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 +13 -8
- data/lib/datadog/tracing/contrib/qless/ext.rb +15 -12
- data/lib/datadog/tracing/contrib/que/configuration/settings.rb +22 -12
- data/lib/datadog/tracing/contrib/que/ext.rb +1 -0
- data/lib/datadog/tracing/contrib/racecar/configuration/settings.rb +10 -7
- data/lib/datadog/tracing/contrib/racecar/event.rb +5 -5
- data/lib/datadog/tracing/contrib/racecar/ext.rb +21 -18
- data/lib/datadog/tracing/contrib/rack/configuration/settings.rb +17 -12
- data/lib/datadog/tracing/contrib/rack/ext.rb +19 -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 +16 -50
- data/lib/datadog/tracing/contrib/rails/auto_instrument_railtie.rb +0 -2
- data/lib/datadog/tracing/contrib/rails/configuration/settings.rb +20 -15
- data/lib/datadog/tracing/contrib/rails/ext.rb +8 -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 +14 -10
- data/lib/datadog/tracing/contrib/rake/ext.rb +15 -12
- data/lib/datadog/tracing/contrib/redis/configuration/settings.rb +18 -9
- data/lib/datadog/tracing/contrib/redis/ext.rb +23 -15
- data/lib/datadog/tracing/contrib/redis/instrumentation.rb +5 -40
- data/lib/datadog/tracing/contrib/redis/patcher.rb +34 -21
- 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 +14 -7
- data/lib/datadog/tracing/contrib/resque/ext.rb +10 -7
- data/lib/datadog/tracing/contrib/rest_client/configuration/settings.rb +17 -9
- data/lib/datadog/tracing/contrib/rest_client/ext.rb +16 -8
- data/lib/datadog/tracing/contrib/rest_client/request_patch.rb +25 -5
- data/lib/datadog/tracing/contrib/roda/configuration/settings.rb +10 -6
- data/lib/datadog/tracing/contrib/roda/ext.rb +1 -0
- 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 +10 -6
- data/lib/datadog/tracing/contrib/sequel/ext.rb +11 -8
- data/lib/datadog/tracing/contrib/sequel/utils.rb +7 -7
- data/lib/datadog/tracing/contrib/shoryuken/configuration/settings.rb +15 -8
- data/lib/datadog/tracing/contrib/shoryuken/ext.rb +15 -12
- data/lib/datadog/tracing/contrib/sidekiq/configuration/settings.rb +19 -11
- data/lib/datadog/tracing/contrib/sidekiq/ext.rb +33 -30
- data/lib/datadog/tracing/contrib/sinatra/configuration/settings.rb +12 -9
- data/lib/datadog/tracing/contrib/sinatra/env.rb +0 -17
- data/lib/datadog/tracing/contrib/sinatra/ext.rb +22 -19
- data/lib/datadog/tracing/contrib/sinatra/tracer_middleware.rb +3 -14
- data/lib/datadog/tracing/contrib/sneakers/configuration/settings.rb +15 -8
- data/lib/datadog/tracing/contrib/sneakers/ext.rb +2 -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 +10 -6
- data/lib/datadog/tracing/contrib/stripe/ext.rb +1 -0
- data/lib/datadog/tracing/contrib/sucker_punch/configuration/settings.rb +10 -6
- data/lib/datadog/tracing/contrib/sucker_punch/ext.rb +16 -13
- data/lib/datadog/tracing/contrib/trilogy/configuration/settings.rb +58 -0
- data/lib/datadog/tracing/contrib/trilogy/ext.rb +27 -0
- data/lib/datadog/tracing/contrib/trilogy/instrumentation.rb +94 -0
- data/lib/datadog/tracing/contrib/trilogy/integration.rb +43 -0
- data/lib/datadog/{ci/contrib/cucumber → tracing/contrib/trilogy}/patcher.rb +10 -6
- 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 +2 -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/matcher.rb +23 -3
- data/lib/datadog/tracing/sampling/rule.rb +7 -2
- data/lib/datadog/tracing/sampling/rule_sampler.rb +31 -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 +17 -5
- 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 +125 -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 +240 -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/datadog/tracing.rb +8 -2
- data/lib/ddtrace/transport/ext.rb +22 -14
- data/lib/ddtrace/version.rb +9 -12
- data/lib/ddtrace.rb +1 -1
- metadata +157 -139
- data/ext/ddtrace_profiling_native_extension/libdatadog_helpers.h +0 -25
- data/ext/ddtrace_profiling_native_extension/ruby_helpers.c +0 -110
- data/ext/ddtrace_profiling_native_extension/stack_recorder.c +0 -591
- data/ext/ddtrace_profiling_native_extension/stack_recorder.h +0 -14
- data/ext/ddtrace_profiling_native_extension/time_helpers.c +0 -17
- data/ext/ddtrace_profiling_native_extension/time_helpers.h +0 -10
- 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/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/telemetry/collector.rb +0 -231
- data/lib/datadog/core/telemetry/v1/app_event.rb +0 -52
- data/lib/datadog/core/telemetry/v1/application.rb +0 -92
- data/lib/datadog/core/telemetry/v1/configuration.rb +0 -25
- data/lib/datadog/core/telemetry/v1/dependency.rb +0 -43
- data/lib/datadog/core/telemetry/v1/host.rb +0 -59
- data/lib/datadog/core/telemetry/v1/integration.rb +0 -64
- data/lib/datadog/core/telemetry/v1/product.rb +0 -36
- data/lib/datadog/core/telemetry/v1/telemetry_request.rb +0 -106
- 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
- /data/ext/{ddtrace_profiling_native_extension → datadog_profiling_native_extension}/collectors_idle_sampling_helper.h +0 -0
- /data/ext/{ddtrace_profiling_native_extension → datadog_profiling_native_extension}/setup_signal_handler.c +0 -0
- /data/ext/{ddtrace_profiling_native_extension → datadog_profiling_native_extension}/setup_signal_handler.h +0 -0
|
@@ -2,6 +2,7 @@ require 'logger'
|
|
|
2
2
|
|
|
3
3
|
require_relative 'base'
|
|
4
4
|
require_relative 'ext'
|
|
5
|
+
require_relative '../environment/execution'
|
|
5
6
|
require_relative '../environment/ext'
|
|
6
7
|
require_relative '../runtime/ext'
|
|
7
8
|
require_relative '../telemetry/ext'
|
|
@@ -79,8 +80,8 @@ module Datadog
|
|
|
79
80
|
# @default `DD_API_KEY` environment variable, otherwise `nil`
|
|
80
81
|
# @return [String,nil]
|
|
81
82
|
option :api_key do |o|
|
|
82
|
-
o.
|
|
83
|
-
o.
|
|
83
|
+
o.type :string, nilable: true
|
|
84
|
+
o.env Core::Environment::Ext::ENV_API_KEY
|
|
84
85
|
end
|
|
85
86
|
|
|
86
87
|
# Datadog diagnostic settings.
|
|
@@ -99,15 +100,15 @@ module Datadog
|
|
|
99
100
|
# @default `DD_TRACE_DEBUG` environment variable, otherwise `false`
|
|
100
101
|
# @return [Boolean]
|
|
101
102
|
option :debug do |o|
|
|
102
|
-
o.
|
|
103
|
-
o.
|
|
104
|
-
o.
|
|
103
|
+
o.env Datadog::Core::Configuration::Ext::Diagnostics::ENV_DEBUG_ENABLED
|
|
104
|
+
o.default false
|
|
105
|
+
o.type :bool
|
|
106
|
+
o.after_set do |enabled|
|
|
105
107
|
# Enable rich debug print statements.
|
|
106
108
|
# We do not need to unnecessarily load 'pp' unless in debugging mode.
|
|
107
109
|
require 'pp' if enabled
|
|
108
110
|
end
|
|
109
111
|
end
|
|
110
|
-
|
|
111
112
|
# Internal {Datadog::Statsd} metrics collection.
|
|
112
113
|
#
|
|
113
114
|
# @public_api
|
|
@@ -117,8 +118,9 @@ module Datadog
|
|
|
117
118
|
# @default `DD_HEALTH_METRICS_ENABLED` environment variable, otherwise `false`
|
|
118
119
|
# @return [Boolean]
|
|
119
120
|
option :enabled do |o|
|
|
120
|
-
o.
|
|
121
|
-
o.
|
|
121
|
+
o.env Datadog::Core::Configuration::Ext::Diagnostics::ENV_HEALTH_METRICS_ENABLED
|
|
122
|
+
o.default false
|
|
123
|
+
o.type :bool
|
|
122
124
|
end
|
|
123
125
|
|
|
124
126
|
# {Datadog::Statsd} instance to collect health metrics.
|
|
@@ -140,11 +142,11 @@ module Datadog
|
|
|
140
142
|
# is *not* running in a development environment.
|
|
141
143
|
#
|
|
142
144
|
# @default `DD_TRACE_STARTUP_LOGS` environment variable, otherwise `nil`
|
|
143
|
-
# @return [Boolean,nil]
|
|
145
|
+
# @return [Boolean, nil]
|
|
144
146
|
option :enabled do |o|
|
|
147
|
+
o.env Datadog::Core::Configuration::Ext::Diagnostics::ENV_STARTUP_LOGS_ENABLED
|
|
145
148
|
# Defaults to nil as we want to know when the default value is being used
|
|
146
|
-
o.
|
|
147
|
-
o.lazy
|
|
149
|
+
o.type :bool, nilable: true
|
|
148
150
|
end
|
|
149
151
|
end
|
|
150
152
|
end
|
|
@@ -158,8 +160,7 @@ module Datadog
|
|
|
158
160
|
o.setter { |v| v.to_s if v }
|
|
159
161
|
|
|
160
162
|
# NOTE: env also gets set as a side effect of tags. See the WORKAROUND note in #initialize for details.
|
|
161
|
-
o.
|
|
162
|
-
o.lazy
|
|
163
|
+
o.env Core::Environment::Ext::ENV_ENVIRONMENT
|
|
163
164
|
end
|
|
164
165
|
|
|
165
166
|
# Internal `Datadog.logger` configuration.
|
|
@@ -175,7 +176,7 @@ module Datadog
|
|
|
175
176
|
#
|
|
176
177
|
# @return Logger::Severity
|
|
177
178
|
option :instance do |o|
|
|
178
|
-
o.
|
|
179
|
+
o.after_set { |value| set_option(:level, value.level) unless value.nil? }
|
|
179
180
|
end
|
|
180
181
|
|
|
181
182
|
# Log level for `Datadog.logger`.
|
|
@@ -194,8 +195,9 @@ module Datadog
|
|
|
194
195
|
# @default `DD_PROFILING_ENABLED` environment variable, otherwise `false`
|
|
195
196
|
# @return [Boolean]
|
|
196
197
|
option :enabled do |o|
|
|
197
|
-
o.
|
|
198
|
-
o.
|
|
198
|
+
o.env Profiling::Ext::ENV_ENABLED
|
|
199
|
+
o.default false
|
|
200
|
+
o.type :bool
|
|
199
201
|
end
|
|
200
202
|
|
|
201
203
|
# @public_api
|
|
@@ -203,21 +205,34 @@ module Datadog
|
|
|
203
205
|
option :transport
|
|
204
206
|
end
|
|
205
207
|
|
|
208
|
+
# Can be used to enable/disable collection of allocation profiles.
|
|
209
|
+
#
|
|
210
|
+
# This feature is disabled by default
|
|
211
|
+
#
|
|
212
|
+
# @warn Due to bugs in Ruby we only recommend enabling this feature in
|
|
213
|
+
# Ruby versions 2.x, 3.1.4+, 3.2.3+ and 3.3.0+
|
|
214
|
+
# (more details in {Datadog::Profiling::Component.enable_allocation_profiling?})
|
|
215
|
+
#
|
|
216
|
+
# @default `DD_PROFILING_ALLOCATION_ENABLED` environment variable as a boolean, otherwise `false`
|
|
217
|
+
option :allocation_enabled do |o|
|
|
218
|
+
o.type :bool
|
|
219
|
+
o.deprecated_env 'DD_PROFILING_EXPERIMENTAL_ALLOCATION_ENABLED' # TODO: Remove this for dd-trace-rb 2.0
|
|
220
|
+
o.env 'DD_PROFILING_ALLOCATION_ENABLED'
|
|
221
|
+
o.default false
|
|
222
|
+
end
|
|
223
|
+
|
|
206
224
|
# @public_api
|
|
207
225
|
settings :advanced do
|
|
208
|
-
# @deprecated
|
|
226
|
+
# @deprecated No longer does anything, and will be removed on dd-trace-rb 2.0.
|
|
209
227
|
#
|
|
210
|
-
# This
|
|
211
|
-
#
|
|
212
|
-
# per second for a 60 second period.
|
|
228
|
+
# This was used prior to the GA of the new CPU Profiling 2.0 profiler. The CPU Profiling 2.0 profiler does not
|
|
229
|
+
# use or need this setting and thus it doesn't do anything.
|
|
213
230
|
option :max_events do |o|
|
|
214
|
-
o.
|
|
215
|
-
|
|
216
|
-
if value != 32768
|
|
231
|
+
o.after_set do |_, _, precedence|
|
|
232
|
+
unless precedence == Datadog::Core::Configuration::Option::Precedence::DEFAULT
|
|
217
233
|
Datadog.logger.warn(
|
|
218
|
-
'The profiling.advanced.max_events setting has been deprecated for removal
|
|
219
|
-
'
|
|
220
|
-
'Please remove it from your Datadog.configure block.'
|
|
234
|
+
'The profiling.advanced.max_events setting has been deprecated for removal and no ' \
|
|
235
|
+
'longer does anything. Please remove it from your Datadog.configure block.'
|
|
221
236
|
)
|
|
222
237
|
end
|
|
223
238
|
end
|
|
@@ -228,8 +243,9 @@ module Datadog
|
|
|
228
243
|
#
|
|
229
244
|
# @default `DD_PROFILING_MAX_FRAMES` environment variable, otherwise 400
|
|
230
245
|
option :max_frames do |o|
|
|
231
|
-
o.
|
|
232
|
-
o.
|
|
246
|
+
o.type :int
|
|
247
|
+
o.env Profiling::Ext::ENV_MAX_FRAMES
|
|
248
|
+
o.default 400
|
|
233
249
|
end
|
|
234
250
|
|
|
235
251
|
# @public_api
|
|
@@ -241,26 +257,32 @@ module Datadog
|
|
|
241
257
|
# @default `DD_PROFILING_ENDPOINT_COLLECTION_ENABLED` environment variable, otherwise `true`
|
|
242
258
|
# @return [Boolean]
|
|
243
259
|
option :enabled do |o|
|
|
244
|
-
o.
|
|
245
|
-
o.
|
|
260
|
+
o.env Profiling::Ext::ENV_ENDPOINT_COLLECTION_ENABLED
|
|
261
|
+
o.default true
|
|
262
|
+
o.type :bool
|
|
246
263
|
end
|
|
247
264
|
end
|
|
248
265
|
end
|
|
249
266
|
|
|
250
267
|
# Can be used to disable the gathering of names and versions of gems in use by the service, used to power
|
|
251
268
|
# grouping and categorization of stack traces.
|
|
252
|
-
option :code_provenance_enabled
|
|
269
|
+
option :code_provenance_enabled do |o|
|
|
270
|
+
o.type :bool
|
|
271
|
+
o.default true
|
|
272
|
+
end
|
|
253
273
|
|
|
254
274
|
# @deprecated No longer does anything, and will be removed on dd-trace-rb 2.0.
|
|
255
275
|
#
|
|
256
276
|
# This was added as a temporary support option in case of issues with the new `Profiling::HttpTransport` class
|
|
257
277
|
# but we're now confident it's working nicely so we've removed the old code path.
|
|
258
278
|
option :legacy_transport_enabled do |o|
|
|
259
|
-
o.
|
|
260
|
-
Datadog
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
279
|
+
o.after_set do |_, _, precedence|
|
|
280
|
+
unless precedence == Datadog::Core::Configuration::Option::Precedence::DEFAULT
|
|
281
|
+
Datadog.logger.warn(
|
|
282
|
+
'The profiling.advanced.legacy_transport_enabled setting has been deprecated for removal and no ' \
|
|
283
|
+
'longer does anything. Please remove it from your Datadog.configure block.'
|
|
284
|
+
)
|
|
285
|
+
end
|
|
264
286
|
end
|
|
265
287
|
end
|
|
266
288
|
|
|
@@ -269,69 +291,150 @@ module Datadog
|
|
|
269
291
|
# This was used prior to the GA of the new CPU Profiling 2.0 profiler. Using CPU Profiling 2.0 is now the
|
|
270
292
|
# default and this doesn't do anything.
|
|
271
293
|
option :force_enable_new_profiler do |o|
|
|
272
|
-
o.
|
|
273
|
-
Datadog
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
294
|
+
o.after_set do |_, _, precedence|
|
|
295
|
+
unless precedence == Datadog::Core::Configuration::Option::Precedence::DEFAULT
|
|
296
|
+
Datadog.logger.warn(
|
|
297
|
+
'The profiling.advanced.force_enable_new_profiler setting has been deprecated for removal and no ' \
|
|
298
|
+
'longer does anything. Please remove it from your Datadog.configure block.'
|
|
299
|
+
)
|
|
300
|
+
end
|
|
277
301
|
end
|
|
278
302
|
end
|
|
279
303
|
|
|
280
|
-
# @deprecated
|
|
281
|
-
#
|
|
282
|
-
# Forces enabling the *legacy* non-CPU Profiling 2.0 profiler.
|
|
283
|
-
# Do not use unless instructed to by support.
|
|
304
|
+
# @deprecated No longer does anything, and will be removed on dd-trace-rb 2.0.
|
|
284
305
|
#
|
|
285
|
-
#
|
|
306
|
+
# This was used prior to the GA of the new CPU Profiling 2.0 profiler. Using CPU Profiling 2.0 is now the
|
|
307
|
+
# default and this doesn't do anything.
|
|
286
308
|
option :force_enable_legacy_profiler do |o|
|
|
287
|
-
o.
|
|
288
|
-
|
|
289
|
-
o.on_set do |value|
|
|
290
|
-
if value
|
|
309
|
+
o.after_set do |_, _, precedence|
|
|
310
|
+
unless precedence == Datadog::Core::Configuration::Option::Precedence::DEFAULT
|
|
291
311
|
Datadog.logger.warn(
|
|
292
|
-
'The profiling.advanced.force_enable_legacy_profiler setting has been deprecated for removal
|
|
293
|
-
'
|
|
294
|
-
'If you needed to use it due to incompatibilities with the CPU Profiling 2.0 profiler, consider ' \
|
|
295
|
-
'using the profiling.advanced.no_signals_workaround_enabled setting instead. ' \
|
|
296
|
-
'See <https://dtdg.co/ruby-profiler-troubleshooting> for details.'
|
|
312
|
+
'The profiling.advanced.force_enable_legacy_profiler setting has been deprecated for removal and no ' \
|
|
313
|
+
'longer does anything. Please remove it from your Datadog.configure block.'
|
|
297
314
|
)
|
|
298
315
|
end
|
|
299
316
|
end
|
|
300
317
|
end
|
|
301
318
|
|
|
302
|
-
#
|
|
319
|
+
# @deprecated No longer does anything, and will be removed on dd-trace-rb 2.0.
|
|
303
320
|
#
|
|
304
|
-
#
|
|
305
|
-
|
|
321
|
+
# GC profiling is now on by default and controlled by {:gc_enabled}.
|
|
322
|
+
option :force_enable_gc_profiling do |o|
|
|
323
|
+
o.after_set do |_, _, precedence|
|
|
324
|
+
unless precedence == Datadog::Core::Configuration::Option::Precedence::DEFAULT
|
|
325
|
+
Datadog.logger.warn(
|
|
326
|
+
'The profiling.advanced.force_enable_gc_profiling setting has been deprecated for removal and no ' \
|
|
327
|
+
'longer does anything (the feature is now on by default). ' \
|
|
328
|
+
'Please remove this setting from your Datadog.configure block.'
|
|
329
|
+
)
|
|
330
|
+
end
|
|
331
|
+
end
|
|
332
|
+
end
|
|
333
|
+
|
|
334
|
+
# Can be used to enable/disable garbage collection profiling.
|
|
306
335
|
#
|
|
307
|
-
#
|
|
308
|
-
#
|
|
309
|
-
#
|
|
310
|
-
# Ractors due to two Ruby VM bugs:
|
|
311
|
-
# https://bugs.ruby-lang.org/issues/19112 AND https://bugs.ruby-lang.org/issues/18464.
|
|
312
|
-
# If you use Ruby 3.x and your application does not use Ractors (or if your Ruby has been patched), the
|
|
313
|
-
# feature is fully safe to enable and this toggle can be used to do so.
|
|
336
|
+
# @warn To avoid https://bugs.ruby-lang.org/issues/18464 even when enabled, GC profiling is only started
|
|
337
|
+
# for Ruby versions 2.x, 3.1.4+, 3.2.3+ and 3.3.0+
|
|
338
|
+
# (more details in {Datadog::Profiling::Component.enable_gc_profiling?})
|
|
314
339
|
#
|
|
315
|
-
#
|
|
316
|
-
#
|
|
340
|
+
# @warn Due to a VM bug in the Ractor implementation (https://bugs.ruby-lang.org/issues/19112) this feature
|
|
341
|
+
# stops working when Ractors get garbage collected.
|
|
317
342
|
#
|
|
318
|
-
# @default `
|
|
319
|
-
option :
|
|
320
|
-
o.
|
|
321
|
-
o.
|
|
343
|
+
# @default `DD_PROFILING_GC_ENABLED` environment variable, otherwise `true`
|
|
344
|
+
option :gc_enabled do |o|
|
|
345
|
+
o.type :bool
|
|
346
|
+
o.env 'DD_PROFILING_GC_ENABLED'
|
|
347
|
+
o.default true
|
|
322
348
|
end
|
|
323
349
|
|
|
324
350
|
# Can be used to enable/disable the Datadog::Profiling.allocation_count feature.
|
|
325
351
|
#
|
|
326
|
-
#
|
|
327
|
-
|
|
328
|
-
|
|
352
|
+
# @deprecated Use {:allocation_enabled} (outside of advanced section) instead.
|
|
353
|
+
option :allocation_counting_enabled do |o|
|
|
354
|
+
o.after_set do |_, _, precedence|
|
|
355
|
+
unless precedence == Datadog::Core::Configuration::Option::Precedence::DEFAULT
|
|
356
|
+
Datadog.logger.warn(
|
|
357
|
+
'The profiling.advanced.allocation_counting_enabled setting has been deprecated for removal and no ' \
|
|
358
|
+
'longer does anything. Please remove it from your Datadog.configure block. ' \
|
|
359
|
+
'Allocation counting is now controlled by the profiling.allocation_enabled setting instead.'
|
|
360
|
+
)
|
|
361
|
+
end
|
|
362
|
+
end
|
|
363
|
+
end
|
|
364
|
+
|
|
365
|
+
# @deprecated Use {:allocation_enabled} (outside of advanced section) instead.
|
|
366
|
+
option :experimental_allocation_enabled do |o|
|
|
367
|
+
o.type :bool
|
|
368
|
+
o.default false
|
|
369
|
+
o.after_set do |_, _, precedence|
|
|
370
|
+
unless precedence == Datadog::Core::Configuration::Option::Precedence::DEFAULT
|
|
371
|
+
Datadog.logger.warn(
|
|
372
|
+
'The profiling.advanced.experimental_allocation_enabled setting has been deprecated for removal and ' \
|
|
373
|
+
'no longer does anything. Please remove it from your Datadog.configure block. ' \
|
|
374
|
+
'Allocation profiling is now controlled by the profiling.allocation_enabled setting instead.'
|
|
375
|
+
)
|
|
376
|
+
end
|
|
377
|
+
end
|
|
378
|
+
end
|
|
379
|
+
|
|
380
|
+
# Can be used to enable/disable the collection of heap profiles.
|
|
381
|
+
#
|
|
382
|
+
# This feature is alpha and disabled by default
|
|
383
|
+
#
|
|
384
|
+
# @warn To enable heap profiling you are required to also enable allocation profiling.
|
|
385
|
+
#
|
|
386
|
+
# @default `DD_PROFILING_EXPERIMENTAL_HEAP_ENABLED` environment variable as a boolean, otherwise `false`
|
|
387
|
+
option :experimental_heap_enabled do |o|
|
|
388
|
+
o.type :bool
|
|
389
|
+
o.env 'DD_PROFILING_EXPERIMENTAL_HEAP_ENABLED'
|
|
390
|
+
o.default false
|
|
391
|
+
end
|
|
392
|
+
|
|
393
|
+
# Can be used to enable/disable the collection of heap size profiles.
|
|
329
394
|
#
|
|
330
|
-
#
|
|
331
|
-
# feature is fully safe to enable and this toggle can be used to do so.
|
|
395
|
+
# This feature is alpha and enabled by default when heap profiling is enabled.
|
|
332
396
|
#
|
|
333
|
-
# @
|
|
334
|
-
|
|
397
|
+
# @warn To enable heap size profiling you are required to also enable allocation and heap profiling.
|
|
398
|
+
#
|
|
399
|
+
# @default `DD_PROFILING_EXPERIMENTAL_HEAP_SIZE_ENABLED` environment variable as a boolean, otherwise
|
|
400
|
+
# whatever the value of DD_PROFILING_EXPERIMENTAL_HEAP_ENABLED is.
|
|
401
|
+
option :experimental_heap_size_enabled do |o|
|
|
402
|
+
o.type :bool
|
|
403
|
+
o.env 'DD_PROFILING_EXPERIMENTAL_HEAP_SIZE_ENABLED'
|
|
404
|
+
o.default true # This gets ANDed with experimental_heap_enabled in the profiler component.
|
|
405
|
+
end
|
|
406
|
+
|
|
407
|
+
# Can be used to configure the allocation sampling rate: a sample will be collected every x allocations.
|
|
408
|
+
#
|
|
409
|
+
# This feature is now controlled via {:overhead_target_percentage}
|
|
410
|
+
option :experimental_allocation_sample_rate do |o|
|
|
411
|
+
o.after_set do |_, _, precedence|
|
|
412
|
+
unless precedence == Datadog::Core::Configuration::Option::Precedence::DEFAULT
|
|
413
|
+
Datadog.logger.warn(
|
|
414
|
+
'The profiling.advanced.experimental_allocation_sample_rate setting has been deprecated for removal ' \
|
|
415
|
+
'and no longer does anything. Please remove it from your Datadog.configure block. ' \
|
|
416
|
+
'Allocation sample rate is now handled by a dynamic sampler which will adjust the sampling rate to ' \
|
|
417
|
+
'keep to the configured `profiling.advanced.overhead_target_percentage`.'
|
|
418
|
+
)
|
|
419
|
+
end
|
|
420
|
+
end
|
|
421
|
+
end
|
|
422
|
+
|
|
423
|
+
# Can be used to configure the heap sampling rate: a heap sample will be collected for every x allocation
|
|
424
|
+
# samples.
|
|
425
|
+
#
|
|
426
|
+
# The lower the value, the more accuracy in heap tracking but the bigger the overhead. In particular, a
|
|
427
|
+
# value of 1 will track ALL allocations samples for heap profiles.
|
|
428
|
+
#
|
|
429
|
+
# The effective heap sampling rate in terms of allocations (not allocation samples) can be calculated via
|
|
430
|
+
# effective_heap_sample_rate = allocation_sample_rate * heap_sample_rate.
|
|
431
|
+
#
|
|
432
|
+
# @default `DD_PROFILING_EXPERIMENTAL_HEAP_SAMPLE_RATE` environment variable, otherwise `10`.
|
|
433
|
+
option :experimental_heap_sample_rate do |o|
|
|
434
|
+
o.type :int
|
|
435
|
+
o.env 'DD_PROFILING_EXPERIMENTAL_HEAP_SAMPLE_RATE'
|
|
436
|
+
o.default 10
|
|
437
|
+
end
|
|
335
438
|
|
|
336
439
|
# Can be used to disable checking which version of `libmysqlclient` is being used by the `mysql2` gem.
|
|
337
440
|
#
|
|
@@ -339,8 +442,36 @@ module Datadog
|
|
|
339
442
|
#
|
|
340
443
|
# @default `DD_PROFILING_SKIP_MYSQL2_CHECK` environment variable, otherwise `false`
|
|
341
444
|
option :skip_mysql2_check do |o|
|
|
342
|
-
o.
|
|
343
|
-
o.
|
|
445
|
+
o.type :bool
|
|
446
|
+
o.env 'DD_PROFILING_SKIP_MYSQL2_CHECK'
|
|
447
|
+
o.default false
|
|
448
|
+
end
|
|
449
|
+
|
|
450
|
+
# Enables data collection for the timeline feature. This is still experimental and not recommended yet.
|
|
451
|
+
#
|
|
452
|
+
# @default `DD_PROFILING_EXPERIMENTAL_TIMELINE_ENABLED` environment variable as a boolean, otherwise `false`
|
|
453
|
+
option :experimental_timeline_enabled do |o|
|
|
454
|
+
o.after_set do |_, _, precedence|
|
|
455
|
+
unless precedence == Datadog::Core::Configuration::Option::Precedence::DEFAULT
|
|
456
|
+
Datadog.logger.warn(
|
|
457
|
+
'The profiling.advanced.experimental_timeline_enabled setting has been deprecated for removal ' \
|
|
458
|
+
'and no longer does anything. Please remove it from your Datadog.configure block. ' \
|
|
459
|
+
'The timeline feature counting is now controlled by the `timeline_enabled` setting instead.'
|
|
460
|
+
)
|
|
461
|
+
end
|
|
462
|
+
end
|
|
463
|
+
end
|
|
464
|
+
|
|
465
|
+
# Controls data collection for the timeline feature.
|
|
466
|
+
#
|
|
467
|
+
# If you needed to disable this, please tell us why on <https://github.com/DataDog/dd-trace-rb/issues/new>,
|
|
468
|
+
# so we can fix it!
|
|
469
|
+
#
|
|
470
|
+
# @default `DD_PROFILING_TIMELINE_ENABLED` environment variable as a boolean, otherwise `true`
|
|
471
|
+
option :timeline_enabled do |o|
|
|
472
|
+
o.type :bool
|
|
473
|
+
o.env 'DD_PROFILING_TIMELINE_ENABLED'
|
|
474
|
+
o.default true
|
|
344
475
|
end
|
|
345
476
|
|
|
346
477
|
# The profiler gathers data by sending `SIGPROF` unix signals to Ruby application threads.
|
|
@@ -363,8 +494,42 @@ module Datadog
|
|
|
363
494
|
#
|
|
364
495
|
# @default `DD_PROFILING_NO_SIGNALS_WORKAROUND_ENABLED` environment variable as a boolean, otherwise `:auto`
|
|
365
496
|
option :no_signals_workaround_enabled do |o|
|
|
366
|
-
o.
|
|
367
|
-
o.
|
|
497
|
+
o.env 'DD_PROFILING_NO_SIGNALS_WORKAROUND_ENABLED'
|
|
498
|
+
o.default :auto
|
|
499
|
+
o.env_parser do |value|
|
|
500
|
+
if value
|
|
501
|
+
value = value.strip.downcase
|
|
502
|
+
['true', '1'].include?(value)
|
|
503
|
+
end
|
|
504
|
+
end
|
|
505
|
+
end
|
|
506
|
+
|
|
507
|
+
# Configures how much wall-time overhead the profiler targets. The profiler will dynamically adjust the
|
|
508
|
+
# interval between samples it takes so as to try and maintain the property that it spends no longer than
|
|
509
|
+
# this amount of wall-clock time profiling. For example, with the default value of 2%, the profiler will
|
|
510
|
+
# try and cause no more than 1.2 seconds per minute of overhead. Decreasing this value will reduce the
|
|
511
|
+
# accuracy of the data collected. Increasing will impact the application.
|
|
512
|
+
#
|
|
513
|
+
# We do not recommend tweaking this value.
|
|
514
|
+
#
|
|
515
|
+
# This value should be a percentage i.e. a number between 0 and 100, not 0 and 1.
|
|
516
|
+
#
|
|
517
|
+
# @default `DD_PROFILING_OVERHEAD_TARGET_PERCENTAGE` as a float, otherwise 2.0
|
|
518
|
+
option :overhead_target_percentage do |o|
|
|
519
|
+
o.type :float
|
|
520
|
+
o.env 'DD_PROFILING_OVERHEAD_TARGET_PERCENTAGE'
|
|
521
|
+
o.default 2.0
|
|
522
|
+
end
|
|
523
|
+
|
|
524
|
+
# Controls how often the profiler reports data, in seconds. Cannot be lower than 60 seconds.
|
|
525
|
+
#
|
|
526
|
+
# We do not recommend tweaking this value.
|
|
527
|
+
#
|
|
528
|
+
# @default `DD_PROFILING_UPLOAD_PERIOD` environment variable, otherwise 60
|
|
529
|
+
option :upload_period_seconds do |o|
|
|
530
|
+
o.type :int
|
|
531
|
+
o.env 'DD_PROFILING_UPLOAD_PERIOD'
|
|
532
|
+
o.default 60
|
|
368
533
|
end
|
|
369
534
|
end
|
|
370
535
|
|
|
@@ -374,9 +539,9 @@ module Datadog
|
|
|
374
539
|
#
|
|
375
540
|
# @default `DD_PROFILING_UPLOAD_TIMEOUT` environment variable, otherwise `30.0`
|
|
376
541
|
option :timeout_seconds do |o|
|
|
377
|
-
o.
|
|
378
|
-
o.
|
|
379
|
-
o.
|
|
542
|
+
o.type :float
|
|
543
|
+
o.env Profiling::Ext::ENV_UPLOAD_TIMEOUT
|
|
544
|
+
o.default 30.0
|
|
380
545
|
end
|
|
381
546
|
end
|
|
382
547
|
end
|
|
@@ -389,11 +554,12 @@ module Datadog
|
|
|
389
554
|
# @default `DD_RUNTIME_METRICS_ENABLED` environment variable, otherwise `false`
|
|
390
555
|
# @return [Boolean]
|
|
391
556
|
option :enabled do |o|
|
|
392
|
-
o.
|
|
393
|
-
o.
|
|
557
|
+
o.env Core::Runtime::Ext::Metrics::ENV_ENABLED
|
|
558
|
+
o.default false
|
|
559
|
+
o.type :bool
|
|
394
560
|
end
|
|
395
561
|
|
|
396
|
-
option :opts, default:
|
|
562
|
+
option :opts, default: {}, type: :hash
|
|
397
563
|
option :statsd
|
|
398
564
|
end
|
|
399
565
|
|
|
@@ -406,8 +572,8 @@ module Datadog
|
|
|
406
572
|
o.setter { |v| v.to_s if v }
|
|
407
573
|
|
|
408
574
|
# NOTE: service also gets set as a side effect of tags. See the WORKAROUND note in #initialize for details.
|
|
409
|
-
o.
|
|
410
|
-
o.
|
|
575
|
+
o.env Core::Environment::Ext::ENV_SERVICE
|
|
576
|
+
o.default Core::Environment::Ext::FALLBACK_SERVICE_NAME
|
|
411
577
|
|
|
412
578
|
# There's a few cases where we don't want to use the fallback service name, so this helper allows us to get a
|
|
413
579
|
# nil instead so that one can do
|
|
@@ -429,8 +595,8 @@ module Datadog
|
|
|
429
595
|
# @default `DD_SITE` environment variable, otherwise `nil` which sends data to `app.datadoghq.com`
|
|
430
596
|
# @return [String,nil]
|
|
431
597
|
option :site do |o|
|
|
432
|
-
o.
|
|
433
|
-
o.
|
|
598
|
+
o.type :string, nilable: true
|
|
599
|
+
o.env Core::Environment::Ext::ENV_SITE
|
|
434
600
|
end
|
|
435
601
|
|
|
436
602
|
# Default tags
|
|
@@ -440,44 +606,57 @@ module Datadog
|
|
|
440
606
|
# @default `DD_TAGS` environment variable (in the format `'tag1:value1,tag2:value2'`), otherwise `{}`
|
|
441
607
|
# @return [Hash<String,String>]
|
|
442
608
|
option :tags do |o|
|
|
443
|
-
o.
|
|
444
|
-
|
|
609
|
+
o.type :hash, nilable: true
|
|
610
|
+
o.env Core::Environment::Ext::ENV_TAGS
|
|
611
|
+
o.env_parser do |env_value|
|
|
612
|
+
values = if env_value.include?(',')
|
|
613
|
+
env_value.split(',')
|
|
614
|
+
else
|
|
615
|
+
env_value.split(' ') # rubocop:disable Style/RedundantArgument
|
|
616
|
+
end
|
|
617
|
+
|
|
618
|
+
values.map! do |v|
|
|
619
|
+
v.gsub!(/\A[\s,]*|[\s,]*\Z/, '')
|
|
620
|
+
|
|
621
|
+
v.empty? ? nil : v
|
|
622
|
+
end
|
|
445
623
|
|
|
446
|
-
|
|
447
|
-
|
|
624
|
+
values.compact!
|
|
625
|
+
values.each_with_object({}) do |tag, tags|
|
|
448
626
|
key, value = tag.split(':', 2)
|
|
449
627
|
tags[key] = value if value && !value.empty?
|
|
450
628
|
end
|
|
629
|
+
end
|
|
630
|
+
o.setter do |new_value, old_value|
|
|
631
|
+
raw_tags = new_value || {}
|
|
451
632
|
|
|
452
|
-
|
|
453
|
-
|
|
454
|
-
|
|
633
|
+
env_value = env
|
|
634
|
+
version_value = version
|
|
635
|
+
service_name = service_without_fallback
|
|
455
636
|
|
|
456
|
-
tags
|
|
457
|
-
|
|
637
|
+
# Override tags if defined
|
|
638
|
+
raw_tags[Core::Environment::Ext::TAG_ENV] = env_value unless env_value.nil?
|
|
639
|
+
raw_tags[Core::Environment::Ext::TAG_VERSION] = version_value unless version_value.nil?
|
|
458
640
|
|
|
459
|
-
o.setter do |new_value, old_value|
|
|
460
641
|
# Coerce keys to strings
|
|
461
|
-
string_tags =
|
|
642
|
+
string_tags = raw_tags.collect { |k, v| [k.to_s, v] }.to_h
|
|
462
643
|
|
|
463
644
|
# Cross-populate tag values with other settings
|
|
464
|
-
if
|
|
645
|
+
if env_value.nil? && string_tags.key?(Core::Environment::Ext::TAG_ENV)
|
|
465
646
|
self.env = string_tags[Core::Environment::Ext::TAG_ENV]
|
|
466
647
|
end
|
|
467
648
|
|
|
468
|
-
if
|
|
649
|
+
if version_value.nil? && string_tags.key?(Core::Environment::Ext::TAG_VERSION)
|
|
469
650
|
self.version = string_tags[Core::Environment::Ext::TAG_VERSION]
|
|
470
651
|
end
|
|
471
652
|
|
|
472
|
-
if
|
|
653
|
+
if service_name.nil? && string_tags.key?(Core::Environment::Ext::TAG_SERVICE)
|
|
473
654
|
self.service = string_tags[Core::Environment::Ext::TAG_SERVICE]
|
|
474
655
|
end
|
|
475
656
|
|
|
476
657
|
# Merge with previous tags
|
|
477
658
|
(old_value || {}).merge(string_tags)
|
|
478
659
|
end
|
|
479
|
-
|
|
480
|
-
o.lazy
|
|
481
660
|
end
|
|
482
661
|
|
|
483
662
|
# The time provider used by Datadog. It must respect the interface of [Time](https://ruby-doc.org/core-3.0.1/Time.html).
|
|
@@ -490,9 +669,10 @@ module Datadog
|
|
|
490
669
|
# @default `->{ Time.now }`
|
|
491
670
|
# @return [Proc<Time>]
|
|
492
671
|
option :time_now_provider do |o|
|
|
493
|
-
o.
|
|
672
|
+
o.default_proc { ::Time.now }
|
|
673
|
+
o.type :proc
|
|
494
674
|
|
|
495
|
-
o.
|
|
675
|
+
o.after_set do |time_provider|
|
|
496
676
|
Core::Utils::Time.now_provider = time_provider
|
|
497
677
|
end
|
|
498
678
|
|
|
@@ -511,21 +691,92 @@ module Datadog
|
|
|
511
691
|
# @return [String,nil]
|
|
512
692
|
option :version do |o|
|
|
513
693
|
# NOTE: version also gets set as a side effect of tags. See the WORKAROUND note in #initialize for details.
|
|
514
|
-
o.
|
|
515
|
-
o.
|
|
694
|
+
o.type :string, nilable: true
|
|
695
|
+
o.env Core::Environment::Ext::ENV_VERSION
|
|
516
696
|
end
|
|
517
697
|
|
|
518
698
|
# Client-side telemetry configuration
|
|
519
699
|
# @public_api
|
|
520
700
|
settings :telemetry do
|
|
701
|
+
# Whether the bundled Ruby gems as reported through telemetry.
|
|
702
|
+
#
|
|
703
|
+
# @default `DD_TELEMETRY_DEPENDENCY_COLLECTION_ENABLED` environment variable, otherwise `true`.
|
|
704
|
+
# @return [Boolean]
|
|
705
|
+
option :dependency_collection do |o|
|
|
706
|
+
o.type :bool
|
|
707
|
+
o.env Core::Telemetry::Ext::ENV_DEPENDENCY_COLLECTION
|
|
708
|
+
o.default true
|
|
709
|
+
end
|
|
710
|
+
|
|
521
711
|
# Enable telemetry collection. This allows telemetry events to be emitted to the telemetry API.
|
|
522
712
|
#
|
|
523
713
|
# @default `DD_INSTRUMENTATION_TELEMETRY_ENABLED` environment variable, otherwise `true`.
|
|
524
714
|
# Can be disabled as documented [here](https://docs.datadoghq.com/tracing/configure_data_security/#telemetry-collection).
|
|
715
|
+
# By default, telemetry is disabled in development environments.
|
|
525
716
|
# @return [Boolean]
|
|
526
717
|
option :enabled do |o|
|
|
527
|
-
o.
|
|
528
|
-
o.
|
|
718
|
+
o.env Core::Telemetry::Ext::ENV_ENABLED
|
|
719
|
+
o.default do
|
|
720
|
+
if Datadog::Core::Environment::Execution.development?
|
|
721
|
+
Datadog.logger.debug do
|
|
722
|
+
'Development environment detected, disabling Telemetry. ' \
|
|
723
|
+
'You can enable it with DD_INSTRUMENTATION_TELEMETRY_ENABLED=true.'
|
|
724
|
+
end
|
|
725
|
+
false
|
|
726
|
+
else
|
|
727
|
+
true
|
|
728
|
+
end
|
|
729
|
+
end
|
|
730
|
+
o.type :bool
|
|
731
|
+
end
|
|
732
|
+
|
|
733
|
+
# The interval in seconds when telemetry must be sent.
|
|
734
|
+
#
|
|
735
|
+
# This method is used internally, for testing purposes only.
|
|
736
|
+
#
|
|
737
|
+
# @default `DD_TELEMETRY_HEARTBEAT_INTERVAL` environment variable, otherwise `60`.
|
|
738
|
+
# @return [Float]
|
|
739
|
+
# @!visibility private
|
|
740
|
+
option :heartbeat_interval_seconds do |o|
|
|
741
|
+
o.type :float
|
|
742
|
+
o.env Core::Telemetry::Ext::ENV_HEARTBEAT_INTERVAL
|
|
743
|
+
o.default 60.0
|
|
744
|
+
end
|
|
745
|
+
|
|
746
|
+
# The install id of the application.
|
|
747
|
+
#
|
|
748
|
+
# This method is used internally, by library injection.
|
|
749
|
+
#
|
|
750
|
+
# @default `DD_INSTRUMENTATION_INSTALL_ID` environment variable, otherwise `nil`.
|
|
751
|
+
# @return [String,nil]
|
|
752
|
+
# @!visibility private
|
|
753
|
+
option :install_id do |o|
|
|
754
|
+
o.type :string, nilable: true
|
|
755
|
+
o.env Core::Telemetry::Ext::ENV_INSTALL_ID
|
|
756
|
+
end
|
|
757
|
+
|
|
758
|
+
# The install type of the application.
|
|
759
|
+
#
|
|
760
|
+
# This method is used internally, by library injection.
|
|
761
|
+
#
|
|
762
|
+
# @default `DD_INSTRUMENTATION_INSTALL_TYPE` environment variable, otherwise `nil`.
|
|
763
|
+
# @return [String,nil]
|
|
764
|
+
# @!visibility private
|
|
765
|
+
option :install_type do |o|
|
|
766
|
+
o.type :string, nilable: true
|
|
767
|
+
o.env Core::Telemetry::Ext::ENV_INSTALL_TYPE
|
|
768
|
+
end
|
|
769
|
+
|
|
770
|
+
# The install time of the application.
|
|
771
|
+
#
|
|
772
|
+
# This method is used internally, by library injection.
|
|
773
|
+
#
|
|
774
|
+
# @default `DD_INSTRUMENTATION_INSTALL_TIME` environment variable, otherwise `nil`.
|
|
775
|
+
# @return [String,nil]
|
|
776
|
+
# @!visibility private
|
|
777
|
+
option :install_time do |o|
|
|
778
|
+
o.type :string, nilable: true
|
|
779
|
+
o.env Core::Telemetry::Ext::ENV_INSTALL_TIME
|
|
529
780
|
end
|
|
530
781
|
end
|
|
531
782
|
|
|
@@ -535,19 +786,47 @@ module Datadog
|
|
|
535
786
|
# Enable remote configuration. This allows fetching of remote configuration for live updates.
|
|
536
787
|
#
|
|
537
788
|
# @default `DD_REMOTE_CONFIGURATION_ENABLED` environment variable, otherwise `true`.
|
|
789
|
+
# By default, remote configuration is disabled in development environments.
|
|
538
790
|
# @return [Boolean]
|
|
539
791
|
option :enabled do |o|
|
|
540
|
-
o.
|
|
541
|
-
o.
|
|
792
|
+
o.env Core::Remote::Ext::ENV_ENABLED
|
|
793
|
+
o.default do
|
|
794
|
+
if Datadog::Core::Environment::Execution.development?
|
|
795
|
+
Datadog.logger.debug do
|
|
796
|
+
'Development environment detected, disabling Remote Configuration. ' \
|
|
797
|
+
'You can enable it with DD_REMOTE_CONFIGURATION_ENABLED=true.'
|
|
798
|
+
end
|
|
799
|
+
false
|
|
800
|
+
else
|
|
801
|
+
true
|
|
802
|
+
end
|
|
803
|
+
end
|
|
804
|
+
o.type :bool
|
|
542
805
|
end
|
|
543
806
|
|
|
544
807
|
# Tune remote configuration polling interval.
|
|
808
|
+
# This is a private setting. Do not use outside of Datadog. It might change at any point in time.
|
|
545
809
|
#
|
|
546
|
-
# @default `
|
|
810
|
+
# @default `DD_REMOTE_CONFIG_POLL_INTERVAL_SECONDS` environment variable, otherwise `5.0` seconds.
|
|
547
811
|
# @return [Float]
|
|
812
|
+
# @!visibility private
|
|
548
813
|
option :poll_interval_seconds do |o|
|
|
549
|
-
o.
|
|
550
|
-
o.
|
|
814
|
+
o.env Core::Remote::Ext::ENV_POLL_INTERVAL_SECONDS
|
|
815
|
+
o.type :float
|
|
816
|
+
o.default 5.0
|
|
817
|
+
end
|
|
818
|
+
|
|
819
|
+
# Tune remote configuration boot timeout.
|
|
820
|
+
# Early operations such as requests are blocked until RC is ready. In
|
|
821
|
+
# order to not block the application indefinitely a timeout is
|
|
822
|
+
# enforced allowing requests to proceed with the local configuration.
|
|
823
|
+
#
|
|
824
|
+
# @default `DD_REMOTE_CONFIG_BOOT_TIMEOUT` environment variable, otherwise `1.0` seconds.
|
|
825
|
+
# @return [Float]
|
|
826
|
+
option :boot_timeout_seconds do |o|
|
|
827
|
+
o.env Core::Remote::Ext::ENV_BOOT_TIMEOUT_SECONDS
|
|
828
|
+
o.type :float
|
|
829
|
+
o.default 1.0
|
|
551
830
|
end
|
|
552
831
|
|
|
553
832
|
# Declare service name to bind to remote configuration. Use when
|