datadog 2.38.0 → 2.39.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 +20 -1
- data/bin/ddprofrb +4 -4
- data/ext/datadog_profiling_native_extension/collectors_cpu_and_wall_time_worker.c +77 -1
- data/ext/datadog_profiling_native_extension/extconf.rb +1 -1
- data/ext/datadog_profiling_native_extension/setup_signal_handler.c +2 -0
- data/ext/libdatadog_api/extconf.rb +24 -24
- data/ext/libdatadog_api/feature_flags.c +26 -0
- data/ext/libdatadog_extconf_helpers.rb +9 -9
- data/lib/datadog/ai_guard/api_client.rb +2 -2
- data/lib/datadog/ai_guard/component.rb +10 -10
- 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 +11 -11
- 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 +59 -59
- data/lib/datadog/appsec/context.rb +6 -6
- 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 +7 -7
- 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 +26 -26
- 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 +22 -22
- data/lib/datadog/appsec/contrib/graphql/appsec_trace.rb +4 -4
- data/lib/datadog/appsec/contrib/graphql/gateway/multiplex.rb +2 -2
- 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 +14 -18
- data/lib/datadog/appsec/contrib/rack/gateway/response.rb +1 -1
- data/lib/datadog/appsec/contrib/rack/gateway/watcher.rb +24 -24
- data/lib/datadog/appsec/contrib/rack/input_peeker.rb +6 -6
- data/lib/datadog/appsec/contrib/rack/integration.rb +6 -6
- data/lib/datadog/appsec/contrib/rack/patcher.rb +2 -2
- data/lib/datadog/appsec/contrib/rack/request_body_middleware.rb +5 -5
- data/lib/datadog/appsec/contrib/rack/request_middleware.rb +26 -26
- data/lib/datadog/appsec/contrib/rack/response_body.rb +1 -1
- data/lib/datadog/appsec/contrib/rails/gateway/request.rb +10 -10
- 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/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 +23 -23
- 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 +15 -15
- 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/counter_sampler.rb +1 -1
- data/lib/datadog/appsec/event.rb +14 -14
- data/lib/datadog/appsec/ext.rb +11 -11
- data/lib/datadog/appsec/extensions.rb +2 -2
- data/lib/datadog/appsec/instrumentation/gateway.rb +1 -1
- data/lib/datadog/appsec/metrics/exporter.rb +8 -8
- 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 +6 -6
- data/lib/datadog/appsec/response.rb +21 -21
- data/lib/datadog/appsec/route_normalizer/rails_route_pattern.rb +11 -11
- data/lib/datadog/appsec/route_normalizer/route_pattern.rb +15 -15
- data/lib/datadog/appsec/route_normalizer/route_text.rb +3 -3
- data/lib/datadog/appsec/route_normalizer.rb +15 -15
- 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 +1 -1
- 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/base.rb +2 -2
- data/lib/datadog/core/configuration/components.rb +33 -29
- 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 +58 -58
- data/lib/datadog/core/configuration/stable_config.rb +1 -1
- data/lib/datadog/core/configuration/supported_configurations.rb +2 -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/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/error.rb +5 -5
- data/lib/datadog/core/evp.rb +2 -2
- 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/logger.rb +3 -3
- data/lib/datadog/core/logging/ext.rb +1 -1
- data/lib/datadog/core/metrics/client.rb +20 -20
- 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 +36 -20
- 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 +33 -33
- 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 +2 -2
- 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 +5 -5
- 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 +2 -2
- 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/spawn_monkey_patch.rb +2 -2
- 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 +4 -4
- data/lib/datadog/di/boot.rb +25 -25
- data/lib/datadog/di/code_tracker.rb +6 -6
- data/lib/datadog/di/component.rb +11 -3
- data/lib/datadog/di/configuration.rb +2 -2
- data/lib/datadog/di/contrib/railtie.rb +1 -1
- data/lib/datadog/di/contrib.rb +5 -5
- data/lib/datadog/di/el/compiler.rb +25 -25
- data/lib/datadog/di/el.rb +3 -3
- data/lib/datadog/di/instrumenter.rb +19 -9
- data/lib/datadog/di/logger.rb +1 -1
- data/lib/datadog/di/preload.rb +1 -1
- data/lib/datadog/di/probe_builder.rb +22 -22
- data/lib/datadog/di/probe_file_loader/railtie.rb +1 -1
- data/lib/datadog/di/probe_file_loader.rb +5 -5
- data/lib/datadog/di/probe_manager.rb +1 -1
- data/lib/datadog/di/probe_notification_builder.rb +16 -16
- data/lib/datadog/di/probe_notifier_worker.rb +6 -6
- data/lib/datadog/di/probe_repository.rb +1 -1
- data/lib/datadog/di/remote.rb +3 -3
- data/lib/datadog/di/serializer.rb +13 -13
- 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 +9 -9
- data/lib/datadog/di/utils.rb +4 -4
- data/lib/datadog/di.rb +5 -5
- 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 +39 -39
- 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 +31 -22
- data/lib/datadog/open_feature/configuration.rb +15 -2
- 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 -8
- data/lib/datadog/open_feature/flag_evaluation/aggregator.rb +8 -8
- data/lib/datadog/open_feature/flag_evaluation/writer.rb +36 -36
- data/lib/datadog/open_feature/hooks/flag_eval_evp_hook.rb +5 -4
- data/lib/datadog/open_feature/hooks/flag_eval_metrics_hook.rb +3 -1
- 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 +4 -4
- data/lib/datadog/open_feature/noop_evaluator.rb +3 -3
- data/lib/datadog/open_feature/provider.rb +45 -10
- 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 +14 -14
- 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 +6 -6
- data/lib/datadog/opentelemetry/sdk/metrics_exporter.rb +5 -5
- 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 +2 -2
- 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/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 +27 -27
- data/lib/datadog/single_step_instrument.rb +1 -1
- data/lib/datadog/symbol_database/component.rb +15 -15
- data/lib/datadog/symbol_database/configuration.rb +3 -3
- data/lib/datadog/symbol_database/extensions.rb +2 -2
- data/lib/datadog/symbol_database/extractor.rb +53 -53
- data/lib/datadog/symbol_database/file_hash.rb +3 -3
- data/lib/datadog/symbol_database/logger.rb +1 -1
- data/lib/datadog/symbol_database/remote.rb +21 -6
- data/lib/datadog/symbol_database/scope.rb +2 -2
- data/lib/datadog/symbol_database/scope_batcher.rb +2 -2
- 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 +22 -22
- data/lib/datadog/symbol_database.rb +2 -2
- 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 +7 -7
- data/lib/datadog/tracing/configuration/dynamic.rb +8 -8
- data/lib/datadog/tracing/configuration/ext.rb +42 -42
- data/lib/datadog/tracing/configuration/http.rb +2 -2
- data/lib/datadog/tracing/configuration/settings.rb +16 -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 +2 -2
- 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 +7 -7
- 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 +6 -6
- 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 +3 -3
- 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 +3 -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 +3 -3
- data/lib/datadog/tracing/contrib/kafka/events/producer/deliver_messages.rb +3 -3
- 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 +6 -6
- 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 +2 -2
- 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 -6
- 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 +113 -8
- 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 +13 -13
- 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 +1 -1
- 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 +27 -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/trace_context.rb +33 -33
- data/lib/datadog/tracing/event.rb +1 -1
- data/lib/datadog/tracing/ext.rb +1 -1
- 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 +23 -16
- 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 +4 -4
- data/lib/datadog/tracing/trace_operation.rb +11 -11
- data/lib/datadog/tracing/trace_segment.rb +10 -10
- data/lib/datadog/tracing/tracer.rb +15 -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/serializable_trace.rb +19 -19
- data/lib/datadog/tracing/transport/statistics.rb +2 -2
- data/lib/datadog/tracing/transport/trace_formatter.rb +9 -9
- 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 +5 -5
- data/lib/datadog/tracing.rb +3 -3
- data/lib/datadog/version.rb +4 -4
- data/lib/datadog.rb +13 -13
- metadata +7 -3
|
@@ -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 "scope"
|
|
4
|
+
require_relative "symbol"
|
|
5
|
+
require_relative "file_hash"
|
|
6
|
+
require_relative "../core/utils/enumerable_compat"
|
|
7
|
+
require_relative "../di/fatal_exceptions"
|
|
8
8
|
|
|
9
9
|
module Datadog
|
|
10
10
|
module SymbolDatabase
|
|
@@ -68,7 +68,7 @@ module Datadog
|
|
|
68
68
|
# PostgreSQL signed INT_MAX (2^31 - 1). Means "entire file" or "unknown end."
|
|
69
69
|
UNKNOWN_MAX_LINE = 2147483647
|
|
70
70
|
|
|
71
|
-
EXCLUDED_COMMON_MODULES = [
|
|
71
|
+
EXCLUDED_COMMON_MODULES = ["Kernel", "PP::", "JSON::", "Enumerable", "Comparable"].freeze
|
|
72
72
|
|
|
73
73
|
# RubyVM::InstructionSequence#trace_points event types included when
|
|
74
74
|
# computing targetable lines on METHOD scopes.
|
|
@@ -148,7 +148,7 @@ module Datadog
|
|
|
148
148
|
wrap_in_file_scope(source_file, [inner_scope])
|
|
149
149
|
rescue Exception => e # standard:disable Lint/RescueException
|
|
150
150
|
Datadog::DI.reraise_if_fatal(e)
|
|
151
|
-
@logger.debug { "symdb: failed to extract #{mod_name ||
|
|
151
|
+
@logger.debug { "symdb: failed to extract #{mod_name || "<unknown>"}: #{e.class}: #{e.message}" }
|
|
152
152
|
nil
|
|
153
153
|
end
|
|
154
154
|
|
|
@@ -261,7 +261,7 @@ module Datadog
|
|
|
261
261
|
# @return [Boolean]
|
|
262
262
|
def resolves_to_same_module?(mod_name, mod)
|
|
263
263
|
current = Object
|
|
264
|
-
mod_name.split(
|
|
264
|
+
mod_name.split("::").each do |seg|
|
|
265
265
|
sym = seg.to_sym
|
|
266
266
|
return false if MODULE_AUTOLOAD_P.bind(current).call(sym, false)
|
|
267
267
|
return false unless MODULE_CONST_DEFINED.bind(current).call(sym, false)
|
|
@@ -287,7 +287,7 @@ module Datadog
|
|
|
287
287
|
# Matches Python: packages.is_user_code() excludes ddtrace.*
|
|
288
288
|
# Note: bare 'Datadog' must be checked separately — start_with?('Datadog::')
|
|
289
289
|
# doesn't match the root module itself.
|
|
290
|
-
return false if mod_name ==
|
|
290
|
+
return false if mod_name == "Datadog" || mod_name.start_with?("Datadog::")
|
|
291
291
|
|
|
292
292
|
# Exclude Ruby root classes. These are never user code, but
|
|
293
293
|
# find_source_file can return a user-code path for them via
|
|
@@ -309,24 +309,24 @@ module Datadog
|
|
|
309
309
|
def user_code_path?(path)
|
|
310
310
|
# Only absolute paths are real source files. Pseudo-paths like '<main>',
|
|
311
311
|
# '<internal:...>', '(eval)' are not user code.
|
|
312
|
-
return false unless path.start_with?(
|
|
312
|
+
return false unless path.start_with?("/")
|
|
313
313
|
# Only .rb files are Ruby source. Excludes the Ruby binary
|
|
314
314
|
# (/usr/local/bin/ruby), C extensions (.so/.bundle), and other
|
|
315
315
|
# non-source files that appear in method source_location.
|
|
316
|
-
return false unless path.end_with?(
|
|
316
|
+
return false unless path.end_with?(".rb")
|
|
317
317
|
# Exclude gem paths
|
|
318
|
-
return false if path.include?(
|
|
318
|
+
return false if path.include?("/gems/")
|
|
319
319
|
# Exclude Ruby stdlib
|
|
320
|
-
return false if path.include?(
|
|
321
|
-
return false if path.start_with?(
|
|
322
|
-
return false if path.include?(
|
|
320
|
+
return false if path.include?("/ruby/")
|
|
321
|
+
return false if path.start_with?("<internal:")
|
|
322
|
+
return false if path.include?("(eval)")
|
|
323
323
|
# Exclude test code (not application code)
|
|
324
|
-
return false if path.include?(
|
|
325
|
-
return false if path.include?(
|
|
324
|
+
return false if path.include?("/spec/")
|
|
325
|
+
return false if path.include?("/test/")
|
|
326
326
|
# Exclude Datadog's own library code (e.g., monkey-patched methods from tracing contrib).
|
|
327
327
|
# Without this, stdlib classes like Net::HTTP appear as user code when dd-trace-rb
|
|
328
328
|
# instruments them, because the patched method source points to lib/datadog/tracing/contrib/.
|
|
329
|
-
return false if path.include?(
|
|
329
|
+
return false if path.include?("/lib/datadog/")
|
|
330
330
|
|
|
331
331
|
true
|
|
332
332
|
end
|
|
@@ -379,11 +379,11 @@ module Datadog
|
|
|
379
379
|
mod_name = safe_mod_name(mod)
|
|
380
380
|
if mod_name
|
|
381
381
|
# Look up the class/module by its last name component in its enclosing namespace.
|
|
382
|
-
parts = mod_name.split(
|
|
382
|
+
parts = mod_name.split("::")
|
|
383
383
|
const_name = parts.last
|
|
384
384
|
namespace = if parts.length > 1
|
|
385
385
|
begin
|
|
386
|
-
MODULE_CONST_GET.bind(Object).call(parts[0..-2].join(
|
|
386
|
+
MODULE_CONST_GET.bind(Object).call(parts[0..-2].join("::")) # steep:ignore
|
|
387
387
|
rescue NameError
|
|
388
388
|
nil
|
|
389
389
|
end
|
|
@@ -430,7 +430,7 @@ module Datadog
|
|
|
430
430
|
fallback
|
|
431
431
|
rescue Exception => e # standard:disable Lint/RescueException
|
|
432
432
|
Datadog::DI.reraise_if_fatal(e)
|
|
433
|
-
@logger.debug { "symdb: error finding source file for #{safe_mod_name(mod) ||
|
|
433
|
+
@logger.debug { "symdb: error finding source file for #{safe_mod_name(mod) || "<unknown>"}: #{e.class}: #{e.message}" }
|
|
434
434
|
nil
|
|
435
435
|
end
|
|
436
436
|
|
|
@@ -447,7 +447,7 @@ module Datadog
|
|
|
447
447
|
lang[:file_hash] = file_hash if file_hash
|
|
448
448
|
|
|
449
449
|
Scope.new(
|
|
450
|
-
scope_type:
|
|
450
|
+
scope_type: "FILE",
|
|
451
451
|
name: file_path,
|
|
452
452
|
source_file: file_path,
|
|
453
453
|
start_line: UNKNOWN_MIN_LINE,
|
|
@@ -465,7 +465,7 @@ module Datadog
|
|
|
465
465
|
source_file = find_source_file(mod)
|
|
466
466
|
|
|
467
467
|
Scope.new(
|
|
468
|
-
scope_type:
|
|
468
|
+
scope_type: "MODULE",
|
|
469
469
|
name: safe_mod_name(mod),
|
|
470
470
|
source_file: source_file,
|
|
471
471
|
start_line: UNKNOWN_MIN_LINE,
|
|
@@ -483,7 +483,7 @@ module Datadog
|
|
|
483
483
|
source_file = find_source_file(klass)
|
|
484
484
|
|
|
485
485
|
Scope.new(
|
|
486
|
-
scope_type:
|
|
486
|
+
scope_type: "CLASS",
|
|
487
487
|
name: safe_mod_name(klass),
|
|
488
488
|
source_file: source_file,
|
|
489
489
|
start_line: start_line,
|
|
@@ -607,7 +607,7 @@ module Datadog
|
|
|
607
607
|
targetable_lines, end_line = extract_targetable_lines(method, line)
|
|
608
608
|
|
|
609
609
|
Scope.new(
|
|
610
|
-
scope_type:
|
|
610
|
+
scope_type: "METHOD",
|
|
611
611
|
name: method_name.to_s,
|
|
612
612
|
source_file: source_file,
|
|
613
613
|
start_line: line,
|
|
@@ -632,11 +632,11 @@ module Datadog
|
|
|
632
632
|
# @return [String] 'public', 'private', or 'protected'
|
|
633
633
|
def method_visibility(klass, method_name)
|
|
634
634
|
if klass.private_instance_methods(false).include?(method_name)
|
|
635
|
-
|
|
635
|
+
"private"
|
|
636
636
|
elsif klass.protected_instance_methods(false).include?(method_name)
|
|
637
|
-
|
|
637
|
+
"protected"
|
|
638
638
|
else
|
|
639
|
-
|
|
639
|
+
"public"
|
|
640
640
|
end
|
|
641
641
|
end
|
|
642
642
|
|
|
@@ -662,7 +662,7 @@ module Datadog
|
|
|
662
662
|
end_line = lines.max || start_line
|
|
663
663
|
ranges = build_targetable_ranges(lines)
|
|
664
664
|
result = ranges.empty? ? nil : ranges
|
|
665
|
-
@logger.debug { "symdb: #{method.name} targetable lines: #{result ? "#{ranges.size} range(s), lines #{lines.first}..#{lines.last}" :
|
|
665
|
+
@logger.debug { "symdb: #{method.name} targetable lines: #{result ? "#{ranges.size} range(s), lines #{lines.first}..#{lines.last}" : "none (no matching events)"}" }
|
|
666
666
|
[result, end_line]
|
|
667
667
|
end
|
|
668
668
|
|
|
@@ -702,7 +702,7 @@ module Datadog
|
|
|
702
702
|
rescue Exception => e # standard:disable Lint/RescueException
|
|
703
703
|
Datadog::DI.reraise_if_fatal(e)
|
|
704
704
|
@logger.debug { "symdb: method.name failed: #{e.class}: #{e.message}" }
|
|
705
|
-
|
|
705
|
+
"unknown"
|
|
706
706
|
end
|
|
707
707
|
params = method.parameters
|
|
708
708
|
|
|
@@ -717,7 +717,7 @@ module Datadog
|
|
|
717
717
|
next if param_name.nil?
|
|
718
718
|
|
|
719
719
|
Symbol.new(
|
|
720
|
-
symbol_type:
|
|
720
|
+
symbol_type: "ARG",
|
|
721
721
|
name: param_name.to_s,
|
|
722
722
|
line: UNKNOWN_MIN_LINE, # Parameters available in entire method
|
|
723
723
|
)
|
|
@@ -790,7 +790,7 @@ module Datadog
|
|
|
790
790
|
end
|
|
791
791
|
rescue Exception => e # standard:disable Lint/RescueException
|
|
792
792
|
Datadog::DI.reraise_if_fatal(e)
|
|
793
|
-
@logger.debug { "symdb: error indexing #{mod_name ||
|
|
793
|
+
@logger.debug { "symdb: error indexing #{mod_name || "<unknown>"}: #{e.class}: #{e.message}" }
|
|
794
794
|
end
|
|
795
795
|
|
|
796
796
|
index
|
|
@@ -840,12 +840,12 @@ module Datadog
|
|
|
840
840
|
return nil if entries.empty?
|
|
841
841
|
|
|
842
842
|
root = {
|
|
843
|
-
name: file_path, type:
|
|
843
|
+
name: file_path, type: "FILE", children: {},
|
|
844
844
|
methods: [], mod: nil, source_file: file_path, fqn: nil,
|
|
845
845
|
}
|
|
846
846
|
|
|
847
847
|
# Sort by FQN depth so parent namespaces are placed before children.
|
|
848
|
-
sorted = entries.sort_by { |(mod_name, _, _)| mod_name.count(
|
|
848
|
+
sorted = entries.sort_by { |(mod_name, _, _)| mod_name.count(":") }
|
|
849
849
|
|
|
850
850
|
sorted.each do |mod_name, mod, method_names|
|
|
851
851
|
# Resolve UnboundMethods for this (mod, file) just-in-time. These objects
|
|
@@ -875,7 +875,7 @@ module Datadog
|
|
|
875
875
|
# the module no longer lives in.
|
|
876
876
|
next if method_names.any? && method_infos.empty?
|
|
877
877
|
|
|
878
|
-
parts = mod_name.split(
|
|
878
|
+
parts = mod_name.split("::")
|
|
879
879
|
place_in_tree(root, parts, mod, mod_name, method_infos, file_path)
|
|
880
880
|
rescue Exception => e # standard:disable Lint/RescueException
|
|
881
881
|
Datadog::DI.reraise_if_fatal(e)
|
|
@@ -901,7 +901,7 @@ module Datadog
|
|
|
901
901
|
|
|
902
902
|
# Create/find intermediate nodes for each namespace segment except the last
|
|
903
903
|
name_parts[0..-2].each_with_index do |part, idx| # steep:ignore
|
|
904
|
-
fqn = name_parts[0..idx].join(
|
|
904
|
+
fqn = name_parts[0..idx].join("::") # steep:ignore
|
|
905
905
|
current[:children][part] ||= {
|
|
906
906
|
name: fqn, type: resolve_scope_type(fqn),
|
|
907
907
|
children: {}, methods: [], mod: nil,
|
|
@@ -916,12 +916,12 @@ module Datadog
|
|
|
916
916
|
if leaf
|
|
917
917
|
# Node exists (was created as intermediate or from another entry).
|
|
918
918
|
# Update type and mod — the actual module object is authoritative.
|
|
919
|
-
leaf[:type] = (Class === mod) ?
|
|
919
|
+
leaf[:type] = (Class === mod) ? "CLASS" : "MODULE"
|
|
920
920
|
leaf[:mod] = mod
|
|
921
921
|
else
|
|
922
922
|
leaf = {
|
|
923
923
|
name: mod_name,
|
|
924
|
-
type: (Class === mod) ?
|
|
924
|
+
type: (Class === mod) ? "CLASS" : "MODULE",
|
|
925
925
|
children: {}, methods: [],
|
|
926
926
|
mod: mod, source_file: file_path,
|
|
927
927
|
fqn: mod_name
|
|
@@ -939,22 +939,22 @@ module Datadog
|
|
|
939
939
|
# @return [String] 'CLASS' or 'MODULE'
|
|
940
940
|
def resolve_scope_type(fqn)
|
|
941
941
|
current = Object
|
|
942
|
-
fqn.split(
|
|
942
|
+
fqn.split("::").each do |seg|
|
|
943
943
|
sym = seg.to_sym
|
|
944
|
-
pending_autoload = if RubyVersion.is?(
|
|
944
|
+
pending_autoload = if RubyVersion.is?(">= 2.7")
|
|
945
945
|
MODULE_AUTOLOAD_P.bind(current).call(sym, false)
|
|
946
946
|
else
|
|
947
947
|
MODULE_AUTOLOAD_P.bind(current).call(sym)
|
|
948
948
|
end
|
|
949
|
-
return
|
|
950
|
-
return
|
|
949
|
+
return "MODULE" if pending_autoload
|
|
950
|
+
return "MODULE" unless MODULE_CONST_DEFINED.bind(current).call(sym, false)
|
|
951
951
|
current = MODULE_CONST_GET.bind(current).call(sym, false)
|
|
952
952
|
end
|
|
953
|
-
(Class === current) ?
|
|
953
|
+
(Class === current) ? "CLASS" : "MODULE"
|
|
954
954
|
rescue Exception => e # standard:disable Lint/RescueException
|
|
955
955
|
Datadog::DI.reraise_if_fatal(e)
|
|
956
956
|
@logger.debug { "symdb: resolve_scope_type(#{fqn}) failed: #{e.class}: #{e.message}, defaulting to MODULE" }
|
|
957
|
-
|
|
957
|
+
"MODULE"
|
|
958
958
|
end
|
|
959
959
|
|
|
960
960
|
# Convert a single file tree (built by build_file_scope) to a FILE Scope.
|
|
@@ -967,7 +967,7 @@ module Datadog
|
|
|
967
967
|
lang[:file_hash] = file_hash if file_hash
|
|
968
968
|
|
|
969
969
|
Scope.new(
|
|
970
|
-
scope_type:
|
|
970
|
+
scope_type: "FILE",
|
|
971
971
|
name: file_path,
|
|
972
972
|
source_file: file_path,
|
|
973
973
|
start_line: UNKNOWN_MIN_LINE,
|
|
@@ -1001,7 +1001,7 @@ module Datadog
|
|
|
1001
1001
|
symbols = node[:mod] ? extract_scope_symbols(node[:mod]) : []
|
|
1002
1002
|
|
|
1003
1003
|
# Build language specifics
|
|
1004
|
-
lang = if node[:type] ==
|
|
1004
|
+
lang = if node[:type] == "CLASS" && node[:mod]
|
|
1005
1005
|
build_class_language_specifics(node[:mod])
|
|
1006
1006
|
else
|
|
1007
1007
|
{}
|
|
@@ -1034,22 +1034,22 @@ module Datadog
|
|
|
1034
1034
|
targetable_lines, end_line = extract_targetable_lines(method, line)
|
|
1035
1035
|
|
|
1036
1036
|
Scope.new(
|
|
1037
|
-
scope_type:
|
|
1037
|
+
scope_type: "METHOD",
|
|
1038
1038
|
name: method_name.to_s,
|
|
1039
1039
|
source_file: source_file,
|
|
1040
1040
|
start_line: line,
|
|
1041
1041
|
end_line: end_line,
|
|
1042
1042
|
targetable_lines: targetable_lines,
|
|
1043
1043
|
language_specifics: {
|
|
1044
|
-
visibility: klass ? method_visibility(klass, method_name) :
|
|
1045
|
-
method_type:
|
|
1044
|
+
visibility: klass ? method_visibility(klass, method_name) : "public", # steep:ignore
|
|
1045
|
+
method_type: "instance",
|
|
1046
1046
|
arity: method.arity
|
|
1047
1047
|
},
|
|
1048
1048
|
symbols: extract_method_parameters(method)
|
|
1049
1049
|
)
|
|
1050
1050
|
rescue Exception => e # standard:disable Lint/RescueException
|
|
1051
1051
|
Datadog::DI.reraise_if_fatal(e)
|
|
1052
|
-
klass_name = klass ? (safe_mod_name(klass) ||
|
|
1052
|
+
klass_name = klass ? (safe_mod_name(klass) || "<unknown>") : "<unknown>"
|
|
1053
1053
|
@logger.debug { "symdb: failed to build method scope #{klass_name}##{method_name}: #{e.class}: #{e.message}" }
|
|
1054
1054
|
nil
|
|
1055
1055
|
end
|
|
@@ -1065,7 +1065,7 @@ module Datadog
|
|
|
1065
1065
|
if Class === mod
|
|
1066
1066
|
MODULE_CLASS_VARIABLES.bind(mod).call(false).each do |var_name|
|
|
1067
1067
|
symbols << Symbol.new(
|
|
1068
|
-
symbol_type:
|
|
1068
|
+
symbol_type: "STATIC_FIELD",
|
|
1069
1069
|
name: var_name.to_s,
|
|
1070
1070
|
line: UNKNOWN_MIN_LINE
|
|
1071
1071
|
)
|
|
@@ -1080,7 +1080,7 @@ module Datadog
|
|
|
1080
1080
|
next if Module === const_value
|
|
1081
1081
|
|
|
1082
1082
|
symbols << Symbol.new(
|
|
1083
|
-
symbol_type:
|
|
1083
|
+
symbol_type: "STATIC_FIELD",
|
|
1084
1084
|
name: const_name.to_s,
|
|
1085
1085
|
line: UNKNOWN_MIN_LINE,
|
|
1086
1086
|
type: safe_mod_name(KERNEL_CLASS.bind(const_value).call)
|
|
@@ -1101,7 +1101,7 @@ module Datadog
|
|
|
1101
1101
|
symbols
|
|
1102
1102
|
rescue Exception => e # standard:disable Lint/RescueException
|
|
1103
1103
|
Datadog::DI.reraise_if_fatal(e)
|
|
1104
|
-
mod_name = safe_mod_name(mod) ||
|
|
1104
|
+
mod_name = safe_mod_name(mod) || "<unknown>"
|
|
1105
1105
|
@logger.debug { "symdb: failed to extract symbols from #{mod_name}: #{e.class}: #{e.message}" }
|
|
1106
1106
|
[]
|
|
1107
1107
|
end
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
2
|
|
|
3
|
-
require
|
|
4
|
-
require_relative
|
|
3
|
+
require "digest/sha1"
|
|
4
|
+
require_relative "../di/fatal_exceptions"
|
|
5
5
|
|
|
6
6
|
module Datadog
|
|
7
7
|
module SymbolDatabase
|
|
@@ -30,7 +30,7 @@ module Datadog
|
|
|
30
30
|
return nil unless file_path
|
|
31
31
|
return nil unless File.exist?(file_path)
|
|
32
32
|
|
|
33
|
-
content = File.read(file_path, mode:
|
|
33
|
+
content = File.read(file_path, mode: "rb")
|
|
34
34
|
size = content.bytesize
|
|
35
35
|
git_blob = "blob #{size}\0#{content}"
|
|
36
36
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
2
|
|
|
3
|
-
require_relative
|
|
3
|
+
require_relative "../di/fatal_exceptions"
|
|
4
4
|
|
|
5
5
|
module Datadog
|
|
6
6
|
module SymbolDatabase
|
|
@@ -24,7 +24,7 @@ module Datadog
|
|
|
24
24
|
#
|
|
25
25
|
# @api private
|
|
26
26
|
module Remote
|
|
27
|
-
PRODUCT =
|
|
27
|
+
PRODUCT = "LIVE_DEBUGGING_SYMBOL_DB"
|
|
28
28
|
|
|
29
29
|
class << self
|
|
30
30
|
# Declare products this receiver handles.
|
|
@@ -39,6 +39,21 @@ module Datadog
|
|
|
39
39
|
[]
|
|
40
40
|
end
|
|
41
41
|
|
|
42
|
+
# Symbol Database follows DI when its enabled setting is nil — the
|
|
43
|
+
# default, or an explicit c.symbol_database.enabled = nil. In that
|
|
44
|
+
# follow-DI case the product is deferred and added/removed alongside DI
|
|
45
|
+
# so it is never advertised while DI is inactive. An explicit true/false
|
|
46
|
+
# is independent and manages its own product at startup.
|
|
47
|
+
def deferred_products(settings)
|
|
48
|
+
if settings.respond_to?(:symbol_database) &&
|
|
49
|
+
settings.symbol_database.enabled.nil? &&
|
|
50
|
+
Datadog::SymbolDatabase.supported_runtime?
|
|
51
|
+
[PRODUCT]
|
|
52
|
+
else
|
|
53
|
+
[]
|
|
54
|
+
end
|
|
55
|
+
end
|
|
56
|
+
|
|
42
57
|
# Create receivers for remote configuration.
|
|
43
58
|
# @return [Array<Receiver>] Array of receivers
|
|
44
59
|
def receivers(_telemetry)
|
|
@@ -49,7 +64,7 @@ module Datadog
|
|
|
49
64
|
rescue Exception => e # standard:disable Lint/RescueException
|
|
50
65
|
Datadog::DI.reraise_if_fatal(e)
|
|
51
66
|
Datadog.logger.debug { "symdb: failed to look up component in RC receiver: #{e.class}: #{e.message}" }
|
|
52
|
-
telemetry&.report(e, description:
|
|
67
|
+
telemetry&.report(e, description: "symdb: failed to look up component in RC receiver")
|
|
53
68
|
nil
|
|
54
69
|
end
|
|
55
70
|
|
|
@@ -114,7 +129,7 @@ module Datadog
|
|
|
114
129
|
rescue Exception => e # standard:disable Lint/RescueException
|
|
115
130
|
Datadog::DI.reraise_if_fatal(e)
|
|
116
131
|
component.logger.debug { "symdb: error processing remote config change: #{e.class}: #{e.message}" }
|
|
117
|
-
telemetry&.report(e, description:
|
|
132
|
+
telemetry&.report(e, description: "symdb: error processing remote config change")
|
|
118
133
|
# Rescue runs regardless of which branch raised — Steep cannot narrow the
|
|
119
134
|
# union type from a respond_to? check.
|
|
120
135
|
content_obj = change.respond_to?(:content) ? change.content : change.previous # steep:ignore NoMethod
|
|
@@ -133,7 +148,7 @@ module Datadog
|
|
|
133
148
|
return
|
|
134
149
|
end
|
|
135
150
|
|
|
136
|
-
if config[
|
|
151
|
+
if config["upload_symbols"]
|
|
137
152
|
component.logger.debug { "symdb: upload enabled via remote config" }
|
|
138
153
|
component.start_upload
|
|
139
154
|
else
|
|
@@ -167,7 +182,7 @@ module Datadog
|
|
|
167
182
|
return nil
|
|
168
183
|
end
|
|
169
184
|
|
|
170
|
-
unless config.key?(
|
|
185
|
+
unless config.key?("upload_symbols")
|
|
171
186
|
logger.debug { "symdb: missing 'upload_symbols' key in config" }
|
|
172
187
|
return nil
|
|
173
188
|
end
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
2
|
|
|
3
|
-
require
|
|
3
|
+
require "json"
|
|
4
4
|
|
|
5
5
|
module Datadog
|
|
6
6
|
module SymbolDatabase
|
|
@@ -85,7 +85,7 @@ module Datadog
|
|
|
85
85
|
# Always emit has_injectible_lines (even when false) on METHOD scopes.
|
|
86
86
|
# Wire format keeps the historical spelling +injectible+; Ruby identifier
|
|
87
87
|
# is +targetable_lines+.
|
|
88
|
-
if scope_type ==
|
|
88
|
+
if scope_type == "METHOD"
|
|
89
89
|
h[:has_injectible_lines] = targetable_lines? # steep:ignore ArgumentTypeMismatch
|
|
90
90
|
h[:injectible_lines] = targetable_lines if targetable_lines && !targetable_lines.empty?
|
|
91
91
|
end
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
2
|
|
|
3
|
-
require
|
|
3
|
+
require "json"
|
|
4
4
|
|
|
5
5
|
module Datadog
|
|
6
6
|
module SymbolDatabase
|
|
@@ -28,13 +28,13 @@ module Datadog
|
|
|
28
28
|
# @param final [Boolean, nil] true if this is the last batch of the upload
|
|
29
29
|
# @raise [ArgumentError] if service empty or scopes not an array
|
|
30
30
|
def initialize(service:, env:, version:, scopes:, upload_id: nil, batch_num: nil, final: nil)
|
|
31
|
-
raise ArgumentError,
|
|
32
|
-
raise ArgumentError,
|
|
31
|
+
raise ArgumentError, "service is required" if service.nil? || service.empty?
|
|
32
|
+
raise ArgumentError, "scopes must be an array" unless scopes.is_a?(Array)
|
|
33
33
|
|
|
34
34
|
@service = service
|
|
35
35
|
@env = env
|
|
36
36
|
@version = version
|
|
37
|
-
@language =
|
|
37
|
+
@language = "ruby"
|
|
38
38
|
@scopes = scopes
|
|
39
39
|
@upload_id = upload_id
|
|
40
40
|
@batch_num = batch_num
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
2
|
|
|
3
|
-
require_relative
|
|
4
|
-
require_relative
|
|
5
|
-
require_relative
|
|
6
|
-
require_relative
|
|
3
|
+
require_relative "../../core/encoding"
|
|
4
|
+
require_relative "../../core/transport/http"
|
|
5
|
+
require_relative "http/endpoint"
|
|
6
|
+
require_relative "../transport"
|
|
7
7
|
|
|
8
8
|
module Datadog
|
|
9
9
|
module SymbolDatabase
|
|
@@ -14,7 +14,7 @@ module Datadog
|
|
|
14
14
|
# Multipart form-data is dispatched via `env.form` from the
|
|
15
15
|
# `Symbols::Client` subclass.
|
|
16
16
|
SYMBOLS_ENDPOINT = API::Endpoint.new(
|
|
17
|
-
|
|
17
|
+
"/symdb/v1/input",
|
|
18
18
|
Datadog::Core::Encoding::JSONEncoder,
|
|
19
19
|
)
|
|
20
20
|
|
|
@@ -34,7 +34,7 @@ module Datadog
|
|
|
34
34
|
agent_settings: agent_settings,
|
|
35
35
|
headers: headers,
|
|
36
36
|
) do |transport|
|
|
37
|
-
transport.api
|
|
37
|
+
transport.api "symbols", SYMBOLS_ENDPOINT, default: true
|
|
38
38
|
|
|
39
39
|
yield(transport) if block_given?
|
|
40
40
|
end.to_transport(SymbolDatabase::Transport::Symbols::Transport)
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
2
|
|
|
3
|
-
require_relative
|
|
4
|
-
require_relative
|
|
5
|
-
require_relative
|
|
6
|
-
require_relative
|
|
3
|
+
require_relative "../core/transport/request"
|
|
4
|
+
require_relative "../core/transport/transport"
|
|
5
|
+
require_relative "../core/transport/http/client"
|
|
6
|
+
require_relative "../core/transport/http/env"
|
|
7
7
|
|
|
8
8
|
module Datadog
|
|
9
9
|
module SymbolDatabase
|
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
2
|
|
|
3
|
-
require
|
|
4
|
-
require
|
|
5
|
-
require
|
|
6
|
-
require
|
|
7
|
-
require_relative
|
|
8
|
-
require_relative
|
|
9
|
-
require_relative
|
|
10
|
-
require_relative
|
|
11
|
-
require_relative
|
|
12
|
-
require_relative
|
|
3
|
+
require "json"
|
|
4
|
+
require "securerandom"
|
|
5
|
+
require "zlib"
|
|
6
|
+
require "stringio"
|
|
7
|
+
require_relative "../core/environment/identity"
|
|
8
|
+
require_relative "../core/vendor/multipart-post/multipart/post/composite_read_io"
|
|
9
|
+
require_relative "../tracing/ext"
|
|
10
|
+
require_relative "service_version"
|
|
11
|
+
require_relative "transport/http"
|
|
12
|
+
require_relative "../di/fatal_exceptions"
|
|
13
13
|
|
|
14
14
|
module Datadog
|
|
15
15
|
module SymbolDatabase
|
|
@@ -72,7 +72,7 @@ module Datadog
|
|
|
72
72
|
# Emitted unconditionally so the rare oversized case is observable.
|
|
73
73
|
@telemetry&.distribution(
|
|
74
74
|
Tracing::Ext::TELEMETRY_METRICS_NAMESPACE,
|
|
75
|
-
|
|
75
|
+
"symbol_database.payload_size",
|
|
76
76
|
compressed_data.bytesize
|
|
77
77
|
)
|
|
78
78
|
|
|
@@ -90,7 +90,7 @@ module Datadog
|
|
|
90
90
|
rescue Exception => e # standard:disable Lint/RescueException
|
|
91
91
|
Datadog::DI.reraise_if_fatal(e)
|
|
92
92
|
@logger.debug { "symdb: upload failed: #{e.class}: #{e.message}" }
|
|
93
|
-
@telemetry&.report(e, description:
|
|
93
|
+
@telemetry&.report(e, description: "symdb: upload failed")
|
|
94
94
|
end
|
|
95
95
|
|
|
96
96
|
private
|
|
@@ -139,19 +139,19 @@ module Datadog
|
|
|
139
139
|
|
|
140
140
|
event_upload = Datadog::Core::Vendor::Multipart::Post::UploadIO.new(
|
|
141
141
|
event_io,
|
|
142
|
-
|
|
143
|
-
|
|
142
|
+
"application/json",
|
|
143
|
+
"event.json",
|
|
144
144
|
)
|
|
145
145
|
|
|
146
146
|
file_upload = Datadog::Core::Vendor::Multipart::Post::UploadIO.new(
|
|
147
147
|
file_io,
|
|
148
|
-
|
|
148
|
+
"application/gzip",
|
|
149
149
|
"symbols_#{Process.pid}.json.gz",
|
|
150
150
|
)
|
|
151
151
|
|
|
152
152
|
{
|
|
153
|
-
|
|
154
|
-
|
|
153
|
+
"event" => event_upload,
|
|
154
|
+
"file" => file_upload,
|
|
155
155
|
}
|
|
156
156
|
end
|
|
157
157
|
|
|
@@ -162,13 +162,13 @@ module Datadog
|
|
|
162
162
|
# @return [String] JSON string for event metadata
|
|
163
163
|
def build_event_metadata(attachment_size, upload_id:, batch_num:)
|
|
164
164
|
JSON.generate(
|
|
165
|
-
ddsource:
|
|
165
|
+
ddsource: "ruby",
|
|
166
166
|
service: @settings.service,
|
|
167
167
|
version: @settings.version,
|
|
168
|
-
language:
|
|
168
|
+
language: "ruby",
|
|
169
169
|
runtimeId: Datadog::Core::Environment::Identity.id,
|
|
170
170
|
parentId: nil, # Fork tracking deferred for MVP
|
|
171
|
-
type:
|
|
171
|
+
type: "symdb",
|
|
172
172
|
uploadId: upload_id,
|
|
173
173
|
batchNum: batch_num,
|
|
174
174
|
# Always false: the Ruby tracer continuously uploads new code
|
|
@@ -194,8 +194,8 @@ module Datadog
|
|
|
194
194
|
end
|
|
195
195
|
@batch_num += 1 # steep:ignore NoMethod
|
|
196
196
|
# @upload_id and @batch_num are non-nil after the branch above; refine for Steep.
|
|
197
|
-
upload_id = @upload_id or raise(
|
|
198
|
-
batch_num = @batch_num or raise(
|
|
197
|
+
upload_id = @upload_id or raise("unreachable: @upload_id should be set")
|
|
198
|
+
batch_num = @batch_num or raise("unreachable: @batch_num should be set")
|
|
199
199
|
[upload_id, batch_num]
|
|
200
200
|
end
|
|
201
201
|
end
|