datadog 2.36.0 → 2.40.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 +119 -1
- data/bin/ddprofrb +4 -4
- data/ext/datadog_profiling_native_extension/clock_id_from_mach.c +5 -12
- data/ext/datadog_profiling_native_extension/collectors_cpu_and_wall_time_worker.c +105 -18
- data/ext/datadog_profiling_native_extension/collectors_idle_sampling_helper.c +17 -3
- data/ext/datadog_profiling_native_extension/collectors_stack.c +228 -162
- data/ext/datadog_profiling_native_extension/collectors_stack.h +16 -3
- data/ext/datadog_profiling_native_extension/collectors_thread_context.c +357 -217
- data/ext/datadog_profiling_native_extension/collectors_thread_context.h +3 -0
- data/ext/datadog_profiling_native_extension/crashtracking_runtime_stacks.c +5 -4
- data/ext/datadog_profiling_native_extension/datadog_ruby_common.c +19 -11
- data/ext/datadog_profiling_native_extension/datadog_ruby_common.h +7 -0
- data/ext/datadog_profiling_native_extension/extconf.rb +24 -11
- data/ext/datadog_profiling_native_extension/private_vm_api_access.c +261 -62
- data/ext/datadog_profiling_native_extension/private_vm_api_access.h +17 -9
- data/ext/datadog_profiling_native_extension/ruby_helpers.c +7 -0
- data/ext/datadog_profiling_native_extension/setup_signal_handler.c +2 -0
- data/ext/datadog_profiling_native_extension/time_helpers.h +12 -7
- data/ext/libdatadog_api/datadog_ruby_common.c +19 -11
- data/ext/libdatadog_api/datadog_ruby_common.h +7 -0
- data/ext/libdatadog_api/di.c +76 -0
- data/ext/libdatadog_api/extconf.rb +29 -23
- data/ext/libdatadog_api/feature_flags.c +26 -0
- data/ext/libdatadog_api/init.c +4 -0
- data/ext/libdatadog_api/trace_exporter.c +974 -0
- data/ext/libdatadog_api/trace_exporter.h +5 -0
- data/ext/libdatadog_extconf_helpers.rb +9 -9
- data/lib/datadog/ai_guard/api_client.rb +8 -6
- data/lib/datadog/ai_guard/component.rb +10 -10
- data/lib/datadog/ai_guard/evaluation.rb +1 -0
- data/lib/datadog/ai_guard/ext.rb +2 -0
- data/lib/datadog/appsec/actions_handler/serializable_backtrace.rb +16 -16
- data/lib/datadog/appsec/actions_handler.rb +6 -6
- data/lib/datadog/appsec/anonymizer.rb +1 -1
- data/lib/datadog/appsec/api_security/endpoint_collection/grape_route_serializer.rb +1 -1
- data/lib/datadog/appsec/api_security/endpoint_collection/rails_collector.rb +6 -6
- data/lib/datadog/appsec/api_security/endpoint_collection/sinatra_route_serializer.rb +1 -1
- data/lib/datadog/appsec/api_security/route_extractor.rb +18 -15
- data/lib/datadog/appsec/api_security/sampler.rb +5 -5
- data/lib/datadog/appsec/api_security.rb +1 -1
- data/lib/datadog/appsec/assets.rb +7 -7
- data/lib/datadog/appsec/autoload.rb +3 -3
- data/lib/datadog/appsec/component.rb +15 -15
- data/lib/datadog/appsec/compressed_json.rb +6 -6
- data/lib/datadog/appsec/configuration.rb +73 -58
- data/lib/datadog/appsec/context.rb +9 -7
- data/lib/datadog/appsec/contrib/active_record/instrumentation.rb +6 -6
- data/lib/datadog/appsec/contrib/active_record/integration.rb +4 -4
- data/lib/datadog/appsec/contrib/active_record/patcher.rb +4 -4
- data/lib/datadog/appsec/contrib/aws_lambda/gateway/watcher.rb +7 -7
- data/lib/datadog/appsec/contrib/aws_lambda/integration.rb +2 -2
- data/lib/datadog/appsec/contrib/aws_lambda/patcher.rb +2 -2
- data/lib/datadog/appsec/contrib/aws_lambda/waf_addresses.rb +36 -34
- data/lib/datadog/appsec/contrib/devise/data_extractor.rb +3 -3
- data/lib/datadog/appsec/contrib/devise/ext.rb +20 -20
- data/lib/datadog/appsec/contrib/devise/integration.rb +4 -4
- data/lib/datadog/appsec/contrib/devise/patcher.rb +8 -8
- data/lib/datadog/appsec/contrib/devise/patches/signin_tracking_patch.rb +12 -12
- data/lib/datadog/appsec/contrib/devise/patches/signup_tracking_patch.rb +8 -8
- data/lib/datadog/appsec/contrib/devise/tracking_middleware.rb +24 -9
- data/lib/datadog/appsec/contrib/excon/integration.rb +4 -4
- data/lib/datadog/appsec/contrib/excon/patcher.rb +1 -1
- data/lib/datadog/appsec/contrib/excon/ssrf_detection_middleware.rb +76 -21
- data/lib/datadog/appsec/contrib/faraday/integration.rb +4 -4
- data/lib/datadog/appsec/contrib/faraday/patcher.rb +4 -4
- data/lib/datadog/appsec/contrib/faraday/ssrf_detection_middleware.rb +72 -18
- data/lib/datadog/appsec/contrib/graphql/appsec_trace.rb +4 -4
- data/lib/datadog/appsec/contrib/graphql/gateway/multiplex.rb +3 -3
- data/lib/datadog/appsec/contrib/graphql/gateway/watcher.rb +7 -7
- data/lib/datadog/appsec/contrib/graphql/integration.rb +9 -9
- data/lib/datadog/appsec/contrib/graphql/patcher.rb +3 -3
- data/lib/datadog/appsec/contrib/rack/buffered_input.rb +1 -1
- data/lib/datadog/appsec/contrib/rack/ext.rb +29 -29
- data/lib/datadog/appsec/contrib/rack/gateway/request.rb +18 -17
- data/lib/datadog/appsec/contrib/rack/gateway/response.rb +1 -1
- data/lib/datadog/appsec/contrib/rack/gateway/watcher.rb +25 -21
- data/lib/datadog/appsec/contrib/rack/input_peeker.rb +9 -22
- data/lib/datadog/appsec/contrib/rack/integration.rb +6 -6
- data/lib/datadog/appsec/contrib/rack/patcher.rb +3 -3
- data/lib/datadog/appsec/contrib/rack/request_body_middleware.rb +11 -8
- data/lib/datadog/appsec/contrib/rack/request_middleware.rb +45 -24
- data/lib/datadog/appsec/contrib/rack/response_body.rb +1 -1
- data/lib/datadog/appsec/contrib/rails/gateway/request.rb +14 -8
- data/lib/datadog/appsec/contrib/rails/gateway/watcher.rb +10 -10
- data/lib/datadog/appsec/contrib/rails/integration.rb +5 -5
- data/lib/datadog/appsec/contrib/rails/patcher.rb +17 -17
- data/lib/datadog/appsec/contrib/rails/patches/process_action_patch.rb +2 -2
- data/lib/datadog/appsec/contrib/rails/patches/render_to_body_patch.rb +3 -3
- data/lib/datadog/appsec/contrib/rails/request.rb +3 -3
- data/lib/datadog/appsec/contrib/rails/request_middleware.rb +2 -1
- data/lib/datadog/appsec/contrib/rest_client/integration.rb +5 -5
- data/lib/datadog/appsec/contrib/rest_client/patcher.rb +1 -1
- data/lib/datadog/appsec/contrib/rest_client/request_ssrf_detection_patch.rb +74 -21
- data/lib/datadog/appsec/contrib/sinatra/gateway/request.rb +1 -1
- data/lib/datadog/appsec/contrib/sinatra/gateway/route_params.rb +1 -1
- data/lib/datadog/appsec/contrib/sinatra/gateway/watcher.rb +16 -12
- data/lib/datadog/appsec/contrib/sinatra/integration.rb +5 -5
- data/lib/datadog/appsec/contrib/sinatra/patcher.rb +11 -11
- data/lib/datadog/appsec/contrib/sinatra/patches/json_patch.rb +3 -3
- data/lib/datadog/appsec/contrib/sinatra/request_middleware.rb +2 -1
- data/lib/datadog/appsec/counter_sampler.rb +1 -1
- data/lib/datadog/appsec/event.rb +14 -14
- data/lib/datadog/appsec/ext.rb +11 -10
- data/lib/datadog/appsec/extensions.rb +2 -2
- data/lib/datadog/appsec/instrumentation/gateway.rb +1 -1
- data/lib/datadog/appsec/metrics/collector.rb +18 -1
- data/lib/datadog/appsec/metrics/exporter.rb +17 -11
- data/lib/datadog/appsec/metrics/telemetry.rb +7 -7
- data/lib/datadog/appsec/metrics/telemetry_exporter.rb +4 -4
- data/lib/datadog/appsec/metrics.rb +4 -4
- data/lib/datadog/appsec/monitor/gateway/watcher.rb +16 -12
- data/lib/datadog/appsec/monitor.rb +1 -1
- data/lib/datadog/appsec/processor/rule_loader.rb +26 -26
- data/lib/datadog/appsec/rate_limiter.rb +1 -1
- data/lib/datadog/appsec/remote.rb +15 -9
- data/lib/datadog/appsec/response.rb +21 -21
- data/lib/datadog/appsec/route_normalizer/rails_route_pattern.rb +176 -0
- data/lib/datadog/appsec/route_normalizer/route_pattern.rb +378 -0
- data/lib/datadog/appsec/route_normalizer/route_text.rb +57 -0
- data/lib/datadog/appsec/route_normalizer.rb +80 -0
- data/lib/datadog/appsec/security_engine/engine.rb +37 -37
- data/lib/datadog/appsec/security_engine/runner.rb +2 -2
- data/lib/datadog/appsec/security_event.rb +2 -2
- data/lib/datadog/appsec/utils/http/body.rb +11 -8
- data/lib/datadog/appsec/utils/http/body_reader.rb +61 -0
- data/lib/datadog/appsec/utils/http/media_range.rb +15 -15
- data/lib/datadog/appsec/utils/http/media_type.rb +4 -4
- data/lib/datadog/appsec/utils/http/url_encoded.rb +80 -25
- data/lib/datadog/appsec.rb +16 -16
- data/lib/datadog/auto_instrument.rb +2 -2
- data/lib/datadog/core/buffer/cruby.rb +1 -1
- data/lib/datadog/core/buffer/thread_safe.rb +1 -1
- data/lib/datadog/core/configuration/agent_settings.rb +1 -1
- data/lib/datadog/core/configuration/agent_settings_resolver.rb +15 -15
- data/lib/datadog/core/configuration/agentless_settings_resolver.rb +2 -2
- data/lib/datadog/core/configuration/base.rb +2 -2
- data/lib/datadog/core/configuration/components.rb +115 -31
- data/lib/datadog/core/configuration/components_state.rb +6 -1
- data/lib/datadog/core/configuration/config_helper.rb +3 -3
- data/lib/datadog/core/configuration/deprecations.rb +6 -6
- data/lib/datadog/core/configuration/ext.rb +11 -11
- data/lib/datadog/core/configuration/option.rb +16 -16
- data/lib/datadog/core/configuration/option_definition.rb +4 -4
- data/lib/datadog/core/configuration/options.rb +1 -1
- data/lib/datadog/core/configuration/settings.rb +93 -104
- data/lib/datadog/core/configuration/stable_config.rb +1 -1
- data/lib/datadog/core/configuration/supported_configurations.rb +8 -1
- data/lib/datadog/core/configuration.rb +8 -8
- data/lib/datadog/core/contrib/rails/railtie.rb +3 -3
- data/lib/datadog/core/crashtracking/component.rb +9 -9
- data/lib/datadog/core/crashtracking/tag_builder.rb +5 -5
- data/lib/datadog/core/deprecations.rb +1 -1
- data/lib/datadog/core/diagnostics/environment_logger.rb +6 -6
- data/lib/datadog/core/diagnostics/health.rb +2 -2
- data/lib/datadog/core/encoding.rb +4 -4
- data/lib/datadog/core/environment/agent_info.rb +2 -2
- data/lib/datadog/core/environment/cgroup.rb +4 -4
- data/lib/datadog/core/environment/container.rb +9 -9
- data/lib/datadog/core/environment/execution.rb +3 -3
- data/lib/datadog/core/environment/ext.rb +18 -18
- data/lib/datadog/core/environment/gc.rb +1 -1
- data/lib/datadog/core/environment/git.rb +2 -2
- data/lib/datadog/core/environment/identity.rb +10 -10
- data/lib/datadog/core/environment/platform.rb +8 -8
- data/lib/datadog/core/environment/process.rb +3 -3
- data/lib/datadog/core/environment/socket.rb +2 -2
- data/lib/datadog/core/environment/variable_helpers.rb +1 -1
- data/lib/datadog/core/environment/vm_cache.rb +1 -1
- data/lib/datadog/core/environment/yjit.rb +2 -2
- data/lib/datadog/core/error.rb +5 -5
- data/lib/datadog/core/evp.rb +11 -0
- data/lib/datadog/core/extensions.rb +1 -1
- data/lib/datadog/core/feature_flags.rb +2 -2
- data/lib/datadog/core/git/ext.rb +4 -4
- data/lib/datadog/core/knuth_sampler.rb +3 -1
- data/lib/datadog/core/logger.rb +3 -3
- data/lib/datadog/core/logging/ext.rb +1 -1
- data/lib/datadog/core/metrics/client.rb +21 -21
- data/lib/datadog/core/metrics/ext.rb +5 -5
- data/lib/datadog/core/metrics/logging.rb +2 -2
- data/lib/datadog/core/metrics/options.rb +3 -3
- data/lib/datadog/core/pin.rb +1 -1
- data/lib/datadog/core/process_discovery.rb +8 -8
- data/lib/datadog/core/rate_limiter.rb +1 -1
- data/lib/datadog/core/remote/client/capabilities.rb +62 -19
- data/lib/datadog/core/remote/client.rb +16 -16
- data/lib/datadog/core/remote/component.rb +20 -12
- data/lib/datadog/core/remote/configuration/content.rb +3 -3
- data/lib/datadog/core/remote/configuration/digest.rb +1 -1
- data/lib/datadog/core/remote/configuration/path.rb +9 -9
- data/lib/datadog/core/remote/configuration/repository.rb +2 -2
- data/lib/datadog/core/remote/configuration/target.rb +9 -9
- data/lib/datadog/core/remote/configuration.rb +4 -4
- data/lib/datadog/core/remote/ext.rb +3 -3
- data/lib/datadog/core/remote/negotiation.rb +1 -1
- data/lib/datadog/core/remote/tie/tracing.rb +7 -7
- data/lib/datadog/core/remote/transport/config.rb +4 -4
- data/lib/datadog/core/remote/transport/http/config.rb +7 -7
- data/lib/datadog/core/remote/transport/http/negotiation.rb +4 -4
- data/lib/datadog/core/remote/transport/http.rb +10 -10
- data/lib/datadog/core/remote/transport/negotiation.rb +3 -3
- data/lib/datadog/core/remote/worker.rb +5 -5
- data/lib/datadog/core/runtime/ext.rb +22 -22
- data/lib/datadog/core/runtime/metrics.rb +9 -9
- data/lib/datadog/core/tag_builder.rb +18 -18
- data/lib/datadog/core/tag_normalizer.rb +7 -7
- data/lib/datadog/core/telemetry/component.rb +13 -13
- data/lib/datadog/core/telemetry/emitter.rb +4 -4
- data/lib/datadog/core/telemetry/event/app_client_configuration_change.rb +5 -5
- data/lib/datadog/core/telemetry/event/app_closing.rb +2 -2
- data/lib/datadog/core/telemetry/event/app_dependencies_loaded.rb +2 -2
- data/lib/datadog/core/telemetry/event/app_endpoints_loaded.rb +2 -2
- data/lib/datadog/core/telemetry/event/app_extended_heartbeat.rb +2 -2
- data/lib/datadog/core/telemetry/event/app_heartbeat.rb +2 -2
- data/lib/datadog/core/telemetry/event/app_integrations_change.rb +2 -2
- data/lib/datadog/core/telemetry/event/app_started.rb +41 -34
- data/lib/datadog/core/telemetry/event/base.rb +1 -1
- data/lib/datadog/core/telemetry/event/distributions.rb +2 -2
- data/lib/datadog/core/telemetry/event/generate_metrics.rb +2 -2
- data/lib/datadog/core/telemetry/event/log.rb +4 -4
- data/lib/datadog/core/telemetry/event/message_batch.rb +1 -1
- data/lib/datadog/core/telemetry/event/synth_app_client_configuration_change.rb +3 -3
- data/lib/datadog/core/telemetry/event.rb +16 -16
- data/lib/datadog/core/telemetry/ext.rb +11 -11
- data/lib/datadog/core/telemetry/logger.rb +1 -1
- data/lib/datadog/core/telemetry/logging.rb +5 -5
- data/lib/datadog/core/telemetry/metric.rb +7 -7
- data/lib/datadog/core/telemetry/metrics_collection.rb +2 -2
- data/lib/datadog/core/telemetry/metrics_manager.rb +1 -1
- data/lib/datadog/core/telemetry/request.rb +4 -4
- data/lib/datadog/core/telemetry/transport/http/telemetry.rb +14 -14
- data/lib/datadog/core/telemetry/transport/http.rb +7 -7
- data/lib/datadog/core/telemetry/transport/telemetry.rb +3 -3
- data/lib/datadog/core/telemetry/worker.rb +6 -6
- data/lib/datadog/core/transport/ext.rb +14 -14
- data/lib/datadog/core/transport/http/adapters/net.rb +4 -4
- data/lib/datadog/core/transport/http/adapters/test.rb +1 -1
- data/lib/datadog/core/transport/http/adapters/unix_socket.rb +4 -4
- data/lib/datadog/core/transport/http/api/endpoint.rb +1 -1
- data/lib/datadog/core/transport/http/api/map.rb +1 -1
- data/lib/datadog/core/transport/http/builder.rb +6 -6
- data/lib/datadog/core/transport/http/client.rb +2 -2
- data/lib/datadog/core/transport/http/response.rb +1 -1
- data/lib/datadog/core/transport/http.rb +8 -8
- data/lib/datadog/core/transport/transport.rb +1 -1
- data/lib/datadog/core/utils/at_fork_monkey_patch.rb +83 -15
- data/lib/datadog/core/utils/base64_codec.rb +3 -3
- data/lib/datadog/core/utils/duration.rb +1 -1
- data/lib/datadog/core/utils/forking.rb +2 -2
- data/lib/datadog/core/utils/lru_cache.rb +3 -3
- data/lib/datadog/core/utils/network.rb +11 -11
- data/lib/datadog/core/utils/only_once_successful.rb +1 -1
- data/lib/datadog/core/utils/safe_dup.rb +2 -1
- data/lib/datadog/core/utils/sequence.rb +3 -6
- data/lib/datadog/core/utils/spawn_monkey_patch.rb +2 -2
- data/lib/datadog/core/utils/time.rb +18 -52
- data/lib/datadog/core/utils/url.rb +1 -1
- data/lib/datadog/core/utils.rb +4 -4
- data/lib/datadog/core/workers/async.rb +1 -1
- data/lib/datadog/core/workers/polling.rb +2 -2
- data/lib/datadog/core/workers/runtime_metrics.rb +4 -4
- data/lib/datadog/core.rb +4 -4
- data/lib/datadog/data_streams/configuration.rb +3 -3
- data/lib/datadog/data_streams/ext.rb +1 -1
- data/lib/datadog/data_streams/extensions.rb +2 -2
- data/lib/datadog/data_streams/pathway_context.rb +5 -5
- data/lib/datadog/data_streams/processor.rb +52 -52
- data/lib/datadog/data_streams/transport/http/stats.rb +5 -5
- data/lib/datadog/data_streams/transport/http.rb +5 -5
- data/lib/datadog/data_streams/transport/stats.rb +7 -7
- data/lib/datadog/data_streams.rb +5 -5
- data/lib/datadog/di/base.rb +6 -4
- data/lib/datadog/di/boot.rb +25 -22
- data/lib/datadog/di/capture_expression.rb +21 -0
- data/lib/datadog/di/capture_expression_evaluator.rb +71 -0
- data/lib/datadog/di/capture_limits.rb +41 -0
- data/lib/datadog/di/code_tracker.rb +10 -7
- data/lib/datadog/di/component.rb +122 -40
- data/lib/datadog/di/configuration.rb +7 -1
- data/lib/datadog/di/context.rb +9 -3
- data/lib/datadog/di/contrib/railtie.rb +1 -1
- data/lib/datadog/di/contrib.rb +5 -5
- data/lib/datadog/di/el/compiler.rb +91 -38
- data/lib/datadog/di/el/evaluator.rb +82 -2
- data/lib/datadog/di/el/expression.rb +10 -2
- data/lib/datadog/di/el.rb +3 -3
- data/lib/datadog/di/error.rb +10 -0
- data/lib/datadog/di/fatal_exceptions.rb +26 -0
- data/lib/datadog/di/instrumenter.rb +426 -169
- data/lib/datadog/di/logger.rb +1 -1
- data/lib/datadog/di/preload.rb +1 -1
- data/lib/datadog/di/probe.rb +61 -2
- data/lib/datadog/di/probe_builder.rb +96 -14
- data/lib/datadog/di/probe_file_loader/railtie.rb +1 -1
- data/lib/datadog/di/probe_file_loader.rb +12 -7
- data/lib/datadog/di/probe_manager.rb +67 -9
- data/lib/datadog/di/probe_notification_builder.rb +66 -22
- data/lib/datadog/di/probe_notifier_worker.rb +57 -37
- data/lib/datadog/di/probe_repository.rb +1 -1
- data/lib/datadog/di/redactor.rb +16 -1
- data/lib/datadog/di/remote.rb +178 -17
- data/lib/datadog/di/serializer.rb +47 -28
- data/lib/datadog/di/transport/diagnostics.rb +5 -5
- data/lib/datadog/di/transport/http/diagnostics.rb +3 -3
- data/lib/datadog/di/transport/http/input.rb +2 -2
- data/lib/datadog/di/transport/http.rb +10 -10
- data/lib/datadog/di/transport/input.rb +16 -12
- data/lib/datadog/di/utils.rb +4 -4
- data/lib/datadog/di.rb +66 -3
- data/lib/datadog/error_tracking/collector.rb +2 -2
- data/lib/datadog/error_tracking/component.rb +12 -12
- data/lib/datadog/error_tracking/configuration.rb +2 -2
- data/lib/datadog/error_tracking/ext.rb +7 -7
- data/lib/datadog/error_tracking/extensions.rb +2 -2
- data/lib/datadog/error_tracking/filters.rb +4 -4
- data/lib/datadog/error_tracking.rb +6 -6
- data/lib/datadog/kit/appsec/events/v2.rb +90 -32
- data/lib/datadog/kit/appsec/events.rb +25 -25
- data/lib/datadog/kit/enable_core_dumps.rb +2 -2
- data/lib/datadog/kit/identity.rb +18 -18
- data/lib/datadog/kit/tracing/method_tracer.rb +7 -7
- data/lib/datadog/kit.rb +1 -1
- data/lib/datadog/open_feature/component.rb +53 -21
- data/lib/datadog/open_feature/configuration.rb +22 -1
- data/lib/datadog/open_feature/evaluation_engine.rb +7 -7
- data/lib/datadog/open_feature/exposures/buffer.rb +1 -1
- data/lib/datadog/open_feature/exposures/deduplicator.rb +1 -1
- data/lib/datadog/open_feature/exposures/event.rb +2 -2
- data/lib/datadog/open_feature/exposures/reporter.rb +3 -3
- data/lib/datadog/open_feature/exposures/worker.rb +6 -6
- data/lib/datadog/open_feature/ext.rb +13 -6
- data/lib/datadog/open_feature/flag_evaluation/aggregator.rb +286 -0
- data/lib/datadog/open_feature/flag_evaluation/writer.rb +433 -0
- data/lib/datadog/open_feature/hooks/flag_eval_evp_hook.rb +102 -0
- data/lib/datadog/open_feature/hooks/{flag_eval_hook.rb → flag_eval_metrics_hook.rb} +4 -2
- data/lib/datadog/open_feature/hooks/span_enrichment_hook/codec.rb +58 -0
- data/lib/datadog/open_feature/hooks/span_enrichment_hook/span_enrichment_state.rb +96 -0
- data/lib/datadog/open_feature/hooks/span_enrichment_hook/span_enrichment_state_store.rb +49 -0
- data/lib/datadog/open_feature/hooks/span_enrichment_hook.rb +184 -0
- data/lib/datadog/open_feature/metrics/flag_eval_metrics.rb +24 -24
- data/lib/datadog/open_feature/native_evaluator.rb +23 -1
- data/lib/datadog/open_feature/noop_evaluator.rb +3 -3
- data/lib/datadog/open_feature/provider.rb +97 -30
- data/lib/datadog/open_feature/remote.rb +2 -2
- data/lib/datadog/open_feature/resolution_details.rb +4 -2
- data/lib/datadog/open_feature/transport.rb +65 -11
- data/lib/datadog/open_feature.rb +2 -2
- data/lib/datadog/opentelemetry/api/baggage.rb +3 -3
- data/lib/datadog/opentelemetry/api/context.rb +4 -4
- data/lib/datadog/opentelemetry/configuration/settings.rb +41 -41
- data/lib/datadog/opentelemetry/ext.rb +1 -1
- data/lib/datadog/opentelemetry/logs.rb +5 -5
- data/lib/datadog/opentelemetry/metrics.rb +7 -7
- data/lib/datadog/opentelemetry/sdk/configurator.rb +8 -8
- data/lib/datadog/opentelemetry/sdk/id_generator.rb +2 -2
- data/lib/datadog/opentelemetry/sdk/logs_exporter.rb +10 -17
- data/lib/datadog/opentelemetry/sdk/metrics_exporter.rb +8 -15
- data/lib/datadog/opentelemetry/sdk/propagator.rb +7 -7
- data/lib/datadog/opentelemetry/sdk/span_processor.rb +15 -15
- data/lib/datadog/opentelemetry/sdk/trace/span.rb +32 -32
- data/lib/datadog/opentelemetry/sdk.rb +19 -0
- data/lib/datadog/opentelemetry/signal_configuration.rb +11 -11
- data/lib/datadog/opentelemetry/trace.rb +1 -1
- data/lib/datadog/opentelemetry.rb +8 -8
- data/lib/datadog/profiling/collectors/cpu_and_wall_time_worker.rb +6 -1
- data/lib/datadog/profiling/collectors/idle_sampling_helper.rb +5 -3
- data/lib/datadog/profiling/collectors/thread_context.rb +15 -14
- data/lib/datadog/profiling/component.rb +18 -0
- data/lib/datadog/profiling/exporter.rb +1 -1
- data/lib/datadog/profiling/http_transport.rb +1 -1
- data/lib/datadog/profiling/sequence_tracker.rb +1 -1
- data/lib/datadog/profiling/tag_builder.rb +19 -19
- data/lib/datadog/profiling.rb +31 -27
- data/lib/datadog/single_step_instrument.rb +1 -1
- data/lib/datadog/symbol_database/component.rb +177 -60
- data/lib/datadog/symbol_database/configuration.rb +15 -7
- data/lib/datadog/symbol_database/extensions.rb +19 -0
- data/lib/datadog/symbol_database/extractor.rb +167 -130
- data/lib/datadog/symbol_database/file_hash.rb +5 -3
- data/lib/datadog/symbol_database/logger.rb +1 -1
- data/lib/datadog/symbol_database/remote.rb +28 -8
- data/lib/datadog/symbol_database/scope.rb +2 -2
- data/lib/datadog/symbol_database/scope_batcher.rb +8 -4
- data/lib/datadog/symbol_database/service_version.rb +4 -4
- data/lib/datadog/symbol_database/symbol.rb +1 -1
- data/lib/datadog/symbol_database/transport/http/endpoint.rb +1 -1
- data/lib/datadog/symbol_database/transport/http.rb +6 -6
- data/lib/datadog/symbol_database/transport.rb +4 -4
- data/lib/datadog/symbol_database/uploader.rb +28 -21
- data/lib/datadog/symbol_database.rb +22 -0
- data/lib/datadog/tracing/analytics.rb +1 -1
- data/lib/datadog/tracing/buffer.rb +5 -5
- data/lib/datadog/tracing/client_ip.rb +4 -4
- data/lib/datadog/tracing/component.rb +28 -7
- data/lib/datadog/tracing/configuration/dynamic.rb +8 -8
- data/lib/datadog/tracing/configuration/ext.rb +43 -42
- data/lib/datadog/tracing/configuration/http.rb +2 -2
- data/lib/datadog/tracing/configuration/settings.rb +32 -16
- data/lib/datadog/tracing/context.rb +1 -1
- data/lib/datadog/tracing/context_provider.rb +2 -2
- data/lib/datadog/tracing/contrib/action_cable/configuration/settings.rb +2 -2
- data/lib/datadog/tracing/contrib/action_cable/event.rb +4 -4
- data/lib/datadog/tracing/contrib/action_cable/events/broadcast.rb +5 -5
- data/lib/datadog/tracing/contrib/action_cable/events/perform_action.rb +4 -4
- data/lib/datadog/tracing/contrib/action_cable/events/transmit.rb +5 -5
- data/lib/datadog/tracing/contrib/action_cable/events.rb +4 -4
- data/lib/datadog/tracing/contrib/action_cable/ext.rb +18 -18
- data/lib/datadog/tracing/contrib/action_cable/instrumentation.rb +4 -4
- data/lib/datadog/tracing/contrib/action_cable/integration.rb +7 -7
- data/lib/datadog/tracing/contrib/action_cable/patcher.rb +4 -4
- data/lib/datadog/tracing/contrib/action_mailer/configuration/settings.rb +2 -2
- data/lib/datadog/tracing/contrib/action_mailer/event.rb +3 -3
- data/lib/datadog/tracing/contrib/action_mailer/events/deliver.rb +8 -8
- data/lib/datadog/tracing/contrib/action_mailer/events/process.rb +4 -4
- data/lib/datadog/tracing/contrib/action_mailer/events.rb +2 -2
- data/lib/datadog/tracing/contrib/action_mailer/ext.rb +18 -18
- data/lib/datadog/tracing/contrib/action_mailer/integration.rb +7 -7
- data/lib/datadog/tracing/contrib/action_mailer/patcher.rb +3 -3
- data/lib/datadog/tracing/contrib/action_pack/action_controller/instrumentation.rb +8 -8
- data/lib/datadog/tracing/contrib/action_pack/action_controller/patcher.rb +2 -2
- data/lib/datadog/tracing/contrib/action_pack/action_dispatch/instrumentation.rb +4 -4
- data/lib/datadog/tracing/contrib/action_pack/action_dispatch/patcher.rb +4 -4
- data/lib/datadog/tracing/contrib/action_pack/configuration/settings.rb +3 -3
- data/lib/datadog/tracing/contrib/action_pack/ext.rb +10 -10
- data/lib/datadog/tracing/contrib/action_pack/integration.rb +7 -7
- data/lib/datadog/tracing/contrib/action_pack/patcher.rb +3 -3
- data/lib/datadog/tracing/contrib/action_pack/utils.rb +1 -1
- data/lib/datadog/tracing/contrib/action_view/configuration/settings.rb +3 -3
- data/lib/datadog/tracing/contrib/action_view/event.rb +1 -1
- data/lib/datadog/tracing/contrib/action_view/events/render_partial.rb +6 -6
- data/lib/datadog/tracing/contrib/action_view/events/render_template.rb +6 -6
- data/lib/datadog/tracing/contrib/action_view/events.rb +2 -2
- data/lib/datadog/tracing/contrib/action_view/ext.rb +10 -10
- data/lib/datadog/tracing/contrib/action_view/integration.rb +11 -11
- data/lib/datadog/tracing/contrib/action_view/patcher.rb +5 -5
- data/lib/datadog/tracing/contrib/action_view/utils.rb +2 -2
- data/lib/datadog/tracing/contrib/active_job/configuration/settings.rb +2 -2
- data/lib/datadog/tracing/contrib/active_job/data_streams.rb +62 -0
- data/lib/datadog/tracing/contrib/active_job/event.rb +3 -3
- data/lib/datadog/tracing/contrib/active_job/events/discard.rb +5 -5
- data/lib/datadog/tracing/contrib/active_job/events/enqueue.rb +5 -5
- data/lib/datadog/tracing/contrib/active_job/events/enqueue_at.rb +5 -5
- data/lib/datadog/tracing/contrib/active_job/events/enqueue_retry.rb +5 -5
- data/lib/datadog/tracing/contrib/active_job/events/perform.rb +5 -5
- data/lib/datadog/tracing/contrib/active_job/events/retry_stopped.rb +5 -5
- data/lib/datadog/tracing/contrib/active_job/events.rb +6 -6
- data/lib/datadog/tracing/contrib/active_job/ext.rb +23 -23
- data/lib/datadog/tracing/contrib/active_job/integration.rb +7 -7
- data/lib/datadog/tracing/contrib/active_job/patcher.rb +17 -5
- data/lib/datadog/tracing/contrib/active_model_serializers/configuration/settings.rb +2 -2
- data/lib/datadog/tracing/contrib/active_model_serializers/event.rb +4 -4
- data/lib/datadog/tracing/contrib/active_model_serializers/events/render.rb +6 -6
- data/lib/datadog/tracing/contrib/active_model_serializers/events/serialize.rb +7 -8
- data/lib/datadog/tracing/contrib/active_model_serializers/events.rb +2 -2
- data/lib/datadog/tracing/contrib/active_model_serializers/ext.rb +10 -10
- data/lib/datadog/tracing/contrib/active_model_serializers/integration.rb +5 -5
- data/lib/datadog/tracing/contrib/active_model_serializers/patcher.rb +3 -3
- data/lib/datadog/tracing/contrib/active_record/configuration/makara_resolver.rb +1 -1
- data/lib/datadog/tracing/contrib/active_record/configuration/resolver.rb +6 -6
- data/lib/datadog/tracing/contrib/active_record/configuration/settings.rb +4 -4
- data/lib/datadog/tracing/contrib/active_record/event.rb +1 -1
- data/lib/datadog/tracing/contrib/active_record/events/instantiation.rb +8 -8
- data/lib/datadog/tracing/contrib/active_record/events/sql.rb +9 -9
- data/lib/datadog/tracing/contrib/active_record/events.rb +2 -2
- data/lib/datadog/tracing/contrib/active_record/ext.rb +15 -15
- data/lib/datadog/tracing/contrib/active_record/integration.rb +11 -11
- data/lib/datadog/tracing/contrib/active_record/patcher.rb +2 -2
- data/lib/datadog/tracing/contrib/active_record/utils.rb +3 -3
- data/lib/datadog/tracing/contrib/active_support/cache/event.rb +1 -1
- data/lib/datadog/tracing/contrib/active_support/cache/events/cache.rb +11 -11
- data/lib/datadog/tracing/contrib/active_support/cache/events.rb +1 -1
- data/lib/datadog/tracing/contrib/active_support/cache/instrumentation.rb +4 -4
- data/lib/datadog/tracing/contrib/active_support/cache/patcher.rb +5 -5
- data/lib/datadog/tracing/contrib/active_support/cache/redis.rb +4 -4
- data/lib/datadog/tracing/contrib/active_support/configuration/settings.rb +3 -3
- data/lib/datadog/tracing/contrib/active_support/ext.rb +16 -16
- data/lib/datadog/tracing/contrib/active_support/integration.rb +8 -8
- data/lib/datadog/tracing/contrib/active_support/notifications/event.rb +1 -1
- data/lib/datadog/tracing/contrib/active_support/notifications/subscriber.rb +2 -2
- data/lib/datadog/tracing/contrib/active_support/notifications/subscription.rb +1 -1
- data/lib/datadog/tracing/contrib/active_support/patcher.rb +2 -2
- data/lib/datadog/tracing/contrib/analytics.rb +1 -1
- data/lib/datadog/tracing/contrib/auto_instrument.rb +4 -4
- data/lib/datadog/tracing/contrib/aws/configuration/settings.rb +3 -3
- data/lib/datadog/tracing/contrib/aws/ext.rb +25 -25
- data/lib/datadog/tracing/contrib/aws/instrumentation.rb +5 -5
- data/lib/datadog/tracing/contrib/aws/integration.rb +9 -9
- data/lib/datadog/tracing/contrib/aws/parsed_context.rb +1 -1
- data/lib/datadog/tracing/contrib/aws/patcher.rb +5 -5
- data/lib/datadog/tracing/contrib/aws/service/dynamodb.rb +2 -2
- data/lib/datadog/tracing/contrib/aws/service/eventbridge.rb +2 -2
- data/lib/datadog/tracing/contrib/aws/service/kinesis.rb +4 -4
- data/lib/datadog/tracing/contrib/aws/service/s3.rb +2 -2
- data/lib/datadog/tracing/contrib/aws/service/sns.rb +3 -3
- data/lib/datadog/tracing/contrib/aws/service/sqs.rb +3 -3
- data/lib/datadog/tracing/contrib/aws/service/states.rb +5 -5
- data/lib/datadog/tracing/contrib/aws/services.rb +14 -14
- data/lib/datadog/tracing/contrib/concurrent_ruby/async_patch.rb +1 -1
- data/lib/datadog/tracing/contrib/concurrent_ruby/configuration/settings.rb +2 -2
- data/lib/datadog/tracing/contrib/concurrent_ruby/context_composite_executor_service.rb +1 -1
- data/lib/datadog/tracing/contrib/concurrent_ruby/ext.rb +2 -2
- data/lib/datadog/tracing/contrib/concurrent_ruby/future_patch.rb +1 -1
- data/lib/datadog/tracing/contrib/concurrent_ruby/integration.rb +6 -6
- data/lib/datadog/tracing/contrib/concurrent_ruby/patcher.rb +4 -4
- data/lib/datadog/tracing/contrib/concurrent_ruby/promises_future_patch.rb +1 -1
- data/lib/datadog/tracing/contrib/configurable.rb +2 -2
- data/lib/datadog/tracing/contrib/configuration/resolvers/pattern_resolver.rb +1 -1
- data/lib/datadog/tracing/contrib/configuration/settings.rb +2 -2
- data/lib/datadog/tracing/contrib/dalli/configuration/settings.rb +2 -2
- data/lib/datadog/tracing/contrib/dalli/ext.rb +13 -13
- data/lib/datadog/tracing/contrib/dalli/instrumentation.rb +5 -5
- data/lib/datadog/tracing/contrib/dalli/integration.rb +7 -7
- data/lib/datadog/tracing/contrib/dalli/patcher.rb +3 -3
- data/lib/datadog/tracing/contrib/dalli/quantize.rb +2 -2
- data/lib/datadog/tracing/contrib/delayed_job/configuration/settings.rb +2 -2
- data/lib/datadog/tracing/contrib/delayed_job/ext.rb +14 -14
- data/lib/datadog/tracing/contrib/delayed_job/integration.rb +5 -5
- data/lib/datadog/tracing/contrib/delayed_job/patcher.rb +3 -3
- data/lib/datadog/tracing/contrib/delayed_job/plugin.rb +5 -5
- data/lib/datadog/tracing/contrib/elasticsearch/configuration/settings.rb +2 -2
- data/lib/datadog/tracing/contrib/elasticsearch/ext.rb +15 -15
- data/lib/datadog/tracing/contrib/elasticsearch/integration.rb +6 -6
- data/lib/datadog/tracing/contrib/elasticsearch/patcher.rb +10 -10
- data/lib/datadog/tracing/contrib/elasticsearch/quantize.rb +2 -2
- data/lib/datadog/tracing/contrib/ethon/configuration/settings.rb +2 -2
- data/lib/datadog/tracing/contrib/ethon/easy_patch.rb +8 -8
- data/lib/datadog/tracing/contrib/ethon/ext.rb +13 -13
- data/lib/datadog/tracing/contrib/ethon/integration.rb +6 -6
- data/lib/datadog/tracing/contrib/ethon/multi_patch.rb +3 -3
- data/lib/datadog/tracing/contrib/ethon/patcher.rb +3 -3
- data/lib/datadog/tracing/contrib/excon/configuration/settings.rb +5 -5
- data/lib/datadog/tracing/contrib/excon/ext.rb +11 -11
- data/lib/datadog/tracing/contrib/excon/integration.rb +6 -6
- data/lib/datadog/tracing/contrib/excon/middleware.rb +8 -8
- data/lib/datadog/tracing/contrib/excon/patcher.rb +2 -2
- data/lib/datadog/tracing/contrib/ext.rb +15 -15
- data/lib/datadog/tracing/contrib/extensions.rb +2 -2
- data/lib/datadog/tracing/contrib/faraday/configuration/settings.rb +4 -4
- data/lib/datadog/tracing/contrib/faraday/ext.rb +11 -11
- data/lib/datadog/tracing/contrib/faraday/integration.rb +6 -6
- data/lib/datadog/tracing/contrib/faraday/middleware.rb +8 -8
- data/lib/datadog/tracing/contrib/faraday/patcher.rb +6 -6
- data/lib/datadog/tracing/contrib/grape/configuration/settings.rb +4 -4
- data/lib/datadog/tracing/contrib/grape/endpoint.rb +20 -20
- data/lib/datadog/tracing/contrib/grape/ext.rb +15 -15
- data/lib/datadog/tracing/contrib/grape/instrumentation.rb +3 -3
- data/lib/datadog/tracing/contrib/grape/integration.rb +5 -5
- data/lib/datadog/tracing/contrib/grape/patcher.rb +5 -5
- data/lib/datadog/tracing/contrib/graphql/configuration/error_extension_env_parser.rb +1 -1
- data/lib/datadog/tracing/contrib/graphql/configuration/settings.rb +3 -3
- data/lib/datadog/tracing/contrib/graphql/ext.rb +9 -9
- data/lib/datadog/tracing/contrib/graphql/integration.rb +9 -9
- data/lib/datadog/tracing/contrib/graphql/patcher.rb +7 -7
- data/lib/datadog/tracing/contrib/graphql/unified_trace.rb +37 -37
- data/lib/datadog/tracing/contrib/graphql/unified_trace_patcher.rb +2 -2
- data/lib/datadog/tracing/contrib/grpc/configuration/settings.rb +2 -2
- data/lib/datadog/tracing/contrib/grpc/datadog_interceptor/client.rb +7 -7
- data/lib/datadog/tracing/contrib/grpc/datadog_interceptor/server.rb +7 -7
- data/lib/datadog/tracing/contrib/grpc/datadog_interceptor.rb +6 -6
- data/lib/datadog/tracing/contrib/grpc/distributed/fetcher.rb +1 -1
- data/lib/datadog/tracing/contrib/grpc/distributed/propagation.rb +8 -8
- data/lib/datadog/tracing/contrib/grpc/ext.rb +14 -14
- data/lib/datadog/tracing/contrib/grpc/formatting.rb +7 -7
- data/lib/datadog/tracing/contrib/grpc/integration.rb +5 -5
- data/lib/datadog/tracing/contrib/grpc/intercept_with_datadog.rb +1 -1
- data/lib/datadog/tracing/contrib/grpc/patcher.rb +3 -3
- data/lib/datadog/tracing/contrib/grpc.rb +6 -6
- data/lib/datadog/tracing/contrib/hanami/action_tracer.rb +3 -3
- data/lib/datadog/tracing/contrib/hanami/configuration/settings.rb +2 -2
- data/lib/datadog/tracing/contrib/hanami/ext.rb +8 -8
- data/lib/datadog/tracing/contrib/hanami/integration.rb +6 -6
- data/lib/datadog/tracing/contrib/hanami/patcher.rb +5 -5
- data/lib/datadog/tracing/contrib/hanami/renderer_policy_tracing.rb +3 -3
- data/lib/datadog/tracing/contrib/hanami/router_tracing.rb +5 -4
- data/lib/datadog/tracing/contrib/http/circuit_breaker.rb +1 -1
- data/lib/datadog/tracing/contrib/http/configuration/settings.rb +4 -4
- data/lib/datadog/tracing/contrib/http/distributed/fetcher.rb +3 -3
- data/lib/datadog/tracing/contrib/http/distributed/propagation.rb +8 -8
- data/lib/datadog/tracing/contrib/http/ext.rb +11 -11
- data/lib/datadog/tracing/contrib/http/instrumentation.rb +6 -6
- data/lib/datadog/tracing/contrib/http/integration.rb +7 -7
- data/lib/datadog/tracing/contrib/http/patcher.rb +3 -3
- data/lib/datadog/tracing/contrib/http.rb +6 -6
- data/lib/datadog/tracing/contrib/httpclient/configuration/settings.rb +4 -4
- data/lib/datadog/tracing/contrib/httpclient/ext.rb +11 -11
- data/lib/datadog/tracing/contrib/httpclient/instrumentation.rb +5 -5
- data/lib/datadog/tracing/contrib/httpclient/integration.rb +6 -6
- data/lib/datadog/tracing/contrib/httpclient/patcher.rb +3 -3
- data/lib/datadog/tracing/contrib/httprb/configuration/settings.rb +4 -4
- data/lib/datadog/tracing/contrib/httprb/ext.rb +11 -11
- data/lib/datadog/tracing/contrib/httprb/instrumentation.rb +6 -6
- data/lib/datadog/tracing/contrib/httprb/integration.rb +7 -7
- data/lib/datadog/tracing/contrib/httprb/patcher.rb +3 -3
- data/lib/datadog/tracing/contrib/integration.rb +3 -3
- data/lib/datadog/tracing/contrib/kafka/configuration/settings.rb +2 -2
- data/lib/datadog/tracing/contrib/kafka/event.rb +3 -3
- data/lib/datadog/tracing/contrib/kafka/events/connection/request.rb +7 -3
- data/lib/datadog/tracing/contrib/kafka/events/consumer/process_batch.rb +4 -4
- data/lib/datadog/tracing/contrib/kafka/events/consumer/process_message.rb +4 -4
- data/lib/datadog/tracing/contrib/kafka/events/consumer_group/heartbeat.rb +5 -5
- data/lib/datadog/tracing/contrib/kafka/events/consumer_group/join_group.rb +5 -5
- data/lib/datadog/tracing/contrib/kafka/events/consumer_group/leave_group.rb +5 -5
- data/lib/datadog/tracing/contrib/kafka/events/consumer_group/sync_group.rb +5 -5
- data/lib/datadog/tracing/contrib/kafka/events/produce_operation/send_messages.rb +10 -5
- data/lib/datadog/tracing/contrib/kafka/events/producer/deliver_messages.rb +10 -5
- data/lib/datadog/tracing/contrib/kafka/events.rb +9 -9
- data/lib/datadog/tracing/contrib/kafka/ext.rb +40 -40
- data/lib/datadog/tracing/contrib/kafka/instrumentation/consumer.rb +2 -2
- data/lib/datadog/tracing/contrib/kafka/instrumentation/producer.rb +4 -4
- data/lib/datadog/tracing/contrib/kafka/integration.rb +6 -6
- data/lib/datadog/tracing/contrib/kafka/patcher.rb +5 -5
- data/lib/datadog/tracing/contrib/karafka/configuration/settings.rb +2 -2
- data/lib/datadog/tracing/contrib/karafka/distributed/propagation.rb +8 -8
- data/lib/datadog/tracing/contrib/karafka/ext.rb +13 -13
- data/lib/datadog/tracing/contrib/karafka/integration.rb +5 -5
- data/lib/datadog/tracing/contrib/karafka/monitor.rb +14 -14
- data/lib/datadog/tracing/contrib/karafka/patcher.rb +8 -8
- data/lib/datadog/tracing/contrib/karafka.rb +6 -6
- data/lib/datadog/tracing/contrib/lograge/configuration/settings.rb +2 -2
- data/lib/datadog/tracing/contrib/lograge/ext.rb +1 -1
- data/lib/datadog/tracing/contrib/lograge/integration.rb +5 -5
- data/lib/datadog/tracing/contrib/lograge/patcher.rb +9 -9
- data/lib/datadog/tracing/contrib/mongodb/configuration/settings.rb +2 -2
- data/lib/datadog/tracing/contrib/mongodb/ext.rb +18 -18
- data/lib/datadog/tracing/contrib/mongodb/instrumentation.rb +3 -3
- data/lib/datadog/tracing/contrib/mongodb/integration.rb +7 -7
- data/lib/datadog/tracing/contrib/mongodb/parsers.rb +5 -5
- data/lib/datadog/tracing/contrib/mongodb/patcher.rb +3 -3
- data/lib/datadog/tracing/contrib/mongodb/subscribers.rb +13 -13
- data/lib/datadog/tracing/contrib/mysql2/configuration/settings.rb +3 -3
- data/lib/datadog/tracing/contrib/mysql2/ext.rb +11 -11
- data/lib/datadog/tracing/contrib/mysql2/instrumentation.rb +6 -6
- data/lib/datadog/tracing/contrib/mysql2/integration.rb +5 -5
- data/lib/datadog/tracing/contrib/mysql2/patcher.rb +2 -2
- data/lib/datadog/tracing/contrib/opensearch/configuration/settings.rb +2 -2
- data/lib/datadog/tracing/contrib/opensearch/ext.rb +22 -22
- data/lib/datadog/tracing/contrib/opensearch/integration.rb +6 -6
- data/lib/datadog/tracing/contrib/opensearch/patcher.rb +13 -13
- data/lib/datadog/tracing/contrib/opensearch/quantize.rb +3 -3
- data/lib/datadog/tracing/contrib/patcher.rb +2 -2
- data/lib/datadog/tracing/contrib/pg/configuration/settings.rb +3 -3
- data/lib/datadog/tracing/contrib/pg/ext.rb +19 -19
- data/lib/datadog/tracing/contrib/pg/instrumentation.rb +18 -18
- data/lib/datadog/tracing/contrib/pg/integration.rb +5 -5
- data/lib/datadog/tracing/contrib/pg/patcher.rb +2 -2
- data/lib/datadog/tracing/contrib/presto/configuration/settings.rb +2 -2
- data/lib/datadog/tracing/contrib/presto/ext.rb +21 -21
- data/lib/datadog/tracing/contrib/presto/instrumentation.rb +2 -2
- data/lib/datadog/tracing/contrib/presto/integration.rb +6 -6
- data/lib/datadog/tracing/contrib/presto/patcher.rb +4 -4
- data/lib/datadog/tracing/contrib/propagation/sql_comment/comment.rb +2 -2
- data/lib/datadog/tracing/contrib/propagation/sql_comment/ext.rb +17 -17
- data/lib/datadog/tracing/contrib/propagation/sql_comment/mode.rb +1 -1
- data/lib/datadog/tracing/contrib/propagation/sql_comment.rb +5 -5
- data/lib/datadog/tracing/contrib/que/configuration/settings.rb +2 -2
- data/lib/datadog/tracing/contrib/que/ext.rb +19 -19
- data/lib/datadog/tracing/contrib/que/integration.rb +6 -6
- data/lib/datadog/tracing/contrib/que/patcher.rb +1 -1
- data/lib/datadog/tracing/contrib/que/tracer.rb +1 -1
- data/lib/datadog/tracing/contrib/racecar/configuration/settings.rb +3 -3
- data/lib/datadog/tracing/contrib/racecar/event.rb +4 -4
- data/lib/datadog/tracing/contrib/racecar/events/batch.rb +3 -3
- data/lib/datadog/tracing/contrib/racecar/events/consume.rb +3 -3
- data/lib/datadog/tracing/contrib/racecar/events/message.rb +3 -3
- data/lib/datadog/tracing/contrib/racecar/events.rb +3 -3
- data/lib/datadog/tracing/contrib/racecar/ext.rb +18 -18
- data/lib/datadog/tracing/contrib/racecar/integration.rb +5 -5
- data/lib/datadog/tracing/contrib/racecar/patcher.rb +3 -3
- data/lib/datadog/tracing/contrib/rack/configuration/settings.rb +2 -2
- data/lib/datadog/tracing/contrib/rack/ext.rb +33 -33
- data/lib/datadog/tracing/contrib/rack/header_collection.rb +3 -3
- data/lib/datadog/tracing/contrib/rack/header_tagging.rb +4 -4
- data/lib/datadog/tracing/contrib/rack/integration.rb +6 -6
- data/lib/datadog/tracing/contrib/rack/middlewares.rb +24 -24
- data/lib/datadog/tracing/contrib/rack/patcher.rb +3 -3
- data/lib/datadog/tracing/contrib/rack/request_queue.rb +3 -3
- data/lib/datadog/tracing/contrib/rack/route_inference.rb +11 -11
- data/lib/datadog/tracing/contrib/rack/trace_proxy_middleware.rb +15 -15
- data/lib/datadog/tracing/contrib/rails/auto_instrument_railtie.rb +1 -1
- data/lib/datadog/tracing/contrib/rails/configuration/settings.rb +3 -3
- data/lib/datadog/tracing/contrib/rails/ext.rb +15 -15
- data/lib/datadog/tracing/contrib/rails/framework.rb +11 -11
- data/lib/datadog/tracing/contrib/rails/integration.rb +5 -5
- data/lib/datadog/tracing/contrib/rails/middlewares.rb +1 -1
- data/lib/datadog/tracing/contrib/rails/patcher.rb +8 -8
- data/lib/datadog/tracing/contrib/rails/railtie.rb +4 -4
- data/lib/datadog/tracing/contrib/rails/runner.rb +1 -1
- data/lib/datadog/tracing/contrib/rake/configuration/settings.rb +3 -3
- data/lib/datadog/tracing/contrib/rake/ext.rb +12 -12
- data/lib/datadog/tracing/contrib/rake/instrumentation.rb +4 -4
- data/lib/datadog/tracing/contrib/rake/integration.rb +5 -5
- data/lib/datadog/tracing/contrib/rake/patcher.rb +3 -3
- data/lib/datadog/tracing/contrib/redis/configuration/resolver.rb +2 -2
- data/lib/datadog/tracing/contrib/redis/configuration/settings.rb +2 -2
- data/lib/datadog/tracing/contrib/redis/ext.rb +16 -16
- data/lib/datadog/tracing/contrib/redis/instrumentation.rb +6 -6
- data/lib/datadog/tracing/contrib/redis/integration.rb +7 -7
- data/lib/datadog/tracing/contrib/redis/patcher.rb +10 -10
- data/lib/datadog/tracing/contrib/redis/quantize.rb +4 -4
- data/lib/datadog/tracing/contrib/redis/tags.rb +5 -5
- data/lib/datadog/tracing/contrib/redis/trace_middleware.rb +5 -5
- data/lib/datadog/tracing/contrib/resque/configuration/settings.rb +2 -2
- data/lib/datadog/tracing/contrib/resque/ext.rb +7 -7
- data/lib/datadog/tracing/contrib/resque/integration.rb +5 -5
- data/lib/datadog/tracing/contrib/resque/patcher.rb +3 -3
- data/lib/datadog/tracing/contrib/resque/resque_job.rb +5 -5
- data/lib/datadog/tracing/contrib/rest_client/configuration/settings.rb +2 -2
- data/lib/datadog/tracing/contrib/rest_client/ext.rb +10 -10
- data/lib/datadog/tracing/contrib/rest_client/integration.rb +6 -6
- data/lib/datadog/tracing/contrib/rest_client/patcher.rb +2 -2
- data/lib/datadog/tracing/contrib/rest_client/request_patch.rb +5 -5
- data/lib/datadog/tracing/contrib/roda/configuration/settings.rb +2 -2
- data/lib/datadog/tracing/contrib/roda/ext.rb +6 -6
- data/lib/datadog/tracing/contrib/roda/instrumentation.rb +4 -4
- data/lib/datadog/tracing/contrib/roda/integration.rb +6 -6
- data/lib/datadog/tracing/contrib/roda/patcher.rb +3 -3
- data/lib/datadog/tracing/contrib/semantic_logger/configuration/settings.rb +2 -2
- data/lib/datadog/tracing/contrib/semantic_logger/ext.rb +1 -1
- data/lib/datadog/tracing/contrib/semantic_logger/integration.rb +5 -5
- data/lib/datadog/tracing/contrib/semantic_logger/patcher.rb +2 -2
- data/lib/datadog/tracing/contrib/sequel/configuration/settings.rb +2 -2
- data/lib/datadog/tracing/contrib/sequel/database.rb +6 -10
- data/lib/datadog/tracing/contrib/sequel/dataset.rb +5 -5
- data/lib/datadog/tracing/contrib/sequel/ext.rb +12 -8
- data/lib/datadog/tracing/contrib/sequel/integration.rb +5 -5
- data/lib/datadog/tracing/contrib/sequel/patcher.rb +3 -3
- data/lib/datadog/tracing/contrib/sequel/utils.rb +115 -10
- data/lib/datadog/tracing/contrib/shoryuken/configuration/settings.rb +2 -2
- data/lib/datadog/tracing/contrib/shoryuken/ext.rb +12 -12
- data/lib/datadog/tracing/contrib/shoryuken/integration.rb +6 -6
- data/lib/datadog/tracing/contrib/shoryuken/patcher.rb +1 -1
- data/lib/datadog/tracing/contrib/shoryuken/tracer.rb +2 -2
- data/lib/datadog/tracing/contrib/sidekiq/client_tracer.rb +8 -8
- data/lib/datadog/tracing/contrib/sidekiq/configuration/settings.rb +2 -2
- data/lib/datadog/tracing/contrib/sidekiq/distributed/propagation.rb +9 -9
- data/lib/datadog/tracing/contrib/sidekiq/ext.rb +30 -30
- data/lib/datadog/tracing/contrib/sidekiq/integration.rb +7 -7
- data/lib/datadog/tracing/contrib/sidekiq/patcher.rb +8 -8
- data/lib/datadog/tracing/contrib/sidekiq/server_tracer.rb +14 -14
- data/lib/datadog/tracing/contrib/sidekiq/utils.rb +9 -9
- data/lib/datadog/tracing/contrib/sidekiq.rb +6 -6
- data/lib/datadog/tracing/contrib/sinatra/configuration/settings.rb +2 -2
- data/lib/datadog/tracing/contrib/sinatra/env.rb +6 -6
- data/lib/datadog/tracing/contrib/sinatra/ext.rb +17 -17
- data/lib/datadog/tracing/contrib/sinatra/framework.rb +2 -2
- data/lib/datadog/tracing/contrib/sinatra/integration.rb +5 -5
- data/lib/datadog/tracing/contrib/sinatra/patcher.rb +5 -5
- data/lib/datadog/tracing/contrib/sinatra/tracer.rb +10 -10
- data/lib/datadog/tracing/contrib/sinatra/tracer_middleware.rb +8 -8
- data/lib/datadog/tracing/contrib/sneakers/configuration/settings.rb +1 -1
- data/lib/datadog/tracing/contrib/sneakers/ext.rb +12 -12
- data/lib/datadog/tracing/contrib/sneakers/integration.rb +7 -7
- data/lib/datadog/tracing/contrib/sneakers/patcher.rb +2 -2
- data/lib/datadog/tracing/contrib/sneakers/tracer.rb +3 -3
- data/lib/datadog/tracing/contrib/span_attribute_schema.rb +2 -2
- data/lib/datadog/tracing/contrib/status_range_env_parser.rb +2 -2
- data/lib/datadog/tracing/contrib/status_range_matcher.rb +1 -1
- data/lib/datadog/tracing/contrib/stripe/configuration/settings.rb +2 -2
- data/lib/datadog/tracing/contrib/stripe/ext.rb +12 -12
- data/lib/datadog/tracing/contrib/stripe/integration.rb +5 -5
- data/lib/datadog/tracing/contrib/stripe/patcher.rb +2 -2
- data/lib/datadog/tracing/contrib/stripe/request.rb +3 -3
- data/lib/datadog/tracing/contrib/sucker_punch/configuration/settings.rb +2 -2
- data/lib/datadog/tracing/contrib/sucker_punch/exception_handler.rb +1 -1
- data/lib/datadog/tracing/contrib/sucker_punch/ext.rb +13 -13
- data/lib/datadog/tracing/contrib/sucker_punch/instrumentation.rb +4 -4
- data/lib/datadog/tracing/contrib/sucker_punch/integration.rb +5 -5
- data/lib/datadog/tracing/contrib/sucker_punch/patcher.rb +4 -4
- data/lib/datadog/tracing/contrib/trilogy/configuration/settings.rb +3 -3
- data/lib/datadog/tracing/contrib/trilogy/ext.rb +11 -11
- data/lib/datadog/tracing/contrib/trilogy/instrumentation.rb +6 -6
- data/lib/datadog/tracing/contrib/trilogy/integration.rb +5 -5
- data/lib/datadog/tracing/contrib/trilogy/patcher.rb +2 -2
- data/lib/datadog/tracing/contrib/utils/database.rb +5 -5
- data/lib/datadog/tracing/contrib/utils/quantization/hash_formatter.rb +1 -1
- data/lib/datadog/tracing/contrib/utils/quantization/http.rb +10 -10
- data/lib/datadog/tracing/contrib/waterdrop/configuration/settings.rb +2 -2
- data/lib/datadog/tracing/contrib/waterdrop/distributed/propagation.rb +8 -8
- data/lib/datadog/tracing/contrib/waterdrop/ext.rb +4 -4
- data/lib/datadog/tracing/contrib/waterdrop/integration.rb +5 -5
- data/lib/datadog/tracing/contrib/waterdrop/middleware.rb +2 -2
- data/lib/datadog/tracing/contrib/waterdrop/patcher.rb +7 -7
- data/lib/datadog/tracing/contrib/waterdrop/producer.rb +3 -3
- data/lib/datadog/tracing/contrib/waterdrop.rb +6 -6
- data/lib/datadog/tracing/contrib.rb +54 -54
- data/lib/datadog/tracing/correlation.rb +10 -10
- data/lib/datadog/tracing/diagnostics/environment_logger.rb +9 -9
- data/lib/datadog/tracing/diagnostics/ext.rb +19 -19
- data/lib/datadog/tracing/diagnostics/health.rb +1 -1
- data/lib/datadog/tracing/distributed/b3_multi.rb +8 -8
- data/lib/datadog/tracing/distributed/b3_single.rb +4 -4
- data/lib/datadog/tracing/distributed/baggage.rb +28 -27
- data/lib/datadog/tracing/distributed/datadog.rb +21 -21
- data/lib/datadog/tracing/distributed/datadog_tags_codec.rb +3 -3
- data/lib/datadog/tracing/distributed/fetcher.rb +1 -1
- data/lib/datadog/tracing/distributed/helpers.rb +3 -3
- data/lib/datadog/tracing/distributed/propagation.rb +12 -12
- data/lib/datadog/tracing/distributed/propagation_policy.rb +5 -0
- data/lib/datadog/tracing/distributed/trace_context.rb +33 -33
- data/lib/datadog/tracing/event.rb +1 -1
- data/lib/datadog/tracing/ext.rb +9 -0
- data/lib/datadog/tracing/metadata/analytics.rb +2 -2
- data/lib/datadog/tracing/metadata/errors.rb +4 -4
- data/lib/datadog/tracing/metadata/ext.rb +69 -69
- data/lib/datadog/tracing/metadata/metastruct.rb +1 -1
- data/lib/datadog/tracing/metadata/metastruct_tagging.rb +1 -1
- data/lib/datadog/tracing/metadata/tagging.rb +2 -2
- data/lib/datadog/tracing/metadata.rb +4 -4
- data/lib/datadog/tracing/pipeline/span_filter.rb +2 -2
- data/lib/datadog/tracing/pipeline.rb +2 -2
- data/lib/datadog/tracing/remote.rb +45 -7
- data/lib/datadog/tracing/sampling/all_sampler.rb +1 -1
- data/lib/datadog/tracing/sampling/ext.rb +8 -8
- data/lib/datadog/tracing/sampling/matcher.rb +4 -4
- data/lib/datadog/tracing/sampling/priority_sampler.rb +4 -4
- data/lib/datadog/tracing/sampling/rate_by_key_sampler.rb +3 -3
- data/lib/datadog/tracing/sampling/rate_by_service_sampler.rb +2 -2
- data/lib/datadog/tracing/sampling/rate_sampler.rb +2 -2
- data/lib/datadog/tracing/sampling/rule.rb +4 -4
- data/lib/datadog/tracing/sampling/rule_sampler.rb +12 -12
- data/lib/datadog/tracing/sampling/sampler.rb +2 -2
- data/lib/datadog/tracing/sampling/span/ext.rb +3 -3
- data/lib/datadog/tracing/sampling/span/matcher.rb +2 -2
- data/lib/datadog/tracing/sampling/span/rule.rb +1 -1
- data/lib/datadog/tracing/sampling/span/rule_parser.rb +8 -8
- data/lib/datadog/tracing/span.rb +8 -8
- data/lib/datadog/tracing/span_event.rb +5 -5
- data/lib/datadog/tracing/span_operation.rb +21 -21
- data/lib/datadog/tracing/sync_writer.rb +12 -7
- data/lib/datadog/tracing/trace_operation.rb +11 -11
- data/lib/datadog/tracing/trace_segment.rb +10 -10
- data/lib/datadog/tracing/tracer.rb +23 -15
- data/lib/datadog/tracing/transport/http/client.rb +4 -4
- data/lib/datadog/tracing/transport/http/statistics.rb +2 -2
- data/lib/datadog/tracing/transport/http/traces.rb +8 -8
- data/lib/datadog/tracing/transport/http.rb +10 -10
- data/lib/datadog/tracing/transport/io/client.rb +2 -2
- data/lib/datadog/tracing/transport/io/response.rb +1 -1
- data/lib/datadog/tracing/transport/io/traces.rb +4 -4
- data/lib/datadog/tracing/transport/io.rb +3 -3
- data/lib/datadog/tracing/transport/native/response.rb +71 -0
- data/lib/datadog/tracing/transport/native.rb +363 -0
- data/lib/datadog/tracing/transport/serializable_trace.rb +19 -19
- data/lib/datadog/tracing/transport/statistics.rb +2 -2
- data/lib/datadog/tracing/transport/trace_formatter.rb +10 -10
- data/lib/datadog/tracing/transport/traces.rb +8 -8
- data/lib/datadog/tracing/utils.rb +2 -2
- data/lib/datadog/tracing/workers.rb +2 -2
- data/lib/datadog/tracing/writer.rb +21 -8
- data/lib/datadog/tracing.rb +3 -3
- data/lib/datadog/version.rb +4 -4
- data/lib/datadog.rb +13 -12
- metadata +33 -8
|
@@ -1,20 +1,19 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
2
|
|
|
3
|
-
require
|
|
4
|
-
|
|
5
|
-
require_relative
|
|
6
|
-
require_relative
|
|
7
|
-
require_relative
|
|
8
|
-
require_relative
|
|
9
|
-
require_relative
|
|
10
|
-
require_relative
|
|
11
|
-
require_relative
|
|
12
|
-
require_relative
|
|
13
|
-
require_relative
|
|
14
|
-
|
|
15
|
-
require_relative
|
|
16
|
-
require_relative
|
|
17
|
-
require_relative '../../symbol_database/configuration'
|
|
3
|
+
require "logger"
|
|
4
|
+
|
|
5
|
+
require_relative "base"
|
|
6
|
+
require_relative "ext"
|
|
7
|
+
require_relative "../environment/execution"
|
|
8
|
+
require_relative "../environment/ext"
|
|
9
|
+
require_relative "../environment/process"
|
|
10
|
+
require_relative "../runtime/ext"
|
|
11
|
+
require_relative "../telemetry/ext"
|
|
12
|
+
require_relative "../remote/ext"
|
|
13
|
+
require_relative "../../profiling/ext"
|
|
14
|
+
|
|
15
|
+
require_relative "../../tracing/configuration/settings"
|
|
16
|
+
require_relative "../../opentelemetry/configuration/settings"
|
|
18
17
|
|
|
19
18
|
module Datadog
|
|
20
19
|
module Core
|
|
@@ -135,13 +134,13 @@ module Datadog
|
|
|
135
134
|
value = value.strip.downcase
|
|
136
135
|
# Debug is enabled when DD_TRACE_DEBUG is true or 1 OR
|
|
137
136
|
# when OTEL_LOG_LEVEL is set to debug
|
|
138
|
-
[
|
|
137
|
+
["true", "1", "debug"].include?(value)
|
|
139
138
|
end
|
|
140
139
|
end
|
|
141
140
|
o.after_set do |enabled|
|
|
142
141
|
# Enable rich debug print statements.
|
|
143
142
|
# We do not need to unnecessarily load 'pp' unless in debugging mode.
|
|
144
|
-
require
|
|
143
|
+
require "pp" if enabled # standard:disable Lint/RedundantRequireStatement
|
|
145
144
|
end
|
|
146
145
|
end
|
|
147
146
|
|
|
@@ -277,7 +276,7 @@ module Datadog
|
|
|
277
276
|
# @default `DD_PROFILING_ALLOCATION_ENABLED` environment variable as a boolean, otherwise `false`
|
|
278
277
|
option :allocation_enabled do |o|
|
|
279
278
|
o.type :bool
|
|
280
|
-
o.env
|
|
279
|
+
o.env "DD_PROFILING_ALLOCATION_ENABLED"
|
|
281
280
|
o.default false
|
|
282
281
|
end
|
|
283
282
|
|
|
@@ -325,7 +324,7 @@ module Datadog
|
|
|
325
324
|
# @default `DD_PROFILING_GC_ENABLED` environment variable, otherwise `true`
|
|
326
325
|
option :gc_enabled do |o|
|
|
327
326
|
o.type :bool
|
|
328
|
-
o.env
|
|
327
|
+
o.env "DD_PROFILING_GC_ENABLED"
|
|
329
328
|
o.default true
|
|
330
329
|
end
|
|
331
330
|
|
|
@@ -348,7 +347,7 @@ module Datadog
|
|
|
348
347
|
# @default `DD_PROFILING_EXPERIMENTAL_HEAP_ENABLED` environment variable as a boolean, otherwise `false`
|
|
349
348
|
option :experimental_heap_enabled do |o|
|
|
350
349
|
o.type :bool
|
|
351
|
-
o.env
|
|
350
|
+
o.env "DD_PROFILING_EXPERIMENTAL_HEAP_ENABLED"
|
|
352
351
|
o.default false
|
|
353
352
|
end
|
|
354
353
|
|
|
@@ -362,7 +361,7 @@ module Datadog
|
|
|
362
361
|
# follows the value of `experimental_heap_enabled`.
|
|
363
362
|
option :experimental_heap_size_enabled do |o|
|
|
364
363
|
o.type :bool
|
|
365
|
-
o.env
|
|
364
|
+
o.env "DD_PROFILING_EXPERIMENTAL_HEAP_SIZE_ENABLED"
|
|
366
365
|
o.default true # This gets ANDed with experimental_heap_enabled in the profiler component.
|
|
367
366
|
end
|
|
368
367
|
|
|
@@ -380,7 +379,7 @@ module Datadog
|
|
|
380
379
|
# @default `DD_PROFILING_EXPERIMENTAL_HEAP_SAMPLE_RATE` environment variable, otherwise `1`.
|
|
381
380
|
option :experimental_heap_sample_rate do |o|
|
|
382
381
|
o.type :int
|
|
383
|
-
o.env
|
|
382
|
+
o.env "DD_PROFILING_EXPERIMENTAL_HEAP_SAMPLE_RATE"
|
|
384
383
|
o.default 1
|
|
385
384
|
end
|
|
386
385
|
|
|
@@ -391,20 +390,20 @@ module Datadog
|
|
|
391
390
|
# @default `DD_PROFILING_SKIP_MYSQL2_CHECK` environment variable, otherwise `false`
|
|
392
391
|
option :skip_mysql2_check do |o|
|
|
393
392
|
o.type :bool
|
|
394
|
-
o.env
|
|
393
|
+
o.env "DD_PROFILING_SKIP_MYSQL2_CHECK"
|
|
395
394
|
o.default false
|
|
396
395
|
end
|
|
397
396
|
|
|
398
397
|
# DEV-3.0: Remove `timeline_enabled` option
|
|
399
398
|
option :timeline_enabled do |o|
|
|
400
399
|
o.type :bool
|
|
401
|
-
o.env
|
|
400
|
+
o.env "DD_PROFILING_TIMELINE_ENABLED"
|
|
402
401
|
o.default true
|
|
403
402
|
o.after_set do |_, _, precedence|
|
|
404
403
|
unless precedence == Datadog::Core::Configuration::Option::Precedence::DEFAULT
|
|
405
404
|
Core.log_deprecation(key: :timeline_enabled) do
|
|
406
|
-
|
|
407
|
-
|
|
405
|
+
"The profiling.advanced.timeline_enabled setting has been deprecated for removal and no longer does anything. " \
|
|
406
|
+
"Please remove it from your Datadog.configure block and do not set DD_PROFILING_TIMELINE_ENABLED."
|
|
408
407
|
end
|
|
409
408
|
end
|
|
410
409
|
end
|
|
@@ -430,12 +429,12 @@ module Datadog
|
|
|
430
429
|
#
|
|
431
430
|
# @default `DD_PROFILING_NO_SIGNALS_WORKAROUND_ENABLED` environment variable as a boolean, otherwise `:auto`
|
|
432
431
|
option :no_signals_workaround_enabled do |o|
|
|
433
|
-
o.env
|
|
432
|
+
o.env "DD_PROFILING_NO_SIGNALS_WORKAROUND_ENABLED"
|
|
434
433
|
o.default :auto
|
|
435
434
|
o.env_parser do |value|
|
|
436
435
|
if value
|
|
437
436
|
value = value.strip.downcase
|
|
438
|
-
[
|
|
437
|
+
["true", "1"].include?(value)
|
|
439
438
|
end
|
|
440
439
|
end
|
|
441
440
|
end
|
|
@@ -449,7 +448,7 @@ module Datadog
|
|
|
449
448
|
# @default `DD_PROFILING_DIR_INTERRUPTION_WORKAROUND_ENABLED` environment variable as a boolean,
|
|
450
449
|
# otherwise `true`
|
|
451
450
|
option :dir_interruption_workaround_enabled do |o|
|
|
452
|
-
o.env
|
|
451
|
+
o.env "DD_PROFILING_DIR_INTERRUPTION_WORKAROUND_ENABLED"
|
|
453
452
|
o.type :bool
|
|
454
453
|
o.default true
|
|
455
454
|
end
|
|
@@ -466,7 +465,7 @@ module Datadog
|
|
|
466
465
|
# @default `DD_PROFILING_SHUTDOWN_ON_EXEC_ENABLED` environment variable as a boolean,
|
|
467
466
|
# otherwise `true`
|
|
468
467
|
option :shutdown_on_exec_enabled do |o|
|
|
469
|
-
o.env
|
|
468
|
+
o.env "DD_PROFILING_SHUTDOWN_ON_EXEC_ENABLED"
|
|
470
469
|
o.type :bool
|
|
471
470
|
o.default true
|
|
472
471
|
end
|
|
@@ -484,7 +483,7 @@ module Datadog
|
|
|
484
483
|
# @default `DD_PROFILING_OVERHEAD_TARGET_PERCENTAGE` as a float, otherwise 2.0
|
|
485
484
|
option :overhead_target_percentage do |o|
|
|
486
485
|
o.type :float
|
|
487
|
-
o.env
|
|
486
|
+
o.env "DD_PROFILING_OVERHEAD_TARGET_PERCENTAGE"
|
|
488
487
|
o.default 2.0
|
|
489
488
|
end
|
|
490
489
|
|
|
@@ -495,7 +494,7 @@ module Datadog
|
|
|
495
494
|
# @default `DD_PROFILING_UPLOAD_PERIOD` environment variable, otherwise 60
|
|
496
495
|
option :upload_period_seconds do |o|
|
|
497
496
|
o.type :int
|
|
498
|
-
o.env
|
|
497
|
+
o.env "DD_PROFILING_UPLOAD_PERIOD"
|
|
499
498
|
o.default 60
|
|
500
499
|
end
|
|
501
500
|
|
|
@@ -504,8 +503,8 @@ module Datadog
|
|
|
504
503
|
o.after_set do |_, _, precedence|
|
|
505
504
|
unless precedence == Datadog::Core::Configuration::Option::Precedence::DEFAULT
|
|
506
505
|
Core.log_deprecation(key: :experimental_crash_tracking_enabled) do
|
|
507
|
-
|
|
508
|
-
|
|
506
|
+
"The profiling.advanced.experimental_crash_tracking_enabled setting has been deprecated for removal " \
|
|
507
|
+
"and no longer does anything. Please remove it from your Datadog.configure block."
|
|
509
508
|
end
|
|
510
509
|
end
|
|
511
510
|
end
|
|
@@ -518,9 +517,9 @@ module Datadog
|
|
|
518
517
|
o.after_set do |_, _, precedence|
|
|
519
518
|
unless precedence == Datadog::Core::Configuration::Option::Precedence::DEFAULT
|
|
520
519
|
Datadog.logger.warn(
|
|
521
|
-
|
|
522
|
-
|
|
523
|
-
|
|
520
|
+
"The profiling.advanced.preview_gvl_enabled setting has been deprecated for removal and " \
|
|
521
|
+
"no longer does anything. Please remove it from your Datadog.configure block. " \
|
|
522
|
+
"GVL profiling is now controlled by the profiling.advanced.gvl_enabled setting instead."
|
|
524
523
|
)
|
|
525
524
|
end
|
|
526
525
|
end
|
|
@@ -534,7 +533,7 @@ module Datadog
|
|
|
534
533
|
option :gvl_enabled do |o|
|
|
535
534
|
o.type :bool
|
|
536
535
|
# Note: Deprecated alias (DD_PROFILING_PREVIEW_GVL_ENABLED) defined in supported-configurations.json
|
|
537
|
-
o.env
|
|
536
|
+
o.env "DD_PROFILING_GVL_ENABLED"
|
|
538
537
|
o.default true
|
|
539
538
|
end
|
|
540
539
|
|
|
@@ -556,24 +555,24 @@ module Datadog
|
|
|
556
555
|
#
|
|
557
556
|
# @default false
|
|
558
557
|
option :preview_otel_context_enabled do |o|
|
|
559
|
-
o.env
|
|
558
|
+
o.env "DD_PROFILING_PREVIEW_OTEL_CONTEXT_ENABLED"
|
|
560
559
|
o.default false
|
|
561
560
|
o.env_parser do |value|
|
|
562
561
|
if value
|
|
563
562
|
value = value.strip.downcase
|
|
564
|
-
if [
|
|
563
|
+
if ["only", "both"].include?(value)
|
|
565
564
|
value
|
|
566
|
-
elsif [
|
|
567
|
-
|
|
565
|
+
elsif ["true", "1"].include?(value)
|
|
566
|
+
"both"
|
|
568
567
|
else
|
|
569
|
-
|
|
568
|
+
"false"
|
|
570
569
|
end
|
|
571
570
|
end
|
|
572
571
|
end
|
|
573
572
|
o.setter do |value|
|
|
574
573
|
if value == true
|
|
575
574
|
:both
|
|
576
|
-
elsif [
|
|
575
|
+
elsif ["only", "both", :only, :both].include?(value)
|
|
577
576
|
value.to_sym
|
|
578
577
|
else
|
|
579
578
|
false
|
|
@@ -589,7 +588,7 @@ module Datadog
|
|
|
589
588
|
# @default true
|
|
590
589
|
option :heap_clean_after_gc_enabled do |o|
|
|
591
590
|
o.type :bool
|
|
592
|
-
o.env
|
|
591
|
+
o.env "DD_PROFILING_HEAP_CLEAN_AFTER_GC_ENABLED"
|
|
593
592
|
o.default true
|
|
594
593
|
end
|
|
595
594
|
|
|
@@ -599,7 +598,7 @@ module Datadog
|
|
|
599
598
|
# @default true
|
|
600
599
|
option :native_filenames_enabled do |o|
|
|
601
600
|
o.type :bool
|
|
602
|
-
o.env
|
|
601
|
+
o.env "DD_PROFILING_NATIVE_FILENAMES_ENABLED"
|
|
603
602
|
o.default true
|
|
604
603
|
end
|
|
605
604
|
|
|
@@ -616,9 +615,9 @@ module Datadog
|
|
|
616
615
|
# @default true on Ruby 3.2.5+ / Ruby 3.3.4+, false on older Rubies
|
|
617
616
|
option :sighandler_sampling_enabled do |o|
|
|
618
617
|
o.type :bool
|
|
619
|
-
o.env
|
|
618
|
+
o.env "DD_PROFILING_SIGHANDLER_SAMPLING_ENABLED"
|
|
620
619
|
o.default do
|
|
621
|
-
RubyVersion.is?(
|
|
620
|
+
RubyVersion.is?(">= 3.2.5") && !RubyVersion.is?(">= 3.3", "< 3.3.4")
|
|
622
621
|
end
|
|
623
622
|
end
|
|
624
623
|
|
|
@@ -642,9 +641,16 @@ module Datadog
|
|
|
642
641
|
# @default `DD_PROFILING_EXPERIMENTAL_USE_SYSTEM_DNS` environment variable as a boolean, otherwise `true`
|
|
643
642
|
option :experimental_use_system_dns do |o|
|
|
644
643
|
o.type :bool
|
|
645
|
-
o.env
|
|
644
|
+
o.env "DD_PROFILING_EXPERIMENTAL_USE_SYSTEM_DNS"
|
|
646
645
|
o.default true
|
|
647
646
|
end
|
|
647
|
+
|
|
648
|
+
# Whether the profiler samples include the class/module name in stack frames, like `Foo::Bar#baz`, or not (`baz`)
|
|
649
|
+
option :experimental_show_classes_enabled do |o|
|
|
650
|
+
o.type :bool
|
|
651
|
+
o.env "DD_PROFILING_EXPERIMENTAL_SHOW_CLASSES_ENABLED"
|
|
652
|
+
o.default false
|
|
653
|
+
end
|
|
648
654
|
end
|
|
649
655
|
|
|
650
656
|
# @public_api
|
|
@@ -676,7 +682,7 @@ module Datadog
|
|
|
676
682
|
option :experimental_runtime_id_enabled do |o|
|
|
677
683
|
o.type :bool
|
|
678
684
|
# Note: Alias (DD_TRACE_EXPERIMENTAL_RUNTIME_ID_ENABLED) defined in supported-configurations.json
|
|
679
|
-
o.env
|
|
685
|
+
o.env "DD_RUNTIME_METRICS_RUNTIME_ID_ENABLED"
|
|
680
686
|
o.default false
|
|
681
687
|
end
|
|
682
688
|
|
|
@@ -740,7 +746,7 @@ module Datadog
|
|
|
740
746
|
result = {}
|
|
741
747
|
unless env_value.nil? || env_value.empty?
|
|
742
748
|
# falling back to comma as separator
|
|
743
|
-
sep = env_value.include?(
|
|
749
|
+
sep = env_value.include?(",") ? "," : " "
|
|
744
750
|
# split by separator
|
|
745
751
|
env_value.split(sep).each do |tag|
|
|
746
752
|
tag.strip!
|
|
@@ -748,12 +754,12 @@ module Datadog
|
|
|
748
754
|
|
|
749
755
|
# tag by : or = (for OpenTelemetry)
|
|
750
756
|
key, val = tag.split(/[:=]/, 2).map(&:strip)
|
|
751
|
-
val ||=
|
|
757
|
+
val ||= ""
|
|
752
758
|
# maps OpenTelemetry semantic attributes to Datadog tags
|
|
753
759
|
key = case key.downcase
|
|
754
|
-
when
|
|
755
|
-
when
|
|
756
|
-
when
|
|
760
|
+
when "deployment.environment" then "env"
|
|
761
|
+
when "service.version" then "version"
|
|
762
|
+
when "service.name" then "service"
|
|
757
763
|
else key
|
|
758
764
|
end
|
|
759
765
|
result[key] = val unless key.empty?
|
|
@@ -793,55 +799,40 @@ module Datadog
|
|
|
793
799
|
end
|
|
794
800
|
end
|
|
795
801
|
|
|
796
|
-
#
|
|
797
|
-
#
|
|
798
|
-
#
|
|
799
|
-
#
|
|
800
|
-
# For [Timecop](https://rubygems.org/gems/timecop), for example, `->{ Time.now_without_mock_time }`
|
|
801
|
-
# allows Datadog features to use the real wall time when time is frozen.
|
|
802
|
-
#
|
|
803
|
-
# @default `->{ Time.now }`
|
|
804
|
-
# @return [Proc<Time>]
|
|
802
|
+
# Deprecated and no longer does anything.
|
|
803
|
+
# This gem already takes care to not be affected by timecop.
|
|
804
|
+
# DEV-3.0: Remove `time_now_provider` option
|
|
805
805
|
option :time_now_provider do |o|
|
|
806
|
-
o.default_proc { ::Time.now }
|
|
806
|
+
o.default_proc { Datadog::Core::Utils::Time.now }
|
|
807
807
|
o.type :proc
|
|
808
|
-
|
|
809
|
-
|
|
810
|
-
|
|
811
|
-
|
|
812
|
-
|
|
813
|
-
|
|
814
|
-
|
|
815
|
-
|
|
816
|
-
|
|
817
|
-
Core::Utils::Time.now_provider = default
|
|
808
|
+
o.after_set do |_, _, precedence|
|
|
809
|
+
unless precedence == Datadog::Core::Configuration::Option::Precedence::DEFAULT
|
|
810
|
+
unless defined?(Datadog::CI) # the datadog-ci gem needs to work with any datadog gem version and not warn
|
|
811
|
+
Core.log_deprecation(key: :time_now_provider) do
|
|
812
|
+
"The time_now_provider setting has been deprecated for removal " \
|
|
813
|
+
"and no longer does anything. Please remove it from your Datadog.configure block. " \
|
|
814
|
+
"The datadog gem always uses the real non-mocked time, even when the timecop gem monkey-patches Time."
|
|
815
|
+
end
|
|
816
|
+
end
|
|
818
817
|
end
|
|
819
818
|
end
|
|
820
819
|
end
|
|
821
820
|
|
|
822
|
-
#
|
|
823
|
-
# gem
|
|
824
|
-
#
|
|
825
|
-
# It must respect the interface of [Datadog::Core::Utils::Time#get_time] method.
|
|
826
|
-
#
|
|
827
|
-
# For [Timecop](https://rubygems.org/gems/timecop), for example,
|
|
828
|
-
# `->(unit = :float_second) { ::Process.clock_gettime_without_mock(::Process::CLOCK_MONOTONIC, unit) }`
|
|
829
|
-
# allows Datadog features to use the real monotonic time when time is frozen with
|
|
830
|
-
# `Timecop.mock_process_clock = true`.
|
|
831
|
-
#
|
|
832
|
-
# @default `->(unit = :float_second) { ::Process.clock_gettime(::Process::CLOCK_MONOTONIC, unit)}`
|
|
833
|
-
# @return [Proc<Numeric>]
|
|
821
|
+
# Deprecated and no longer does anything.
|
|
822
|
+
# This gem already takes care to not be affected by timecop.
|
|
823
|
+
# DEV-3.0: Remove `get_time_provider` option
|
|
834
824
|
option :get_time_provider do |o|
|
|
835
|
-
o.default_proc { |unit = :float_second| ::
|
|
825
|
+
o.default_proc { |unit = :float_second| Datadog::Core::Utils::Time.get_time(unit) }
|
|
836
826
|
o.type :proc
|
|
837
|
-
|
|
838
|
-
|
|
839
|
-
|
|
840
|
-
|
|
841
|
-
|
|
842
|
-
|
|
843
|
-
|
|
844
|
-
|
|
827
|
+
o.after_set do |_, _, precedence|
|
|
828
|
+
unless precedence == Datadog::Core::Configuration::Option::Precedence::DEFAULT
|
|
829
|
+
unless defined?(Datadog::CI) # the datadog-ci gem needs to work with any datadog gem version and not warn
|
|
830
|
+
Core.log_deprecation(key: :get_time_provider) do
|
|
831
|
+
"The get_time_provider setting has been deprecated for removal " \
|
|
832
|
+
"and no longer does anything. Please remove it from your Datadog.configure block. " \
|
|
833
|
+
"The datadog gem always uses the real non-mocked time, even when the timecop gem monkey-patches Process.clock_gettime."
|
|
834
|
+
end
|
|
835
|
+
end
|
|
845
836
|
end
|
|
846
837
|
end
|
|
847
838
|
end
|
|
@@ -880,8 +871,8 @@ module Datadog
|
|
|
880
871
|
o.default do
|
|
881
872
|
if Datadog::Core::Environment::Execution.development?
|
|
882
873
|
Datadog.logger.debug do
|
|
883
|
-
|
|
884
|
-
|
|
874
|
+
"Development environment detected, disabling Telemetry. " \
|
|
875
|
+
"You can enable it with DD_INSTRUMENTATION_TELEMETRY_ENABLED=true."
|
|
885
876
|
end
|
|
886
877
|
false
|
|
887
878
|
else
|
|
@@ -1037,8 +1028,8 @@ module Datadog
|
|
|
1037
1028
|
o.default do
|
|
1038
1029
|
if Datadog::Core::Environment::Execution.development?
|
|
1039
1030
|
Datadog.logger.debug do
|
|
1040
|
-
|
|
1041
|
-
|
|
1031
|
+
"Development environment detected, disabling Remote Configuration. " \
|
|
1032
|
+
"You can enable it with DD_REMOTE_CONFIGURATION_ENABLED=true."
|
|
1042
1033
|
end
|
|
1043
1034
|
false
|
|
1044
1035
|
else
|
|
@@ -1087,7 +1078,7 @@ module Datadog
|
|
|
1087
1078
|
option :enabled do |o|
|
|
1088
1079
|
o.type :bool
|
|
1089
1080
|
o.default true
|
|
1090
|
-
o.env
|
|
1081
|
+
o.env "DD_CRASHTRACKING_ENABLED"
|
|
1091
1082
|
end
|
|
1092
1083
|
end
|
|
1093
1084
|
|
|
@@ -1096,7 +1087,7 @@ module Datadog
|
|
|
1096
1087
|
# @default `DD_EXPERIMENTAL_PROPAGATE_PROCESS_TAGS_ENABLED` environment variable, otherwise `true`
|
|
1097
1088
|
# @return [Boolean]
|
|
1098
1089
|
option :experimental_propagate_process_tags_enabled do |o|
|
|
1099
|
-
o.env
|
|
1090
|
+
o.env "DD_EXPERIMENTAL_PROPAGATE_PROCESS_TAGS_ENABLED"
|
|
1100
1091
|
o.default true
|
|
1101
1092
|
o.type :bool
|
|
1102
1093
|
end
|
|
@@ -1130,8 +1121,6 @@ module Datadog
|
|
|
1130
1121
|
extend Datadog::Tracing::Configuration::Settings
|
|
1131
1122
|
|
|
1132
1123
|
extend Datadog::OpenTelemetry::Configuration::Settings
|
|
1133
|
-
|
|
1134
|
-
extend Datadog::SymbolDatabase::Configuration::Settings
|
|
1135
1124
|
end
|
|
1136
1125
|
# standard:enable Metrics/BlockLength
|
|
1137
1126
|
end
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
2
|
|
|
3
|
-
require
|
|
3
|
+
require "set"
|
|
4
4
|
|
|
5
5
|
# This file is auto-generated from `supported-configurations.json` by `rake local_config_map:generate`.
|
|
6
6
|
# Do not change manually! Please refer to `docs/AccessEnvironmentVariables.md` for more information.
|
|
@@ -19,10 +19,12 @@ module Datadog
|
|
|
19
19
|
"DD_API_SECURITY_DOWNSTREAM_BODY_ANALYSIS_SAMPLE_RATE",
|
|
20
20
|
"DD_API_SECURITY_ENABLED",
|
|
21
21
|
"DD_API_SECURITY_ENDPOINT_COLLECTION_ENABLED",
|
|
22
|
+
"DD_API_SECURITY_MAX_DOWNSTREAM_BODY_BYTES",
|
|
22
23
|
"DD_API_SECURITY_MAX_DOWNSTREAM_REQUEST_BODY_ANALYSIS",
|
|
23
24
|
"DD_API_SECURITY_REQUEST_SAMPLE_RATE",
|
|
24
25
|
"DD_API_SECURITY_SAMPLE_DELAY",
|
|
25
26
|
"DD_APM_TRACING_ENABLED",
|
|
27
|
+
"DD_APPSEC_AGENTIC_ONBOARDING",
|
|
26
28
|
"DD_APPSEC_AUTOMATED_USER_EVENTS_TRACKING",
|
|
27
29
|
"DD_APPSEC_AUTO_USER_INSTRUMENTATION_MODE",
|
|
28
30
|
"DD_APPSEC_BODY_PARSING_SIZE_LIMIT",
|
|
@@ -49,6 +51,7 @@ module Datadog
|
|
|
49
51
|
"DD_DBM_PROPAGATION_MODE",
|
|
50
52
|
"DD_DISABLE_DATADOG_RAILS",
|
|
51
53
|
"DD_DYNAMIC_INSTRUMENTATION_ENABLED",
|
|
54
|
+
"DD_DYNAMIC_INSTRUMENTATION_MAX_TIME_TO_SERIALIZE",
|
|
52
55
|
"DD_DYNAMIC_INSTRUMENTATION_PROBE_FILE",
|
|
53
56
|
"DD_DYNAMIC_INSTRUMENTATION_REDACTED_IDENTIFIERS",
|
|
54
57
|
"DD_DYNAMIC_INSTRUMENTATION_REDACTED_TYPES",
|
|
@@ -57,8 +60,11 @@ module Datadog
|
|
|
57
60
|
"DD_ERROR_TRACKING_HANDLED_ERRORS",
|
|
58
61
|
"DD_ERROR_TRACKING_HANDLED_ERRORS_INCLUDE",
|
|
59
62
|
"DD_EXPERIMENTAL_FLAGGING_PROVIDER_ENABLED",
|
|
63
|
+
"DD_EXPERIMENTAL_FLAGGING_PROVIDER_SPAN_ENRICHMENT_ENABLED",
|
|
64
|
+
"DD_EXPERIMENTAL_NATIVE_TRANSPORT_ENABLED",
|
|
60
65
|
"DD_EXPERIMENTAL_PROPAGATE_PROCESS_TAGS_ENABLED",
|
|
61
66
|
"DD_EXTERNAL_ENV",
|
|
67
|
+
"DD_FLAGGING_EVALUATION_COUNTS_ENABLED",
|
|
62
68
|
"DD_GIT_COMMIT_SHA",
|
|
63
69
|
"DD_GIT_REPOSITORY_URL",
|
|
64
70
|
"DD_HEALTH_METRICS_ENABLED",
|
|
@@ -81,6 +87,7 @@ module Datadog
|
|
|
81
87
|
"DD_PROFILING_EXPERIMENTAL_HEAP_ENABLED",
|
|
82
88
|
"DD_PROFILING_EXPERIMENTAL_HEAP_SAMPLE_RATE",
|
|
83
89
|
"DD_PROFILING_EXPERIMENTAL_HEAP_SIZE_ENABLED",
|
|
90
|
+
"DD_PROFILING_EXPERIMENTAL_SHOW_CLASSES_ENABLED",
|
|
84
91
|
"DD_PROFILING_EXPERIMENTAL_USE_SYSTEM_DNS",
|
|
85
92
|
"DD_PROFILING_GC_ENABLED",
|
|
86
93
|
"DD_PROFILING_GVL_ENABLED",
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
2
|
|
|
3
|
-
require_relative
|
|
4
|
-
require_relative
|
|
5
|
-
require_relative
|
|
6
|
-
require_relative
|
|
7
|
-
require_relative
|
|
3
|
+
require_relative "configuration/components"
|
|
4
|
+
require_relative "configuration/settings"
|
|
5
|
+
require_relative "telemetry/emitter"
|
|
6
|
+
require_relative "logger"
|
|
7
|
+
require_relative "pin"
|
|
8
8
|
|
|
9
9
|
module Datadog
|
|
10
10
|
module Core
|
|
@@ -239,7 +239,7 @@ module Datadog
|
|
|
239
239
|
rescue ThreadError => e
|
|
240
240
|
logger_without_components.error(
|
|
241
241
|
"Detected deadlock during datadog initialization: #{e.class}: #{e.message}. " \
|
|
242
|
-
|
|
242
|
+
"Please report this at https://github.com/datadog/dd-trace-rb/blob/master/CONTRIBUTING.md#found-a-bug" \
|
|
243
243
|
"\n\tSource:\n\t#{Array(e.backtrace).join("\n\t")}"
|
|
244
244
|
)
|
|
245
245
|
nil
|
|
@@ -296,7 +296,7 @@ module Datadog
|
|
|
296
296
|
|
|
297
297
|
@temp_config_logger ||= begin
|
|
298
298
|
debug_env_value = DATADOG_ENV[Ext::Diagnostics::ENV_DEBUG_ENABLED]&.strip&.downcase
|
|
299
|
-
debug_value = debug_env_value ==
|
|
299
|
+
debug_value = debug_env_value == "true" || debug_env_value == "1"
|
|
300
300
|
|
|
301
301
|
logger = Core::Logger.new($stderr)
|
|
302
302
|
# We cannot access config and the default level is INFO, so we need to set the level manually
|
|
@@ -317,7 +317,7 @@ module Datadog
|
|
|
317
317
|
slow_shutdown = shutdown_thread.join(print_message_treshold_seconds).nil?
|
|
318
318
|
|
|
319
319
|
if slow_shutdown
|
|
320
|
-
logger.info
|
|
320
|
+
logger.info "Reporting remaining data... Press ctrl+c to exit immediately."
|
|
321
321
|
shutdown_thread.join
|
|
322
322
|
end
|
|
323
323
|
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
2
|
|
|
3
|
-
require_relative
|
|
4
|
-
require_relative
|
|
5
|
-
require_relative
|
|
3
|
+
require_relative "utils"
|
|
4
|
+
require_relative "../../environment/process"
|
|
5
|
+
require_relative "../../process_discovery"
|
|
6
6
|
|
|
7
7
|
module Datadog
|
|
8
8
|
module Core
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
2
|
|
|
3
|
-
require
|
|
3
|
+
require "libdatadog"
|
|
4
4
|
|
|
5
|
-
require_relative
|
|
5
|
+
require_relative "tag_builder"
|
|
6
6
|
|
|
7
7
|
module Datadog
|
|
8
8
|
module Core
|
|
@@ -21,11 +21,11 @@ module Datadog
|
|
|
21
21
|
agent_base_url = agent_settings.url
|
|
22
22
|
|
|
23
23
|
ld_library_path = ::Libdatadog.ld_library_path
|
|
24
|
-
logger.warn(
|
|
24
|
+
logger.warn("Missing ld_library_path; cannot enable crash tracking") unless ld_library_path
|
|
25
25
|
|
|
26
26
|
path_to_crashtracking_receiver_binary = ::Libdatadog.path_to_crashtracking_receiver_binary
|
|
27
27
|
unless path_to_crashtracking_receiver_binary
|
|
28
|
-
logger.warn(
|
|
28
|
+
logger.warn("Missing path_to_crashtracking_receiver_binary; cannot enable crash tracking")
|
|
29
29
|
end
|
|
30
30
|
|
|
31
31
|
return unless agent_base_url
|
|
@@ -97,10 +97,10 @@ module Datadog
|
|
|
97
97
|
# @type var frames_data: Array[[String, String, Integer]]
|
|
98
98
|
frames_data = backtrace_slice.map do |loc|
|
|
99
99
|
file = loc.path
|
|
100
|
-
file =
|
|
100
|
+
file = "<unknown>" if file.nil? || file.empty? || !file.is_a?(String)
|
|
101
101
|
|
|
102
102
|
function = loc.label
|
|
103
|
-
function =
|
|
103
|
+
function = "<unknown>" if function.nil? || function.empty? || !function.is_a?(String)
|
|
104
104
|
|
|
105
105
|
line = loc.lineno
|
|
106
106
|
line = 0 if line.nil? || line < 0 || !line.is_a?(Integer)
|
|
@@ -111,7 +111,7 @@ module Datadog
|
|
|
111
111
|
# Add truncation indicator frame if we had to cut off frames
|
|
112
112
|
if was_truncated
|
|
113
113
|
truncated_count = all_backtrace_locations.length - max_exception_stack_frames
|
|
114
|
-
frames_data << [
|
|
114
|
+
frames_data << ["<truncated>", "<truncated #{truncated_count} more frames>", 0]
|
|
115
115
|
end
|
|
116
116
|
|
|
117
117
|
exception_message = exception.message
|
|
@@ -123,12 +123,12 @@ module Datadog
|
|
|
123
123
|
frames_data,
|
|
124
124
|
)
|
|
125
125
|
|
|
126
|
-
logger.debug(
|
|
126
|
+
logger.debug("Crashtracker failed to report unhandled exception to crash tracker") unless success
|
|
127
127
|
end
|
|
128
128
|
|
|
129
129
|
def stop
|
|
130
130
|
self.class._native_stop
|
|
131
|
-
logger.debug(
|
|
131
|
+
logger.debug("Crash tracking stopped successfully")
|
|
132
132
|
rescue => e
|
|
133
133
|
logger.error("Failed to stop crash tracking: #{e.class}: #{e.message}")
|
|
134
134
|
end
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
2
|
|
|
3
|
-
require_relative
|
|
4
|
-
require_relative
|
|
5
|
-
require_relative
|
|
3
|
+
require_relative "../tag_builder"
|
|
4
|
+
require_relative "../utils"
|
|
5
|
+
require_relative "../environment/process"
|
|
6
6
|
|
|
7
7
|
module Datadog
|
|
8
8
|
module Core
|
|
@@ -11,12 +11,12 @@ module Datadog
|
|
|
11
11
|
module TagBuilder
|
|
12
12
|
def self.call(settings)
|
|
13
13
|
hash = Core::TagBuilder.tags(settings).merge(
|
|
14
|
-
|
|
14
|
+
"is_crash" => "true",
|
|
15
15
|
)
|
|
16
16
|
|
|
17
17
|
if settings.experimental_propagate_process_tags_enabled
|
|
18
18
|
process_tags = Environment::Process.serialized
|
|
19
|
-
hash[
|
|
19
|
+
hash["process_tags"] = process_tags unless process_tags.empty?
|
|
20
20
|
end
|
|
21
21
|
|
|
22
22
|
Utils.encode_tags(hash)
|