ddtrace 1.12.1 → 1.18.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +388 -10
- data/ext/ddtrace_profiling_native_extension/NativeExtensionDesign.md +3 -5
- data/ext/ddtrace_profiling_native_extension/clock_id.h +0 -3
- data/ext/ddtrace_profiling_native_extension/clock_id_from_pthread.c +3 -22
- data/ext/ddtrace_profiling_native_extension/clock_id_noop.c +0 -1
- data/ext/ddtrace_profiling_native_extension/collectors_cpu_and_wall_time_worker.c +41 -6
- data/ext/ddtrace_profiling_native_extension/collectors_idle_sampling_helper.c +3 -0
- data/ext/ddtrace_profiling_native_extension/collectors_stack.c +76 -24
- data/ext/ddtrace_profiling_native_extension/collectors_stack.h +1 -1
- data/ext/ddtrace_profiling_native_extension/collectors_thread_context.c +292 -27
- data/ext/ddtrace_profiling_native_extension/collectors_thread_context.h +1 -1
- data/ext/ddtrace_profiling_native_extension/extconf.rb +40 -10
- data/ext/ddtrace_profiling_native_extension/http_transport.c +48 -16
- data/ext/ddtrace_profiling_native_extension/libdatadog_helpers.c +42 -0
- data/ext/ddtrace_profiling_native_extension/libdatadog_helpers.h +6 -0
- data/ext/ddtrace_profiling_native_extension/native_extension_helpers.rb +1 -1
- data/ext/ddtrace_profiling_native_extension/pid_controller.c +57 -0
- data/ext/ddtrace_profiling_native_extension/pid_controller.h +45 -0
- data/ext/ddtrace_profiling_native_extension/private_vm_api_access.c +136 -32
- data/ext/ddtrace_profiling_native_extension/private_vm_api_access.h +12 -0
- data/ext/ddtrace_profiling_native_extension/profiling.c +1 -2
- data/ext/ddtrace_profiling_native_extension/stack_recorder.c +81 -50
- data/ext/ddtrace_profiling_native_extension/stack_recorder.h +13 -3
- data/ext/ddtrace_profiling_native_extension/time_helpers.c +40 -4
- data/ext/ddtrace_profiling_native_extension/time_helpers.h +14 -0
- data/lib/datadog/appsec/assets/waf_rules/processors.json +92 -0
- data/lib/datadog/appsec/assets/waf_rules/recommended.json +698 -75
- data/lib/datadog/appsec/assets/waf_rules/scanners.json +114 -0
- data/lib/datadog/appsec/assets/waf_rules/strict.json +98 -8
- data/lib/datadog/appsec/assets.rb +8 -0
- data/lib/datadog/appsec/component.rb +21 -2
- data/lib/datadog/appsec/configuration/settings.rb +167 -189
- data/lib/datadog/appsec/configuration.rb +0 -79
- data/lib/datadog/appsec/contrib/auto_instrument.rb +2 -4
- data/lib/datadog/appsec/contrib/devise/event.rb +57 -0
- data/lib/datadog/appsec/contrib/devise/ext.rb +13 -0
- data/lib/datadog/appsec/contrib/devise/integration.rb +42 -0
- data/lib/datadog/appsec/contrib/devise/patcher/authenticatable_patch.rb +76 -0
- data/lib/datadog/appsec/contrib/devise/patcher/registration_controller_patch.rb +54 -0
- data/lib/datadog/appsec/contrib/devise/patcher.rb +45 -0
- data/lib/datadog/appsec/contrib/devise/resource.rb +35 -0
- data/lib/datadog/appsec/contrib/devise/tracking.rb +49 -0
- data/lib/datadog/appsec/contrib/rack/ext.rb +2 -1
- data/lib/datadog/appsec/contrib/rack/gateway/request.rb +6 -2
- data/lib/datadog/appsec/contrib/rack/gateway/watcher.rb +8 -6
- data/lib/datadog/appsec/contrib/rack/reactive/request.rb +3 -8
- data/lib/datadog/appsec/contrib/rack/reactive/request_body.rb +3 -6
- data/lib/datadog/appsec/contrib/rack/reactive/response.rb +3 -6
- data/lib/datadog/appsec/contrib/rack/request_body_middleware.rb +3 -2
- data/lib/datadog/appsec/contrib/rack/request_middleware.rb +36 -17
- data/lib/datadog/appsec/contrib/rails/ext.rb +3 -2
- data/lib/datadog/appsec/contrib/rails/framework.rb +1 -3
- data/lib/datadog/appsec/contrib/rails/gateway/watcher.rb +3 -2
- data/lib/datadog/appsec/contrib/rails/patcher.rb +17 -11
- data/lib/datadog/appsec/contrib/rails/reactive/action.rb +3 -6
- data/lib/datadog/appsec/contrib/sinatra/ext.rb +2 -1
- data/lib/datadog/appsec/contrib/sinatra/framework.rb +1 -3
- data/lib/datadog/appsec/contrib/sinatra/gateway/watcher.rb +6 -4
- data/lib/datadog/appsec/contrib/sinatra/patcher.rb +13 -7
- data/lib/datadog/appsec/contrib/sinatra/reactive/routed.rb +3 -6
- data/lib/datadog/appsec/event.rb +106 -50
- data/lib/datadog/appsec/extensions.rb +1 -130
- data/lib/datadog/appsec/monitor/gateway/watcher.rb +3 -3
- data/lib/datadog/appsec/monitor/reactive/set_user.rb +3 -6
- data/lib/datadog/appsec/processor/actions.rb +49 -0
- data/lib/datadog/appsec/processor/rule_loader.rb +60 -0
- data/lib/datadog/appsec/processor/rule_merger.rb +22 -2
- data/lib/datadog/appsec/processor.rb +35 -7
- data/lib/datadog/appsec/rate_limiter.rb +1 -1
- data/lib/datadog/appsec/remote.rb +17 -11
- data/lib/datadog/appsec/response.rb +82 -4
- data/lib/datadog/appsec/sample_rate.rb +21 -0
- data/lib/datadog/appsec.rb +3 -4
- data/lib/datadog/core/backport.rb +51 -0
- data/lib/datadog/core/configuration/agent_settings_resolver.rb +38 -29
- data/lib/datadog/core/configuration/base.rb +6 -16
- data/lib/datadog/core/configuration/components.rb +15 -3
- data/lib/datadog/core/configuration/ext.rb +28 -5
- data/lib/datadog/core/configuration/option.rb +269 -21
- data/lib/datadog/core/configuration/option_definition.rb +73 -32
- data/lib/datadog/core/configuration/options.rb +27 -15
- data/lib/datadog/core/configuration/settings.rb +182 -102
- data/lib/datadog/core/configuration.rb +4 -0
- data/lib/datadog/core/diagnostics/environment_logger.rb +130 -234
- data/lib/datadog/core/environment/execution.rb +103 -0
- data/lib/datadog/core/environment/ext.rb +13 -11
- data/lib/datadog/core/environment/variable_helpers.rb +0 -69
- data/lib/datadog/core/environment/yjit.rb +58 -0
- data/lib/datadog/core/error.rb +1 -0
- data/lib/datadog/core/git/ext.rb +26 -22
- data/lib/datadog/core/logging/ext.rb +3 -1
- data/lib/datadog/core/metrics/ext.rb +7 -5
- data/lib/datadog/core/remote/client/capabilities.rb +6 -1
- data/lib/datadog/core/remote/client.rb +3 -0
- data/lib/datadog/core/remote/component.rb +27 -36
- data/lib/datadog/core/remote/configuration/content.rb +28 -1
- data/lib/datadog/core/remote/configuration/repository.rb +3 -1
- data/lib/datadog/core/remote/ext.rb +1 -1
- data/lib/datadog/core/remote/negotiation.rb +19 -6
- data/lib/datadog/core/remote/transport/config.rb +60 -0
- data/lib/datadog/core/remote/transport/http/api/instance.rb +39 -0
- data/lib/datadog/core/remote/transport/http/api/spec.rb +21 -0
- data/lib/datadog/core/remote/transport/http/api.rb +58 -0
- data/lib/datadog/core/remote/transport/http/builder.rb +219 -0
- data/lib/datadog/core/remote/transport/http/client.rb +48 -0
- data/lib/datadog/core/remote/transport/http/config.rb +280 -0
- data/lib/datadog/core/remote/transport/http/negotiation.rb +146 -0
- data/lib/datadog/core/remote/transport/http.rb +179 -0
- data/lib/datadog/core/{transport → remote/transport}/negotiation.rb +25 -23
- data/lib/datadog/core/remote/worker.rb +4 -1
- data/lib/datadog/core/runtime/ext.rb +22 -12
- data/lib/datadog/core/runtime/metrics.rb +43 -0
- data/lib/datadog/core/telemetry/client.rb +12 -2
- data/lib/datadog/core/telemetry/collector.rb +13 -4
- data/lib/datadog/core/telemetry/emitter.rb +4 -2
- data/lib/datadog/core/telemetry/event.rb +19 -4
- data/lib/datadog/core/telemetry/ext.rb +4 -1
- data/lib/datadog/core/telemetry/heartbeat.rb +2 -4
- data/lib/datadog/core/telemetry/http/ext.rb +10 -8
- data/lib/datadog/core/telemetry/http/transport.rb +2 -0
- data/lib/datadog/core/telemetry/v2/app_client_configuration_change.rb +41 -0
- data/lib/datadog/core/telemetry/v2/request.rb +29 -0
- data/lib/datadog/core/transport/ext.rb +47 -0
- data/lib/datadog/core/transport/http/adapters/net.rb +168 -0
- data/lib/datadog/core/transport/http/adapters/registry.rb +29 -0
- data/lib/datadog/core/transport/http/adapters/test.rb +89 -0
- data/lib/datadog/core/transport/http/adapters/unix_socket.rb +83 -0
- data/lib/datadog/core/transport/http/api/endpoint.rb +31 -0
- data/lib/datadog/core/transport/http/api/fallbacks.rb +26 -0
- data/lib/datadog/core/transport/http/api/map.rb +18 -0
- data/lib/datadog/core/transport/http/env.rb +62 -0
- data/lib/datadog/core/transport/http/response.rb +60 -0
- data/lib/datadog/core/transport/parcel.rb +22 -0
- data/lib/datadog/core/transport/request.rb +17 -0
- data/lib/datadog/core/transport/response.rb +64 -0
- data/lib/datadog/core/utils/duration.rb +52 -0
- data/lib/datadog/core/utils/hash.rb +47 -0
- data/lib/datadog/core/utils/network.rb +1 -1
- data/lib/datadog/core/utils/safe_dup.rb +27 -20
- data/lib/datadog/core/utils.rb +1 -1
- data/lib/datadog/core/workers/async.rb +3 -2
- data/lib/datadog/core/workers/polling.rb +2 -2
- data/lib/datadog/kit/appsec/events.rb +139 -89
- data/lib/datadog/kit/enable_core_dumps.rb +5 -6
- data/lib/datadog/kit/identity.rb +80 -65
- data/lib/datadog/opentelemetry/api/context.rb +10 -3
- data/lib/datadog/opentelemetry/sdk/propagator.rb +2 -1
- data/lib/datadog/opentelemetry/sdk/span_processor.rb +48 -5
- data/lib/datadog/opentelemetry/sdk/trace/span.rb +167 -0
- data/lib/datadog/opentelemetry/trace.rb +58 -0
- data/lib/datadog/opentelemetry.rb +1 -0
- data/lib/datadog/opentracer/text_map_propagator.rb +2 -1
- data/lib/datadog/opentracer.rb +9 -0
- data/lib/datadog/profiling/collectors/cpu_and_wall_time_worker.rb +16 -17
- data/lib/datadog/profiling/collectors/idle_sampling_helper.rb +3 -1
- data/lib/datadog/profiling/collectors/thread_context.rb +17 -2
- data/lib/datadog/profiling/component.rb +69 -94
- data/lib/datadog/profiling/diagnostics/environment_logger.rb +39 -0
- data/lib/datadog/profiling/exporter.rb +5 -1
- data/lib/datadog/profiling/ext.rb +0 -12
- data/lib/datadog/profiling/flush.rb +7 -5
- data/lib/datadog/profiling/http_transport.rb +19 -6
- data/lib/datadog/profiling/load_native_extension.rb +7 -1
- data/lib/datadog/profiling/native_extension.rb +0 -21
- data/lib/datadog/profiling/profiler.rb +36 -13
- data/lib/datadog/profiling/scheduler.rb +16 -9
- data/lib/datadog/profiling.rb +16 -78
- data/lib/datadog/tracing/component.rb +70 -11
- data/lib/datadog/tracing/configuration/agent_settings_resolver.rb +13 -0
- data/lib/datadog/tracing/configuration/dynamic/option.rb +71 -0
- data/lib/datadog/tracing/configuration/dynamic.rb +64 -0
- data/lib/datadog/tracing/configuration/ext.rb +40 -32
- data/lib/datadog/tracing/configuration/http.rb +74 -0
- data/lib/datadog/tracing/configuration/settings.rb +134 -98
- data/lib/datadog/tracing/contrib/action_cable/configuration/settings.rb +9 -6
- data/lib/datadog/tracing/contrib/action_cable/ext.rb +20 -18
- data/lib/datadog/tracing/contrib/action_mailer/configuration/settings.rb +9 -6
- data/lib/datadog/tracing/contrib/action_mailer/ext.rb +20 -18
- data/lib/datadog/tracing/contrib/action_pack/configuration/settings.rb +9 -7
- data/lib/datadog/tracing/contrib/action_pack/ext.rb +10 -8
- data/lib/datadog/tracing/contrib/action_view/configuration/settings.rb +9 -6
- data/lib/datadog/tracing/contrib/action_view/ext.rb +12 -10
- data/lib/datadog/tracing/contrib/active_job/configuration/settings.rb +13 -7
- data/lib/datadog/tracing/contrib/active_job/ext.rb +25 -23
- data/lib/datadog/tracing/contrib/active_job/log_injection.rb +1 -1
- data/lib/datadog/tracing/contrib/active_job/patcher.rb +1 -1
- data/lib/datadog/tracing/contrib/active_model_serializers/configuration/settings.rb +9 -6
- data/lib/datadog/tracing/contrib/active_model_serializers/ext.rb +12 -10
- data/lib/datadog/tracing/contrib/active_record/configuration/resolver.rb +18 -11
- data/lib/datadog/tracing/contrib/active_record/configuration/settings.rb +9 -7
- data/lib/datadog/tracing/contrib/active_record/events/sql.rb +2 -6
- data/lib/datadog/tracing/contrib/active_record/ext.rb +17 -15
- data/lib/datadog/tracing/contrib/active_record/utils.rb +1 -1
- data/lib/datadog/tracing/contrib/active_support/cache/instrumentation.rb +106 -202
- data/lib/datadog/tracing/contrib/active_support/cache/patcher.rb +3 -0
- data/lib/datadog/tracing/contrib/active_support/configuration/settings.rb +9 -7
- data/lib/datadog/tracing/contrib/active_support/ext.rb +18 -16
- data/lib/datadog/tracing/contrib/aws/configuration/settings.rb +14 -7
- data/lib/datadog/tracing/contrib/aws/ext.rb +37 -24
- data/lib/datadog/tracing/contrib/aws/instrumentation.rb +16 -5
- data/lib/datadog/tracing/contrib/concurrent_ruby/configuration/settings.rb +3 -2
- data/lib/datadog/tracing/contrib/concurrent_ruby/context_composite_executor_service.rb +14 -14
- data/lib/datadog/tracing/contrib/concurrent_ruby/ext.rb +4 -2
- data/lib/datadog/tracing/contrib/concurrent_ruby/future_patch.rb +3 -10
- data/lib/datadog/tracing/contrib/concurrent_ruby/integration.rb +2 -1
- data/lib/datadog/tracing/contrib/concurrent_ruby/patcher.rb +8 -1
- data/lib/datadog/tracing/contrib/concurrent_ruby/promises_future_patch.rb +22 -0
- data/lib/datadog/tracing/contrib/configuration/settings.rb +1 -1
- data/lib/datadog/tracing/contrib/dalli/configuration/settings.rb +20 -7
- data/lib/datadog/tracing/contrib/dalli/ext.rb +26 -11
- data/lib/datadog/tracing/contrib/dalli/instrumentation.rb +17 -8
- data/lib/datadog/tracing/contrib/delayed_job/configuration/settings.rb +13 -7
- data/lib/datadog/tracing/contrib/delayed_job/ext.rb +16 -14
- data/lib/datadog/tracing/contrib/elasticsearch/configuration/settings.rb +14 -7
- data/lib/datadog/tracing/contrib/elasticsearch/ext.rb +21 -15
- data/lib/datadog/tracing/contrib/elasticsearch/patcher.rb +104 -99
- data/lib/datadog/tracing/contrib/ethon/configuration/settings.rb +16 -9
- data/lib/datadog/tracing/contrib/ethon/easy_patch.rb +48 -3
- data/lib/datadog/tracing/contrib/ethon/ext.rb +19 -11
- data/lib/datadog/tracing/contrib/ethon/multi_patch.rb +6 -3
- data/lib/datadog/tracing/contrib/excon/configuration/settings.rb +19 -10
- data/lib/datadog/tracing/contrib/excon/ext.rb +16 -8
- data/lib/datadog/tracing/contrib/excon/middleware.rb +25 -5
- data/lib/datadog/tracing/contrib/ext.rb +26 -1
- data/lib/datadog/tracing/contrib/extensions.rb +32 -0
- data/lib/datadog/tracing/contrib/faraday/configuration/settings.rb +20 -10
- data/lib/datadog/tracing/contrib/faraday/ext.rb +16 -8
- data/lib/datadog/tracing/contrib/faraday/middleware.rb +21 -5
- data/lib/datadog/tracing/contrib/grape/configuration/settings.rb +8 -6
- data/lib/datadog/tracing/contrib/grape/ext.rb +16 -14
- data/lib/datadog/tracing/contrib/graphql/configuration/settings.rb +8 -6
- data/lib/datadog/tracing/contrib/graphql/ext.rb +7 -5
- data/lib/datadog/tracing/contrib/grpc/configuration/settings.rb +39 -9
- data/lib/datadog/tracing/contrib/grpc/datadog_interceptor/client.rb +39 -20
- data/lib/datadog/tracing/contrib/grpc/datadog_interceptor/server.rb +37 -18
- data/lib/datadog/tracing/contrib/grpc/datadog_interceptor.rb +0 -4
- data/lib/datadog/tracing/contrib/grpc/ext.rb +16 -13
- data/lib/datadog/tracing/contrib/grpc/formatting.rb +127 -0
- data/lib/datadog/tracing/contrib/hanami/configuration/settings.rb +3 -2
- data/lib/datadog/tracing/contrib/hanami/ext.rb +10 -8
- data/lib/datadog/tracing/contrib/http/circuit_breaker.rb +5 -8
- data/lib/datadog/tracing/contrib/http/configuration/settings.rb +33 -11
- data/lib/datadog/tracing/contrib/http/ext.rb +16 -9
- data/lib/datadog/tracing/contrib/http/instrumentation.rb +27 -7
- data/lib/datadog/tracing/contrib/httpclient/configuration/settings.rb +33 -11
- data/lib/datadog/tracing/contrib/httpclient/ext.rb +17 -9
- data/lib/datadog/tracing/contrib/httpclient/instrumentation.rb +22 -5
- data/lib/datadog/tracing/contrib/httprb/configuration/settings.rb +33 -11
- data/lib/datadog/tracing/contrib/httprb/ext.rb +16 -9
- data/lib/datadog/tracing/contrib/httprb/instrumentation.rb +22 -5
- data/lib/datadog/tracing/contrib/kafka/configuration/settings.rb +9 -6
- data/lib/datadog/tracing/contrib/kafka/ext.rb +42 -39
- data/lib/datadog/tracing/contrib/lograge/configuration/settings.rb +3 -2
- data/lib/datadog/tracing/contrib/lograge/ext.rb +3 -1
- data/lib/datadog/tracing/contrib/lograge/instrumentation.rb +2 -17
- data/lib/datadog/tracing/contrib/mongodb/configuration/settings.rb +14 -7
- data/lib/datadog/tracing/contrib/mongodb/ext.rb +20 -16
- data/lib/datadog/tracing/contrib/mongodb/subscribers.rb +16 -5
- data/lib/datadog/tracing/contrib/mysql2/configuration/settings.rb +17 -14
- data/lib/datadog/tracing/contrib/mysql2/ext.rb +15 -10
- data/lib/datadog/tracing/contrib/mysql2/instrumentation.rb +20 -6
- data/lib/datadog/tracing/contrib/opensearch/configuration/settings.rb +52 -0
- data/lib/datadog/tracing/contrib/opensearch/ext.rb +37 -0
- data/lib/datadog/tracing/contrib/opensearch/integration.rb +44 -0
- data/lib/datadog/tracing/contrib/opensearch/patcher.rb +135 -0
- data/lib/datadog/tracing/contrib/opensearch/quantize.rb +81 -0
- data/lib/datadog/tracing/contrib/pg/configuration/settings.rb +22 -14
- data/lib/datadog/tracing/contrib/pg/ext.rb +22 -19
- data/lib/datadog/tracing/contrib/pg/instrumentation.rb +38 -5
- data/lib/datadog/tracing/contrib/presto/configuration/settings.rb +14 -7
- data/lib/datadog/tracing/contrib/presto/ext.rb +25 -20
- data/lib/datadog/tracing/contrib/presto/instrumentation.rb +14 -5
- data/lib/datadog/tracing/contrib/propagation/sql_comment/ext.rb +12 -10
- data/lib/datadog/tracing/contrib/propagation/sql_comment.rb +1 -1
- data/lib/datadog/tracing/contrib/qless/configuration/settings.rb +12 -8
- data/lib/datadog/tracing/contrib/qless/ext.rb +14 -12
- data/lib/datadog/tracing/contrib/que/configuration/settings.rb +21 -12
- data/lib/datadog/tracing/contrib/racecar/configuration/settings.rb +9 -7
- data/lib/datadog/tracing/contrib/racecar/event.rb +5 -5
- data/lib/datadog/tracing/contrib/racecar/ext.rb +20 -18
- data/lib/datadog/tracing/contrib/rack/configuration/settings.rb +16 -12
- data/lib/datadog/tracing/contrib/rack/ext.rb +18 -16
- data/lib/datadog/tracing/contrib/rack/header_collection.rb +3 -0
- data/lib/datadog/tracing/contrib/rack/header_tagging.rb +63 -0
- data/lib/datadog/tracing/contrib/rack/middlewares.rb +8 -49
- data/lib/datadog/tracing/contrib/rails/configuration/settings.rb +19 -15
- data/lib/datadog/tracing/contrib/rails/ext.rb +7 -5
- data/lib/datadog/tracing/contrib/rails/log_injection.rb +7 -10
- data/lib/datadog/tracing/contrib/rails/patcher.rb +10 -41
- data/lib/datadog/tracing/contrib/rails/railtie.rb +3 -3
- data/lib/datadog/tracing/contrib/rake/configuration/settings.rb +13 -10
- data/lib/datadog/tracing/contrib/rake/ext.rb +14 -12
- data/lib/datadog/tracing/contrib/redis/configuration/settings.rb +17 -9
- data/lib/datadog/tracing/contrib/redis/ext.rb +22 -15
- data/lib/datadog/tracing/contrib/redis/instrumentation.rb +3 -38
- data/lib/datadog/tracing/contrib/redis/tags.rb +16 -7
- data/lib/datadog/tracing/contrib/redis/trace_middleware.rb +46 -33
- data/lib/datadog/tracing/contrib/resque/configuration/settings.rb +13 -7
- data/lib/datadog/tracing/contrib/resque/ext.rb +9 -7
- data/lib/datadog/tracing/contrib/rest_client/configuration/settings.rb +16 -9
- data/lib/datadog/tracing/contrib/rest_client/ext.rb +15 -8
- data/lib/datadog/tracing/contrib/rest_client/request_patch.rb +25 -5
- data/lib/datadog/tracing/contrib/roda/configuration/settings.rb +9 -6
- data/lib/datadog/tracing/contrib/semantic_logger/configuration/settings.rb +3 -2
- data/lib/datadog/tracing/contrib/semantic_logger/ext.rb +3 -1
- data/lib/datadog/tracing/contrib/semantic_logger/instrumentation.rb +4 -20
- data/lib/datadog/tracing/contrib/sequel/configuration/settings.rb +9 -6
- data/lib/datadog/tracing/contrib/sequel/ext.rb +10 -8
- data/lib/datadog/tracing/contrib/sequel/utils.rb +7 -7
- data/lib/datadog/tracing/contrib/shoryuken/configuration/settings.rb +14 -8
- data/lib/datadog/tracing/contrib/shoryuken/ext.rb +14 -12
- data/lib/datadog/tracing/contrib/sidekiq/configuration/settings.rb +18 -11
- data/lib/datadog/tracing/contrib/sidekiq/ext.rb +32 -30
- data/lib/datadog/tracing/contrib/sinatra/configuration/settings.rb +11 -9
- data/lib/datadog/tracing/contrib/sinatra/env.rb +0 -17
- data/lib/datadog/tracing/contrib/sinatra/ext.rb +21 -19
- data/lib/datadog/tracing/contrib/sinatra/tracer_middleware.rb +3 -14
- data/lib/datadog/tracing/contrib/sneakers/configuration/settings.rb +14 -8
- data/lib/datadog/tracing/contrib/sneakers/ext.rb +1 -0
- data/lib/datadog/tracing/contrib/sneakers/tracer.rb +1 -1
- data/lib/datadog/tracing/contrib/span_attribute_schema.rb +74 -10
- data/lib/datadog/tracing/contrib/stripe/configuration/settings.rb +9 -6
- data/lib/datadog/tracing/contrib/sucker_punch/configuration/settings.rb +9 -6
- data/lib/datadog/tracing/contrib/sucker_punch/ext.rb +15 -13
- data/lib/datadog/tracing/contrib/utils/database.rb +5 -3
- data/lib/datadog/tracing/contrib/utils/quantization/http.rb +11 -11
- data/lib/datadog/tracing/contrib.rb +1 -0
- data/lib/datadog/tracing/correlation.rb +29 -12
- data/lib/datadog/tracing/diagnostics/environment_logger.rb +165 -0
- data/lib/datadog/tracing/diagnostics/ext.rb +21 -19
- data/lib/datadog/tracing/distributed/b3_multi.rb +2 -2
- data/lib/datadog/tracing/distributed/b3_single.rb +1 -1
- data/lib/datadog/tracing/distributed/datadog.rb +0 -1
- data/lib/datadog/tracing/distributed/propagation.rb +35 -34
- data/lib/datadog/tracing/distributed/trace_context.rb +52 -17
- data/lib/datadog/tracing/metadata/ext.rb +9 -6
- data/lib/datadog/tracing/metadata/tagging.rb +3 -3
- data/lib/datadog/tracing/remote.rb +78 -0
- data/lib/datadog/tracing/sampling/rule_sampler.rb +29 -0
- data/lib/datadog/tracing/span_operation.rb +3 -15
- data/lib/datadog/tracing/sync_writer.rb +3 -3
- data/lib/datadog/tracing/trace_digest.rb +31 -0
- data/lib/datadog/tracing/trace_operation.rb +16 -3
- data/lib/datadog/tracing/trace_segment.rb +5 -2
- data/lib/datadog/tracing/tracer.rb +12 -1
- data/lib/datadog/{core → tracing}/transport/http/api/instance.rb +1 -1
- data/lib/datadog/{core → tracing}/transport/http/api/spec.rb +1 -1
- data/lib/datadog/tracing/transport/http/api.rb +43 -0
- data/lib/datadog/{core → tracing}/transport/http/builder.rb +13 -68
- data/lib/datadog/tracing/transport/http/client.rb +57 -0
- data/lib/datadog/tracing/transport/http/statistics.rb +47 -0
- data/lib/datadog/tracing/transport/http/traces.rb +152 -0
- data/lib/datadog/tracing/transport/http.rb +124 -0
- data/lib/datadog/tracing/transport/io/client.rb +89 -0
- data/lib/datadog/tracing/transport/io/response.rb +27 -0
- data/lib/datadog/tracing/transport/io/traces.rb +101 -0
- data/lib/datadog/tracing/transport/io.rb +30 -0
- data/lib/datadog/tracing/transport/serializable_trace.rb +126 -0
- data/lib/datadog/tracing/transport/statistics.rb +77 -0
- data/lib/datadog/tracing/transport/trace_formatter.rb +209 -0
- data/lib/datadog/tracing/transport/traces.rb +224 -0
- data/lib/datadog/tracing/workers/trace_writer.rb +6 -4
- data/lib/datadog/tracing/workers.rb +4 -2
- data/lib/datadog/tracing/writer.rb +5 -2
- data/lib/ddtrace/transport/ext.rb +22 -14
- data/lib/ddtrace/version.rb +9 -12
- data/lib/ddtrace.rb +1 -1
- metadata +101 -93
- data/lib/datadog/ci/configuration/components.rb +0 -32
- data/lib/datadog/ci/configuration/settings.rb +0 -53
- data/lib/datadog/ci/contrib/cucumber/configuration/settings.rb +0 -33
- data/lib/datadog/ci/contrib/cucumber/ext.rb +0 -20
- data/lib/datadog/ci/contrib/cucumber/formatter.rb +0 -94
- data/lib/datadog/ci/contrib/cucumber/instrumentation.rb +0 -28
- data/lib/datadog/ci/contrib/cucumber/integration.rb +0 -47
- data/lib/datadog/ci/contrib/cucumber/patcher.rb +0 -27
- data/lib/datadog/ci/contrib/rspec/configuration/settings.rb +0 -33
- data/lib/datadog/ci/contrib/rspec/example.rb +0 -68
- data/lib/datadog/ci/contrib/rspec/ext.rb +0 -19
- data/lib/datadog/ci/contrib/rspec/integration.rb +0 -48
- data/lib/datadog/ci/contrib/rspec/patcher.rb +0 -27
- data/lib/datadog/ci/ext/app_types.rb +0 -9
- data/lib/datadog/ci/ext/environment.rb +0 -575
- data/lib/datadog/ci/ext/settings.rb +0 -10
- data/lib/datadog/ci/ext/test.rb +0 -35
- data/lib/datadog/ci/extensions.rb +0 -19
- data/lib/datadog/ci/flush.rb +0 -38
- data/lib/datadog/ci/test.rb +0 -81
- data/lib/datadog/ci.rb +0 -20
- data/lib/datadog/core/configuration/dependency_resolver.rb +0 -28
- data/lib/datadog/core/configuration/option_definition_set.rb +0 -22
- data/lib/datadog/core/configuration/option_set.rb +0 -10
- data/lib/datadog/core/transport/config.rb +0 -58
- data/lib/datadog/core/transport/http/api.rb +0 -57
- data/lib/datadog/core/transport/http/client.rb +0 -45
- data/lib/datadog/core/transport/http/config.rb +0 -268
- data/lib/datadog/core/transport/http/negotiation.rb +0 -144
- data/lib/datadog/core/transport/http.rb +0 -169
- data/lib/datadog/core/utils/object_set.rb +0 -43
- data/lib/datadog/core/utils/string_table.rb +0 -47
- data/lib/datadog/profiling/backtrace_location.rb +0 -34
- data/lib/datadog/profiling/buffer.rb +0 -43
- data/lib/datadog/profiling/collectors/old_stack.rb +0 -301
- data/lib/datadog/profiling/encoding/profile.rb +0 -41
- data/lib/datadog/profiling/event.rb +0 -15
- data/lib/datadog/profiling/events/stack.rb +0 -82
- data/lib/datadog/profiling/old_recorder.rb +0 -107
- data/lib/datadog/profiling/pprof/builder.rb +0 -125
- data/lib/datadog/profiling/pprof/converter.rb +0 -102
- data/lib/datadog/profiling/pprof/message_set.rb +0 -16
- data/lib/datadog/profiling/pprof/payload.rb +0 -20
- data/lib/datadog/profiling/pprof/pprof.proto +0 -212
- data/lib/datadog/profiling/pprof/pprof_pb.rb +0 -81
- data/lib/datadog/profiling/pprof/stack_sample.rb +0 -139
- data/lib/datadog/profiling/pprof/string_table.rb +0 -12
- data/lib/datadog/profiling/pprof/template.rb +0 -118
- data/lib/datadog/profiling/trace_identifiers/ddtrace.rb +0 -43
- data/lib/datadog/profiling/trace_identifiers/helper.rb +0 -45
- data/lib/datadog/tracing/contrib/sinatra/headers.rb +0 -35
- data/lib/ddtrace/transport/http/adapters/net.rb +0 -168
- data/lib/ddtrace/transport/http/adapters/registry.rb +0 -27
- data/lib/ddtrace/transport/http/adapters/test.rb +0 -85
- data/lib/ddtrace/transport/http/adapters/unix_socket.rb +0 -77
- data/lib/ddtrace/transport/http/api/endpoint.rb +0 -29
- data/lib/ddtrace/transport/http/api/fallbacks.rb +0 -24
- data/lib/ddtrace/transport/http/api/instance.rb +0 -35
- data/lib/ddtrace/transport/http/api/map.rb +0 -16
- data/lib/ddtrace/transport/http/api/spec.rb +0 -17
- data/lib/ddtrace/transport/http/api.rb +0 -39
- data/lib/ddtrace/transport/http/builder.rb +0 -176
- data/lib/ddtrace/transport/http/client.rb +0 -52
- data/lib/ddtrace/transport/http/env.rb +0 -58
- data/lib/ddtrace/transport/http/response.rb +0 -58
- data/lib/ddtrace/transport/http/statistics.rb +0 -43
- data/lib/ddtrace/transport/http/traces.rb +0 -144
- data/lib/ddtrace/transport/http.rb +0 -117
- data/lib/ddtrace/transport/io/client.rb +0 -85
- data/lib/ddtrace/transport/io/response.rb +0 -25
- data/lib/ddtrace/transport/io/traces.rb +0 -99
- data/lib/ddtrace/transport/io.rb +0 -28
- data/lib/ddtrace/transport/parcel.rb +0 -20
- data/lib/ddtrace/transport/request.rb +0 -15
- data/lib/ddtrace/transport/response.rb +0 -60
- data/lib/ddtrace/transport/serializable_trace.rb +0 -122
- data/lib/ddtrace/transport/statistics.rb +0 -75
- data/lib/ddtrace/transport/trace_formatter.rb +0 -198
- data/lib/ddtrace/transport/traces.rb +0 -216
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 69e775ab06a83ce14114a7287056e3d3fb575191b7ff6ccdc5c7b33f7fd58172
|
4
|
+
data.tar.gz: 13b607a4e29e516be4988dca7827eca09b79e968cf98e0641a155039d2ec3273
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: d345e07c8b0a654974c51a7457b3fc6d3d7eb99226cfc5555d6bc8ee3e65b17b3782b1e582591be925297c09dd104108007b2081e28ee43c103f8f2fec3ffe5b
|
7
|
+
data.tar.gz: '085ea801f5fae16ed58cd79bab86839cd1aa23fa09261b39219264f603455633e19dbb8f60d647e407c7218d7d00052ef7b593405ec5af828af56ffecd58227d'
|
data/CHANGELOG.md
CHANGED
@@ -2,21 +2,246 @@
|
|
2
2
|
|
3
3
|
## [Unreleased]
|
4
4
|
|
5
|
+
## [1.18.0] - 2023-12-07
|
6
|
+
|
7
|
+
### Added
|
8
|
+
|
9
|
+
* Tracing: Support lib injection for ARM64 architecture ([#3307][])
|
10
|
+
* Tracing: Add `error_handler` for `pg` instrumentation ([#3303][])
|
11
|
+
* Appsec: Enable "Trusted IPs", a.k.a passlist with optional monitoring ([#3229][])
|
12
|
+
|
13
|
+
### Changed
|
14
|
+
|
15
|
+
* Mark ddtrace threads as fork-safe ([#3279][])
|
16
|
+
* Bump `datadog-ci` dependency to 0.5.0 ([#3308][])
|
17
|
+
* Bump `debase-ruby_core_source` dependency to 3.2.3 ([#3284][])
|
18
|
+
* Profiling: Disable profiler on Ruby 3.3 when running with RUBY_MN_THREADS=1 ([#3259][])
|
19
|
+
* Profiling: Run without "no signals" workaround on passenger 6.0.19+ ([#3280][])
|
20
|
+
|
21
|
+
### Fixed
|
22
|
+
|
23
|
+
* Tracing: Fix `pg` instrumentation `enabled` settings ([#3271][])
|
24
|
+
* Profiling: Fix potential crash by importing upstream `rb_profile_frames` fix ([#3289][])
|
25
|
+
* Appsec: Call `devise` RegistrationsController block ([#3286][])
|
26
|
+
|
27
|
+
## [1.17.0] - 2023-11-22
|
28
|
+
|
29
|
+
For W3C Trace Context, this release adds [`tracecontext`](https://www.w3.org/TR/trace-context/) to the default trace propagation extraction and injection styles. The new defaults are:
|
30
|
+
* Extraction: `Datadog,b3multi,b3,tracecontext`
|
31
|
+
* Injection: `Datadog,tracecontext`
|
32
|
+
|
33
|
+
And to increase interoperability with `tracecontext`, 128-bit Trace ID generation is now the default.
|
34
|
+
|
35
|
+
For OpenTelemetry, this release adds support for converting [OpenTelemetry Trace Semantic Conventions](https://opentelemetry.io/docs/specs/semconv/general/trace/) into equivalent Datadog trace semantics. Also, it's now possible to configure top-level Datadog span fields using OpenTelemetry span attributes (https://github.com/DataDog/dd-trace-rb/pull/3262).
|
36
|
+
|
37
|
+
For CI Visibility, you can now manually create CI traces and spans with the [newly released API](https://github.com/DataDog/datadog-ci-rb/releases/tag/v0.4.0).
|
38
|
+
|
39
|
+
### Added
|
40
|
+
|
41
|
+
* OpenTelemetry: Parse OpenTelemetry semantic conventions to Datadog's ([#3273][])
|
42
|
+
* OpenTelemetry: Support span reserved attribute overrides ([#3262][])
|
43
|
+
* Tracing: Ensure W3C `tracestate` is always propagated ([#3255][])
|
44
|
+
|
45
|
+
### Changed
|
46
|
+
|
47
|
+
* Tracing: Set 128-bit trace_id to true by default ([#3266][])
|
48
|
+
* Tracing: Default trace propagation styles to `Datadog,b3multi,b3,tracecontext` ([#3248][],[#3267][])
|
49
|
+
* Ci-App: Upgraded `datadog-ci` dependency to 0.4 ([#3270][])
|
50
|
+
|
51
|
+
## [1.16.2] - 2023-11-10
|
52
|
+
|
53
|
+
This release reverts a change to appsec response body parsing that was introduced in [1.16.0 ](https://github.com/DataDog/dd-trace-rb/releases/tag/v1.16.0) that may cause memory leaks.
|
54
|
+
|
55
|
+
### Fixed
|
56
|
+
* Appsec: [Revert parse response body fix introduced in 1.16.0](https://github.com/DataDog/dd-trace-rb/pull/3153) ([#3252][])
|
57
|
+
|
58
|
+
## [1.16.1] - 2023-11-08
|
59
|
+
|
60
|
+
### Fixed
|
61
|
+
|
62
|
+
* Tracing: Fix `concurrent-ruby` future propagation without `active_trace` ([#3242][])
|
63
|
+
* Tracing: Fix host injection error handling ([#3240][])
|
64
|
+
|
65
|
+
## [1.16.0] - 2023-11-03
|
66
|
+
|
67
|
+
**This release includes a security change for the Tracing Redis integration:**
|
68
|
+
|
69
|
+
Currently, the Datadog Agent removes command arguments from the resource name. However there are cases, like Redis compressed keys, where this obfuscation cannot correctly remove command arguments. To safeguard that situation, the resource name set by the tracer will only be the command (e.g. `SET`) with no arguments. To retain the previous behavior and keep arguments in the span resource, with the potential risk of some command arguments not being fully obfuscated, set ``DD_REDIS_COMMAND_ARGS=true`` or set the option `c.instrument :redis, command_args: true`.
|
70
|
+
|
71
|
+
### Added
|
72
|
+
|
73
|
+
* Tracing: Propagate trace through `Concurrent::Promises.future` ([#1522][])
|
74
|
+
* Core: Name `Datadog::Core::Remote::Worker` thread ([#3207][])
|
75
|
+
|
76
|
+
### Changed
|
77
|
+
|
78
|
+
* Tracing: Redis - Omit command arguments from span.resource by default ([#3235][])
|
79
|
+
* Ci-app: Bump `datadog-ci` dependency from 0.2.0 to 0.3.0 ([#3223][])
|
80
|
+
|
81
|
+
### Fixed
|
82
|
+
|
83
|
+
* Appsec: ASM parse response body ([#3153][])
|
84
|
+
* Appsec: ASM make sure to append content type and length information ([#3204][])
|
85
|
+
* Appsec: Make sure function that checks content-type header value accepts nil content-type header value ([#3234][])
|
86
|
+
* Profiling: Shut down profiler if any components failed ([#3197][])
|
87
|
+
* Tracing: Fix `ActiveSupport` instrumentation of custom cache stores ([#3206][])
|
88
|
+
|
89
|
+
## [1.15.0] - 2023-10-09
|
90
|
+
|
91
|
+
### Highlights
|
92
|
+
|
93
|
+
* Timeline view for Profiler beta
|
94
|
+
* Configure AppSec blocking responses via configuration or Remote Configuration
|
95
|
+
* CI visibility to configure with agentless mode
|
96
|
+
|
97
|
+
For more details, check the [release notes](https://github.com/DataDog/dd-trace-rb/releases/tag/v1.15.0)
|
98
|
+
|
99
|
+
### Added
|
100
|
+
|
101
|
+
* Enable allocation counting feature by default for some Ruby 3 versions ([#3176][])
|
102
|
+
* Detect `WebMock` `Cucumber` and `Rails.env` to disable telemetry and remote configuration for development environment ([#3065][], [#3062][], [#3145][])
|
103
|
+
* Profiling: Import java-profiler PID controller and port it to C ([#3190][])
|
104
|
+
* Profiling: Record allocation type when sampling objects ([#3096][])
|
105
|
+
* Profiling: Include `ruby vm type` in profiler allocation samples ([#3074][])
|
106
|
+
* Tracing: Support `Rack` 3 ([#3132][])
|
107
|
+
* Tracing: Support `Opensearch` 3 ([#3189][])
|
108
|
+
* Tracing: `grpc` adds `client_error_handler` option ([#3095][])
|
109
|
+
* Tracing: Add `async` option for `test_mode` configuration ([#3158][])
|
110
|
+
* Tracing: Implements `_dd.base_service` tag ([#3018][])
|
111
|
+
* Appsec: Allow blocking response template configuration via ENV variables ([#2975][])
|
112
|
+
* Appsec: ASM API security. Schema extraction ([#3131][], [#3166][], [#3177][])
|
113
|
+
* Appsec: Enable configuring blocking response via Remote Configuration ([#3099][])
|
114
|
+
* Ci-app: Validate git tags ([#3100][])
|
115
|
+
* Ci-app: Add agentless mode ([#3186][])
|
116
|
+
|
117
|
+
### Changed
|
118
|
+
|
119
|
+
* Appsec: Skip passing waf addresses when the value is empty ([#3188][])
|
120
|
+
* Profiling: Restore support for Ruby 3.3 ([#3167][])
|
121
|
+
* Profiling: Add approximate thread state categorization for timeline ([#3162][])
|
122
|
+
* Profiling: Wire up allocation sampling into `CpuAndWallTimeWorker` ([#3103][])
|
123
|
+
* Tracing: `dalli` disable memcached command tag by default ([#3171][])
|
124
|
+
* Tracing: Use first valid extracted style for distributed tracing ([#2879][])
|
125
|
+
* Tracing: Rename configuration option `on_set` to `after_set` ([#3107][])
|
126
|
+
* Tracing: Rename `experimental_default_proc` to `default_proc` ([#3091][])
|
127
|
+
* Tracing: Use `peer.service` for sql comment propagation ([#3127][])
|
128
|
+
* Ci-app: Fix `Datadog::CI::Environment` to support the new CI specs ([#3080][])
|
129
|
+
* Bump `datadog-ci` dependency to 0.2 ([#3186][])
|
130
|
+
* Bump `debase-ruby_core_source` dependency to 3.2.2 ([#3163][])
|
131
|
+
* Upgrade `libdatadog` 5 ([#3169][], [#3104][])
|
132
|
+
* Upgrade `libddwaf-rb` 1.11.0 ([#3087][])
|
133
|
+
* Update AppSec rules to 1.8.0 ([#3140][], [#3139][])
|
134
|
+
|
135
|
+
### Fixed
|
136
|
+
|
137
|
+
* Profiling: Add workaround for incorrect invoke location when logging gem is in use ([#3183][])
|
138
|
+
* Profiling: Fix missing endpoint profiling when `request_queuing` is enabled in `rack` instrumentation ([#3109][])
|
139
|
+
* Appsec: Span tags reporting the number of WAF failed loaded rules ([#3106][])
|
140
|
+
* Tracing: Fix tagging with empty data ([#3102][])
|
141
|
+
* Tracing: Fix `rails.cache.backend` span tag with multiple stores ([#3060][])
|
142
|
+
|
143
|
+
### Removed
|
144
|
+
|
145
|
+
* Profiling: Remove legacy profiler codepath ([#3172][])
|
146
|
+
* Ci-app: Remove CI module and add a dependency on [`datadog-ci` gem](https://github.com/DataDog/datadog-ci-rb) ([#3128][])
|
147
|
+
* Tracing: Remove `depends_on` option from configuration DSL ([#3085][])
|
148
|
+
* Tracing: Remove `delegate_to` option from configuration DSL ([#3086][])
|
149
|
+
|
150
|
+
## [1.14.0] - 2023-08-24
|
151
|
+
|
152
|
+
### Added
|
153
|
+
|
154
|
+
* Cucumber 8.0.0 support, test CI visibility with cucumber versions 6-8 ([#3061][])
|
155
|
+
* Tracing: Add `ddsource` to #to_log_format ([#3025][])
|
156
|
+
* Core: include peer service configurations in telemetry payload ([#3056][])
|
157
|
+
* Tracing: Improve quantization ([#3041][])
|
158
|
+
|
159
|
+
### Changed
|
160
|
+
|
161
|
+
* Profiling: Disable profiler on Ruby 3.3 due to incompatibility ([#3054][])
|
162
|
+
* Core: EnvironmentLogger adjustments ([#3020][], [#3057][])
|
163
|
+
|
164
|
+
### Fixed
|
165
|
+
|
166
|
+
* Appsec: Fix ASM setting for automated user events. ([#3070][])
|
167
|
+
* Tracing: Fix ActiveRecord adapter name for Rails 7 ([#3051][])
|
168
|
+
|
169
|
+
## [1.13.1] - 2023-08-14
|
170
|
+
|
171
|
+
### Fixed
|
172
|
+
|
173
|
+
* Tracing: `net/http` instrumentation excludes query string for `http.url` tag ([#3045][])
|
174
|
+
* Tracing: Remove `log_tags` warning when given hash for log injection ([#3022][])
|
175
|
+
* Tracing: Fix OpenSearch integration loading ([#3019][])
|
176
|
+
* Core: Fix default hostname/port when mixing http and uds configuration ([#3037][])
|
177
|
+
* Core: Disable Telemetry and Remote Configuration in development environments ([#3039][])
|
178
|
+
* Profiling: Improve `Datadog::Profiling::HttpTransport` error logging ([#3038][])
|
179
|
+
* Docs: Document known issues with hanging Resque workers ([#3033][])
|
180
|
+
|
181
|
+
## [1.13.0] - 2023-07-31
|
182
|
+
|
183
|
+
### Added
|
184
|
+
|
185
|
+
* Core: Add support for `Option` precedence ([#2915][])
|
186
|
+
* Core: Add support for unsetting options ([#2972][])
|
187
|
+
* Core: Gauge primitive `RubyVM::YJIT.runtime_stats`, if `YJIT` is enabled ([#2711][], [#2959][])([@HeyNonster][])
|
188
|
+
* Core: Add Telemetry `app-client-configuration-change` event ([#2977][])
|
189
|
+
* Core: Improve our `SafeDup` module ([#2960][])
|
190
|
+
* Tracing: Add `OpenSearch` Integration ([#2940][])
|
191
|
+
* Tracing: Implement `peer.service` tag to integrations ([#2982][])
|
192
|
+
* Tracing: Add mandatory rpc and grpc tags for `grpc` integration ([#2620][], [#2962][])
|
193
|
+
* Tracing: Include `_dd.profiling.enabled` tag ([#2913][])
|
194
|
+
* Tracing: Support host injection ([#2941][], [#3007][])
|
195
|
+
* Tracing: Implement Dynamic Configuration for tracing ([#2848][], [#2973][])
|
196
|
+
* Tracing: Add for dynamic log injection configuration ([#2992][])
|
197
|
+
* Tracing: Add sampling configuration with `DD_TRACE_SAMPLING_RULES` ([#2968][])
|
198
|
+
* Tracing: Add HTTP header tagging with `DD_TRACE_HEADER_TAGS` for clients and servers ([#2946][], [#2935][])
|
199
|
+
* Profiling: Add fallback name/invoke location for unnamed threads started in native code ([#2993][])
|
200
|
+
* Profiling: Use invoke location as a fallback for nameless threads in the profiler ([#2950][])
|
201
|
+
* Profiling: Add fallback name for main thread in profiling data ([#2939][])
|
202
|
+
* Ci-app: Add `Minitest` CI integration ([#2932][]) ([@bravehager][])
|
203
|
+
* Appsec: `Devise` integration and automatic user events ([#2877][])
|
204
|
+
* Appsec: Handle disabled tracing and appsec events ([#2572][])
|
205
|
+
* Appsec: Automate user events check for UUID in safe mode ([#2952][])
|
206
|
+
* Docs: Add Ruby 3.2 support to compatibility matrix ([#2971][])
|
207
|
+
|
208
|
+
### Changed
|
209
|
+
|
210
|
+
* Core: Set maximum supported Ruby version ([#2497][])
|
211
|
+
* Core: Prevent telemetry requests from being traced ([#2961][])
|
212
|
+
* Core: Add `env` and `type` to Core configuration option ([#2983][], [#2988][], [#2994][])
|
213
|
+
* Core: Remove `lazy` from Core configuration option ([#2931][], [#2999][])
|
214
|
+
* Profiling: Bump `libdatadog` dependency to version 3 ([#2948][])
|
215
|
+
* Profiling: Improve error message when `ddtrace_profiling_loader` fails to load ([#2957][])
|
216
|
+
* Tracing: Improve log injection runtime conditionals ([#2926][], [#2882][])
|
217
|
+
|
218
|
+
### Fixed
|
219
|
+
|
220
|
+
* Core: Fix polynomial-time regular expressions ([#2814][])
|
221
|
+
* Core: Fix environment variable for dynamic configuration polling interval ([#2967][])
|
222
|
+
* Core: Reduce remote configuration error logging noise ([#3011][])
|
223
|
+
* Tracing: Fix manual log injection for 128 bit trace_id ([#2974][])
|
224
|
+
* Tracing: Ensure the GRPC client interceptor return the response ([#2928][]) ([@KJTsanaktsidis][])
|
225
|
+
* Tracing: Remove dynamic input used in regular expression ([#2867][])
|
226
|
+
* Tracing: Fix distributed tracing header formats ([#3005][] )
|
227
|
+
* Profiling: Fix profiler `libmysqlclient` version detection with `mysql2-aurora` gem ([#2956][])
|
228
|
+
* Profiling: Automatically enable profiler "no signals" workaround for `passenger` web server ([#2978][])
|
229
|
+
|
5
230
|
## [1.12.1] - 2023-06-14
|
6
231
|
|
7
232
|
### Added
|
8
|
-
Appsec: Add `appsec.blocked` tag to span ([#2895][])
|
9
|
-
Profiling: Add workaround for legacy profiler incompatibility with ruby-cloud-profiler gem ([#2891][])
|
10
|
-
Core: Allow setting remote configuration service name ([#2853][])
|
233
|
+
* Appsec: Add `appsec.blocked` tag to span ([#2895][])
|
234
|
+
* Profiling: Add workaround for legacy profiler incompatibility with ruby-cloud-profiler gem ([#2891][])
|
235
|
+
* Core: Allow setting remote configuration service name ([#2853][])
|
11
236
|
|
12
237
|
### Changed
|
13
|
-
Appsec: Change the value format for the WAF address `server.request.query` ([#2903][])
|
14
|
-
Profiling: Log pkg-config command when building profiling native extension
|
238
|
+
* Appsec: Change the value format for the WAF address `server.request.query` ([#2903][])
|
239
|
+
* Profiling: Log pkg-config command when building profiling native extension
|
15
240
|
|
16
241
|
### Fixed
|
17
|
-
Appsec: Update blocked response content_type resolution ([#2900][])
|
18
|
-
Appsec: Ensure to use service entry span. ([#2898][])
|
19
|
-
Tracing: Fix AWS integration constant loading ([#2896][])
|
242
|
+
* Appsec: Update blocked response content_type resolution ([#2900][])
|
243
|
+
* Appsec: Ensure to use service entry span. ([#2898][])
|
244
|
+
* Tracing: Fix AWS integration constant loading ([#2896][])
|
20
245
|
|
21
246
|
## [1.12.0] - 2023-06-02
|
22
247
|
|
@@ -2454,7 +2679,17 @@ Release notes: https://github.com/DataDog/dd-trace-rb/releases/tag/v0.3.1
|
|
2454
2679
|
|
2455
2680
|
Git diff: https://github.com/DataDog/dd-trace-rb/compare/v0.3.0...v0.3.1
|
2456
2681
|
|
2457
|
-
|
2682
|
+
|
2683
|
+
[Unreleased]: https://github.com/DataDog/dd-trace-rb/compare/v1.18.0...master
|
2684
|
+
[1.18.0]: https://github.com/DataDog/dd-trace-rb/compare/v1.17.0...v1.18.0
|
2685
|
+
[1.17.0]: https://github.com/DataDog/dd-trace-rb/compare/v1.16.2...v1.17.0
|
2686
|
+
[1.16.2]: https://github.com/DataDog/dd-trace-rb/compare/v1.16.1...v1.16.2
|
2687
|
+
[1.16.1]: https://github.com/DataDog/dd-trace-rb/compare/v1.16.0...v1.16.1
|
2688
|
+
[1.16.0]: https://github.com/DataDog/dd-trace-rb/compare/v1.15.0...v1.16.0
|
2689
|
+
[1.15.0]: https://github.com/DataDog/dd-trace-rb/compare/v1.14.0...v1.15.0
|
2690
|
+
[1.14.0]: https://github.com/DataDog/dd-trace-rb/compare/v1.13.1...1.14.0
|
2691
|
+
[1.13.1]: https://github.com/DataDog/dd-trace-rb/compare/v1.13.0...1.13.1
|
2692
|
+
[1.13.0]: https://github.com/DataDog/dd-trace-rb/compare/v1.12.1...v1.13.0
|
2458
2693
|
[1.12.1]: https://github.com/DataDog/dd-trace-rb/compare/v1.12.0...v1.12.1
|
2459
2694
|
[1.12.0]: https://github.com/DataDog/dd-trace-rb/compare/v1.11.1...v1.12.0
|
2460
2695
|
[1.11.1]: https://github.com/DataDog/dd-trace-rb/compare/v1.10.1...v1.11.1
|
@@ -3188,6 +3423,7 @@ Git diff: https://github.com/DataDog/dd-trace-rb/compare/v0.3.0...v0.3.1
|
|
3188
3423
|
[#1509]: https://github.com/DataDog/dd-trace-rb/issues/1509
|
3189
3424
|
[#1510]: https://github.com/DataDog/dd-trace-rb/issues/1510
|
3190
3425
|
[#1511]: https://github.com/DataDog/dd-trace-rb/issues/1511
|
3426
|
+
[#1522]: https://github.com/DataDog/dd-trace-rb/issues/1522
|
3191
3427
|
[#1523]: https://github.com/DataDog/dd-trace-rb/issues/1523
|
3192
3428
|
[#1524]: https://github.com/DataDog/dd-trace-rb/issues/1524
|
3193
3429
|
[#1529]: https://github.com/DataDog/dd-trace-rb/issues/1529
|
@@ -3427,6 +3663,7 @@ Git diff: https://github.com/DataDog/dd-trace-rb/compare/v0.3.0...v0.3.1
|
|
3427
3663
|
[#2489]: https://github.com/DataDog/dd-trace-rb/issues/2489
|
3428
3664
|
[#2493]: https://github.com/DataDog/dd-trace-rb/issues/2493
|
3429
3665
|
[#2496]: https://github.com/DataDog/dd-trace-rb/issues/2496
|
3666
|
+
[#2497]: https://github.com/DataDog/dd-trace-rb/issues/2497
|
3430
3667
|
[#2501]: https://github.com/DataDog/dd-trace-rb/issues/2501
|
3431
3668
|
[#2504]: https://github.com/DataDog/dd-trace-rb/issues/2504
|
3432
3669
|
[#2512]: https://github.com/DataDog/dd-trace-rb/issues/2512
|
@@ -3439,6 +3676,7 @@ Git diff: https://github.com/DataDog/dd-trace-rb/compare/v0.3.0...v0.3.1
|
|
3439
3676
|
[#2543]: https://github.com/DataDog/dd-trace-rb/issues/2543
|
3440
3677
|
[#2557]: https://github.com/DataDog/dd-trace-rb/issues/2557
|
3441
3678
|
[#2562]: https://github.com/DataDog/dd-trace-rb/issues/2562
|
3679
|
+
[#2572]: https://github.com/DataDog/dd-trace-rb/issues/2572
|
3442
3680
|
[#2573]: https://github.com/DataDog/dd-trace-rb/issues/2573
|
3443
3681
|
[#2576]: https://github.com/DataDog/dd-trace-rb/issues/2576
|
3444
3682
|
[#2580]: https://github.com/DataDog/dd-trace-rb/issues/2580
|
@@ -3461,6 +3699,7 @@ Git diff: https://github.com/DataDog/dd-trace-rb/compare/v0.3.0...v0.3.1
|
|
3461
3699
|
[#2614]: https://github.com/DataDog/dd-trace-rb/issues/2614
|
3462
3700
|
[#2618]: https://github.com/DataDog/dd-trace-rb/issues/2618
|
3463
3701
|
[#2619]: https://github.com/DataDog/dd-trace-rb/issues/2619
|
3702
|
+
[#2620]: https://github.com/DataDog/dd-trace-rb/issues/2620
|
3464
3703
|
[#2634]: https://github.com/DataDog/dd-trace-rb/issues/2634
|
3465
3704
|
[#2635]: https://github.com/DataDog/dd-trace-rb/issues/2635
|
3466
3705
|
[#2642]: https://github.com/DataDog/dd-trace-rb/issues/2642
|
@@ -3488,6 +3727,7 @@ Git diff: https://github.com/DataDog/dd-trace-rb/compare/v0.3.0...v0.3.1
|
|
3488
3727
|
[#2704]: https://github.com/DataDog/dd-trace-rb/issues/2704
|
3489
3728
|
[#2705]: https://github.com/DataDog/dd-trace-rb/issues/2705
|
3490
3729
|
[#2710]: https://github.com/DataDog/dd-trace-rb/issues/2710
|
3730
|
+
[#2711]: https://github.com/DataDog/dd-trace-rb/issues/2711
|
3491
3731
|
[#2720]: https://github.com/DataDog/dd-trace-rb/issues/2720
|
3492
3732
|
[#2726]: https://github.com/DataDog/dd-trace-rb/issues/2726
|
3493
3733
|
[#2727]: https://github.com/DataDog/dd-trace-rb/issues/2727
|
@@ -3514,6 +3754,7 @@ Git diff: https://github.com/DataDog/dd-trace-rb/compare/v0.3.0...v0.3.1
|
|
3514
3754
|
[#2805]: https://github.com/DataDog/dd-trace-rb/issues/2805
|
3515
3755
|
[#2806]: https://github.com/DataDog/dd-trace-rb/issues/2806
|
3516
3756
|
[#2810]: https://github.com/DataDog/dd-trace-rb/issues/2810
|
3757
|
+
[#2814]: https://github.com/DataDog/dd-trace-rb/issues/2814
|
3517
3758
|
[#2815]: https://github.com/DataDog/dd-trace-rb/issues/2815
|
3518
3759
|
[#2822]: https://github.com/DataDog/dd-trace-rb/issues/2822
|
3519
3760
|
[#2824]: https://github.com/DataDog/dd-trace-rb/issues/2824
|
@@ -3521,6 +3762,7 @@ Git diff: https://github.com/DataDog/dd-trace-rb/compare/v0.3.0...v0.3.1
|
|
3521
3762
|
[#2829]: https://github.com/DataDog/dd-trace-rb/issues/2829
|
3522
3763
|
[#2836]: https://github.com/DataDog/dd-trace-rb/issues/2836
|
3523
3764
|
[#2840]: https://github.com/DataDog/dd-trace-rb/issues/2840
|
3765
|
+
[#2848]: https://github.com/DataDog/dd-trace-rb/issues/2848
|
3524
3766
|
[#2853]: https://github.com/DataDog/dd-trace-rb/issues/2853
|
3525
3767
|
[#2854]: https://github.com/DataDog/dd-trace-rb/issues/2854
|
3526
3768
|
[#2855]: https://github.com/DataDog/dd-trace-rb/issues/2855
|
@@ -3529,10 +3771,14 @@ Git diff: https://github.com/DataDog/dd-trace-rb/compare/v0.3.0...v0.3.1
|
|
3529
3771
|
[#2860]: https://github.com/DataDog/dd-trace-rb/issues/2860
|
3530
3772
|
[#2864]: https://github.com/DataDog/dd-trace-rb/issues/2864
|
3531
3773
|
[#2866]: https://github.com/DataDog/dd-trace-rb/issues/2866
|
3774
|
+
[#2867]: https://github.com/DataDog/dd-trace-rb/issues/2867
|
3532
3775
|
[#2869]: https://github.com/DataDog/dd-trace-rb/issues/2869
|
3533
3776
|
[#2873]: https://github.com/DataDog/dd-trace-rb/issues/2873
|
3534
3777
|
[#2874]: https://github.com/DataDog/dd-trace-rb/issues/2874
|
3535
3778
|
[#2875]: https://github.com/DataDog/dd-trace-rb/issues/2875
|
3779
|
+
[#2877]: https://github.com/DataDog/dd-trace-rb/issues/2877
|
3780
|
+
[#2879]: https://github.com/DataDog/dd-trace-rb/issues/2879
|
3781
|
+
[#2882]: https://github.com/DataDog/dd-trace-rb/issues/2882
|
3536
3782
|
[#2883]: https://github.com/DataDog/dd-trace-rb/issues/2883
|
3537
3783
|
[#2890]: https://github.com/DataDog/dd-trace-rb/issues/2890
|
3538
3784
|
[#2891]: https://github.com/DataDog/dd-trace-rb/issues/2891
|
@@ -3541,6 +3787,135 @@ Git diff: https://github.com/DataDog/dd-trace-rb/compare/v0.3.0...v0.3.1
|
|
3541
3787
|
[#2898]: https://github.com/DataDog/dd-trace-rb/issues/2898
|
3542
3788
|
[#2900]: https://github.com/DataDog/dd-trace-rb/issues/2900
|
3543
3789
|
[#2903]: https://github.com/DataDog/dd-trace-rb/issues/2903
|
3790
|
+
[#2913]: https://github.com/DataDog/dd-trace-rb/issues/2913
|
3791
|
+
[#2915]: https://github.com/DataDog/dd-trace-rb/issues/2915
|
3792
|
+
[#2926]: https://github.com/DataDog/dd-trace-rb/issues/2926
|
3793
|
+
[#2928]: https://github.com/DataDog/dd-trace-rb/issues/2928
|
3794
|
+
[#2931]: https://github.com/DataDog/dd-trace-rb/issues/2931
|
3795
|
+
[#2932]: https://github.com/DataDog/dd-trace-rb/issues/2932
|
3796
|
+
[#2935]: https://github.com/DataDog/dd-trace-rb/issues/2935
|
3797
|
+
[#2939]: https://github.com/DataDog/dd-trace-rb/issues/2939
|
3798
|
+
[#2940]: https://github.com/DataDog/dd-trace-rb/issues/2940
|
3799
|
+
[#2941]: https://github.com/DataDog/dd-trace-rb/issues/2941
|
3800
|
+
[#2946]: https://github.com/DataDog/dd-trace-rb/issues/2946
|
3801
|
+
[#2948]: https://github.com/DataDog/dd-trace-rb/issues/2948
|
3802
|
+
[#2950]: https://github.com/DataDog/dd-trace-rb/issues/2950
|
3803
|
+
[#2952]: https://github.com/DataDog/dd-trace-rb/issues/2952
|
3804
|
+
[#2956]: https://github.com/DataDog/dd-trace-rb/issues/2956
|
3805
|
+
[#2957]: https://github.com/DataDog/dd-trace-rb/issues/2957
|
3806
|
+
[#2959]: https://github.com/DataDog/dd-trace-rb/issues/2959
|
3807
|
+
[#2960]: https://github.com/DataDog/dd-trace-rb/issues/2960
|
3808
|
+
[#2961]: https://github.com/DataDog/dd-trace-rb/issues/2961
|
3809
|
+
[#2962]: https://github.com/DataDog/dd-trace-rb/issues/2962
|
3810
|
+
[#2967]: https://github.com/DataDog/dd-trace-rb/issues/2967
|
3811
|
+
[#2968]: https://github.com/DataDog/dd-trace-rb/issues/2968
|
3812
|
+
[#2971]: https://github.com/DataDog/dd-trace-rb/issues/2971
|
3813
|
+
[#2972]: https://github.com/DataDog/dd-trace-rb/issues/2972
|
3814
|
+
[#2973]: https://github.com/DataDog/dd-trace-rb/issues/2973
|
3815
|
+
[#2974]: https://github.com/DataDog/dd-trace-rb/issues/2974
|
3816
|
+
[#2975]: https://github.com/DataDog/dd-trace-rb/issues/2975
|
3817
|
+
[#2977]: https://github.com/DataDog/dd-trace-rb/issues/2977
|
3818
|
+
[#2978]: https://github.com/DataDog/dd-trace-rb/issues/2978
|
3819
|
+
[#2982]: https://github.com/DataDog/dd-trace-rb/issues/2982
|
3820
|
+
[#2983]: https://github.com/DataDog/dd-trace-rb/issues/2983
|
3821
|
+
[#2988]: https://github.com/DataDog/dd-trace-rb/issues/2988
|
3822
|
+
[#2992]: https://github.com/DataDog/dd-trace-rb/issues/2992
|
3823
|
+
[#2993]: https://github.com/DataDog/dd-trace-rb/issues/2993
|
3824
|
+
[#2994]: https://github.com/DataDog/dd-trace-rb/issues/2994
|
3825
|
+
[#2999]: https://github.com/DataDog/dd-trace-rb/issues/2999
|
3826
|
+
[#3005]: https://github.com/DataDog/dd-trace-rb/issues/3005
|
3827
|
+
[#3007]: https://github.com/DataDog/dd-trace-rb/issues/3007
|
3828
|
+
[#3011]: https://github.com/DataDog/dd-trace-rb/issues/3011
|
3829
|
+
[#3018]: https://github.com/DataDog/dd-trace-rb/issues/3018
|
3830
|
+
[#3019]: https://github.com/DataDog/dd-trace-rb/issues/3019
|
3831
|
+
[#3020]: https://github.com/DataDog/dd-trace-rb/issues/3020
|
3832
|
+
[#3022]: https://github.com/DataDog/dd-trace-rb/issues/3022
|
3833
|
+
[#3025]: https://github.com/DataDog/dd-trace-rb/issues/3025
|
3834
|
+
[#3033]: https://github.com/DataDog/dd-trace-rb/issues/3033
|
3835
|
+
[#3037]: https://github.com/DataDog/dd-trace-rb/issues/3037
|
3836
|
+
[#3038]: https://github.com/DataDog/dd-trace-rb/issues/3038
|
3837
|
+
[#3039]: https://github.com/DataDog/dd-trace-rb/issues/3039
|
3838
|
+
[#3041]: https://github.com/DataDog/dd-trace-rb/issues/3041
|
3839
|
+
[#3045]: https://github.com/DataDog/dd-trace-rb/issues/3045
|
3840
|
+
[#3051]: https://github.com/DataDog/dd-trace-rb/issues/3051
|
3841
|
+
[#3054]: https://github.com/DataDog/dd-trace-rb/issues/3054
|
3842
|
+
[#3056]: https://github.com/DataDog/dd-trace-rb/issues/3056
|
3843
|
+
[#3057]: https://github.com/DataDog/dd-trace-rb/issues/3057
|
3844
|
+
[#3060]: https://github.com/DataDog/dd-trace-rb/issues/3060
|
3845
|
+
[#3061]: https://github.com/DataDog/dd-trace-rb/issues/3061
|
3846
|
+
[#3062]: https://github.com/DataDog/dd-trace-rb/issues/3062
|
3847
|
+
[#3065]: https://github.com/DataDog/dd-trace-rb/issues/3065
|
3848
|
+
[#3070]: https://github.com/DataDog/dd-trace-rb/issues/3070
|
3849
|
+
[#3074]: https://github.com/DataDog/dd-trace-rb/issues/3074
|
3850
|
+
[#3080]: https://github.com/DataDog/dd-trace-rb/issues/3080
|
3851
|
+
[#3085]: https://github.com/DataDog/dd-trace-rb/issues/3085
|
3852
|
+
[#3086]: https://github.com/DataDog/dd-trace-rb/issues/3086
|
3853
|
+
[#3087]: https://github.com/DataDog/dd-trace-rb/issues/3087
|
3854
|
+
[#3091]: https://github.com/DataDog/dd-trace-rb/issues/3091
|
3855
|
+
[#3095]: https://github.com/DataDog/dd-trace-rb/issues/3095
|
3856
|
+
[#3096]: https://github.com/DataDog/dd-trace-rb/issues/3096
|
3857
|
+
[#3099]: https://github.com/DataDog/dd-trace-rb/issues/3099
|
3858
|
+
[#3100]: https://github.com/DataDog/dd-trace-rb/issues/3100
|
3859
|
+
[#3102]: https://github.com/DataDog/dd-trace-rb/issues/3102
|
3860
|
+
[#3103]: https://github.com/DataDog/dd-trace-rb/issues/3103
|
3861
|
+
[#3104]: https://github.com/DataDog/dd-trace-rb/issues/3104
|
3862
|
+
[#3106]: https://github.com/DataDog/dd-trace-rb/issues/3106
|
3863
|
+
[#3107]: https://github.com/DataDog/dd-trace-rb/issues/3107
|
3864
|
+
[#3109]: https://github.com/DataDog/dd-trace-rb/issues/3109
|
3865
|
+
[#3127]: https://github.com/DataDog/dd-trace-rb/issues/3127
|
3866
|
+
[#3128]: https://github.com/DataDog/dd-trace-rb/issues/3128
|
3867
|
+
[#3131]: https://github.com/DataDog/dd-trace-rb/issues/3131
|
3868
|
+
[#3132]: https://github.com/DataDog/dd-trace-rb/issues/3132
|
3869
|
+
[#3139]: https://github.com/DataDog/dd-trace-rb/issues/3139
|
3870
|
+
[#3140]: https://github.com/DataDog/dd-trace-rb/issues/3140
|
3871
|
+
[#3145]: https://github.com/DataDog/dd-trace-rb/issues/3145
|
3872
|
+
[#3148]: https://github.com/DataDog/dd-trace-rb/issues/3148
|
3873
|
+
[#3150]: https://github.com/DataDog/dd-trace-rb/issues/3150
|
3874
|
+
[#3152]: https://github.com/DataDog/dd-trace-rb/issues/3152
|
3875
|
+
[#3153]: https://github.com/DataDog/dd-trace-rb/issues/3153
|
3876
|
+
[#3158]: https://github.com/DataDog/dd-trace-rb/issues/3158
|
3877
|
+
[#3162]: https://github.com/DataDog/dd-trace-rb/issues/3162
|
3878
|
+
[#3163]: https://github.com/DataDog/dd-trace-rb/issues/3163
|
3879
|
+
[#3166]: https://github.com/DataDog/dd-trace-rb/issues/3166
|
3880
|
+
[#3167]: https://github.com/DataDog/dd-trace-rb/issues/3167
|
3881
|
+
[#3169]: https://github.com/DataDog/dd-trace-rb/issues/3169
|
3882
|
+
[#3171]: https://github.com/DataDog/dd-trace-rb/issues/3171
|
3883
|
+
[#3172]: https://github.com/DataDog/dd-trace-rb/issues/3172
|
3884
|
+
[#3176]: https://github.com/DataDog/dd-trace-rb/issues/3176
|
3885
|
+
[#3177]: https://github.com/DataDog/dd-trace-rb/issues/3177
|
3886
|
+
[#3183]: https://github.com/DataDog/dd-trace-rb/issues/3183
|
3887
|
+
[#3186]: https://github.com/DataDog/dd-trace-rb/issues/3186
|
3888
|
+
[#3188]: https://github.com/DataDog/dd-trace-rb/issues/3188
|
3889
|
+
[#3189]: https://github.com/DataDog/dd-trace-rb/issues/3189
|
3890
|
+
[#3190]: https://github.com/DataDog/dd-trace-rb/issues/3190
|
3891
|
+
[#3197]: https://github.com/DataDog/dd-trace-rb/issues/3197
|
3892
|
+
[#3204]: https://github.com/DataDog/dd-trace-rb/issues/3204
|
3893
|
+
[#3206]: https://github.com/DataDog/dd-trace-rb/issues/3206
|
3894
|
+
[#3207]: https://github.com/DataDog/dd-trace-rb/issues/3207
|
3895
|
+
[#3223]: https://github.com/DataDog/dd-trace-rb/issues/3223
|
3896
|
+
[#3229]: https://github.com/DataDog/dd-trace-rb/issues/3229
|
3897
|
+
[#3234]: https://github.com/DataDog/dd-trace-rb/issues/3234
|
3898
|
+
[#3235]: https://github.com/DataDog/dd-trace-rb/issues/3235
|
3899
|
+
[#3240]: https://github.com/DataDog/dd-trace-rb/issues/3240
|
3900
|
+
[#3242]: https://github.com/DataDog/dd-trace-rb/issues/3242
|
3901
|
+
[#3248]: https://github.com/DataDog/dd-trace-rb/issues/3248
|
3902
|
+
[#3252]: https://github.com/DataDog/dd-trace-rb/issues/3252
|
3903
|
+
[#3255]: https://github.com/DataDog/dd-trace-rb/issues/3255
|
3904
|
+
[#3259]: https://github.com/DataDog/dd-trace-rb/issues/3259
|
3905
|
+
[#3262]: https://github.com/DataDog/dd-trace-rb/issues/3262
|
3906
|
+
[#3266]: https://github.com/DataDog/dd-trace-rb/issues/3266
|
3907
|
+
[#3267]: https://github.com/DataDog/dd-trace-rb/issues/3267
|
3908
|
+
[#3270]: https://github.com/DataDog/dd-trace-rb/issues/3270
|
3909
|
+
[#3271]: https://github.com/DataDog/dd-trace-rb/issues/3271
|
3910
|
+
[#3273]: https://github.com/DataDog/dd-trace-rb/issues/3273
|
3911
|
+
[#3279]: https://github.com/DataDog/dd-trace-rb/issues/3279
|
3912
|
+
[#3280]: https://github.com/DataDog/dd-trace-rb/issues/3280
|
3913
|
+
[#3284]: https://github.com/DataDog/dd-trace-rb/issues/3284
|
3914
|
+
[#3286]: https://github.com/DataDog/dd-trace-rb/issues/3286
|
3915
|
+
[#3289]: https://github.com/DataDog/dd-trace-rb/issues/3289
|
3916
|
+
[#3303]: https://github.com/DataDog/dd-trace-rb/issues/3303
|
3917
|
+
[#3307]: https://github.com/DataDog/dd-trace-rb/issues/3307
|
3918
|
+
[#3308]: https://github.com/DataDog/dd-trace-rb/issues/3308
|
3544
3919
|
[@AdrianLC]: https://github.com/AdrianLC
|
3545
3920
|
[@Azure7111]: https://github.com/Azure7111
|
3546
3921
|
[@BabyGroot]: https://github.com/BabyGroot
|
@@ -3548,11 +3923,13 @@ Git diff: https://github.com/DataDog/dd-trace-rb/compare/v0.3.0...v0.3.1
|
|
3548
3923
|
[@Drowze]: https://github.com/Drowze
|
3549
3924
|
[@EpiFouloux]: https://github.com/EpiFouloux
|
3550
3925
|
[@EvNomad]: https://github.com/EvNomad
|
3926
|
+
[@HeyNonster]: https://github.com/HeyNonster
|
3551
3927
|
[@HoneyryderChuck]: https://github.com/HoneyryderChuck
|
3552
3928
|
[@JamesHarker]: https://github.com/JamesHarker
|
3553
3929
|
[@Jared-Prime]: https://github.com/Jared-Prime
|
3554
3930
|
[@Joas1988]: https://github.com/Joas1988
|
3555
3931
|
[@JustSnow]: https://github.com/JustSnow
|
3932
|
+
[@KJTsanaktsidis]: https://github.com/KJTsanaktsidis
|
3556
3933
|
[@KieranP]: https://github.com/KieranP
|
3557
3934
|
[@MMartyn]: https://github.com/MMartyn
|
3558
3935
|
[@NobodysNightmare]: https://github.com/NobodysNightmare
|
@@ -3577,6 +3954,7 @@ Git diff: https://github.com/DataDog/dd-trace-rb/compare/v0.3.0...v0.3.1
|
|
3577
3954
|
[@bheemreddy181]: https://github.com/bheemreddy181
|
3578
3955
|
[@blaines]: https://github.com/blaines
|
3579
3956
|
[@brafales]: https://github.com/brafales
|
3957
|
+
[@bravehager]: https://github.com/bravehager
|
3580
3958
|
[@bzf]: https://github.com/bzf
|
3581
3959
|
[@callumj]: https://github.com/callumj
|
3582
3960
|
[@caramcc]: https://github.com/caramcc
|
@@ -3689,4 +4067,4 @@ Git diff: https://github.com/DataDog/dd-trace-rb/compare/v0.3.0...v0.3.1
|
|
3689
4067
|
[@y-yagi]: https://github.com/y-yagi
|
3690
4068
|
[@yujideveloper]: https://github.com/yujideveloper
|
3691
4069
|
[@yukimurasawa]: https://github.com/yukimurasawa
|
3692
|
-
[@zachmccormick]: https://github.com/zachmccormick
|
4070
|
+
[@zachmccormick]: https://github.com/zachmccormick
|
@@ -16,8 +16,7 @@ the gem. Setting `DD_PROFILING_NO_EXTENSION` at installation time skips compilat
|
|
16
16
|
|
17
17
|
(If you're a customer and needed to use this, please tell us why on <https://github.com/DataDog/dd-trace-rb/issues/new>.)
|
18
18
|
|
19
|
-
|
20
|
-
and disabling the extension will disable profiling.
|
19
|
+
Disabling the profiler extension will disable profiling.
|
21
20
|
|
22
21
|
## Who is this page for?
|
23
22
|
|
@@ -83,7 +82,7 @@ contribute upstream changes so that they become official public VM APIs.
|
|
83
82
|
Ruby versions 2.6 to 3.2 shipped a JIT compiler called MJIT. This compiler does not directly generate machine code;
|
84
83
|
instead it generates C code and uses the system C compiler to turn it into machine code.
|
85
84
|
|
86
|
-
The generated C code `#include`s a private header -- which we
|
85
|
+
The generated C code `#include`s a private header -- which we call "the MJIT header".
|
87
86
|
The MJIT header gets shipped with all MJIT-enabled Rubies and includes the layout of many internal VM structures;
|
88
87
|
and of course the intention is that it is only used by the Ruby MJIT compiler.
|
89
88
|
|
@@ -104,8 +103,7 @@ Thus, even though a regular Ruby installation does not include these files, we c
|
|
104
103
|
* **OS support**: Linux
|
105
104
|
|
106
105
|
To enable CPU-time profiling, we use the `pthread_getcpuclockid(pthread_t thread, clockid_t *clockid)` C function to
|
107
|
-
obtain a `clockid_t` that can then be used with the `
|
108
|
-
`clock_gettime()` C function).
|
106
|
+
obtain a `clockid_t` that can then be used with the `clock_gettime` function.
|
109
107
|
|
110
108
|
The challenge with using `pthread_getcpuclockid()` is that we need to get the `pthread_t` for a given Ruby `Thread`
|
111
109
|
object. We previously did this with a weird combination of monkey patching and `pthread_self()` (effectively patching
|
@@ -17,9 +17,6 @@ typedef struct thread_cpu_time {
|
|
17
17
|
|
18
18
|
void self_test_clock_id(void);
|
19
19
|
|
20
|
-
// TODO: Remove this after the OldStack profiler gets removed
|
21
|
-
VALUE clock_id_for(VALUE self, VALUE thread);
|
22
|
-
|
23
20
|
// Safety: This function is assumed never to raise exceptions by callers
|
24
21
|
thread_cpu_time_id thread_cpu_time_id_for(VALUE thread);
|
25
22
|
thread_cpu_time thread_cpu_time_for(thread_cpu_time_id time_id);
|
@@ -22,31 +22,12 @@ void self_test_clock_id(void) {
|
|
22
22
|
if (expected_pthread_id != actual_pthread_id) rb_raise(rb_eRuntimeError, "pthread_id_for() self-test failed");
|
23
23
|
}
|
24
24
|
|
25
|
-
// TODO: Remove this after the OldStack profiler gets removed
|
26
|
-
VALUE clock_id_for(DDTRACE_UNUSED VALUE _self, VALUE thread) {
|
27
|
-
rb_nativethread_id_t thread_id = pthread_id_for(thread);
|
28
|
-
|
29
|
-
clockid_t clock_id;
|
30
|
-
int error = pthread_getcpuclockid(thread_id, &clock_id);
|
31
|
-
|
32
|
-
if (error == 0) {
|
33
|
-
return CLOCKID2NUM(clock_id);
|
34
|
-
} else {
|
35
|
-
switch(error) {
|
36
|
-
// The more specific error messages are based on the pthread_getcpuclockid(3) man page
|
37
|
-
case ENOENT:
|
38
|
-
rb_exc_raise(rb_syserr_new(error, "Failed to get clock_id for given thread: Per-thread CPU time clocks are not supported by the system."));
|
39
|
-
case ESRCH:
|
40
|
-
rb_exc_raise(rb_syserr_new(error, "Failed to get clock_id for given thread: No thread could be found."));
|
41
|
-
default:
|
42
|
-
rb_exc_raise(rb_syserr_new(error, "Failed to get clock_id for given thread"));
|
43
|
-
}
|
44
|
-
}
|
45
|
-
}
|
46
|
-
|
47
25
|
// Safety: This function is assumed never to raise exceptions by callers
|
48
26
|
thread_cpu_time_id thread_cpu_time_id_for(VALUE thread) {
|
49
27
|
rb_nativethread_id_t thread_id = pthread_id_for(thread);
|
28
|
+
|
29
|
+
if (thread_id == 0) return (thread_cpu_time_id) {.valid = false};
|
30
|
+
|
50
31
|
clockid_t clock_id;
|
51
32
|
|
52
33
|
int error = pthread_getcpuclockid(thread_id, &clock_id);
|
@@ -10,7 +10,6 @@
|
|
10
10
|
#include "helpers.h"
|
11
11
|
|
12
12
|
void self_test_clock_id(void) { } // Nothing to check
|
13
|
-
VALUE clock_id_for(DDTRACE_UNUSED VALUE _self, DDTRACE_UNUSED VALUE _thread) { return Qnil; } // Nothing to return
|
14
13
|
|
15
14
|
thread_cpu_time_id thread_cpu_time_id_for(DDTRACE_UNUSED VALUE _thread) {
|
16
15
|
return (thread_cpu_time_id) {.valid = false};
|