ddtrace 0.40.0 → 0.54.1
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/.editorconfig +22 -0
- data/.gitignore +7 -1
- data/CHANGELOG.md +1667 -350
- data/CONTRIBUTING.md +3 -7
- data/LICENSE-3rdparty.csv +2 -0
- data/README.md +1 -0
- data/bin/ddtracerb +15 -0
- data/ddtrace.gemspec +21 -37
- data/docs/DevelopmentGuide.md +56 -8
- data/docs/GettingStarted.md +438 -92
- data/docs/ProfilingDevelopment.md +107 -0
- data/ext/ddtrace_profiling_native_extension/NativeExtensionDesign.md +86 -0
- data/ext/ddtrace_profiling_native_extension/clock_id.h +4 -0
- data/ext/ddtrace_profiling_native_extension/clock_id_from_pthread.c +52 -0
- data/ext/ddtrace_profiling_native_extension/clock_id_noop.c +14 -0
- data/ext/ddtrace_profiling_native_extension/extconf.rb +166 -0
- data/ext/ddtrace_profiling_native_extension/private_vm_api_access.c +35 -0
- data/ext/ddtrace_profiling_native_extension/private_vm_api_access.h +3 -0
- data/ext/ddtrace_profiling_native_extension/profiling.c +22 -0
- data/lib/datadog/ci/configuration/components.rb +31 -0
- data/lib/datadog/ci/configuration/settings.rb +37 -0
- data/lib/datadog/ci/context_flush.rb +29 -0
- data/lib/datadog/ci/contrib/cucumber/configuration/settings.rb +31 -0
- data/lib/datadog/ci/contrib/cucumber/ext.rb +20 -0
- data/lib/datadog/ci/contrib/cucumber/formatter.rb +99 -0
- data/lib/datadog/ci/contrib/cucumber/instrumentation.rb +27 -0
- data/lib/datadog/ci/contrib/cucumber/integration.rb +48 -0
- data/lib/datadog/ci/contrib/cucumber/patcher.rb +26 -0
- data/lib/datadog/ci/contrib/rspec/configuration/settings.rb +31 -0
- data/lib/datadog/ci/contrib/rspec/example.rb +75 -0
- data/lib/datadog/ci/contrib/rspec/ext.rb +19 -0
- data/lib/datadog/ci/contrib/rspec/integration.rb +49 -0
- data/lib/datadog/ci/contrib/rspec/patcher.rb +26 -0
- data/lib/datadog/ci/ext/app_types.rb +10 -0
- data/lib/datadog/ci/ext/environment.rb +485 -0
- data/lib/datadog/ci/ext/settings.rb +11 -0
- data/lib/datadog/ci/ext/test.rb +36 -0
- data/lib/datadog/ci/extensions.rb +18 -0
- data/lib/datadog/ci/test.rb +81 -0
- data/lib/datadog/ci.rb +17 -0
- data/lib/datadog/contrib.rb +71 -0
- data/lib/datadog/core/environment/cgroup.rb +52 -0
- data/lib/datadog/core/environment/class_count.rb +20 -0
- data/lib/datadog/core/environment/container.rb +91 -0
- data/lib/datadog/core/environment/ext.rb +27 -0
- data/lib/datadog/core/environment/gc.rb +19 -0
- data/lib/datadog/core/environment/identity.rb +51 -0
- data/lib/datadog/core/environment/socket.rb +17 -0
- data/lib/datadog/core/environment/thread_count.rb +19 -0
- data/lib/datadog/core/environment/variable_helpers.rb +42 -0
- data/lib/datadog/core/environment/vm_cache.rb +46 -0
- data/lib/ddtrace/analytics.rb +3 -0
- data/lib/ddtrace/auto_instrument.rb +5 -0
- data/lib/ddtrace/auto_instrument_base.rb +7 -0
- data/lib/ddtrace/buffer.rb +278 -57
- data/lib/ddtrace/chunker.rb +1 -0
- data/lib/ddtrace/configuration/agent_settings_resolver.rb +309 -0
- data/lib/ddtrace/configuration/base.rb +9 -11
- data/lib/ddtrace/configuration/components.rb +167 -26
- data/lib/ddtrace/configuration/dependency_resolver.rb +1 -0
- data/lib/ddtrace/configuration/option.rb +1 -0
- data/lib/ddtrace/configuration/option_definition.rb +2 -3
- data/lib/ddtrace/configuration/option_definition_set.rb +1 -0
- data/lib/ddtrace/configuration/option_set.rb +1 -0
- data/lib/ddtrace/configuration/options.rb +10 -10
- data/lib/ddtrace/configuration/pin_setup.rb +1 -0
- data/lib/ddtrace/configuration/settings.rb +147 -13
- data/lib/ddtrace/configuration.rb +133 -22
- data/lib/ddtrace/context.rb +51 -22
- data/lib/ddtrace/context_flush.rb +15 -2
- data/lib/ddtrace/context_provider.rb +17 -5
- data/lib/ddtrace/contrib/action_cable/configuration/settings.rb +1 -0
- data/lib/ddtrace/contrib/action_cable/event.rb +6 -4
- data/lib/ddtrace/contrib/action_cable/events/broadcast.rb +1 -0
- data/lib/ddtrace/contrib/action_cable/events/perform_action.rb +1 -0
- data/lib/ddtrace/contrib/action_cable/events/transmit.rb +1 -0
- data/lib/ddtrace/contrib/action_cable/events.rb +1 -0
- data/lib/ddtrace/contrib/action_cable/ext.rb +1 -0
- data/lib/ddtrace/contrib/action_cable/instrumentation.rb +47 -0
- data/lib/ddtrace/contrib/action_cable/integration.rb +8 -0
- data/lib/ddtrace/contrib/action_cable/patcher.rb +2 -0
- data/lib/ddtrace/contrib/action_mailer/configuration/settings.rb +32 -0
- data/lib/ddtrace/contrib/action_mailer/event.rb +50 -0
- data/lib/ddtrace/contrib/action_mailer/events/deliver.rb +54 -0
- data/lib/ddtrace/contrib/action_mailer/events/process.rb +41 -0
- data/lib/ddtrace/contrib/action_mailer/events.rb +31 -0
- data/lib/ddtrace/contrib/action_mailer/ext.rb +32 -0
- data/lib/ddtrace/contrib/action_mailer/integration.rb +45 -0
- data/lib/ddtrace/contrib/action_mailer/patcher.rb +27 -0
- data/lib/ddtrace/contrib/action_pack/action_controller/instrumentation.rb +22 -13
- data/lib/ddtrace/contrib/action_pack/action_controller/patcher.rb +2 -1
- data/lib/ddtrace/contrib/action_pack/configuration/settings.rb +1 -0
- data/lib/ddtrace/contrib/action_pack/ext.rb +1 -0
- data/lib/ddtrace/contrib/action_pack/integration.rb +8 -0
- data/lib/ddtrace/contrib/action_pack/patcher.rb +1 -0
- data/lib/ddtrace/contrib/action_pack/utils.rb +2 -1
- data/lib/ddtrace/contrib/action_view/configuration/settings.rb +1 -0
- data/lib/ddtrace/contrib/action_view/event.rb +4 -7
- data/lib/ddtrace/contrib/action_view/events/render_partial.rb +2 -0
- data/lib/ddtrace/contrib/action_view/events/render_template.rb +2 -0
- data/lib/ddtrace/contrib/action_view/events.rb +1 -0
- data/lib/ddtrace/contrib/action_view/ext.rb +1 -0
- data/lib/ddtrace/contrib/action_view/instrumentation/partial_renderer.rb +1 -0
- data/lib/ddtrace/contrib/action_view/instrumentation/template_renderer.rb +1 -0
- data/lib/ddtrace/contrib/action_view/integration.rb +8 -0
- data/lib/ddtrace/contrib/action_view/patcher.rb +5 -4
- data/lib/ddtrace/contrib/action_view/utils.rb +2 -1
- data/lib/ddtrace/contrib/active_job/configuration/settings.rb +33 -0
- data/lib/ddtrace/contrib/active_job/event.rb +54 -0
- data/lib/ddtrace/contrib/active_job/events/discard.rb +46 -0
- data/lib/ddtrace/contrib/active_job/events/enqueue.rb +45 -0
- data/lib/ddtrace/contrib/active_job/events/enqueue_at.rb +45 -0
- data/lib/ddtrace/contrib/active_job/events/enqueue_retry.rb +47 -0
- data/lib/ddtrace/contrib/active_job/events/perform.rb +45 -0
- data/lib/ddtrace/contrib/active_job/events/retry_stopped.rb +46 -0
- data/lib/ddtrace/contrib/active_job/events.rb +39 -0
- data/lib/ddtrace/contrib/active_job/ext.rb +32 -0
- data/lib/ddtrace/contrib/active_job/integration.rb +46 -0
- data/lib/ddtrace/contrib/active_job/log_injection.rb +21 -0
- data/lib/ddtrace/contrib/active_job/patcher.rb +33 -0
- data/lib/ddtrace/contrib/active_model_serializers/configuration/settings.rb +1 -0
- data/lib/ddtrace/contrib/active_model_serializers/event.rb +3 -2
- data/lib/ddtrace/contrib/active_model_serializers/events/render.rb +1 -0
- data/lib/ddtrace/contrib/active_model_serializers/events/serialize.rb +1 -0
- data/lib/ddtrace/contrib/active_model_serializers/events.rb +1 -0
- data/lib/ddtrace/contrib/active_model_serializers/ext.rb +1 -0
- data/lib/ddtrace/contrib/active_model_serializers/integration.rb +1 -0
- data/lib/ddtrace/contrib/active_model_serializers/patcher.rb +1 -0
- data/lib/ddtrace/contrib/active_record/configuration/makara_resolver.rb +31 -0
- data/lib/ddtrace/contrib/active_record/configuration/resolver.rb +108 -18
- data/lib/ddtrace/contrib/active_record/configuration/settings.rb +1 -0
- data/lib/ddtrace/contrib/active_record/event.rb +3 -2
- data/lib/ddtrace/contrib/active_record/events/instantiation.rb +1 -0
- data/lib/ddtrace/contrib/active_record/events/sql.rb +5 -0
- data/lib/ddtrace/contrib/active_record/events.rb +1 -0
- data/lib/ddtrace/contrib/active_record/ext.rb +1 -0
- data/lib/ddtrace/contrib/active_record/integration.rb +8 -0
- data/lib/ddtrace/contrib/active_record/patcher.rb +1 -0
- data/lib/ddtrace/contrib/active_record/utils.rb +69 -21
- data/lib/ddtrace/contrib/active_support/cache/instrumentation.rb +105 -3
- data/lib/ddtrace/contrib/active_support/cache/patcher.rb +26 -4
- data/lib/ddtrace/contrib/active_support/cache/redis.rb +2 -5
- data/lib/ddtrace/contrib/active_support/configuration/settings.rb +1 -0
- data/lib/ddtrace/contrib/active_support/ext.rb +4 -0
- data/lib/ddtrace/contrib/active_support/integration.rb +8 -1
- data/lib/ddtrace/contrib/active_support/notifications/event.rb +15 -3
- data/lib/ddtrace/contrib/active_support/notifications/subscriber.rb +3 -1
- data/lib/ddtrace/contrib/active_support/notifications/subscription.rb +12 -7
- data/lib/ddtrace/contrib/active_support/patcher.rb +1 -0
- data/lib/ddtrace/contrib/analytics.rb +1 -0
- data/lib/ddtrace/contrib/auto_instrument.rb +48 -0
- data/lib/ddtrace/contrib/aws/configuration/settings.rb +1 -0
- data/lib/ddtrace/contrib/aws/ext.rb +1 -0
- data/lib/ddtrace/contrib/aws/instrumentation.rb +36 -1
- data/lib/ddtrace/contrib/aws/integration.rb +1 -0
- data/lib/ddtrace/contrib/aws/parsed_context.rb +1 -0
- data/lib/ddtrace/contrib/aws/patcher.rb +6 -1
- data/lib/ddtrace/contrib/aws/services.rb +4 -0
- data/lib/ddtrace/contrib/concurrent_ruby/configuration/settings.rb +1 -0
- data/lib/ddtrace/contrib/concurrent_ruby/context_composite_executor_service.rb +1 -0
- data/lib/ddtrace/contrib/concurrent_ruby/ext.rb +1 -0
- data/lib/ddtrace/contrib/concurrent_ruby/future_patch.rb +1 -0
- data/lib/ddtrace/contrib/concurrent_ruby/integration.rb +1 -0
- data/lib/ddtrace/contrib/concurrent_ruby/patcher.rb +3 -1
- data/lib/ddtrace/contrib/configurable.rb +65 -38
- data/lib/ddtrace/contrib/configuration/resolver.rb +71 -5
- data/lib/ddtrace/contrib/configuration/resolvers/pattern_resolver.rb +21 -20
- data/lib/ddtrace/contrib/configuration/settings.rb +8 -6
- data/lib/ddtrace/contrib/dalli/configuration/settings.rb +1 -0
- data/lib/ddtrace/contrib/dalli/ext.rb +1 -0
- data/lib/ddtrace/contrib/dalli/instrumentation.rb +6 -1
- data/lib/ddtrace/contrib/dalli/integration.rb +1 -0
- data/lib/ddtrace/contrib/dalli/patcher.rb +2 -39
- data/lib/ddtrace/contrib/dalli/quantize.rb +1 -0
- data/lib/ddtrace/contrib/delayed_job/configuration/settings.rb +3 -0
- data/lib/ddtrace/contrib/delayed_job/ext.rb +3 -0
- data/lib/ddtrace/contrib/delayed_job/integration.rb +1 -0
- data/lib/ddtrace/contrib/delayed_job/patcher.rb +1 -0
- data/lib/ddtrace/contrib/delayed_job/plugin.rb +40 -16
- data/lib/ddtrace/contrib/elasticsearch/configuration/settings.rb +1 -0
- data/lib/ddtrace/contrib/elasticsearch/ext.rb +1 -0
- data/lib/ddtrace/contrib/elasticsearch/integration.rb +1 -0
- data/lib/ddtrace/contrib/elasticsearch/patcher.rb +6 -0
- data/lib/ddtrace/contrib/elasticsearch/quantize.rb +6 -2
- data/lib/ddtrace/contrib/ethon/configuration/settings.rb +1 -0
- data/lib/ddtrace/contrib/ethon/easy_patch.rb +15 -11
- data/lib/ddtrace/contrib/ethon/ext.rb +2 -0
- data/lib/ddtrace/contrib/ethon/integration.rb +1 -0
- data/lib/ddtrace/contrib/ethon/multi_patch.rb +6 -1
- data/lib/ddtrace/contrib/ethon/patcher.rb +4 -2
- data/lib/ddtrace/contrib/excon/configuration/settings.rb +1 -0
- data/lib/ddtrace/contrib/excon/ext.rb +1 -0
- data/lib/ddtrace/contrib/excon/integration.rb +1 -0
- data/lib/ddtrace/contrib/excon/middleware.rb +14 -7
- data/lib/ddtrace/contrib/excon/patcher.rb +1 -0
- data/lib/ddtrace/contrib/extensions.rb +90 -14
- data/lib/ddtrace/contrib/faraday/configuration/settings.rb +1 -0
- data/lib/ddtrace/contrib/faraday/connection.rb +1 -0
- data/lib/ddtrace/contrib/faraday/ext.rb +1 -0
- data/lib/ddtrace/contrib/faraday/integration.rb +1 -0
- data/lib/ddtrace/contrib/faraday/middleware.rb +6 -3
- data/lib/ddtrace/contrib/faraday/patcher.rb +3 -38
- data/lib/ddtrace/contrib/faraday/rack_builder.rb +1 -0
- data/lib/ddtrace/contrib/grape/configuration/settings.rb +8 -0
- data/lib/ddtrace/contrib/grape/endpoint.rb +73 -35
- data/lib/ddtrace/contrib/grape/ext.rb +2 -0
- data/lib/ddtrace/contrib/grape/instrumentation.rb +4 -3
- data/lib/ddtrace/contrib/grape/integration.rb +1 -0
- data/lib/ddtrace/contrib/grape/patcher.rb +2 -43
- data/lib/ddtrace/contrib/graphql/configuration/settings.rb +1 -0
- data/lib/ddtrace/contrib/graphql/ext.rb +1 -0
- data/lib/ddtrace/contrib/graphql/integration.rb +1 -0
- data/lib/ddtrace/contrib/graphql/patcher.rb +1 -0
- data/lib/ddtrace/contrib/grpc/configuration/settings.rb +2 -0
- data/lib/ddtrace/contrib/grpc/datadog_interceptor/client.rb +6 -1
- data/lib/ddtrace/contrib/grpc/datadog_interceptor/server.rb +5 -1
- data/lib/ddtrace/contrib/grpc/datadog_interceptor.rb +13 -8
- data/lib/ddtrace/contrib/grpc/ext.rb +1 -0
- data/lib/ddtrace/contrib/grpc/integration.rb +1 -0
- data/lib/ddtrace/contrib/grpc/intercept_with_datadog.rb +1 -0
- data/lib/ddtrace/contrib/grpc/patcher.rb +3 -37
- data/lib/ddtrace/contrib/http/circuit_breaker.rb +2 -3
- data/lib/ddtrace/contrib/http/configuration/settings.rb +1 -0
- data/lib/ddtrace/contrib/http/ext.rb +1 -0
- data/lib/ddtrace/contrib/http/instrumentation.rb +13 -8
- data/lib/ddtrace/contrib/http/integration.rb +1 -0
- data/lib/ddtrace/contrib/http/patcher.rb +2 -1
- data/lib/ddtrace/contrib/http_annotation_helper.rb +1 -0
- data/lib/ddtrace/contrib/httpclient/configuration/settings.rb +33 -0
- data/lib/ddtrace/contrib/httpclient/ext.rb +18 -0
- data/lib/ddtrace/contrib/httpclient/instrumentation.rb +148 -0
- data/lib/ddtrace/contrib/httpclient/integration.rb +44 -0
- data/lib/ddtrace/contrib/httpclient/patcher.rb +39 -0
- data/lib/ddtrace/contrib/httprb/configuration/settings.rb +1 -0
- data/lib/ddtrace/contrib/httprb/ext.rb +1 -0
- data/lib/ddtrace/contrib/httprb/instrumentation.rb +20 -22
- data/lib/ddtrace/contrib/httprb/integration.rb +1 -0
- data/lib/ddtrace/contrib/httprb/patcher.rb +8 -4
- data/lib/ddtrace/contrib/integration.rb +4 -3
- data/lib/ddtrace/contrib/kafka/configuration/settings.rb +1 -0
- data/lib/ddtrace/contrib/kafka/consumer_event.rb +1 -0
- data/lib/ddtrace/contrib/kafka/consumer_group_event.rb +1 -0
- data/lib/ddtrace/contrib/kafka/event.rb +4 -3
- data/lib/ddtrace/contrib/kafka/events/connection/request.rb +1 -0
- data/lib/ddtrace/contrib/kafka/events/consumer/process_batch.rb +1 -0
- data/lib/ddtrace/contrib/kafka/events/consumer/process_message.rb +1 -0
- data/lib/ddtrace/contrib/kafka/events/consumer_group/heartbeat.rb +1 -0
- data/lib/ddtrace/contrib/kafka/events/consumer_group/join_group.rb +1 -0
- data/lib/ddtrace/contrib/kafka/events/consumer_group/leave_group.rb +1 -0
- data/lib/ddtrace/contrib/kafka/events/consumer_group/sync_group.rb +1 -0
- data/lib/ddtrace/contrib/kafka/events/produce_operation/send_messages.rb +1 -0
- data/lib/ddtrace/contrib/kafka/events/producer/deliver_messages.rb +1 -0
- data/lib/ddtrace/contrib/kafka/events.rb +1 -0
- data/lib/ddtrace/contrib/kafka/ext.rb +1 -0
- data/lib/ddtrace/contrib/kafka/integration.rb +1 -0
- data/lib/ddtrace/contrib/kafka/patcher.rb +1 -0
- data/lib/ddtrace/contrib/lograge/configuration/settings.rb +19 -0
- data/lib/ddtrace/contrib/lograge/ext.rb +11 -0
- data/lib/ddtrace/contrib/lograge/instrumentation.rb +39 -0
- data/lib/ddtrace/contrib/lograge/integration.rb +46 -0
- data/lib/ddtrace/contrib/lograge/patcher.rb +26 -0
- data/lib/ddtrace/contrib/mongodb/configuration/settings.rb +1 -0
- data/lib/ddtrace/contrib/mongodb/ext.rb +1 -0
- data/lib/ddtrace/contrib/mongodb/instrumentation.rb +6 -3
- data/lib/ddtrace/contrib/mongodb/integration.rb +6 -0
- data/lib/ddtrace/contrib/mongodb/parsers.rb +1 -0
- data/lib/ddtrace/contrib/mongodb/patcher.rb +3 -2
- data/lib/ddtrace/contrib/mongodb/subscribers.rb +7 -3
- data/lib/ddtrace/contrib/mysql2/configuration/settings.rb +1 -0
- data/lib/ddtrace/contrib/mysql2/ext.rb +1 -0
- data/lib/ddtrace/contrib/mysql2/instrumentation.rb +6 -1
- data/lib/ddtrace/contrib/mysql2/integration.rb +1 -0
- data/lib/ddtrace/contrib/mysql2/patcher.rb +2 -1
- data/lib/ddtrace/contrib/patchable.rb +21 -9
- data/lib/ddtrace/contrib/patcher.rb +12 -8
- data/lib/ddtrace/contrib/presto/configuration/settings.rb +1 -0
- data/lib/ddtrace/contrib/presto/ext.rb +1 -0
- data/lib/ddtrace/contrib/presto/instrumentation.rb +5 -1
- data/lib/ddtrace/contrib/presto/integration.rb +1 -0
- data/lib/ddtrace/contrib/presto/patcher.rb +7 -3
- data/lib/ddtrace/contrib/qless/configuration/settings.rb +36 -0
- data/lib/ddtrace/contrib/qless/ext.rb +21 -0
- data/lib/ddtrace/contrib/qless/integration.rb +39 -0
- data/lib/ddtrace/contrib/qless/patcher.rb +35 -0
- data/lib/ddtrace/contrib/qless/qless_job.rb +74 -0
- data/lib/ddtrace/contrib/qless/tracer_cleaner.rb +34 -0
- data/lib/ddtrace/contrib/que/configuration/settings.rb +2 -0
- data/lib/ddtrace/contrib/que/ext.rb +20 -19
- data/lib/ddtrace/contrib/que/integration.rb +1 -0
- data/lib/ddtrace/contrib/que/patcher.rb +1 -0
- data/lib/ddtrace/contrib/que/tracer.rb +4 -2
- data/lib/ddtrace/contrib/racecar/configuration/settings.rb +1 -0
- data/lib/ddtrace/contrib/racecar/event.rb +8 -2
- data/lib/ddtrace/contrib/racecar/events/batch.rb +1 -0
- data/lib/ddtrace/contrib/racecar/events/consume.rb +1 -0
- data/lib/ddtrace/contrib/racecar/events/message.rb +1 -0
- data/lib/ddtrace/contrib/racecar/events.rb +1 -0
- data/lib/ddtrace/contrib/racecar/ext.rb +1 -0
- data/lib/ddtrace/contrib/racecar/integration.rb +1 -0
- data/lib/ddtrace/contrib/racecar/patcher.rb +1 -0
- data/lib/ddtrace/contrib/rack/configuration/settings.rb +4 -3
- data/lib/ddtrace/contrib/rack/ext.rb +1 -0
- data/lib/ddtrace/contrib/rack/integration.rb +8 -0
- data/lib/ddtrace/contrib/rack/middlewares.rb +8 -12
- data/lib/ddtrace/contrib/rack/patcher.rb +2 -3
- data/lib/ddtrace/contrib/rack/request_queue.rb +7 -1
- data/lib/ddtrace/contrib/rails/auto_instrument_railtie.rb +10 -0
- data/lib/ddtrace/contrib/rails/configuration/settings.rb +8 -0
- data/lib/ddtrace/contrib/rails/ext.rb +1 -0
- data/lib/ddtrace/contrib/rails/framework.rb +50 -2
- data/lib/ddtrace/contrib/rails/integration.rb +1 -0
- data/lib/ddtrace/contrib/rails/log_injection.rb +1 -40
- data/lib/ddtrace/contrib/rails/middlewares.rb +1 -0
- data/lib/ddtrace/contrib/rails/patcher.rb +47 -17
- data/lib/ddtrace/contrib/rails/railtie.rb +1 -0
- data/lib/ddtrace/contrib/rails/utils.rb +5 -0
- data/lib/ddtrace/contrib/rake/configuration/settings.rb +1 -0
- data/lib/ddtrace/contrib/rake/ext.rb +1 -0
- data/lib/ddtrace/contrib/rake/instrumentation.rb +6 -3
- data/lib/ddtrace/contrib/rake/integration.rb +2 -1
- data/lib/ddtrace/contrib/rake/patcher.rb +2 -1
- data/lib/ddtrace/contrib/redis/configuration/resolver.rb +15 -5
- data/lib/ddtrace/contrib/redis/configuration/settings.rb +6 -0
- data/lib/ddtrace/contrib/redis/ext.rb +2 -0
- data/lib/ddtrace/contrib/redis/instrumentation.rb +90 -0
- data/lib/ddtrace/contrib/redis/integration.rb +1 -0
- data/lib/ddtrace/contrib/redis/patcher.rb +3 -67
- data/lib/ddtrace/contrib/redis/quantize.rb +29 -0
- data/lib/ddtrace/contrib/redis/tags.rb +10 -1
- data/lib/ddtrace/contrib/redis/vendor/LICENSE +20 -0
- data/lib/ddtrace/contrib/redis/vendor/resolver.rb +7 -7
- data/lib/ddtrace/contrib/registerable.rb +4 -4
- data/lib/ddtrace/contrib/registry.rb +3 -2
- data/lib/ddtrace/contrib/resque/configuration/settings.rb +19 -1
- data/lib/ddtrace/contrib/resque/ext.rb +1 -0
- data/lib/ddtrace/contrib/resque/integration.rb +2 -5
- data/lib/ddtrace/contrib/resque/patcher.rb +5 -4
- data/lib/ddtrace/contrib/resque/resque_job.rb +26 -2
- data/lib/ddtrace/contrib/rest_client/configuration/settings.rb +1 -0
- data/lib/ddtrace/contrib/rest_client/ext.rb +1 -0
- data/lib/ddtrace/contrib/rest_client/integration.rb +1 -0
- data/lib/ddtrace/contrib/rest_client/patcher.rb +3 -1
- data/lib/ddtrace/contrib/rest_client/request_patch.rb +7 -4
- data/lib/ddtrace/contrib/semantic_logger/configuration/settings.rb +19 -0
- data/lib/ddtrace/contrib/semantic_logger/ext.rb +11 -0
- data/lib/ddtrace/contrib/semantic_logger/instrumentation.rb +43 -0
- data/lib/ddtrace/contrib/semantic_logger/integration.rb +48 -0
- data/lib/ddtrace/contrib/semantic_logger/patcher.rb +26 -0
- data/lib/ddtrace/contrib/sequel/configuration/settings.rb +1 -0
- data/lib/ddtrace/contrib/sequel/database.rb +5 -2
- data/lib/ddtrace/contrib/sequel/dataset.rb +5 -3
- data/lib/ddtrace/contrib/sequel/ext.rb +2 -0
- data/lib/ddtrace/contrib/sequel/integration.rb +1 -0
- data/lib/ddtrace/contrib/sequel/patcher.rb +3 -2
- data/lib/ddtrace/contrib/sequel/utils.rb +16 -5
- data/lib/ddtrace/contrib/shoryuken/configuration/settings.rb +3 -0
- data/lib/ddtrace/contrib/shoryuken/ext.rb +1 -0
- data/lib/ddtrace/contrib/shoryuken/integration.rb +1 -0
- data/lib/ddtrace/contrib/shoryuken/patcher.rb +1 -0
- data/lib/ddtrace/contrib/shoryuken/tracer.rb +9 -2
- data/lib/ddtrace/contrib/sidekiq/client_tracer.rb +1 -0
- data/lib/ddtrace/contrib/sidekiq/configuration/settings.rb +2 -0
- data/lib/ddtrace/contrib/sidekiq/ext.rb +4 -0
- data/lib/ddtrace/contrib/sidekiq/integration.rb +11 -0
- data/lib/ddtrace/contrib/sidekiq/patcher.rb +27 -0
- data/lib/ddtrace/contrib/sidekiq/server_internal_tracer/heartbeat.rb +30 -0
- data/lib/ddtrace/contrib/sidekiq/server_internal_tracer/job_fetch.rb +30 -0
- data/lib/ddtrace/contrib/sidekiq/server_internal_tracer/scheduled_push.rb +29 -0
- data/lib/ddtrace/contrib/sidekiq/server_tracer.rb +6 -7
- data/lib/ddtrace/contrib/sidekiq/tracing.rb +1 -1
- data/lib/ddtrace/contrib/sinatra/configuration/settings.rb +1 -0
- data/lib/ddtrace/contrib/sinatra/env.rb +4 -4
- data/lib/ddtrace/contrib/sinatra/ext.rb +1 -0
- data/lib/ddtrace/contrib/sinatra/headers.rb +2 -3
- data/lib/ddtrace/contrib/sinatra/integration.rb +1 -0
- data/lib/ddtrace/contrib/sinatra/patcher.rb +3 -1
- data/lib/ddtrace/contrib/sinatra/tracer.rb +28 -7
- data/lib/ddtrace/contrib/sinatra/tracer_middleware.rb +13 -6
- data/lib/ddtrace/contrib/sneakers/configuration/settings.rb +2 -0
- data/lib/ddtrace/contrib/sneakers/ext.rb +12 -11
- data/lib/ddtrace/contrib/sneakers/integration.rb +1 -0
- data/lib/ddtrace/contrib/sneakers/patcher.rb +1 -0
- data/lib/ddtrace/contrib/sneakers/tracer.rb +17 -21
- data/lib/ddtrace/contrib/status_code_matcher.rb +70 -0
- data/lib/ddtrace/contrib/sucker_punch/configuration/settings.rb +1 -0
- data/lib/ddtrace/contrib/sucker_punch/exception_handler.rb +5 -6
- data/lib/ddtrace/contrib/sucker_punch/ext.rb +1 -0
- data/lib/ddtrace/contrib/sucker_punch/instrumentation.rb +5 -0
- data/lib/ddtrace/contrib/sucker_punch/integration.rb +1 -0
- data/lib/ddtrace/contrib/sucker_punch/patcher.rb +2 -0
- data/lib/ddtrace/correlation.rb +3 -1
- data/lib/ddtrace/diagnostics/environment_logger.rb +9 -7
- data/lib/ddtrace/diagnostics/health.rb +1 -0
- data/lib/ddtrace/distributed_tracing/headers/b3.rb +1 -0
- data/lib/ddtrace/distributed_tracing/headers/b3_single.rb +1 -0
- data/lib/ddtrace/distributed_tracing/headers/datadog.rb +1 -0
- data/lib/ddtrace/distributed_tracing/headers/headers.rb +2 -0
- data/lib/ddtrace/distributed_tracing/headers/helpers.rb +2 -3
- data/lib/ddtrace/encoding.rb +3 -0
- data/lib/ddtrace/error.rb +78 -8
- data/lib/ddtrace/event.rb +1 -0
- data/lib/ddtrace/ext/analytics.rb +1 -0
- data/lib/ddtrace/ext/app_types.rb +1 -0
- data/lib/ddtrace/ext/correlation.rb +1 -0
- data/lib/ddtrace/ext/diagnostics.rb +1 -0
- data/lib/ddtrace/ext/distributed.rb +9 -2
- data/lib/ddtrace/ext/environment.rb +8 -0
- data/lib/ddtrace/ext/errors.rb +1 -0
- data/lib/ddtrace/ext/forced_tracing.rb +1 -0
- data/lib/ddtrace/ext/git.rb +32 -0
- data/lib/ddtrace/ext/http.rb +2 -1
- data/lib/ddtrace/ext/integration.rb +9 -0
- data/lib/ddtrace/ext/manual_tracing.rb +1 -0
- data/lib/ddtrace/ext/metrics.rb +1 -0
- data/lib/ddtrace/ext/net.rb +1 -0
- data/lib/ddtrace/ext/priority.rb +7 -4
- data/lib/ddtrace/ext/profiling.rb +57 -0
- data/lib/ddtrace/ext/runtime.rb +5 -6
- data/lib/ddtrace/ext/sampling.rb +1 -0
- data/lib/ddtrace/ext/sql.rb +1 -0
- data/lib/ddtrace/ext/test.rb +9 -0
- data/lib/ddtrace/ext/transport.rb +14 -0
- data/lib/ddtrace/forced_tracing.rb +3 -0
- data/lib/ddtrace/logger.rb +2 -1
- data/lib/ddtrace/metrics.rb +84 -24
- data/lib/ddtrace/opentelemetry/extensions.rb +2 -1
- data/lib/ddtrace/opentelemetry/span.rb +1 -0
- data/lib/ddtrace/opentracer/binary_propagator.rb +1 -0
- data/lib/ddtrace/opentracer/carrier.rb +1 -0
- data/lib/ddtrace/opentracer/distributed_headers.rb +5 -1
- data/lib/ddtrace/opentracer/global_tracer.rb +1 -0
- data/lib/ddtrace/opentracer/propagator.rb +1 -0
- data/lib/ddtrace/opentracer/rack_propagator.rb +1 -0
- data/lib/ddtrace/opentracer/scope.rb +1 -0
- data/lib/ddtrace/opentracer/scope_manager.rb +1 -0
- data/lib/ddtrace/opentracer/span.rb +3 -6
- data/lib/ddtrace/opentracer/span_context.rb +1 -0
- data/lib/ddtrace/opentracer/span_context_factory.rb +1 -0
- data/lib/ddtrace/opentracer/text_map_propagator.rb +1 -0
- data/lib/ddtrace/opentracer/thread_local_scope.rb +2 -0
- data/lib/ddtrace/opentracer/thread_local_scope_manager.rb +1 -0
- data/lib/ddtrace/opentracer/tracer.rb +1 -0
- data/lib/ddtrace/opentracer.rb +21 -39
- data/lib/ddtrace/patcher.rb +28 -6
- data/lib/ddtrace/pin.rb +9 -61
- data/lib/ddtrace/pipeline/span_filter.rb +2 -1
- data/lib/ddtrace/pipeline/span_processor.rb +1 -0
- data/lib/ddtrace/pipeline.rb +1 -0
- data/lib/ddtrace/profiling/backtrace_location.rb +33 -0
- data/lib/ddtrace/profiling/buffer.rb +42 -0
- data/lib/ddtrace/profiling/collectors/stack.rb +301 -0
- data/lib/ddtrace/profiling/encoding/profile.rb +46 -0
- data/lib/ddtrace/profiling/event.rb +14 -0
- data/lib/ddtrace/profiling/events/stack.rb +81 -0
- data/lib/ddtrace/profiling/exporter.rb +24 -0
- data/lib/ddtrace/profiling/ext/forking.rb +98 -0
- data/lib/ddtrace/profiling/flush.rb +44 -0
- data/lib/ddtrace/profiling/native_extension.rb +40 -0
- data/lib/ddtrace/profiling/pprof/builder.rb +126 -0
- data/lib/ddtrace/profiling/pprof/converter.rb +103 -0
- data/lib/ddtrace/profiling/pprof/message_set.rb +15 -0
- data/lib/ddtrace/profiling/pprof/payload.rb +19 -0
- data/lib/ddtrace/profiling/pprof/pprof.proto +212 -0
- data/lib/ddtrace/profiling/pprof/pprof_pb.rb +82 -0
- data/lib/ddtrace/profiling/pprof/stack_sample.rb +140 -0
- data/lib/ddtrace/profiling/pprof/string_table.rb +11 -0
- data/lib/ddtrace/profiling/pprof/template.rb +119 -0
- data/lib/ddtrace/profiling/preload.rb +4 -0
- data/lib/ddtrace/profiling/profiler.rb +31 -0
- data/lib/ddtrace/profiling/recorder.rb +96 -0
- data/lib/ddtrace/profiling/scheduler.rb +134 -0
- data/lib/ddtrace/profiling/tasks/setup.rb +90 -0
- data/lib/ddtrace/profiling/trace_identifiers/ddtrace.rb +42 -0
- data/lib/ddtrace/profiling/trace_identifiers/helper.rb +46 -0
- data/lib/ddtrace/profiling/transport/client.rb +15 -0
- data/lib/ddtrace/profiling/transport/http/api/endpoint.rb +101 -0
- data/lib/ddtrace/profiling/transport/http/api/instance.rb +37 -0
- data/lib/ddtrace/profiling/transport/http/api/spec.rb +41 -0
- data/lib/ddtrace/profiling/transport/http/api.rb +44 -0
- data/lib/ddtrace/profiling/transport/http/builder.rb +29 -0
- data/lib/ddtrace/profiling/transport/http/client.rb +34 -0
- data/lib/ddtrace/profiling/transport/http/response.rb +22 -0
- data/lib/ddtrace/profiling/transport/http.rb +111 -0
- data/lib/ddtrace/profiling/transport/io/client.rb +28 -0
- data/lib/ddtrace/profiling/transport/io/response.rb +17 -0
- data/lib/ddtrace/profiling/transport/io.rb +31 -0
- data/lib/ddtrace/profiling/transport/parcel.rb +18 -0
- data/lib/ddtrace/profiling/transport/request.rb +16 -0
- data/lib/ddtrace/profiling/transport/response.rb +9 -0
- data/lib/ddtrace/profiling.rb +149 -0
- data/lib/ddtrace/propagation/grpc_propagator.rb +20 -6
- data/lib/ddtrace/propagation/http_propagator.rb +18 -2
- data/lib/ddtrace/quantization/hash.rb +1 -0
- data/lib/ddtrace/quantization/http.rb +4 -0
- data/lib/ddtrace/runtime/metrics.rb +40 -15
- data/lib/ddtrace/sampler.rb +22 -11
- data/lib/ddtrace/sampling/matcher.rb +1 -0
- data/lib/ddtrace/sampling/rate_limiter.rb +66 -16
- data/lib/ddtrace/sampling/rule.rb +2 -1
- data/lib/ddtrace/sampling/rule_sampler.rb +19 -11
- data/lib/ddtrace/sampling.rb +1 -0
- data/lib/ddtrace/span.rb +174 -36
- data/lib/ddtrace/sync_writer.rb +17 -15
- data/lib/ddtrace/tasks/exec.rb +47 -0
- data/lib/ddtrace/tasks/help.rb +15 -0
- data/lib/ddtrace/tracer.rb +72 -62
- data/lib/ddtrace/transport/http/adapters/net.rb +48 -12
- data/lib/ddtrace/transport/http/adapters/registry.rb +2 -0
- data/lib/ddtrace/transport/http/adapters/test.rb +5 -2
- data/lib/ddtrace/transport/http/adapters/unix_socket.rb +26 -16
- data/lib/ddtrace/transport/http/api/endpoint.rb +1 -0
- data/lib/ddtrace/transport/http/api/fallbacks.rb +1 -0
- data/lib/ddtrace/transport/http/api/instance.rb +1 -0
- data/lib/ddtrace/transport/http/api/map.rb +1 -0
- data/lib/ddtrace/transport/http/api/spec.rb +1 -0
- data/lib/ddtrace/transport/http/api.rb +1 -0
- data/lib/ddtrace/transport/http/builder.rb +21 -7
- data/lib/ddtrace/transport/http/client.rb +3 -1
- data/lib/ddtrace/transport/http/env.rb +9 -0
- data/lib/ddtrace/transport/http/response.rb +1 -0
- data/lib/ddtrace/transport/http/statistics.rb +17 -3
- data/lib/ddtrace/transport/http/traces.rb +6 -6
- data/lib/ddtrace/transport/http.rb +48 -41
- data/lib/ddtrace/transport/io/client.rb +17 -9
- data/lib/ddtrace/transport/io/response.rb +2 -3
- data/lib/ddtrace/transport/io/traces.rb +10 -1
- data/lib/ddtrace/transport/io.rb +2 -1
- data/lib/ddtrace/transport/parcel.rb +7 -0
- data/lib/ddtrace/transport/request.rb +1 -0
- data/lib/ddtrace/transport/response.rb +1 -0
- data/lib/ddtrace/transport/statistics.rb +1 -0
- data/lib/ddtrace/transport/traces.rb +28 -5
- data/lib/ddtrace/utils/compression.rb +28 -0
- data/lib/ddtrace/utils/database.rb +1 -0
- data/lib/ddtrace/utils/forking.rb +53 -0
- data/lib/ddtrace/utils/object_set.rb +40 -0
- data/lib/ddtrace/utils/only_once.rb +41 -0
- data/lib/ddtrace/utils/sequence.rb +18 -0
- data/lib/ddtrace/utils/string_table.rb +46 -0
- data/lib/ddtrace/utils/time.rb +40 -3
- data/lib/ddtrace/utils.rb +29 -14
- data/lib/ddtrace/vendor/active_record/MIT-LICENSE +20 -0
- data/lib/ddtrace/vendor/active_record/connection_specification.rb +1 -0
- data/lib/ddtrace/vendor/multipart-post/LICENSE +11 -0
- data/lib/ddtrace/vendor/multipart-post/multipart/post/composite_read_io.rb +117 -0
- data/lib/ddtrace/vendor/multipart-post/multipart/post/multipartable.rb +58 -0
- data/lib/ddtrace/vendor/multipart-post/multipart/post/parts.rb +136 -0
- data/lib/ddtrace/vendor/multipart-post/multipart/post/version.rb +10 -0
- data/lib/ddtrace/vendor/multipart-post/multipart/post.rb +9 -0
- data/lib/ddtrace/vendor/multipart-post/multipart.rb +13 -0
- data/lib/ddtrace/vendor/multipart-post/net/http/post/multipart.rb +33 -0
- data/lib/ddtrace/version.rb +16 -3
- data/lib/ddtrace/worker.rb +1 -0
- data/lib/ddtrace/workers/async.rb +15 -5
- data/lib/ddtrace/workers/loop.rb +32 -5
- data/lib/ddtrace/workers/polling.rb +13 -5
- data/lib/ddtrace/workers/queue.rb +3 -1
- data/lib/ddtrace/workers/runtime_metrics.rb +22 -4
- data/lib/ddtrace/workers/trace_writer.rb +14 -16
- data/lib/ddtrace/workers.rb +8 -2
- data/lib/ddtrace/writer.rb +33 -8
- data/lib/ddtrace.rb +22 -48
- metadata +180 -374
- data/.circleci/config.yml +0 -548
- data/.circleci/images/primary/Dockerfile-2.0.0 +0 -73
- data/.circleci/images/primary/Dockerfile-2.1.10 +0 -73
- data/.circleci/images/primary/Dockerfile-2.2.10 +0 -73
- data/.circleci/images/primary/Dockerfile-2.3.8 +0 -75
- data/.circleci/images/primary/Dockerfile-2.4.6 +0 -73
- data/.circleci/images/primary/Dockerfile-2.5.6 +0 -73
- data/.circleci/images/primary/Dockerfile-2.6.4 +0 -73
- data/.circleci/images/primary/Dockerfile-2.7.0 +0 -73
- data/.circleci/images/primary/Dockerfile-jruby-9.2 +0 -77
- data/.dockerignore +0 -1
- data/.env +0 -26
- data/.github/CODEOWNERS +0 -1
- data/.gitlab-ci.yml +0 -27
- data/.rspec +0 -1
- data/.rubocop.yml +0 -85
- data/.simplecov +0 -38
- data/Appraisals +0 -1071
- data/Gemfile +0 -7
- data/Rakefile +0 -791
- data/benchmarks/postgres_database.yml +0 -9
- data/benchmarks/sidekiq_test.rb +0 -154
- data/docker-compose.yml +0 -370
- data/lib/ddtrace/augmentation/method_wrapper.rb +0 -20
- data/lib/ddtrace/augmentation/method_wrapping.rb +0 -38
- data/lib/ddtrace/augmentation/shim.rb +0 -102
- data/lib/ddtrace/augmentation.rb +0 -13
- data/lib/ddtrace/environment.rb +0 -41
- data/lib/ddtrace/monkey.rb +0 -58
- data/lib/ddtrace/runtime/cgroup.rb +0 -44
- data/lib/ddtrace/runtime/class_count.rb +0 -17
- data/lib/ddtrace/runtime/container.rb +0 -73
- data/lib/ddtrace/runtime/gc.rb +0 -16
- data/lib/ddtrace/runtime/identity.rb +0 -41
- data/lib/ddtrace/runtime/object_space.rb +0 -19
- data/lib/ddtrace/runtime/socket.rb +0 -14
- data/lib/ddtrace/runtime/thread_count.rb +0 -16
- data/tasks/release_gem.rake +0 -28
|
@@ -1,10 +1,11 @@
|
|
|
1
|
+
# typed: false
|
|
1
2
|
require 'ddtrace/ext/app_types'
|
|
2
3
|
require 'ddtrace/ext/http'
|
|
3
4
|
require 'ddtrace/propagation/http_propagator'
|
|
4
5
|
require 'ddtrace/contrib/analytics'
|
|
5
6
|
require 'ddtrace/contrib/rack/ext'
|
|
6
7
|
require 'ddtrace/contrib/rack/request_queue'
|
|
7
|
-
require '
|
|
8
|
+
require 'datadog/core/environment/variable_helpers'
|
|
8
9
|
require 'date'
|
|
9
10
|
|
|
10
11
|
module Datadog
|
|
@@ -53,7 +54,7 @@ module Datadog
|
|
|
53
54
|
tracer.provider.context = context if context.trace_id
|
|
54
55
|
end
|
|
55
56
|
|
|
56
|
-
#
|
|
57
|
+
# Create a root Span to keep track of frontend web servers
|
|
57
58
|
# (i.e. Apache, nginx) if the header is properly set
|
|
58
59
|
frontend_span = compute_queue_time(env, tracer)
|
|
59
60
|
|
|
@@ -131,7 +132,8 @@ module Datadog
|
|
|
131
132
|
end
|
|
132
133
|
|
|
133
134
|
# rubocop:disable Metrics/AbcSize
|
|
134
|
-
# rubocop:disable Metrics/
|
|
135
|
+
# rubocop:disable Metrics/CyclomaticComplexity
|
|
136
|
+
# rubocop:disable Metrics/PerceivedComplexity
|
|
135
137
|
def set_request_tags!(request_span, env, status, headers, response, original_env)
|
|
136
138
|
# http://www.rubydoc.info/github/rack/rack/file/SPEC
|
|
137
139
|
# The source of truth in Rack is the PATH_INFO key that holds the
|
|
@@ -199,9 +201,7 @@ module Datadog
|
|
|
199
201
|
|
|
200
202
|
# detect if the status code is a 5xx and flag the request span as an error
|
|
201
203
|
# unless it has been already set by the underlying framework
|
|
202
|
-
if status.to_s.start_with?('5') && request_span.status.zero?
|
|
203
|
-
request_span.status = 1
|
|
204
|
-
end
|
|
204
|
+
request_span.status = 1 if status.to_s.start_with?('5') && request_span.status.zero?
|
|
205
205
|
end
|
|
206
206
|
|
|
207
207
|
private
|
|
@@ -258,9 +258,7 @@ module Datadog
|
|
|
258
258
|
whitelist = configuration[:headers][:request] || []
|
|
259
259
|
whitelist.each do |header|
|
|
260
260
|
rack_header = header_to_rack_header(header)
|
|
261
|
-
if env.key?(rack_header)
|
|
262
|
-
result[Datadog::Ext::HTTP::RequestHeaders.to_tag(header)] = env[rack_header]
|
|
263
|
-
end
|
|
261
|
+
result[Datadog::Ext::HTTP::RequestHeaders.to_tag(header)] = env[rack_header] if env.key?(rack_header)
|
|
264
262
|
end
|
|
265
263
|
end
|
|
266
264
|
end
|
|
@@ -275,9 +273,7 @@ module Datadog
|
|
|
275
273
|
# Try a case-insensitive lookup
|
|
276
274
|
uppercased_header = header.to_s.upcase
|
|
277
275
|
matching_header = headers.keys.find { |h| h.upcase == uppercased_header }
|
|
278
|
-
if matching_header
|
|
279
|
-
result[Datadog::Ext::HTTP::ResponseHeaders.to_tag(header)] = headers[matching_header]
|
|
280
|
-
end
|
|
276
|
+
result[Datadog::Ext::HTTP::ResponseHeaders.to_tag(header)] = headers[matching_header] if matching_header
|
|
281
277
|
end
|
|
282
278
|
end
|
|
283
279
|
end
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
# typed: false
|
|
1
2
|
module Datadog
|
|
2
3
|
module Contrib
|
|
3
4
|
module Rack
|
|
@@ -53,9 +54,7 @@ module Datadog
|
|
|
53
54
|
end
|
|
54
55
|
end
|
|
55
56
|
|
|
56
|
-
following = if middleware.instance_variable_defined?('@app')
|
|
57
|
-
middleware.instance_variable_get('@app')
|
|
58
|
-
end
|
|
57
|
+
following = (middleware.instance_variable_get('@app') if middleware.instance_variable_defined?('@app'))
|
|
59
58
|
|
|
60
59
|
retain_middleware_name(following)
|
|
61
60
|
end
|
|
@@ -1,7 +1,13 @@
|
|
|
1
|
+
# typed: true
|
|
1
2
|
module Datadog
|
|
2
3
|
module Contrib
|
|
3
4
|
module Rack
|
|
4
|
-
#
|
|
5
|
+
# Retrieves the time spent in an upstream proxy
|
|
6
|
+
# for the current Rack request.
|
|
7
|
+
#
|
|
8
|
+
# This time captures the request delay introduced but
|
|
9
|
+
# such proxy before the request made it to the Ruby
|
|
10
|
+
# process.
|
|
5
11
|
module QueueTime
|
|
6
12
|
REQUEST_START = 'HTTP_X_REQUEST_START'.freeze
|
|
7
13
|
QUEUE_START = 'HTTP_X_QUEUE_START'.freeze
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
# typed: ignore
|
|
2
|
+
|
|
3
|
+
# Railtie to include AutoInstrumentation in rails loading
|
|
4
|
+
class DatadogAutoInstrumentRailtie < Rails::Railtie
|
|
5
|
+
# we want to load before config initializers so that any user supplied config
|
|
6
|
+
# in config/initializers/datadog.rb will take precedence
|
|
7
|
+
initializer 'datadog.start_tracer', before: :load_config_initializers do
|
|
8
|
+
Datadog::Contrib::AutoInstrument.patch_all
|
|
9
|
+
end
|
|
10
|
+
end
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
# typed: false
|
|
1
2
|
require 'ddtrace/contrib/configuration/settings'
|
|
2
3
|
|
|
3
4
|
module Datadog
|
|
@@ -72,6 +73,13 @@ module Datadog
|
|
|
72
73
|
end
|
|
73
74
|
end
|
|
74
75
|
|
|
76
|
+
option :job_service do |o|
|
|
77
|
+
o.on_set do |value|
|
|
78
|
+
# Update ActiveJob service name too
|
|
79
|
+
Datadog.configuration[:active_job][:service_name] = value
|
|
80
|
+
end
|
|
81
|
+
end
|
|
82
|
+
|
|
75
83
|
option :middleware, default: true
|
|
76
84
|
option :middleware_names, default: false
|
|
77
85
|
option :template_base_path do |o|
|
|
@@ -1,12 +1,16 @@
|
|
|
1
|
+
# typed: false
|
|
1
2
|
require 'ddtrace/pin'
|
|
2
3
|
require 'ddtrace/ext/app_types'
|
|
3
4
|
|
|
4
5
|
require 'ddtrace/contrib/active_record/integration'
|
|
5
6
|
require 'ddtrace/contrib/active_support/integration'
|
|
6
7
|
require 'ddtrace/contrib/action_cable/integration'
|
|
8
|
+
require 'ddtrace/contrib/action_mailer/integration'
|
|
7
9
|
require 'ddtrace/contrib/action_pack/integration'
|
|
8
10
|
require 'ddtrace/contrib/action_view/integration'
|
|
9
11
|
require 'ddtrace/contrib/grape/endpoint'
|
|
12
|
+
require 'ddtrace/contrib/lograge/integration'
|
|
13
|
+
require 'ddtrace/contrib/semantic_logger/integration'
|
|
10
14
|
|
|
11
15
|
require 'ddtrace/contrib/rails/ext'
|
|
12
16
|
require 'ddtrace/contrib/rails/utils'
|
|
@@ -18,7 +22,7 @@ module Datadog
|
|
|
18
22
|
# Rails framework code, used to essentially:
|
|
19
23
|
# - handle configuration entries which are specific to Datadog tracing
|
|
20
24
|
# - instrument parts of the framework when needed
|
|
21
|
-
module Framework
|
|
25
|
+
module Framework # rubocop:disable Metrics/ModuleLength
|
|
22
26
|
# After the Rails application finishes initializing, we configure the Rails
|
|
23
27
|
# integration and all its sub-components with the application information
|
|
24
28
|
# available.
|
|
@@ -42,10 +46,14 @@ module Datadog
|
|
|
42
46
|
|
|
43
47
|
activate_rack!(datadog_config, rails_config)
|
|
44
48
|
activate_action_cable!(datadog_config, rails_config)
|
|
49
|
+
activate_action_mailer!(datadog_config, rails_config)
|
|
45
50
|
activate_active_support!(datadog_config, rails_config)
|
|
46
51
|
activate_action_pack!(datadog_config, rails_config)
|
|
47
52
|
activate_action_view!(datadog_config, rails_config)
|
|
53
|
+
activate_active_job!(datadog_config, rails_config)
|
|
48
54
|
activate_active_record!(datadog_config, rails_config)
|
|
55
|
+
activate_lograge!(datadog_config, rails_config)
|
|
56
|
+
activate_semantic_logger!(datadog_config, rails_config)
|
|
49
57
|
end
|
|
50
58
|
end
|
|
51
59
|
|
|
@@ -53,10 +61,11 @@ module Datadog
|
|
|
53
61
|
# We set defaults here instead of in the patcher because we need to wait
|
|
54
62
|
# for the Rails application to be fully initialized.
|
|
55
63
|
datadog_config[:rails].tap do |config|
|
|
56
|
-
config[:service_name] ||= (Datadog.
|
|
64
|
+
config[:service_name] ||= (Datadog.configure.service_without_fallback || Utils.app_name)
|
|
57
65
|
config[:database_service] ||= "#{config[:service_name]}-#{Contrib::ActiveRecord::Utils.adapter_name}"
|
|
58
66
|
config[:controller_service] ||= config[:service_name]
|
|
59
67
|
config[:cache_service] ||= "#{config[:service_name]}-cache"
|
|
68
|
+
config[:job_service] ||= "#{config[:service_name]}-#{Contrib::ActiveJob::Ext::SERVICE_NAME}"
|
|
60
69
|
end
|
|
61
70
|
end
|
|
62
71
|
|
|
@@ -88,6 +97,15 @@ module Datadog
|
|
|
88
97
|
)
|
|
89
98
|
end
|
|
90
99
|
|
|
100
|
+
def self.activate_action_mailer!(datadog_config, rails_config)
|
|
101
|
+
return unless defined?(::ActionMailer)
|
|
102
|
+
|
|
103
|
+
datadog_config.use(
|
|
104
|
+
:action_mailer,
|
|
105
|
+
service_name: "#{rails_config[:service_name]}-#{Contrib::ActionMailer::Ext::SERVICE_NAME}"
|
|
106
|
+
)
|
|
107
|
+
end
|
|
108
|
+
|
|
91
109
|
def self.activate_action_pack!(datadog_config, rails_config)
|
|
92
110
|
return unless defined?(::ActionPack)
|
|
93
111
|
|
|
@@ -110,6 +128,16 @@ module Datadog
|
|
|
110
128
|
)
|
|
111
129
|
end
|
|
112
130
|
|
|
131
|
+
def self.activate_active_job!(datadog_config, rails_config)
|
|
132
|
+
return unless defined?(::ActiveJob)
|
|
133
|
+
|
|
134
|
+
datadog_config.use(
|
|
135
|
+
:active_job,
|
|
136
|
+
service_name: rails_config[:job_service],
|
|
137
|
+
log_injection: rails_config[:log_injection]
|
|
138
|
+
)
|
|
139
|
+
end
|
|
140
|
+
|
|
113
141
|
def self.activate_active_record!(datadog_config, rails_config)
|
|
114
142
|
return unless defined?(::ActiveRecord)
|
|
115
143
|
|
|
@@ -118,6 +146,26 @@ module Datadog
|
|
|
118
146
|
service_name: rails_config[:database_service]
|
|
119
147
|
)
|
|
120
148
|
end
|
|
149
|
+
|
|
150
|
+
def self.activate_lograge!(datadog_config, rails_config)
|
|
151
|
+
return unless defined?(::Lograge)
|
|
152
|
+
|
|
153
|
+
if rails_config[:log_injection]
|
|
154
|
+
datadog_config.use(
|
|
155
|
+
:lograge
|
|
156
|
+
)
|
|
157
|
+
end
|
|
158
|
+
end
|
|
159
|
+
|
|
160
|
+
def self.activate_semantic_logger!(datadog_config, rails_config)
|
|
161
|
+
return unless defined?(::SemanticLogger)
|
|
162
|
+
|
|
163
|
+
if rails_config[:log_injection]
|
|
164
|
+
datadog_config.use(
|
|
165
|
+
:semantic_logger
|
|
166
|
+
)
|
|
167
|
+
end
|
|
168
|
+
end
|
|
121
169
|
end
|
|
122
170
|
end
|
|
123
171
|
end
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
# typed: false
|
|
1
2
|
module Datadog
|
|
2
3
|
module Contrib
|
|
3
4
|
# Instrument Rails.
|
|
@@ -6,46 +7,6 @@ module Datadog
|
|
|
6
7
|
module LogInjection
|
|
7
8
|
module_function
|
|
8
9
|
|
|
9
|
-
def add_lograge_logger(app)
|
|
10
|
-
# custom_options defaults to nil and can be either a hash or a lambda which returns a hash
|
|
11
|
-
# https://github.com/roidrage/lograge/blob/1729eab7956bb95c5992e4adab251e4f93ff9280/lib/lograge.rb#L28
|
|
12
|
-
if (custom_options = app.config.lograge.custom_options).nil?
|
|
13
|
-
# if it's not set, we set to a lambda that returns DD tracing context
|
|
14
|
-
app.config.lograge.custom_options = lambda do |_event|
|
|
15
|
-
# Retrieves trace information for current thread
|
|
16
|
-
correlation = Datadog.tracer.active_correlation
|
|
17
|
-
|
|
18
|
-
datadog_trace_log_hash(correlation)
|
|
19
|
-
end
|
|
20
|
-
# check if lambda, if so then define a new lambda which invokes the original lambda and
|
|
21
|
-
# merges the returned hash with the the DD tracing context hash.
|
|
22
|
-
elsif custom_options.respond_to?(:call)
|
|
23
|
-
app.config.lograge.custom_options = lambda do |event|
|
|
24
|
-
# invoke original lambda
|
|
25
|
-
result = custom_options.call(event)
|
|
26
|
-
# Retrieves trace information for current thread
|
|
27
|
-
correlation = Datadog.tracer.active_correlation
|
|
28
|
-
# merge original lambda with datadog context
|
|
29
|
-
result.merge(datadog_trace_log_hash(correlation))
|
|
30
|
-
end
|
|
31
|
-
# otherwise if it's just a static hash, we have to wrap that hash in a lambda to retrieve
|
|
32
|
-
# the DD tracing context, then merge the tracing context with the original static hash.
|
|
33
|
-
# don't modify if custom_options is not an accepted format.
|
|
34
|
-
elsif custom_options.is_a?(Hash)
|
|
35
|
-
app.config.lograge.custom_options = lambda do |_event|
|
|
36
|
-
# Retrieves trace information for current thread
|
|
37
|
-
correlation = Datadog.tracer.active_correlation
|
|
38
|
-
|
|
39
|
-
# merge original lambda with datadog context
|
|
40
|
-
custom_options.merge(datadog_trace_log_hash(correlation))
|
|
41
|
-
end
|
|
42
|
-
end
|
|
43
|
-
rescue StandardError => e
|
|
44
|
-
# TODO: can we use Datadog.logger at this point?
|
|
45
|
-
Datadog.logger.warn("Unable to add Datadog Trace context to Lograge: #{e.message}")
|
|
46
|
-
false
|
|
47
|
-
end
|
|
48
|
-
|
|
49
10
|
def add_as_tagged_logging_logger(app)
|
|
50
11
|
# we want to check if the current logger is a tagger logger instance
|
|
51
12
|
# log_tags defaults to nil so we have to set as an array if nothing exists yet
|
|
@@ -1,8 +1,11 @@
|
|
|
1
|
+
# typed: ignore
|
|
1
2
|
require 'ddtrace/contrib/rails/utils'
|
|
2
3
|
require 'ddtrace/contrib/rails/framework'
|
|
3
4
|
require 'ddtrace/contrib/rails/middlewares'
|
|
4
5
|
require 'ddtrace/contrib/rails/log_injection'
|
|
5
6
|
require 'ddtrace/contrib/rack/middlewares'
|
|
7
|
+
require 'ddtrace/contrib/semantic_logger/patcher'
|
|
8
|
+
require 'ddtrace/utils/only_once'
|
|
6
9
|
|
|
7
10
|
module Datadog
|
|
8
11
|
module Contrib
|
|
@@ -11,6 +14,9 @@ module Datadog
|
|
|
11
14
|
module Patcher
|
|
12
15
|
include Contrib::Patcher
|
|
13
16
|
|
|
17
|
+
BEFORE_INITIALIZE_ONLY_ONCE_PER_APP = Hash.new { |h, key| h[key] = Datadog::Utils::OnlyOnce.new }
|
|
18
|
+
AFTER_INITIALIZE_ONLY_ONCE_PER_APP = Hash.new { |h, key| h[key] = Datadog::Utils::OnlyOnce.new }
|
|
19
|
+
|
|
14
20
|
module_function
|
|
15
21
|
|
|
16
22
|
def target_version
|
|
@@ -29,7 +35,7 @@ module Datadog
|
|
|
29
35
|
end
|
|
30
36
|
|
|
31
37
|
def before_intialize(app)
|
|
32
|
-
|
|
38
|
+
BEFORE_INITIALIZE_ONLY_ONCE_PER_APP[app].run do
|
|
33
39
|
# Middleware must be added before the application is initialized.
|
|
34
40
|
# Otherwise the middleware stack will be frozen.
|
|
35
41
|
# Sometimes we don't want to activate middleware e.g. OpenTracing, etc.
|
|
@@ -39,30 +45,54 @@ module Datadog
|
|
|
39
45
|
end
|
|
40
46
|
|
|
41
47
|
def add_middleware(app)
|
|
42
|
-
# Add trace middleware
|
|
48
|
+
# Add trace middleware at the top of the middleware stack,
|
|
49
|
+
# to ensure we capture the complete execution time.
|
|
43
50
|
app.middleware.insert_before(0, Datadog::Contrib::Rack::TraceMiddleware)
|
|
44
51
|
|
|
45
|
-
#
|
|
46
|
-
#
|
|
47
|
-
#
|
|
48
|
-
#
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
52
|
+
# Some Rails middleware can swallow an application error, preventing
|
|
53
|
+
# the error propagation to the encompassing Rack span.
|
|
54
|
+
#
|
|
55
|
+
# We insert our own middleware right before these Rails middleware
|
|
56
|
+
# have a chance to swallow the error.
|
|
57
|
+
#
|
|
58
|
+
# Note: because the middleware stack is push/pop, "before" and "after" are reversed
|
|
59
|
+
# for our use case: we insert ourselves with "after" a middleware to ensure we are
|
|
60
|
+
# able to pop the request "before" it.
|
|
61
|
+
if defined?(::ActionDispatch::DebugExceptions)
|
|
62
|
+
# Rails >= 3.2
|
|
63
|
+
app.middleware.insert_after(::ActionDispatch::DebugExceptions, Datadog::Contrib::Rails::ExceptionMiddleware)
|
|
64
|
+
else
|
|
65
|
+
# Rails < 3.2
|
|
66
|
+
app.middleware.insert_after(::ActionDispatch::ShowExceptions, Datadog::Contrib::Rails::ExceptionMiddleware)
|
|
67
|
+
end
|
|
53
68
|
end
|
|
54
69
|
|
|
55
70
|
def add_logger(app)
|
|
71
|
+
should_warn = true
|
|
56
72
|
# check if lograge key exists
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
#
|
|
73
|
+
# Note: Rails executes initializers sequentially based on alphabetical order,
|
|
74
|
+
# and lograge config could occur after datadog config.
|
|
75
|
+
# So checking for `app.config.lograge.enabled` may yield a false negative,
|
|
76
|
+
# and adding custom options naively if `config.lograge` exists from the lograge Railtie,
|
|
77
|
+
# is inconsistent since a lograge initializer would override it.
|
|
78
|
+
# Instead, we patch Lograge `custom_options` internals directly
|
|
79
|
+
# as part of Rails framework patching
|
|
80
|
+
# and just flag off the warning log here.
|
|
81
|
+
# SemanticLogger we similarly patch in the after_initiaize block, and should flag
|
|
82
|
+
# off the warning log here if we know we'll patch this gem later.
|
|
83
|
+
should_warn = false if app.config.respond_to?(:lograge) || defined?(::SemanticLogger)
|
|
84
|
+
|
|
85
|
+
# if lograge isn't set, check if tagged logged is enabled.
|
|
60
86
|
# if so, add proc that injects trace identifiers for tagged logging.
|
|
61
|
-
|
|
87
|
+
if (logger = app.config.logger) &&
|
|
88
|
+
defined?(::ActiveSupport::TaggedLogging) &&
|
|
89
|
+
logger.is_a?(::ActiveSupport::TaggedLogging)
|
|
90
|
+
|
|
62
91
|
Datadog::Contrib::Rails::LogInjection.add_as_tagged_logging_logger(app)
|
|
63
|
-
|
|
64
|
-
Datadog.logger.warn("Unabe to enable Datadog Trace context, Logger #{logger} is not supported")
|
|
92
|
+
should_warn = false
|
|
65
93
|
end
|
|
94
|
+
|
|
95
|
+
Datadog.logger.warn("Unable to enable Datadog Trace context, Logger #{logger} is not supported") if should_warn
|
|
66
96
|
end
|
|
67
97
|
|
|
68
98
|
def patch_after_intialize
|
|
@@ -72,7 +102,7 @@ module Datadog
|
|
|
72
102
|
end
|
|
73
103
|
|
|
74
104
|
def after_intialize(app)
|
|
75
|
-
|
|
105
|
+
AFTER_INITIALIZE_ONLY_ONCE_PER_APP[app].run do
|
|
76
106
|
# Finish configuring the tracer after the application is initialized.
|
|
77
107
|
# We need to wait for some things, like application name, middleware stack, etc.
|
|
78
108
|
setup_tracer
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
# typed: false
|
|
1
2
|
require 'ddtrace/contrib/analytics'
|
|
2
3
|
|
|
3
4
|
module Datadog
|
|
@@ -14,6 +15,10 @@ module Datadog
|
|
|
14
15
|
::Rails.application.class.to_s.underscore
|
|
15
16
|
end
|
|
16
17
|
end
|
|
18
|
+
|
|
19
|
+
def self.railtie_supported?
|
|
20
|
+
!(defined?(::Rails::VERSION::MAJOR) && ::Rails::VERSION::MAJOR >= 3 && defined?(::Rails::Railtie)).nil?
|
|
21
|
+
end
|
|
17
22
|
end
|
|
18
23
|
end
|
|
19
24
|
end
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
# typed: false
|
|
1
2
|
require 'ddtrace/contrib/analytics'
|
|
2
3
|
require 'ddtrace/contrib/rake/ext'
|
|
3
4
|
|
|
@@ -7,7 +8,7 @@ module Datadog
|
|
|
7
8
|
# Instrumentation for Rake tasks
|
|
8
9
|
module Instrumentation
|
|
9
10
|
def self.included(base)
|
|
10
|
-
base.
|
|
11
|
+
base.prepend(InstanceMethods)
|
|
11
12
|
end
|
|
12
13
|
|
|
13
14
|
# Instance methods for Rake instrumentation
|
|
@@ -16,7 +17,8 @@ module Datadog
|
|
|
16
17
|
return super unless enabled?
|
|
17
18
|
|
|
18
19
|
tracer.trace(Ext::SPAN_INVOKE, span_options) do |span|
|
|
19
|
-
|
|
20
|
+
annotate_invoke!(span, args)
|
|
21
|
+
super
|
|
20
22
|
end
|
|
21
23
|
ensure
|
|
22
24
|
shutdown_tracer!
|
|
@@ -26,7 +28,8 @@ module Datadog
|
|
|
26
28
|
return super unless enabled?
|
|
27
29
|
|
|
28
30
|
tracer.trace(Ext::SPAN_EXECUTE, span_options) do |span|
|
|
29
|
-
|
|
31
|
+
annotate_execute!(span, args)
|
|
32
|
+
super
|
|
30
33
|
end
|
|
31
34
|
ensure
|
|
32
35
|
shutdown_tracer!
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
# typed: false
|
|
1
2
|
require 'ddtrace/contrib/integration'
|
|
2
3
|
require 'ddtrace/contrib/rake/configuration/settings'
|
|
3
4
|
require 'ddtrace/contrib/rake/patcher'
|
|
@@ -18,7 +19,7 @@ module Datadog
|
|
|
18
19
|
end
|
|
19
20
|
|
|
20
21
|
def self.loaded?
|
|
21
|
-
!defined?(::Rake).nil?
|
|
22
|
+
!defined?(::Rake::Task).nil?
|
|
22
23
|
end
|
|
23
24
|
|
|
24
25
|
def self.compatible?
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
# typed: true
|
|
1
2
|
require 'ddtrace/contrib/patcher'
|
|
2
3
|
require 'ddtrace/ext/app_types'
|
|
3
4
|
require 'ddtrace/contrib/rake/ext'
|
|
@@ -18,7 +19,7 @@ module Datadog
|
|
|
18
19
|
|
|
19
20
|
def patch
|
|
20
21
|
# Add instrumentation patch to Rake task
|
|
21
|
-
::Rake::Task.
|
|
22
|
+
::Rake::Task.include(Instrumentation)
|
|
22
23
|
end
|
|
23
24
|
|
|
24
25
|
def get_option(option)
|
|
@@ -1,19 +1,29 @@
|
|
|
1
|
+
# typed: true
|
|
1
2
|
require 'ddtrace/contrib/redis/vendor/resolver'
|
|
2
3
|
|
|
3
4
|
module Datadog
|
|
4
5
|
module Contrib
|
|
5
6
|
module Redis
|
|
6
7
|
module Configuration
|
|
7
|
-
|
|
8
|
+
UNIX_SCHEME = 'unix'.freeze
|
|
9
|
+
|
|
10
|
+
# Converts String URLs and Hashes to a normalized connection settings Hash.
|
|
8
11
|
class Resolver < Contrib::Configuration::Resolver
|
|
9
|
-
|
|
10
|
-
|
|
12
|
+
# @param [Hash,String] Redis connection information
|
|
13
|
+
def resolve(hash)
|
|
14
|
+
super(parse_matcher(hash))
|
|
15
|
+
end
|
|
16
|
+
|
|
17
|
+
protected
|
|
18
|
+
|
|
19
|
+
def parse_matcher(matcher)
|
|
20
|
+
matcher = { url: matcher } if matcher.is_a?(String)
|
|
11
21
|
|
|
12
|
-
normalize(connection_resolver.resolve(
|
|
22
|
+
normalize(connection_resolver.resolve(matcher))
|
|
13
23
|
end
|
|
14
24
|
|
|
15
25
|
def normalize(hash)
|
|
16
|
-
return { url: hash[:url] } if hash[:scheme] ==
|
|
26
|
+
return { url: hash[:url] } if hash[:scheme] == UNIX_SCHEME
|
|
17
27
|
|
|
18
28
|
# Connexion strings are always converted to host, port, db and scheme
|
|
19
29
|
# but the host, port, db and scheme will generate the :url only after
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
# typed: false
|
|
1
2
|
require 'ddtrace/contrib/configuration/settings'
|
|
2
3
|
require 'ddtrace/contrib/redis/ext'
|
|
3
4
|
|
|
@@ -22,6 +23,11 @@ module Datadog
|
|
|
22
23
|
o.lazy
|
|
23
24
|
end
|
|
24
25
|
|
|
26
|
+
option :command_args do |o|
|
|
27
|
+
o.default { env_to_bool(Ext::ENV_COMMAND_ARGS, true) }
|
|
28
|
+
o.lazy
|
|
29
|
+
end
|
|
30
|
+
|
|
25
31
|
option :service_name, default: Ext::SERVICE_NAME
|
|
26
32
|
end
|
|
27
33
|
end
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
# typed: true
|
|
1
2
|
module Datadog
|
|
2
3
|
module Contrib
|
|
3
4
|
module Redis
|
|
@@ -9,6 +10,7 @@ module Datadog
|
|
|
9
10
|
ENV_ANALYTICS_ENABLED_OLD = 'DD_REDIS_ANALYTICS_ENABLED'.freeze
|
|
10
11
|
ENV_ANALYTICS_SAMPLE_RATE = 'DD_TRACE_REDIS_ANALYTICS_SAMPLE_RATE'.freeze
|
|
11
12
|
ENV_ANALYTICS_SAMPLE_RATE_OLD = 'DD_REDIS_ANALYTICS_SAMPLE_RATE'.freeze
|
|
13
|
+
ENV_COMMAND_ARGS = 'DD_REDIS_COMMAND_ARGS'.freeze
|
|
12
14
|
METRIC_PIPELINE_LEN = 'redis.pipeline_length'.freeze
|
|
13
15
|
SERVICE_NAME = 'redis'.freeze
|
|
14
16
|
SPAN_COMMAND = 'redis.command'.freeze
|