ddtrace 1.1.0 → 1.9.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/CHANGELOG.md +423 -1
- data/LICENSE-3rdparty.csv +3 -0
- data/README.md +9 -4
- data/ext/ddtrace_profiling_loader/ddtrace_profiling_loader.c +21 -5
- data/ext/ddtrace_profiling_loader/extconf.rb +22 -1
- data/ext/ddtrace_profiling_native_extension/NativeExtensionDesign.md +52 -8
- data/ext/ddtrace_profiling_native_extension/clock_id.h +22 -1
- data/ext/ddtrace_profiling_native_extension/clock_id_from_pthread.c +34 -3
- data/ext/ddtrace_profiling_native_extension/clock_id_noop.c +11 -2
- data/ext/ddtrace_profiling_native_extension/collectors_cpu_and_wall_time.c +899 -0
- data/ext/ddtrace_profiling_native_extension/collectors_cpu_and_wall_time.h +9 -0
- data/ext/ddtrace_profiling_native_extension/collectors_cpu_and_wall_time_worker.c +776 -0
- data/ext/ddtrace_profiling_native_extension/collectors_dynamic_sampling_rate.c +142 -0
- data/ext/ddtrace_profiling_native_extension/collectors_dynamic_sampling_rate.h +14 -0
- data/ext/ddtrace_profiling_native_extension/collectors_idle_sampling_helper.c +241 -0
- data/ext/ddtrace_profiling_native_extension/collectors_idle_sampling_helper.h +3 -0
- data/ext/ddtrace_profiling_native_extension/collectors_stack.c +175 -63
- data/ext/ddtrace_profiling_native_extension/collectors_stack.h +18 -0
- data/ext/ddtrace_profiling_native_extension/extconf.rb +90 -18
- data/ext/ddtrace_profiling_native_extension/helpers.h +17 -0
- data/ext/ddtrace_profiling_native_extension/http_transport.c +354 -0
- data/ext/ddtrace_profiling_native_extension/libdatadog_helpers.h +18 -0
- data/ext/ddtrace_profiling_native_extension/native_extension_helpers.rb +154 -21
- data/ext/ddtrace_profiling_native_extension/private_vm_api_access.c +256 -17
- data/ext/ddtrace_profiling_native_extension/private_vm_api_access.h +17 -5
- data/ext/ddtrace_profiling_native_extension/profiling.c +223 -3
- data/ext/ddtrace_profiling_native_extension/ruby_helpers.c +110 -0
- data/ext/ddtrace_profiling_native_extension/ruby_helpers.h +89 -0
- data/ext/ddtrace_profiling_native_extension/setup_signal_handler.c +115 -0
- data/ext/ddtrace_profiling_native_extension/setup_signal_handler.h +11 -0
- data/ext/ddtrace_profiling_native_extension/stack_recorder.c +392 -44
- data/ext/ddtrace_profiling_native_extension/stack_recorder.h +25 -14
- data/ext/ddtrace_profiling_native_extension/time_helpers.c +17 -0
- data/ext/ddtrace_profiling_native_extension/time_helpers.h +10 -0
- data/lib/datadog/appsec/assets/blocked.html +98 -3
- data/lib/datadog/appsec/assets/blocked.json +1 -0
- data/lib/datadog/appsec/assets/blocked.text +5 -0
- data/lib/datadog/appsec/assets/waf_rules/recommended.json +1250 -300
- data/lib/datadog/appsec/assets/waf_rules/risky.json +78 -78
- data/lib/datadog/appsec/assets/waf_rules/strict.json +308 -73
- data/lib/datadog/appsec/assets.rb +3 -3
- data/lib/datadog/appsec/autoload.rb +4 -2
- data/lib/datadog/appsec/configuration/settings.rb +40 -23
- data/lib/datadog/appsec/configuration.rb +9 -3
- data/lib/datadog/appsec/contrib/auto_instrument.rb +1 -3
- data/lib/datadog/appsec/contrib/configuration/settings.rb +2 -2
- data/lib/datadog/appsec/contrib/integration.rb +1 -1
- data/lib/datadog/appsec/contrib/patcher.rb +1 -1
- data/lib/datadog/appsec/contrib/rack/configuration/settings.rb +3 -3
- data/lib/datadog/appsec/contrib/rack/ext.rb +1 -1
- data/lib/datadog/appsec/contrib/rack/gateway/watcher.rb +32 -27
- data/lib/datadog/appsec/contrib/rack/integration.rb +5 -5
- data/lib/datadog/appsec/contrib/rack/patcher.rb +2 -2
- data/lib/datadog/appsec/contrib/rack/reactive/request.rb +17 -21
- data/lib/datadog/appsec/contrib/rack/reactive/request_body.rb +13 -13
- data/lib/datadog/appsec/contrib/rack/reactive/response.rb +13 -13
- data/lib/datadog/appsec/contrib/rack/request.rb +21 -1
- data/lib/datadog/appsec/contrib/rack/request_body_middleware.rb +3 -3
- data/lib/datadog/appsec/contrib/rack/request_middleware.rb +50 -23
- data/lib/datadog/appsec/contrib/rack/response.rb +1 -1
- data/lib/datadog/appsec/contrib/rails/configuration/settings.rb +3 -3
- data/lib/datadog/appsec/contrib/rails/ext.rb +1 -1
- data/lib/datadog/appsec/contrib/rails/framework.rb +1 -1
- data/lib/datadog/appsec/contrib/rails/gateway/watcher.rb +12 -11
- data/lib/datadog/appsec/contrib/rails/integration.rb +5 -5
- data/lib/datadog/appsec/contrib/rails/patcher.rb +14 -13
- data/lib/datadog/appsec/contrib/rails/reactive/action.rb +13 -13
- data/lib/datadog/appsec/contrib/rails/request.rb +4 -1
- data/lib/datadog/appsec/contrib/rails/request_middleware.rb +1 -1
- data/lib/datadog/appsec/contrib/sinatra/configuration/settings.rb +3 -3
- data/lib/datadog/appsec/contrib/sinatra/ext.rb +2 -1
- data/lib/datadog/appsec/contrib/sinatra/framework.rb +1 -1
- data/lib/datadog/appsec/contrib/sinatra/gateway/watcher.rb +21 -19
- data/lib/datadog/appsec/contrib/sinatra/integration.rb +4 -4
- data/lib/datadog/appsec/contrib/sinatra/patcher.rb +22 -15
- data/lib/datadog/appsec/contrib/sinatra/reactive/routed.rb +12 -12
- data/lib/datadog/appsec/contrib/sinatra/request_middleware.rb +1 -1
- data/lib/datadog/appsec/event.rb +10 -14
- data/lib/datadog/appsec/extensions.rb +43 -23
- data/lib/datadog/appsec/instrumentation/gateway.rb +17 -3
- data/lib/datadog/appsec/processor.rb +51 -21
- data/lib/datadog/appsec/rate_limiter.rb +1 -1
- data/lib/datadog/appsec/reactive/address_hash.rb +1 -1
- data/lib/datadog/appsec/reactive/engine.rb +3 -3
- data/lib/datadog/appsec/reactive/operation.rb +5 -5
- data/lib/datadog/appsec/reactive/subscriber.rb +1 -1
- data/lib/datadog/appsec/response.rb +63 -0
- data/lib/datadog/appsec/utils/http/media_range.rb +201 -0
- data/lib/datadog/appsec/utils/http/media_type.rb +87 -0
- data/lib/datadog/appsec/utils/http.rb +9 -0
- data/lib/datadog/appsec/utils.rb +7 -0
- data/lib/datadog/appsec.rb +6 -6
- data/lib/datadog/ci/configuration/components.rb +1 -1
- data/lib/datadog/ci/configuration/settings.rb +1 -1
- data/lib/datadog/ci/contrib/cucumber/configuration/settings.rb +2 -2
- data/lib/datadog/ci/contrib/cucumber/formatter.rb +5 -5
- data/lib/datadog/ci/contrib/cucumber/instrumentation.rb +1 -1
- data/lib/datadog/ci/contrib/cucumber/integration.rb +4 -4
- data/lib/datadog/ci/contrib/cucumber/patcher.rb +2 -2
- data/lib/datadog/ci/contrib/rspec/configuration/settings.rb +2 -2
- data/lib/datadog/ci/contrib/rspec/example.rb +5 -5
- data/lib/datadog/ci/contrib/rspec/integration.rb +4 -4
- data/lib/datadog/ci/contrib/rspec/patcher.rb +2 -2
- data/lib/datadog/ci/ext/environment.rb +78 -20
- data/lib/datadog/ci/extensions.rb +4 -4
- data/lib/datadog/ci/flush.rb +2 -2
- data/lib/datadog/ci/test.rb +3 -3
- data/lib/datadog/ci.rb +6 -6
- data/lib/datadog/core/buffer/cruby.rb +1 -1
- data/lib/datadog/core/buffer/thread_safe.rb +1 -1
- data/lib/datadog/core/configuration/agent_settings_resolver.rb +8 -11
- data/lib/datadog/core/configuration/base.rb +14 -2
- data/lib/datadog/core/configuration/components.rb +103 -52
- data/lib/datadog/core/configuration/ext.rb +26 -0
- data/lib/datadog/core/configuration/option_definition.rb +12 -3
- data/lib/datadog/core/configuration/option_definition_set.rb +1 -1
- data/lib/datadog/core/configuration/options.rb +3 -3
- data/lib/datadog/core/configuration/settings.rb +78 -250
- data/lib/datadog/core/configuration.rb +9 -6
- data/lib/datadog/core/diagnostics/environment_logger.rb +10 -5
- data/lib/datadog/core/diagnostics/health.rb +5 -23
- data/lib/datadog/core/environment/cgroup.rb +1 -1
- data/lib/datadog/core/environment/container.rb +1 -1
- data/lib/datadog/core/environment/ext.rb +1 -1
- data/lib/datadog/core/environment/identity.rb +2 -2
- data/lib/datadog/core/environment/platform.rb +40 -0
- data/lib/datadog/core/environment/socket.rb +1 -1
- data/lib/datadog/core/environment/variable_helpers.rb +58 -10
- data/lib/datadog/core/error.rb +1 -1
- data/lib/datadog/core/extensions.rb +1 -1
- data/lib/datadog/core/header_collection.rb +41 -0
- data/lib/datadog/core/metrics/client.rb +10 -9
- data/lib/datadog/core/metrics/ext.rb +0 -2
- data/lib/datadog/core/metrics/options.rb +3 -3
- data/lib/datadog/core/runtime/ext.rb +1 -1
- data/lib/datadog/core/runtime/metrics.rb +6 -6
- data/lib/datadog/core/telemetry/client.rb +79 -0
- data/lib/datadog/core/telemetry/collector.rb +233 -0
- data/lib/datadog/core/telemetry/emitter.rb +48 -0
- data/lib/datadog/core/telemetry/event.rb +71 -0
- data/lib/datadog/core/telemetry/ext.rb +11 -0
- data/lib/datadog/core/telemetry/heartbeat.rb +37 -0
- data/lib/datadog/core/telemetry/http/adapters/net.rb +113 -0
- data/lib/datadog/core/telemetry/http/env.rb +20 -0
- data/lib/datadog/core/telemetry/http/ext.rb +20 -0
- data/lib/datadog/core/telemetry/http/response.rb +68 -0
- data/lib/datadog/core/telemetry/http/transport.rb +53 -0
- data/lib/datadog/core/telemetry/v1/app_event.rb +52 -0
- data/lib/datadog/core/telemetry/v1/application.rb +86 -0
- data/lib/datadog/core/telemetry/v1/configuration.rb +25 -0
- data/lib/datadog/core/telemetry/v1/dependency.rb +36 -0
- data/lib/datadog/core/telemetry/v1/host.rb +51 -0
- data/lib/datadog/core/telemetry/v1/integration.rb +58 -0
- data/lib/datadog/core/telemetry/v1/product.rb +28 -0
- data/lib/datadog/core/telemetry/v1/telemetry_request.rb +100 -0
- data/lib/datadog/core/utils/compression.rb +5 -1
- data/lib/datadog/core/utils/object_set.rb +1 -1
- data/lib/datadog/core/utils/sequence.rb +5 -0
- data/lib/datadog/core/utils/string_table.rb +1 -1
- data/lib/datadog/core/utils/time.rb +3 -3
- data/lib/datadog/core/utils.rb +1 -22
- data/lib/datadog/core/vendor/multipart-post/multipart/post/multipartable.rb +2 -2
- data/lib/datadog/core/vendor/multipart-post/net/http/post/multipart.rb +3 -3
- data/lib/datadog/core/workers/async.rb +1 -3
- data/lib/datadog/core/workers/polling.rb +2 -2
- data/lib/datadog/core/workers/runtime_metrics.rb +4 -4
- data/lib/datadog/core.rb +22 -56
- data/lib/datadog/kit/appsec/events.rb +75 -0
- data/lib/datadog/kit/enable_core_dumps.rb +1 -0
- data/lib/datadog/kit/identity.rb +8 -7
- data/lib/datadog/kit.rb +1 -1
- data/lib/datadog/opentelemetry/api/context.rb +187 -0
- data/lib/datadog/opentelemetry/api/trace/span.rb +15 -0
- data/lib/datadog/opentelemetry/sdk/configurator.rb +38 -0
- data/lib/datadog/opentelemetry/sdk/id_generator.rb +27 -0
- data/lib/datadog/opentelemetry/sdk/propagator.rb +91 -0
- data/lib/datadog/opentelemetry/sdk/span_processor.rb +92 -0
- data/lib/datadog/opentelemetry.rb +48 -0
- data/lib/datadog/opentracer/distributed_headers.rb +7 -9
- data/lib/datadog/opentracer/rack_propagator.rb +10 -9
- data/lib/datadog/opentracer/span.rb +1 -1
- data/lib/datadog/opentracer/text_map_propagator.rb +13 -12
- data/lib/datadog/opentracer/thread_local_scope_manager.rb +26 -3
- data/lib/datadog/opentracer/tracer.rb +23 -21
- data/lib/datadog/opentracer.rb +16 -16
- data/lib/datadog/profiling/buffer.rb +3 -3
- data/lib/datadog/profiling/collectors/code_provenance.rb +1 -0
- data/lib/datadog/profiling/collectors/cpu_and_wall_time.rb +43 -0
- data/lib/datadog/profiling/collectors/cpu_and_wall_time_worker.rb +91 -0
- data/lib/datadog/profiling/collectors/dynamic_sampling_rate.rb +14 -0
- data/lib/datadog/profiling/collectors/idle_sampling_helper.rb +68 -0
- data/lib/datadog/profiling/collectors/old_stack.rb +15 -8
- data/lib/datadog/profiling/collectors/stack.rb +3 -6
- data/lib/datadog/profiling/encoding/profile.rb +8 -12
- data/lib/datadog/profiling/events/stack.rb +1 -1
- data/lib/datadog/profiling/exporter.rb +69 -9
- data/lib/datadog/profiling/ext/forking.rb +41 -42
- data/lib/datadog/profiling/ext.rb +3 -15
- data/lib/datadog/profiling/flush.rb +25 -56
- data/lib/datadog/profiling/http_transport.rb +132 -0
- data/lib/datadog/profiling/old_recorder.rb +109 -0
- data/lib/datadog/profiling/pprof/builder.rb +4 -4
- data/lib/datadog/profiling/pprof/converter.rb +1 -1
- data/lib/datadog/profiling/pprof/message_set.rb +1 -1
- data/lib/datadog/profiling/pprof/stack_sample.rb +4 -4
- data/lib/datadog/profiling/pprof/string_table.rb +1 -1
- data/lib/datadog/profiling/pprof/template.rb +5 -5
- data/lib/datadog/profiling/preload.rb +1 -1
- data/lib/datadog/profiling/profiler.rb +7 -0
- data/lib/datadog/profiling/scheduler.rb +28 -49
- data/lib/datadog/profiling/stack_recorder.rb +50 -4
- data/lib/datadog/profiling/tag_builder.rb +6 -1
- data/lib/datadog/profiling/tasks/setup.rb +2 -9
- data/lib/datadog/profiling/trace_identifiers/ddtrace.rb +2 -2
- data/lib/datadog/profiling/trace_identifiers/helper.rb +1 -1
- data/lib/datadog/profiling.rb +24 -21
- data/lib/datadog/tracing/analytics.rb +1 -1
- data/lib/datadog/tracing/buffer.rb +5 -5
- data/lib/datadog/tracing/client_ip.rb +164 -0
- data/lib/datadog/tracing/configuration/ext.rb +47 -4
- data/lib/datadog/tracing/configuration/settings.rb +433 -0
- data/lib/datadog/tracing/context.rb +1 -1
- data/lib/datadog/tracing/context_provider.rb +18 -2
- data/lib/datadog/tracing/contrib/action_cable/configuration/settings.rb +2 -2
- data/lib/datadog/tracing/contrib/action_cable/event.rb +4 -5
- data/lib/datadog/tracing/contrib/action_cable/events/broadcast.rb +4 -4
- data/lib/datadog/tracing/contrib/action_cable/events/perform_action.rb +3 -3
- data/lib/datadog/tracing/contrib/action_cable/events/transmit.rb +4 -4
- data/lib/datadog/tracing/contrib/action_cable/events.rb +4 -4
- data/lib/datadog/tracing/contrib/action_cable/instrumentation.rb +3 -4
- data/lib/datadog/tracing/contrib/action_cable/integration.rb +4 -4
- data/lib/datadog/tracing/contrib/action_cable/patcher.rb +4 -4
- data/lib/datadog/tracing/contrib/action_mailer/configuration/settings.rb +2 -2
- data/lib/datadog/tracing/contrib/action_mailer/event.rb +3 -3
- data/lib/datadog/tracing/contrib/action_mailer/events/deliver.rb +3 -3
- data/lib/datadog/tracing/contrib/action_mailer/events/process.rb +3 -3
- data/lib/datadog/tracing/contrib/action_mailer/events.rb +2 -2
- data/lib/datadog/tracing/contrib/action_mailer/integration.rb +4 -4
- data/lib/datadog/tracing/contrib/action_mailer/patcher.rb +3 -3
- data/lib/datadog/tracing/contrib/action_pack/action_controller/instrumentation.rb +10 -6
- data/lib/datadog/tracing/contrib/action_pack/action_controller/patcher.rb +2 -2
- data/lib/datadog/tracing/contrib/action_pack/configuration/settings.rb +2 -2
- data/lib/datadog/tracing/contrib/action_pack/integration.rb +4 -4
- data/lib/datadog/tracing/contrib/action_pack/patcher.rb +2 -2
- data/lib/datadog/tracing/contrib/action_pack/utils.rb +1 -1
- data/lib/datadog/tracing/contrib/action_view/configuration/settings.rb +2 -2
- data/lib/datadog/tracing/contrib/action_view/event.rb +1 -1
- data/lib/datadog/tracing/contrib/action_view/events/render_partial.rb +5 -5
- data/lib/datadog/tracing/contrib/action_view/events/render_template.rb +5 -5
- data/lib/datadog/tracing/contrib/action_view/events.rb +2 -2
- data/lib/datadog/tracing/contrib/action_view/instrumentation/partial_renderer.rb +2 -2
- data/lib/datadog/tracing/contrib/action_view/instrumentation/template_renderer.rb +2 -2
- data/lib/datadog/tracing/contrib/action_view/integration.rb +4 -4
- data/lib/datadog/tracing/contrib/action_view/patcher.rb +7 -7
- data/lib/datadog/tracing/contrib/action_view/utils.rb +1 -1
- data/lib/datadog/tracing/contrib/active_job/configuration/settings.rb +3 -3
- data/lib/datadog/tracing/contrib/active_job/event.rb +3 -3
- data/lib/datadog/tracing/contrib/active_job/events/discard.rb +4 -4
- data/lib/datadog/tracing/contrib/active_job/events/enqueue.rb +4 -4
- data/lib/datadog/tracing/contrib/active_job/events/enqueue_at.rb +4 -4
- data/lib/datadog/tracing/contrib/active_job/events/enqueue_retry.rb +4 -4
- data/lib/datadog/tracing/contrib/active_job/events/perform.rb +4 -4
- data/lib/datadog/tracing/contrib/active_job/events/retry_stopped.rb +4 -4
- data/lib/datadog/tracing/contrib/active_job/events.rb +6 -6
- data/lib/datadog/tracing/contrib/active_job/integration.rb +4 -4
- data/lib/datadog/tracing/contrib/active_job/log_injection.rb +0 -2
- data/lib/datadog/tracing/contrib/active_job/patcher.rb +4 -4
- data/lib/datadog/tracing/contrib/active_model_serializers/configuration/settings.rb +2 -2
- data/lib/datadog/tracing/contrib/active_model_serializers/event.rb +4 -5
- data/lib/datadog/tracing/contrib/active_model_serializers/events/render.rb +3 -3
- data/lib/datadog/tracing/contrib/active_model_serializers/events/serialize.rb +2 -2
- data/lib/datadog/tracing/contrib/active_model_serializers/events.rb +2 -2
- data/lib/datadog/tracing/contrib/active_model_serializers/integration.rb +3 -3
- data/lib/datadog/tracing/contrib/active_model_serializers/patcher.rb +3 -4
- data/lib/datadog/tracing/contrib/active_record/configuration/resolver.rb +2 -2
- data/lib/datadog/tracing/contrib/active_record/configuration/settings.rb +3 -3
- data/lib/datadog/tracing/contrib/active_record/event.rb +1 -1
- data/lib/datadog/tracing/contrib/active_record/events/instantiation.rb +4 -4
- data/lib/datadog/tracing/contrib/active_record/events/sql.rb +6 -6
- data/lib/datadog/tracing/contrib/active_record/events.rb +2 -2
- data/lib/datadog/tracing/contrib/active_record/integration.rb +6 -6
- data/lib/datadog/tracing/contrib/active_record/patcher.rb +2 -2
- data/lib/datadog/tracing/contrib/active_record/utils.rb +2 -2
- data/lib/datadog/tracing/contrib/active_support/cache/instrumentation.rb +19 -9
- data/lib/datadog/tracing/contrib/active_support/cache/patcher.rb +2 -2
- data/lib/datadog/tracing/contrib/active_support/cache/redis.rb +1 -1
- data/lib/datadog/tracing/contrib/active_support/configuration/settings.rb +2 -2
- data/lib/datadog/tracing/contrib/active_support/integration.rb +5 -5
- data/lib/datadog/tracing/contrib/active_support/notifications/event.rb +1 -1
- data/lib/datadog/tracing/contrib/active_support/notifications/subscriber.rb +1 -1
- data/lib/datadog/tracing/contrib/active_support/patcher.rb +2 -2
- data/lib/datadog/tracing/contrib/analytics.rb +1 -1
- data/lib/datadog/tracing/contrib/auto_instrument.rb +4 -4
- data/lib/datadog/tracing/contrib/aws/configuration/settings.rb +6 -3
- data/lib/datadog/tracing/contrib/aws/ext.rb +1 -0
- data/lib/datadog/tracing/contrib/aws/instrumentation.rb +5 -4
- data/lib/datadog/tracing/contrib/aws/integration.rb +3 -3
- data/lib/datadog/tracing/contrib/aws/patcher.rb +5 -5
- data/lib/datadog/tracing/contrib/aws/services.rb +0 -2
- data/lib/datadog/tracing/contrib/concurrent_ruby/configuration/settings.rb +2 -2
- data/lib/datadog/tracing/contrib/concurrent_ruby/future_patch.rb +1 -1
- data/lib/datadog/tracing/contrib/concurrent_ruby/integration.rb +3 -3
- data/lib/datadog/tracing/contrib/concurrent_ruby/patcher.rb +2 -2
- data/lib/datadog/tracing/contrib/configurable.rb +2 -2
- data/lib/datadog/tracing/contrib/configuration/resolvers/pattern_resolver.rb +1 -1
- data/lib/datadog/tracing/contrib/configuration/settings.rb +2 -2
- data/lib/datadog/tracing/contrib/dalli/configuration/settings.rb +6 -3
- data/lib/datadog/tracing/contrib/dalli/ext.rb +2 -0
- data/lib/datadog/tracing/contrib/dalli/instrumentation.rb +8 -5
- data/lib/datadog/tracing/contrib/dalli/integration.rb +3 -3
- data/lib/datadog/tracing/contrib/dalli/patcher.rb +3 -3
- data/lib/datadog/tracing/contrib/dalli/quantize.rb +1 -1
- data/lib/datadog/tracing/contrib/delayed_job/configuration/settings.rb +3 -3
- data/lib/datadog/tracing/contrib/delayed_job/ext.rb +2 -0
- data/lib/datadog/tracing/contrib/delayed_job/integration.rb +3 -3
- data/lib/datadog/tracing/contrib/delayed_job/patcher.rb +8 -2
- data/lib/datadog/tracing/contrib/delayed_job/plugin.rb +7 -4
- data/lib/datadog/tracing/contrib/delayed_job/server_internal_tracer/worker.rb +32 -0
- data/lib/datadog/tracing/contrib/elasticsearch/configuration/settings.rb +7 -3
- data/lib/datadog/tracing/contrib/elasticsearch/ext.rb +3 -0
- data/lib/datadog/tracing/contrib/elasticsearch/integration.rb +3 -3
- data/lib/datadog/tracing/contrib/elasticsearch/patcher.rb +9 -7
- data/lib/datadog/tracing/contrib/elasticsearch/quantize.rb +1 -1
- data/lib/datadog/tracing/contrib/ethon/configuration/settings.rb +8 -3
- data/lib/datadog/tracing/contrib/ethon/easy_patch.rb +6 -7
- data/lib/datadog/tracing/contrib/ethon/ext.rb +1 -0
- data/lib/datadog/tracing/contrib/ethon/integration.rb +4 -4
- data/lib/datadog/tracing/contrib/ethon/multi_patch.rb +5 -4
- data/lib/datadog/tracing/contrib/ethon/patcher.rb +3 -3
- data/lib/datadog/tracing/contrib/excon/configuration/settings.rb +7 -3
- data/lib/datadog/tracing/contrib/excon/ext.rb +1 -0
- data/lib/datadog/tracing/contrib/excon/integration.rb +4 -4
- data/lib/datadog/tracing/contrib/excon/middleware.rb +8 -7
- data/lib/datadog/tracing/contrib/excon/patcher.rb +2 -2
- data/lib/datadog/tracing/contrib/ext.rb +25 -0
- data/lib/datadog/tracing/contrib/extensions.rb +5 -3
- data/lib/datadog/tracing/contrib/faraday/configuration/settings.rb +7 -3
- data/lib/datadog/tracing/contrib/faraday/ext.rb +1 -0
- data/lib/datadog/tracing/contrib/faraday/integration.rb +4 -4
- data/lib/datadog/tracing/contrib/faraday/middleware.rb +8 -8
- data/lib/datadog/tracing/contrib/faraday/patcher.rb +5 -5
- data/lib/datadog/tracing/contrib/grape/configuration/settings.rb +3 -3
- data/lib/datadog/tracing/contrib/grape/endpoint.rb +4 -7
- data/lib/datadog/tracing/contrib/grape/integration.rb +3 -3
- data/lib/datadog/tracing/contrib/grape/patcher.rb +4 -4
- data/lib/datadog/tracing/contrib/graphql/configuration/settings.rb +3 -3
- data/lib/datadog/tracing/contrib/graphql/integration.rb +3 -3
- data/lib/datadog/tracing/contrib/graphql/patcher.rb +2 -3
- data/lib/datadog/tracing/contrib/grpc/configuration/settings.rb +10 -4
- data/lib/datadog/tracing/contrib/grpc/datadog_interceptor/client.rb +20 -5
- data/lib/datadog/tracing/contrib/grpc/datadog_interceptor/server.rb +17 -17
- data/lib/datadog/tracing/contrib/grpc/datadog_interceptor.rb +7 -4
- data/lib/datadog/tracing/contrib/grpc/distributed/fetcher.rb +27 -0
- data/lib/datadog/tracing/contrib/grpc/distributed/propagation.rb +43 -0
- data/lib/datadog/tracing/contrib/grpc/ext.rb +4 -0
- data/lib/datadog/tracing/contrib/grpc/integration.rb +3 -3
- data/lib/datadog/tracing/contrib/grpc/patcher.rb +3 -5
- data/lib/datadog/tracing/contrib/hanami/action_tracer.rb +47 -0
- data/lib/datadog/tracing/contrib/hanami/configuration/settings.rb +22 -0
- data/lib/datadog/tracing/contrib/hanami/ext.rb +24 -0
- data/lib/datadog/tracing/contrib/hanami/integration.rb +44 -0
- data/lib/datadog/tracing/contrib/hanami/patcher.rb +33 -0
- data/lib/datadog/tracing/contrib/hanami/plugin.rb +23 -0
- data/lib/datadog/tracing/contrib/hanami/renderer_policy_tracing.rb +41 -0
- data/lib/datadog/tracing/contrib/hanami/router_tracing.rb +44 -0
- data/lib/datadog/tracing/contrib/http/circuit_breaker.rb +1 -2
- data/lib/datadog/tracing/contrib/http/configuration/settings.rb +13 -3
- data/lib/datadog/tracing/contrib/http/distributed/fetcher.rb +39 -0
- data/lib/datadog/tracing/contrib/http/distributed/propagation.rb +38 -0
- data/lib/datadog/tracing/contrib/http/ext.rb +2 -0
- data/lib/datadog/tracing/contrib/http/instrumentation.rb +8 -10
- data/lib/datadog/tracing/contrib/http/integration.rb +6 -6
- data/lib/datadog/tracing/contrib/http/patcher.rb +3 -3
- data/lib/datadog/tracing/contrib/httpclient/configuration/settings.rb +13 -3
- data/lib/datadog/tracing/contrib/httpclient/ext.rb +2 -0
- data/lib/datadog/tracing/contrib/httpclient/instrumentation.rb +9 -9
- data/lib/datadog/tracing/contrib/httpclient/integration.rb +4 -4
- data/lib/datadog/tracing/contrib/httpclient/patcher.rb +3 -3
- data/lib/datadog/tracing/contrib/httprb/configuration/settings.rb +13 -3
- data/lib/datadog/tracing/contrib/httprb/ext.rb +2 -0
- data/lib/datadog/tracing/contrib/httprb/instrumentation.rb +9 -9
- data/lib/datadog/tracing/contrib/httprb/integration.rb +4 -4
- data/lib/datadog/tracing/contrib/httprb/patcher.rb +3 -3
- data/lib/datadog/tracing/contrib/integration.rb +3 -3
- data/lib/datadog/tracing/contrib/kafka/configuration/settings.rb +2 -2
- data/lib/datadog/tracing/contrib/kafka/consumer_event.rb +1 -0
- data/lib/datadog/tracing/contrib/kafka/event.rb +3 -3
- data/lib/datadog/tracing/contrib/kafka/events/connection/request.rb +2 -2
- data/lib/datadog/tracing/contrib/kafka/events/consumer/process_batch.rb +3 -3
- data/lib/datadog/tracing/contrib/kafka/events/consumer/process_message.rb +3 -3
- data/lib/datadog/tracing/contrib/kafka/events/consumer_group/heartbeat.rb +4 -4
- data/lib/datadog/tracing/contrib/kafka/events/consumer_group/join_group.rb +4 -4
- data/lib/datadog/tracing/contrib/kafka/events/consumer_group/leave_group.rb +4 -4
- data/lib/datadog/tracing/contrib/kafka/events/consumer_group/sync_group.rb +4 -4
- data/lib/datadog/tracing/contrib/kafka/events/produce_operation/send_messages.rb +3 -2
- data/lib/datadog/tracing/contrib/kafka/events/producer/deliver_messages.rb +3 -2
- data/lib/datadog/tracing/contrib/kafka/events.rb +9 -9
- data/lib/datadog/tracing/contrib/kafka/integration.rb +3 -3
- data/lib/datadog/tracing/contrib/kafka/patcher.rb +3 -3
- data/lib/datadog/tracing/contrib/lograge/configuration/settings.rb +2 -2
- data/lib/datadog/tracing/contrib/lograge/instrumentation.rb +1 -2
- data/lib/datadog/tracing/contrib/lograge/integration.rb +3 -3
- data/lib/datadog/tracing/contrib/lograge/patcher.rb +2 -2
- data/lib/datadog/tracing/contrib/mongodb/configuration/settings.rb +7 -3
- data/lib/datadog/tracing/contrib/mongodb/ext.rb +8 -0
- data/lib/datadog/tracing/contrib/mongodb/instrumentation.rb +3 -3
- data/lib/datadog/tracing/contrib/mongodb/integration.rb +4 -4
- data/lib/datadog/tracing/contrib/mongodb/parsers.rb +1 -1
- data/lib/datadog/tracing/contrib/mongodb/patcher.rb +3 -3
- data/lib/datadog/tracing/contrib/mongodb/subscribers.rb +10 -4
- data/lib/datadog/tracing/contrib/mysql2/configuration/settings.rb +18 -3
- data/lib/datadog/tracing/contrib/mysql2/ext.rb +2 -0
- data/lib/datadog/tracing/contrib/mysql2/instrumentation.rb +20 -5
- data/lib/datadog/tracing/contrib/mysql2/integration.rb +3 -3
- data/lib/datadog/tracing/contrib/mysql2/patcher.rb +2 -2
- data/lib/datadog/tracing/contrib/patcher.rb +16 -4
- data/lib/datadog/tracing/contrib/pg/configuration/settings.rb +50 -0
- data/lib/datadog/tracing/contrib/pg/ext.rb +33 -0
- data/lib/datadog/tracing/contrib/pg/instrumentation.rb +168 -0
- data/lib/datadog/tracing/contrib/pg/integration.rb +43 -0
- data/lib/datadog/tracing/contrib/pg/patcher.rb +31 -0
- data/lib/datadog/tracing/contrib/presto/configuration/settings.rb +6 -3
- data/lib/datadog/tracing/contrib/presto/ext.rb +1 -0
- data/lib/datadog/tracing/contrib/presto/instrumentation.rb +2 -3
- data/lib/datadog/tracing/contrib/presto/integration.rb +3 -3
- data/lib/datadog/tracing/contrib/presto/patcher.rb +4 -4
- data/lib/datadog/tracing/contrib/propagation/sql_comment/comment.rb +43 -0
- data/lib/datadog/tracing/contrib/propagation/sql_comment/ext.rb +33 -0
- data/lib/datadog/tracing/contrib/propagation/sql_comment/mode.rb +28 -0
- data/lib/datadog/tracing/contrib/propagation/sql_comment.rb +47 -0
- data/lib/datadog/tracing/contrib/qless/configuration/settings.rb +2 -2
- data/lib/datadog/tracing/contrib/qless/integration.rb +3 -3
- data/lib/datadog/tracing/contrib/qless/patcher.rb +1 -2
- data/lib/datadog/tracing/contrib/qless/qless_job.rb +2 -3
- data/lib/datadog/tracing/contrib/qless/tracer_cleaner.rb +0 -2
- data/lib/datadog/tracing/contrib/que/configuration/settings.rb +3 -3
- data/lib/datadog/tracing/contrib/que/integration.rb +4 -4
- data/lib/datadog/tracing/contrib/que/patcher.rb +1 -1
- data/lib/datadog/tracing/contrib/que/tracer.rb +3 -1
- data/lib/datadog/tracing/contrib/racecar/configuration/settings.rb +2 -2
- data/lib/datadog/tracing/contrib/racecar/event.rb +4 -5
- data/lib/datadog/tracing/contrib/racecar/events/batch.rb +6 -3
- data/lib/datadog/tracing/contrib/racecar/events/consume.rb +2 -2
- data/lib/datadog/tracing/contrib/racecar/events/message.rb +6 -3
- data/lib/datadog/tracing/contrib/racecar/events.rb +3 -3
- data/lib/datadog/tracing/contrib/racecar/integration.rb +3 -3
- data/lib/datadog/tracing/contrib/racecar/patcher.rb +3 -3
- data/lib/datadog/tracing/contrib/rack/configuration/settings.rb +2 -2
- data/lib/datadog/tracing/contrib/rack/header_collection.rb +35 -0
- data/lib/datadog/tracing/contrib/rack/integration.rb +4 -4
- data/lib/datadog/tracing/contrib/rack/middlewares.rb +129 -61
- data/lib/datadog/tracing/contrib/rack/patcher.rb +12 -2
- data/lib/datadog/tracing/contrib/rails/auto_instrument_railtie.rb +1 -1
- data/lib/datadog/tracing/contrib/rails/configuration/settings.rb +4 -1
- data/lib/datadog/tracing/contrib/rails/framework.rb +18 -22
- data/lib/datadog/tracing/contrib/rails/integration.rb +4 -4
- data/lib/datadog/tracing/contrib/rails/log_injection.rb +0 -2
- data/lib/datadog/tracing/contrib/rails/middlewares.rb +1 -2
- data/lib/datadog/tracing/contrib/rails/patcher.rb +7 -8
- data/lib/datadog/tracing/contrib/rails/railtie.rb +3 -3
- data/lib/datadog/tracing/contrib/rails/utils.rb +1 -1
- data/lib/datadog/tracing/contrib/rake/configuration/settings.rb +17 -2
- data/lib/datadog/tracing/contrib/rake/instrumentation.rb +12 -7
- data/lib/datadog/tracing/contrib/rake/integration.rb +3 -3
- data/lib/datadog/tracing/contrib/rake/patcher.rb +3 -4
- data/lib/datadog/tracing/contrib/redis/configuration/resolver.rb +1 -1
- data/lib/datadog/tracing/contrib/redis/configuration/settings.rb +6 -3
- data/lib/datadog/tracing/contrib/redis/ext.rb +3 -0
- data/lib/datadog/tracing/contrib/redis/instrumentation.rb +36 -26
- data/lib/datadog/tracing/contrib/redis/integration.rb +37 -4
- data/lib/datadog/tracing/contrib/redis/patcher.rb +57 -13
- data/lib/datadog/tracing/contrib/redis/quantize.rb +12 -9
- data/lib/datadog/tracing/contrib/redis/tags.rb +12 -10
- data/lib/datadog/tracing/contrib/redis/trace_middleware.rb +72 -0
- data/lib/datadog/tracing/contrib/resque/configuration/settings.rb +3 -3
- data/lib/datadog/tracing/contrib/resque/integration.rb +3 -3
- data/lib/datadog/tracing/contrib/resque/patcher.rb +2 -2
- data/lib/datadog/tracing/contrib/resque/resque_job.rb +5 -4
- data/lib/datadog/tracing/contrib/rest_client/configuration/settings.rb +9 -3
- data/lib/datadog/tracing/contrib/rest_client/ext.rb +1 -0
- data/lib/datadog/tracing/contrib/rest_client/integration.rb +3 -3
- data/lib/datadog/tracing/contrib/rest_client/patcher.rb +2 -2
- data/lib/datadog/tracing/contrib/rest_client/request_patch.rb +7 -6
- data/lib/datadog/tracing/contrib/semantic_logger/configuration/settings.rb +2 -2
- data/lib/datadog/tracing/contrib/semantic_logger/instrumentation.rb +1 -2
- data/lib/datadog/tracing/contrib/semantic_logger/integration.rb +3 -3
- data/lib/datadog/tracing/contrib/semantic_logger/patcher.rb +2 -2
- data/lib/datadog/tracing/contrib/sequel/configuration/settings.rb +2 -2
- data/lib/datadog/tracing/contrib/sequel/database.rb +4 -5
- data/lib/datadog/tracing/contrib/sequel/dataset.rb +4 -5
- data/lib/datadog/tracing/contrib/sequel/integration.rb +3 -3
- data/lib/datadog/tracing/contrib/sequel/patcher.rb +3 -3
- data/lib/datadog/tracing/contrib/sequel/utils.rb +2 -2
- data/lib/datadog/tracing/contrib/shoryuken/configuration/settings.rb +3 -3
- data/lib/datadog/tracing/contrib/shoryuken/integration.rb +4 -4
- data/lib/datadog/tracing/contrib/shoryuken/patcher.rb +1 -1
- data/lib/datadog/tracing/contrib/shoryuken/tracer.rb +3 -1
- data/lib/datadog/tracing/contrib/sidekiq/client_tracer.rb +9 -5
- data/lib/datadog/tracing/contrib/sidekiq/configuration/settings.rb +3 -3
- data/lib/datadog/tracing/contrib/sidekiq/ext.rb +6 -0
- data/lib/datadog/tracing/contrib/sidekiq/integration.rb +3 -3
- data/lib/datadog/tracing/contrib/sidekiq/patcher.rb +14 -7
- data/lib/datadog/tracing/contrib/sidekiq/server_internal_tracer/heartbeat.rb +19 -1
- data/lib/datadog/tracing/contrib/sidekiq/server_internal_tracer/{scheduled_push.rb → redis_info.rb} +5 -6
- data/lib/datadog/tracing/contrib/sidekiq/server_internal_tracer/scheduled_poller.rb +53 -0
- data/lib/datadog/tracing/contrib/sidekiq/server_tracer.rb +10 -6
- data/lib/datadog/tracing/contrib/sidekiq/tracing.rb +2 -2
- data/lib/datadog/tracing/contrib/sinatra/configuration/settings.rb +2 -2
- data/lib/datadog/tracing/contrib/sinatra/env.rb +14 -25
- data/lib/datadog/tracing/contrib/sinatra/ext.rb +7 -3
- data/lib/datadog/tracing/contrib/sinatra/framework.rb +0 -2
- data/lib/datadog/tracing/contrib/sinatra/headers.rb +1 -1
- data/lib/datadog/tracing/contrib/sinatra/integration.rb +3 -3
- data/lib/datadog/tracing/contrib/sinatra/patcher.rb +7 -7
- data/lib/datadog/tracing/contrib/sinatra/tracer.rb +15 -88
- data/lib/datadog/tracing/contrib/sinatra/tracer_middleware.rb +20 -16
- data/lib/datadog/tracing/contrib/sneakers/configuration/settings.rb +2 -2
- data/lib/datadog/tracing/contrib/sneakers/integration.rb +4 -4
- data/lib/datadog/tracing/contrib/sneakers/patcher.rb +2 -2
- data/lib/datadog/tracing/contrib/sneakers/tracer.rb +4 -3
- data/lib/datadog/tracing/contrib/status_code_matcher.rb +2 -2
- data/lib/datadog/tracing/contrib/stripe/configuration/settings.rb +33 -0
- data/lib/datadog/tracing/contrib/stripe/ext.rb +26 -0
- data/lib/datadog/tracing/contrib/stripe/integration.rb +43 -0
- data/lib/datadog/tracing/contrib/stripe/patcher.rb +29 -0
- data/lib/datadog/tracing/contrib/stripe/request.rb +67 -0
- data/lib/datadog/tracing/contrib/sucker_punch/configuration/settings.rb +2 -2
- data/lib/datadog/tracing/contrib/sucker_punch/instrumentation.rb +3 -4
- data/lib/datadog/tracing/contrib/sucker_punch/integration.rb +3 -3
- data/lib/datadog/tracing/contrib/sucker_punch/patcher.rb +4 -5
- data/lib/datadog/tracing/contrib/utils/quantization/http.rb +92 -10
- data/lib/datadog/tracing/contrib.rb +50 -47
- data/lib/datadog/tracing/correlation.rb +1 -1
- data/lib/datadog/{core → tracing}/diagnostics/ext.rb +1 -6
- data/lib/datadog/tracing/diagnostics/health.rb +40 -0
- data/lib/datadog/tracing/distributed/b3_multi.rb +66 -0
- data/lib/datadog/tracing/distributed/b3_single.rb +66 -0
- data/lib/datadog/tracing/distributed/datadog.rb +153 -0
- data/lib/datadog/tracing/distributed/datadog_tags_codec.rb +85 -0
- data/lib/datadog/tracing/distributed/fetcher.rb +30 -0
- data/lib/datadog/tracing/distributed/headers/ext.rb +19 -15
- data/lib/datadog/tracing/distributed/helpers.rb +40 -4
- data/lib/datadog/tracing/distributed/none.rb +19 -0
- data/lib/datadog/tracing/distributed/propagation.rb +127 -0
- data/lib/datadog/tracing/distributed/trace_context.rb +378 -0
- data/lib/datadog/tracing/event.rb +1 -1
- data/lib/datadog/tracing/flush.rb +57 -35
- data/lib/datadog/tracing/metadata/analytics.rb +2 -2
- data/lib/datadog/tracing/metadata/errors.rb +2 -2
- data/lib/datadog/tracing/metadata/ext.rb +28 -1
- data/lib/datadog/tracing/metadata/tagging.rb +23 -2
- data/lib/datadog/tracing/metadata.rb +3 -3
- data/lib/datadog/tracing/pipeline/span_filter.rb +10 -6
- data/lib/datadog/tracing/pipeline.rb +3 -3
- data/lib/datadog/tracing/propagation/http.rb +3 -98
- data/lib/datadog/tracing/runtime/metrics.rb +1 -1
- data/lib/datadog/tracing/sampling/all_sampler.rb +1 -1
- data/lib/datadog/tracing/sampling/ext.rb +31 -0
- data/lib/datadog/tracing/sampling/priority_sampler.rb +62 -9
- data/lib/datadog/tracing/sampling/rate_by_key_sampler.rb +10 -11
- data/lib/datadog/tracing/sampling/rate_by_service_sampler.rb +32 -8
- data/lib/datadog/tracing/sampling/rate_limiter.rb +4 -1
- data/lib/datadog/tracing/sampling/rate_sampler.rb +27 -10
- data/lib/datadog/tracing/sampling/rule.rb +3 -3
- data/lib/datadog/tracing/sampling/rule_sampler.rb +8 -7
- data/lib/datadog/tracing/sampling/span/ext.rb +25 -0
- data/lib/datadog/tracing/sampling/span/matcher.rb +89 -0
- data/lib/datadog/tracing/sampling/span/rule.rb +82 -0
- data/lib/datadog/tracing/sampling/span/rule_parser.rb +104 -0
- data/lib/datadog/tracing/sampling/span/sampler.rb +75 -0
- data/lib/datadog/tracing/span.rb +24 -20
- data/lib/datadog/tracing/span_operation.rb +13 -13
- data/lib/datadog/tracing/sync_writer.rb +5 -5
- data/lib/datadog/tracing/trace_digest.rb +88 -2
- data/lib/datadog/tracing/trace_operation.rb +60 -15
- data/lib/datadog/tracing/trace_segment.rb +13 -8
- data/lib/datadog/tracing/tracer.rb +49 -21
- data/lib/datadog/tracing/utils.rb +50 -0
- data/lib/datadog/tracing/workers/trace_writer.rb +9 -9
- data/lib/datadog/tracing/workers.rb +3 -3
- data/lib/datadog/tracing/writer.rb +12 -5
- data/lib/datadog/tracing.rb +8 -8
- data/lib/ddtrace/auto_instrument.rb +9 -2
- data/lib/ddtrace/transport/ext.rb +7 -1
- data/lib/ddtrace/transport/http/adapters/net.rb +3 -2
- data/lib/ddtrace/transport/http/adapters/test.rb +1 -1
- data/lib/ddtrace/transport/http/adapters/unix_socket.rb +2 -2
- data/lib/ddtrace/transport/http/api/map.rb +1 -1
- data/lib/ddtrace/transport/http/api.rb +4 -4
- data/lib/ddtrace/transport/http/builder.rb +5 -5
- data/lib/ddtrace/transport/http/client.rb +2 -2
- data/lib/ddtrace/transport/http/response.rb +1 -1
- data/lib/ddtrace/transport/http/statistics.rb +1 -1
- data/lib/ddtrace/transport/http/traces.rb +5 -5
- data/lib/ddtrace/transport/http.rb +12 -9
- data/lib/ddtrace/transport/io/client.rb +2 -2
- data/lib/ddtrace/transport/io/response.rb +1 -1
- data/lib/ddtrace/transport/io/traces.rb +3 -3
- data/lib/ddtrace/transport/io.rb +3 -3
- data/lib/ddtrace/transport/statistics.rb +2 -2
- data/lib/ddtrace/transport/trace_formatter.rb +14 -10
- data/lib/ddtrace/transport/traces.rb +8 -6
- data/lib/ddtrace/version.rb +1 -1
- data/lib/ddtrace.rb +6 -6
- metadata +127 -48
- data/.editorconfig +0 -22
- data/.gitignore +0 -58
- data/CONTRIBUTING.md +0 -81
- data/ddtrace.gemspec +0 -68
- data/docs/0.x-trace.png +0 -0
- data/docs/1.0-trace.png +0 -0
- data/docs/AutoInstrumentation.md +0 -36
- data/docs/Deprecation.md +0 -8
- data/docs/DevelopmentGuide.md +0 -259
- data/docs/GettingStarted.md +0 -2688
- data/docs/ProfilingDevelopment.md +0 -110
- data/docs/PublicApi.md +0 -14
- data/docs/UpgradeGuide.md +0 -736
- data/ext/ddtrace_profiling_native_extension/libddprof_helpers.h +0 -13
- data/lib/datadog/profiling/recorder.rb +0 -117
- data/lib/datadog/profiling/transport/client.rb +0 -16
- data/lib/datadog/profiling/transport/http/api/endpoint.rb +0 -107
- data/lib/datadog/profiling/transport/http/api/instance.rb +0 -38
- data/lib/datadog/profiling/transport/http/api/spec.rb +0 -42
- data/lib/datadog/profiling/transport/http/api.rb +0 -45
- data/lib/datadog/profiling/transport/http/builder.rb +0 -30
- data/lib/datadog/profiling/transport/http/client.rb +0 -35
- data/lib/datadog/profiling/transport/http/response.rb +0 -23
- data/lib/datadog/profiling/transport/http.rb +0 -112
- data/lib/datadog/profiling/transport/io/client.rb +0 -29
- data/lib/datadog/profiling/transport/io/response.rb +0 -18
- data/lib/datadog/profiling/transport/io.rb +0 -32
- data/lib/datadog/profiling/transport/parcel.rb +0 -19
- data/lib/datadog/profiling/transport/request.rb +0 -17
- data/lib/datadog/profiling/transport/response.rb +0 -10
- data/lib/datadog/tracing/distributed/headers/b3.rb +0 -55
- data/lib/datadog/tracing/distributed/headers/b3_single.rb +0 -67
- data/lib/datadog/tracing/distributed/headers/datadog.rb +0 -52
- data/lib/datadog/tracing/distributed/parser.rb +0 -70
- data/lib/datadog/tracing/propagation/grpc.rb +0 -88
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
# typed: true
|
|
2
|
+
|
|
3
|
+
module Datadog
|
|
4
|
+
module Core
|
|
5
|
+
module Configuration
|
|
6
|
+
# Constants for configuration settings
|
|
7
|
+
# e.g. Env vars, default values, enums, etc...
|
|
8
|
+
module Ext
|
|
9
|
+
# @public_api
|
|
10
|
+
module Diagnostics
|
|
11
|
+
ENV_DEBUG_ENABLED = 'DD_TRACE_DEBUG'.freeze
|
|
12
|
+
ENV_HEALTH_METRICS_ENABLED = 'DD_HEALTH_METRICS_ENABLED'.freeze
|
|
13
|
+
ENV_STARTUP_LOGS_ENABLED = 'DD_TRACE_STARTUP_LOGS'.freeze
|
|
14
|
+
end
|
|
15
|
+
|
|
16
|
+
module Metrics
|
|
17
|
+
ENV_DEFAULT_PORT = 'DD_METRIC_AGENT_PORT'.freeze
|
|
18
|
+
end
|
|
19
|
+
|
|
20
|
+
module Transport
|
|
21
|
+
ENV_DEFAULT_HOST = 'DD_AGENT_HOST'.freeze
|
|
22
|
+
end
|
|
23
|
+
end
|
|
24
|
+
end
|
|
25
|
+
end
|
|
26
|
+
end
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# typed: true
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
require_relative 'option'
|
|
4
4
|
|
|
5
5
|
module Datadog
|
|
6
6
|
module Core
|
|
@@ -17,7 +17,8 @@ module Datadog
|
|
|
17
17
|
:name,
|
|
18
18
|
:on_set,
|
|
19
19
|
:resetter,
|
|
20
|
-
:setter
|
|
20
|
+
:setter,
|
|
21
|
+
:type
|
|
21
22
|
|
|
22
23
|
def initialize(name, meta = {}, &block)
|
|
23
24
|
@default = meta[:default]
|
|
@@ -28,6 +29,7 @@ module Datadog
|
|
|
28
29
|
@on_set = meta[:on_set]
|
|
29
30
|
@resetter = meta[:resetter]
|
|
30
31
|
@setter = meta[:setter] || block || IDENTITY
|
|
32
|
+
@type = meta[:type]
|
|
31
33
|
end
|
|
32
34
|
|
|
33
35
|
# Creates a new Option, bound to the context provided.
|
|
@@ -51,6 +53,7 @@ module Datadog
|
|
|
51
53
|
@on_set = nil
|
|
52
54
|
@resetter = nil
|
|
53
55
|
@setter = OptionDefinition::IDENTITY
|
|
56
|
+
@type = nil
|
|
54
57
|
|
|
55
58
|
# If options were supplied, apply them.
|
|
56
59
|
apply_options!(options)
|
|
@@ -91,6 +94,10 @@ module Datadog
|
|
|
91
94
|
@setter = block
|
|
92
95
|
end
|
|
93
96
|
|
|
97
|
+
def type(value = nil)
|
|
98
|
+
@type = value
|
|
99
|
+
end
|
|
100
|
+
|
|
94
101
|
# For applying options for OptionDefinition
|
|
95
102
|
def apply_options!(options = {})
|
|
96
103
|
return if options.nil? || options.empty?
|
|
@@ -102,6 +109,7 @@ module Datadog
|
|
|
102
109
|
on_set(&options[:on_set]) if options.key?(:on_set)
|
|
103
110
|
resetter(&options[:resetter]) if options.key?(:resetter)
|
|
104
111
|
setter(&options[:setter]) if options.key?(:setter)
|
|
112
|
+
type(&options[:type]) if options.key?(:type)
|
|
105
113
|
end
|
|
106
114
|
|
|
107
115
|
def to_definition
|
|
@@ -116,7 +124,8 @@ module Datadog
|
|
|
116
124
|
lazy: @lazy,
|
|
117
125
|
on_set: @on_set,
|
|
118
126
|
resetter: @resetter,
|
|
119
|
-
setter: @setter
|
|
127
|
+
setter: @setter,
|
|
128
|
+
type: @type
|
|
120
129
|
}
|
|
121
130
|
end
|
|
122
131
|
end
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
# typed: false
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
3
|
+
require_relative 'option_set'
|
|
4
|
+
require_relative 'option_definition'
|
|
5
|
+
require_relative 'option_definition_set'
|
|
6
6
|
|
|
7
7
|
module Datadog
|
|
8
8
|
module Core
|
|
@@ -2,20 +2,21 @@
|
|
|
2
2
|
|
|
3
3
|
require 'logger'
|
|
4
4
|
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
5
|
+
require_relative 'base'
|
|
6
|
+
require_relative 'ext'
|
|
7
|
+
require_relative '../environment/ext'
|
|
8
|
+
require_relative '../runtime/ext'
|
|
9
|
+
require_relative '../telemetry/ext'
|
|
10
|
+
require_relative '../../profiling/ext'
|
|
11
|
+
|
|
12
|
+
require_relative '../../tracing/configuration/settings'
|
|
10
13
|
|
|
11
14
|
module Datadog
|
|
12
15
|
module Core
|
|
13
16
|
module Configuration
|
|
14
|
-
# Global configuration settings for the
|
|
17
|
+
# Global configuration settings for the Datadog library.
|
|
15
18
|
# @public_api
|
|
16
19
|
# rubocop:disable Metrics/BlockLength
|
|
17
|
-
# rubocop:disable Metrics/ClassLength
|
|
18
|
-
# rubocop:disable Layout/LineLength
|
|
19
20
|
class Settings
|
|
20
21
|
include Base
|
|
21
22
|
|
|
@@ -99,7 +100,7 @@ module Datadog
|
|
|
99
100
|
# @default `DD_TRACE_DEBUG` environment variable, otherwise `false`
|
|
100
101
|
# @return [Boolean]
|
|
101
102
|
option :debug do |o|
|
|
102
|
-
o.default { env_to_bool(Datadog::Core::
|
|
103
|
+
o.default { env_to_bool(Datadog::Core::Configuration::Ext::Diagnostics::ENV_DEBUG_ENABLED, false) }
|
|
103
104
|
o.lazy
|
|
104
105
|
o.on_set do |enabled|
|
|
105
106
|
# Enable rich debug print statements.
|
|
@@ -110,7 +111,6 @@ module Datadog
|
|
|
110
111
|
|
|
111
112
|
# Internal {Datadog::Statsd} metrics collection.
|
|
112
113
|
#
|
|
113
|
-
# The list of metrics collected can be found in {Datadog::Core::Diagnostics::Ext::Health::Metrics}.
|
|
114
114
|
# @public_api
|
|
115
115
|
settings :health_metrics do
|
|
116
116
|
# Enable health metrics collection.
|
|
@@ -118,7 +118,7 @@ module Datadog
|
|
|
118
118
|
# @default `DD_HEALTH_METRICS_ENABLED` environment variable, otherwise `false`
|
|
119
119
|
# @return [Boolean]
|
|
120
120
|
option :enabled do |o|
|
|
121
|
-
o.default { env_to_bool(Datadog::Core::
|
|
121
|
+
o.default { env_to_bool(Datadog::Core::Configuration::Ext::Diagnostics::ENV_HEALTH_METRICS_ENABLED, false) }
|
|
122
122
|
o.lazy
|
|
123
123
|
end
|
|
124
124
|
|
|
@@ -144,7 +144,7 @@ module Datadog
|
|
|
144
144
|
# @return [Boolean,nil]
|
|
145
145
|
option :enabled do |o|
|
|
146
146
|
# Defaults to nil as we want to know when the default value is being used
|
|
147
|
-
o.default { env_to_bool(Datadog::Core::
|
|
147
|
+
o.default { env_to_bool(Datadog::Core::Configuration::Ext::Diagnostics::ENV_STARTUP_LOGS_ENABLED, nil) }
|
|
148
148
|
o.lazy
|
|
149
149
|
end
|
|
150
150
|
end
|
|
@@ -210,6 +210,8 @@ module Datadog
|
|
|
210
210
|
|
|
211
211
|
# Controls the maximum number of frames for each thread sampled. Can be tuned to avoid omitted frames in the
|
|
212
212
|
# produced profiles. Increasing this may increase the overhead of profiling.
|
|
213
|
+
#
|
|
214
|
+
# @default `DD_PROFILING_MAX_FRAMES` environment variable, otherwise 400
|
|
213
215
|
option :max_frames do |o|
|
|
214
216
|
o.default { env_to_int(Profiling::Ext::ENV_MAX_FRAMES, 400) }
|
|
215
217
|
o.lazy
|
|
@@ -233,6 +235,50 @@ module Datadog
|
|
|
233
235
|
# Disable gathering of names and versions of gems in use by the service, used to power grouping and
|
|
234
236
|
# categorization of stack traces.
|
|
235
237
|
option :code_provenance_enabled, default: true
|
|
238
|
+
|
|
239
|
+
# No longer does anything, and will be removed on dd-trace-rb 2.0.
|
|
240
|
+
#
|
|
241
|
+
# This was added as a temporary support option in case of issues with the new `Profiling::HttpTransport` class
|
|
242
|
+
# but we're now confident it's working nicely so we've removed the old code path.
|
|
243
|
+
option :legacy_transport_enabled do |o|
|
|
244
|
+
o.on_set do
|
|
245
|
+
Datadog.logger.warn(
|
|
246
|
+
'The profiling.advanced.legacy_transport_enabled setting has been deprecated for removal and no ' \
|
|
247
|
+
'longer does anything. Please remove it from your Datadog.configure block.'
|
|
248
|
+
)
|
|
249
|
+
end
|
|
250
|
+
end
|
|
251
|
+
|
|
252
|
+
# Forces enabling the new profiler. We do not yet recommend turning on this option.
|
|
253
|
+
#
|
|
254
|
+
# Note that setting this to "false" (or not setting it) will not prevent the new profiler from
|
|
255
|
+
# being automatically used in the future.
|
|
256
|
+
# This option will be deprecated for removal once the new profiler gets enabled by default for all customers.
|
|
257
|
+
option :force_enable_new_profiler do |o|
|
|
258
|
+
o.default { env_to_bool('DD_PROFILING_FORCE_ENABLE_NEW', false) }
|
|
259
|
+
o.lazy
|
|
260
|
+
end
|
|
261
|
+
|
|
262
|
+
# Forces enabling of profiling of time/resources spent in Garbage Collection.
|
|
263
|
+
#
|
|
264
|
+
# Note that setting this to "false" (or not setting it) will not prevent the feature from being
|
|
265
|
+
# being automatically enabled in the future.
|
|
266
|
+
#
|
|
267
|
+
# This toggle was added because, although this feature is safe and enabled by default on Ruby 2.x,
|
|
268
|
+
# on Ruby 3.x it can break in applications that make use of Ractors due to two Ruby VM bugs:
|
|
269
|
+
# https://bugs.ruby-lang.org/issues/19112 AND https://bugs.ruby-lang.org/issues/18464.
|
|
270
|
+
#
|
|
271
|
+
# If you use Ruby 3.x and your application does not use Ractors (or if your Ruby has been patched), the
|
|
272
|
+
# feature is fully safe to enable and this toggle can be used to do so.
|
|
273
|
+
#
|
|
274
|
+
# Furthermore, currently this feature can add a lot of overhead for GC-heavy workloads.
|
|
275
|
+
#
|
|
276
|
+
# We expect the once the above issues are overcome, we'll automatically enable the feature on fixed Ruby
|
|
277
|
+
# versions.
|
|
278
|
+
option :force_enable_gc_profiling do |o|
|
|
279
|
+
o.default { env_to_bool('DD_PROFILING_FORCE_ENABLE_GC', false) }
|
|
280
|
+
o.lazy
|
|
281
|
+
end
|
|
236
282
|
end
|
|
237
283
|
|
|
238
284
|
# @public_api
|
|
@@ -306,8 +352,8 @@ module Datadog
|
|
|
306
352
|
|
|
307
353
|
# Parse tags from environment
|
|
308
354
|
env_to_list(Core::Environment::Ext::ENV_TAGS, comma_separated_only: false).each do |tag|
|
|
309
|
-
|
|
310
|
-
tags[
|
|
355
|
+
key, value = tag.split(':', 2)
|
|
356
|
+
tags[key] = value if value && !value.empty?
|
|
311
357
|
end
|
|
312
358
|
|
|
313
359
|
# Override tags if defined
|
|
@@ -366,240 +412,6 @@ module Datadog
|
|
|
366
412
|
end
|
|
367
413
|
end
|
|
368
414
|
|
|
369
|
-
# Tracer specific configurations.
|
|
370
|
-
# @public_api
|
|
371
|
-
settings :tracing do
|
|
372
|
-
# Legacy [App Analytics](https://docs.datadoghq.com/tracing/legacy_app_analytics/) configuration.
|
|
373
|
-
#
|
|
374
|
-
# @configure_with {Datadog::Tracing}
|
|
375
|
-
# @deprecated Use [Trace Retention and Ingestion](https://docs.datadoghq.com/tracing/trace_retention_and_ingestion/)
|
|
376
|
-
# controls.
|
|
377
|
-
# @public_api
|
|
378
|
-
settings :analytics do
|
|
379
|
-
# @default `DD_TRACE_ANALYTICS_ENABLED` environment variable, otherwise `nil`
|
|
380
|
-
# @return [Boolean,nil]
|
|
381
|
-
option :enabled do |o|
|
|
382
|
-
o.default { env_to_bool(Tracing::Configuration::Ext::Analytics::ENV_TRACE_ANALYTICS_ENABLED, nil) }
|
|
383
|
-
o.lazy
|
|
384
|
-
end
|
|
385
|
-
end
|
|
386
|
-
|
|
387
|
-
# [Distributed Tracing](https://docs.datadoghq.com/tracing/setup_overview/setup/ruby/#distributed-tracing) propagation
|
|
388
|
-
# style configuration.
|
|
389
|
-
#
|
|
390
|
-
# The supported formats are:
|
|
391
|
-
# * `Datadog`: Datadog propagation format, described by [Distributed Tracing](https://docs.datadoghq.com/tracing/setup_overview/setup/ruby/#distributed-tracing).
|
|
392
|
-
# * `B3`: B3 Propagation using multiple headers, described by [openzipkin/b3-propagation](https://github.com/openzipkin/b3-propagation#multiple-headers).
|
|
393
|
-
# * `B3 single header`: B3 Propagation using a single header, described by [openzipkin/b3-propagation](https://github.com/openzipkin/b3-propagation#single-header).
|
|
394
|
-
#
|
|
395
|
-
# @public_api
|
|
396
|
-
settings :distributed_tracing do
|
|
397
|
-
# An ordered list of what data propagation styles the tracer will use to extract distributed tracing propagation
|
|
398
|
-
# data from incoming requests and messages.
|
|
399
|
-
#
|
|
400
|
-
# The tracer will try to find distributed headers in the order they are present in the list provided to this option.
|
|
401
|
-
# The first format to have valid data present will be used.
|
|
402
|
-
#
|
|
403
|
-
# @default `DD_PROPAGATION_STYLE_EXTRACT` environment variable (comma-separated list),
|
|
404
|
-
# otherwise `['Datadog','B3','B3 single header']`.
|
|
405
|
-
# @return [Array<String>]
|
|
406
|
-
option :propagation_extract_style do |o|
|
|
407
|
-
o.default do
|
|
408
|
-
# Look for all headers by default
|
|
409
|
-
env_to_list(
|
|
410
|
-
Tracing::Configuration::Ext::Distributed::ENV_PROPAGATION_STYLE_EXTRACT,
|
|
411
|
-
[
|
|
412
|
-
Tracing::Configuration::Ext::Distributed::PROPAGATION_STYLE_DATADOG,
|
|
413
|
-
Tracing::Configuration::Ext::Distributed::PROPAGATION_STYLE_B3,
|
|
414
|
-
Tracing::Configuration::Ext::Distributed::PROPAGATION_STYLE_B3_SINGLE_HEADER
|
|
415
|
-
], comma_separated_only: true
|
|
416
|
-
)
|
|
417
|
-
end
|
|
418
|
-
|
|
419
|
-
o.lazy
|
|
420
|
-
end
|
|
421
|
-
|
|
422
|
-
# The data propagation styles the tracer will use to inject distributed tracing propagation
|
|
423
|
-
# data into outgoing requests and messages.
|
|
424
|
-
#
|
|
425
|
-
# The tracer will inject data from all styles specified in this option.
|
|
426
|
-
#
|
|
427
|
-
# @default `DD_PROPAGATION_STYLE_INJECT` environment variable (comma-separated list), otherwise `['Datadog']`.
|
|
428
|
-
# @return [Array<String>]
|
|
429
|
-
option :propagation_inject_style do |o|
|
|
430
|
-
o.default do
|
|
431
|
-
env_to_list(
|
|
432
|
-
Tracing::Configuration::Ext::Distributed::ENV_PROPAGATION_STYLE_INJECT,
|
|
433
|
-
[Tracing::Configuration::Ext::Distributed::PROPAGATION_STYLE_DATADOG], comma_separated_only: true # Only inject Datadog headers by default
|
|
434
|
-
)
|
|
435
|
-
end
|
|
436
|
-
|
|
437
|
-
o.lazy
|
|
438
|
-
end
|
|
439
|
-
end
|
|
440
|
-
|
|
441
|
-
# Enable trace collection and span generation.
|
|
442
|
-
#
|
|
443
|
-
# You can use this option to disable tracing without having to
|
|
444
|
-
# remove the library as a whole.
|
|
445
|
-
#
|
|
446
|
-
# @default `DD_TRACE_ENABLED` environment variable, otherwise `true`
|
|
447
|
-
# @return [Boolean]
|
|
448
|
-
option :enabled do |o|
|
|
449
|
-
o.default { env_to_bool(Datadog::Core::Diagnostics::Ext::DD_TRACE_ENABLED, true) }
|
|
450
|
-
o.lazy
|
|
451
|
-
end
|
|
452
|
-
|
|
453
|
-
# A custom tracer instance.
|
|
454
|
-
#
|
|
455
|
-
# It must respect the contract of {Datadog::Tracing::Tracer}.
|
|
456
|
-
# It's recommended to delegate methods to {Datadog::Tracing::Tracer} to ease the implementation
|
|
457
|
-
# of a custom tracer.
|
|
458
|
-
#
|
|
459
|
-
# This option will not return the live tracer instance: it only holds a custom tracing instance, if any.
|
|
460
|
-
#
|
|
461
|
-
# For internal use only.
|
|
462
|
-
#
|
|
463
|
-
# @default `nil`
|
|
464
|
-
# @return [Object,nil]
|
|
465
|
-
option :instance
|
|
466
|
-
|
|
467
|
-
# Automatic correlation between tracing and logging.
|
|
468
|
-
# @see https://docs.datadoghq.com/tracing/setup_overview/setup/ruby/#trace-correlation
|
|
469
|
-
# @return [Boolean]
|
|
470
|
-
option :log_injection do |o|
|
|
471
|
-
o.default { env_to_bool(Tracing::Configuration::Ext::Correlation::ENV_LOGS_INJECTION_ENABLED, true) }
|
|
472
|
-
o.lazy
|
|
473
|
-
end
|
|
474
|
-
|
|
475
|
-
# Configures an alternative trace transport behavior, where
|
|
476
|
-
# traces can be sent to the agent and backend before all spans
|
|
477
|
-
# have finished.
|
|
478
|
-
#
|
|
479
|
-
# This is useful for long-running jobs or very large traces.
|
|
480
|
-
#
|
|
481
|
-
# The trace flame graph will display the partial trace as it is received and constantly
|
|
482
|
-
# update with new spans as they are flushed.
|
|
483
|
-
# @public_api
|
|
484
|
-
settings :partial_flush do
|
|
485
|
-
# Enable partial trace flushing.
|
|
486
|
-
#
|
|
487
|
-
# @default `false`
|
|
488
|
-
# @return [Boolean]
|
|
489
|
-
option :enabled, default: false
|
|
490
|
-
|
|
491
|
-
# Minimum number of finished spans required in a single unfinished trace before
|
|
492
|
-
# the tracer will consider that trace for partial flushing.
|
|
493
|
-
#
|
|
494
|
-
# This option helps preserve a minimum amount of batching in the
|
|
495
|
-
# flushing process, reducing network overhead.
|
|
496
|
-
#
|
|
497
|
-
# This threshold only applies to unfinished traces. Traces that have finished
|
|
498
|
-
# are always flushed immediately.
|
|
499
|
-
#
|
|
500
|
-
# @default 500
|
|
501
|
-
# @return [Boolean]
|
|
502
|
-
option :min_spans_threshold, default: 500
|
|
503
|
-
end
|
|
504
|
-
|
|
505
|
-
# Enables {https://docs.datadoghq.com/tracing/trace_retention_and_ingestion/#datadog-intelligent-retention-filter
|
|
506
|
-
# Datadog intelligent retention filter}.
|
|
507
|
-
# @default `true`
|
|
508
|
-
# @return [Boolean,nil]
|
|
509
|
-
option :priority_sampling
|
|
510
|
-
|
|
511
|
-
option :report_hostname do |o|
|
|
512
|
-
o.default { env_to_bool(Tracing::Configuration::Ext::NET::ENV_REPORT_HOSTNAME, false) }
|
|
513
|
-
o.lazy
|
|
514
|
-
end
|
|
515
|
-
|
|
516
|
-
# A custom sampler instance.
|
|
517
|
-
# The object must respect the {Datadog::Tracing::Sampling::Sampler} interface.
|
|
518
|
-
# @default `nil`
|
|
519
|
-
# @return [Object,nil]
|
|
520
|
-
option :sampler
|
|
521
|
-
|
|
522
|
-
# Client-side sampling configuration.
|
|
523
|
-
# @public_api
|
|
524
|
-
settings :sampling do
|
|
525
|
-
# Default sampling rate for the tracer.
|
|
526
|
-
#
|
|
527
|
-
# If `nil`, the trace uses an automatic sampling strategy that tries to ensure
|
|
528
|
-
# the collection of traces that are considered important (e.g. traces with an error, traces
|
|
529
|
-
# for resources not seen recently).
|
|
530
|
-
#
|
|
531
|
-
# @default `DD_TRACE_SAMPLE_RATE` environment variable, otherwise `nil`.
|
|
532
|
-
# @return [Float,nil]
|
|
533
|
-
option :default_rate do |o|
|
|
534
|
-
o.default { env_to_float(Tracing::Configuration::Ext::Sampling::ENV_SAMPLE_RATE, nil) }
|
|
535
|
-
o.lazy
|
|
536
|
-
end
|
|
537
|
-
|
|
538
|
-
# Rate limit for number of spans per second.
|
|
539
|
-
#
|
|
540
|
-
# Spans created above the limit will contribute to service metrics, but won't
|
|
541
|
-
# have their payload stored.
|
|
542
|
-
#
|
|
543
|
-
# @default `DD_TRACE_RATE_LIMIT` environment variable, otherwise 100.
|
|
544
|
-
# @return [Numeric,nil]
|
|
545
|
-
option :rate_limit do |o|
|
|
546
|
-
o.default { env_to_float(Tracing::Configuration::Ext::Sampling::ENV_RATE_LIMIT, 100) }
|
|
547
|
-
o.lazy
|
|
548
|
-
end
|
|
549
|
-
end
|
|
550
|
-
|
|
551
|
-
# [Continuous Integration Visibility](https://docs.datadoghq.com/continuous_integration/) configuration.
|
|
552
|
-
# @public_api
|
|
553
|
-
settings :test_mode do
|
|
554
|
-
# Enable test mode. This allows the tracer to collect spans from test runs.
|
|
555
|
-
#
|
|
556
|
-
# It also prevents the tracer from collecting spans in a production environment. Only use in a test environment.
|
|
557
|
-
#
|
|
558
|
-
# @default `DD_TRACE_TEST_MODE_ENABLED` environment variable, otherwise `false`
|
|
559
|
-
# @return [Boolean]
|
|
560
|
-
option :enabled do |o|
|
|
561
|
-
o.default { env_to_bool(Tracing::Configuration::Ext::Test::ENV_MODE_ENABLED, false) }
|
|
562
|
-
o.lazy
|
|
563
|
-
end
|
|
564
|
-
|
|
565
|
-
option :trace_flush do |o|
|
|
566
|
-
o.default { nil }
|
|
567
|
-
o.lazy
|
|
568
|
-
end
|
|
569
|
-
|
|
570
|
-
option :writer_options do |o|
|
|
571
|
-
o.default { {} }
|
|
572
|
-
o.lazy
|
|
573
|
-
end
|
|
574
|
-
end
|
|
575
|
-
|
|
576
|
-
# @see file:docs/GettingStarted.md#configuring-the-transport-layer Configuring the transport layer
|
|
577
|
-
#
|
|
578
|
-
# A {Proc} that configures a custom tracer transport.
|
|
579
|
-
# @yield Receives a {Datadog::Transport::HTTP} that can be modified with custom adapters and settings.
|
|
580
|
-
# @yieldparam [Datadog::Transport::HTTP] t transport to be configured.
|
|
581
|
-
# @default `nil`
|
|
582
|
-
# @return [Proc,nil]
|
|
583
|
-
option :transport_options, default: nil
|
|
584
|
-
|
|
585
|
-
# A custom writer instance.
|
|
586
|
-
# The object must respect the {Datadog::Tracing::Writer} interface.
|
|
587
|
-
#
|
|
588
|
-
# This option is recommended for internal use only.
|
|
589
|
-
#
|
|
590
|
-
# @default `nil`
|
|
591
|
-
# @return [Object,nil]
|
|
592
|
-
option :writer
|
|
593
|
-
|
|
594
|
-
# A custom {Hash} with keyword options to be passed to {Datadog::Tracing::Writer#initialize}.
|
|
595
|
-
#
|
|
596
|
-
# This option is recommended for internal use only.
|
|
597
|
-
#
|
|
598
|
-
# @default `{}`
|
|
599
|
-
# @return [Hash,nil]
|
|
600
|
-
option :writer_options, default: ->(_i) { {} }, lazy: true
|
|
601
|
-
end
|
|
602
|
-
|
|
603
415
|
# The `version` tag in Datadog. Use it to enable [Deployment Tracking](https://docs.datadoghq.com/tracing/deployment_tracking/).
|
|
604
416
|
# @see https://docs.datadoghq.com/getting_started/tagging/unified_service_tagging
|
|
605
417
|
# @default `DD_VERSION` environment variable, otherwise `nils`
|
|
@@ -609,10 +421,26 @@ module Datadog
|
|
|
609
421
|
o.default { ENV.fetch(Core::Environment::Ext::ENV_VERSION, nil) }
|
|
610
422
|
o.lazy
|
|
611
423
|
end
|
|
424
|
+
|
|
425
|
+
# Client-side telemetry configuration
|
|
426
|
+
# @public_api
|
|
427
|
+
settings :telemetry do
|
|
428
|
+
# Enable telemetry collection. This allows telemetry events to be emitted to the telemetry API.
|
|
429
|
+
#
|
|
430
|
+
# @default `DD_INSTRUMENTATION_TELEMETRY_ENABLED` environment variable, otherwise `false`. In a future release,
|
|
431
|
+
# this value will be changed to `true` by default as documented [here](https://docs.datadoghq.com/tracing/configure_data_security/#telemetry-collection).
|
|
432
|
+
# @return [Boolean]
|
|
433
|
+
option :enabled do |o|
|
|
434
|
+
o.default { env_to_bool(Core::Telemetry::Ext::ENV_ENABLED, false) }
|
|
435
|
+
o.lazy
|
|
436
|
+
end
|
|
437
|
+
end
|
|
438
|
+
|
|
439
|
+
# TODO: Tracing should manage its own settings.
|
|
440
|
+
# Keep this extension here for now to keep things working.
|
|
441
|
+
extend Datadog::Tracing::Configuration::Settings
|
|
612
442
|
end
|
|
613
443
|
# rubocop:enable Metrics/BlockLength
|
|
614
|
-
# rubocop:enable Metrics/ClassLength
|
|
615
|
-
# rubocop:enable Layout/LineLength
|
|
616
444
|
end
|
|
617
445
|
end
|
|
618
446
|
end
|
|
@@ -1,14 +1,15 @@
|
|
|
1
1
|
# typed: true
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
3
|
+
require_relative 'configuration/components'
|
|
4
|
+
require_relative 'configuration/settings'
|
|
5
|
+
require_relative 'telemetry/emitter'
|
|
6
|
+
require_relative 'logger'
|
|
7
|
+
require_relative 'pin'
|
|
7
8
|
|
|
8
9
|
module Datadog
|
|
9
10
|
module Core
|
|
10
11
|
# Configuration provides a unique access point for configurations
|
|
11
|
-
module Configuration
|
|
12
|
+
module Configuration
|
|
12
13
|
include Kernel # Ensure that kernel methods are always available (https://sorbet.org/docs/error-reference#7003)
|
|
13
14
|
|
|
14
15
|
# Used to ensure that @components initialization/reconfiguration is performed one-at-a-time, by a single thread.
|
|
@@ -89,7 +90,9 @@ module Datadog
|
|
|
89
90
|
if components?
|
|
90
91
|
replace_components!(configuration, @components)
|
|
91
92
|
else
|
|
92
|
-
build_components(configuration)
|
|
93
|
+
components = build_components(configuration)
|
|
94
|
+
components.telemetry.started!
|
|
95
|
+
components
|
|
93
96
|
end
|
|
94
97
|
)
|
|
95
98
|
end
|
|
@@ -106,10 +106,14 @@ module Datadog
|
|
|
106
106
|
Datadog.configuration.version
|
|
107
107
|
end
|
|
108
108
|
|
|
109
|
-
# @return [String] target agent URL for trace flushing
|
|
109
|
+
# @return [String, nil] target agent URL for trace flushing
|
|
110
110
|
def agent_url
|
|
111
111
|
# Retrieve the effect agent URL, regardless of how it was configured
|
|
112
112
|
transport = Tracing.send(:tracer).writer.transport
|
|
113
|
+
|
|
114
|
+
# return `nil` with IO transport
|
|
115
|
+
return unless transport.respond_to?(:client)
|
|
116
|
+
|
|
113
117
|
adapter = transport.client.api.adapter
|
|
114
118
|
adapter.url
|
|
115
119
|
end
|
|
@@ -151,7 +155,7 @@ module Datadog
|
|
|
151
155
|
def sampling_rules
|
|
152
156
|
sampler = Datadog.configuration.tracing.sampler
|
|
153
157
|
return nil unless sampler.is_a?(Tracing::Sampling::PrioritySampler) &&
|
|
154
|
-
|
|
158
|
+
sampler.priority_sampler.is_a?(Tracing::Sampling::RuleSampler)
|
|
155
159
|
|
|
156
160
|
sampler.priority_sampler.rules.map do |rule|
|
|
157
161
|
next unless rule.is_a?(Tracing::Sampling::SimpleRule)
|
|
@@ -217,9 +221,9 @@ module Datadog
|
|
|
217
221
|
!!Datadog.configuration.diagnostics.health_metrics.enabled
|
|
218
222
|
end
|
|
219
223
|
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
224
|
+
def profiling_enabled
|
|
225
|
+
!!Datadog.configuration.profiling.enabled
|
|
226
|
+
end
|
|
223
227
|
|
|
224
228
|
# TODO: Populate when automatic log correlation is implemented
|
|
225
229
|
# def logs_correlation_enabled
|
|
@@ -250,6 +254,7 @@ module Datadog
|
|
|
250
254
|
partial_flushing_enabled: partial_flushing_enabled,
|
|
251
255
|
priority_sampling_enabled: priority_sampling_enabled,
|
|
252
256
|
health_metrics_enabled: health_metrics_enabled,
|
|
257
|
+
profiling_enabled: profiling_enabled,
|
|
253
258
|
**instrumented_integrations_settings
|
|
254
259
|
}
|
|
255
260
|
end
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
# typed:
|
|
1
|
+
# typed: ignore
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
|
|
3
|
+
require_relative '../metrics/client'
|
|
4
|
+
require_relative '../../tracing/diagnostics/health'
|
|
5
5
|
|
|
6
6
|
module Datadog
|
|
7
7
|
module Core
|
|
@@ -10,26 +10,8 @@ module Datadog
|
|
|
10
10
|
module Health
|
|
11
11
|
# Health metrics for diagnostics
|
|
12
12
|
class Metrics < Core::Metrics::Client
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
count :api_responses, Ext::Health::Metrics::METRIC_API_RESPONSES
|
|
16
|
-
count :error_context_overflow, Ext::Health::Metrics::METRIC_ERROR_CONTEXT_OVERFLOW
|
|
17
|
-
count :error_instrumentation_patch, Ext::Health::Metrics::METRIC_ERROR_INSTRUMENTATION_PATCH
|
|
18
|
-
count :error_span_finish, Ext::Health::Metrics::METRIC_ERROR_SPAN_FINISH
|
|
19
|
-
count :error_unfinished_spans, Ext::Health::Metrics::METRIC_ERROR_UNFINISHED_SPANS
|
|
20
|
-
count :instrumentation_patched, Ext::Health::Metrics::METRIC_INSTRUMENTATION_PATCHED
|
|
21
|
-
count :queue_accepted, Ext::Health::Metrics::METRIC_QUEUE_ACCEPTED
|
|
22
|
-
count :queue_accepted_lengths, Ext::Health::Metrics::METRIC_QUEUE_ACCEPTED_LENGTHS
|
|
23
|
-
count :queue_dropped, Ext::Health::Metrics::METRIC_QUEUE_DROPPED
|
|
24
|
-
count :traces_filtered, Ext::Health::Metrics::METRIC_TRACES_FILTERED
|
|
25
|
-
count :transport_trace_too_large, Ext::Health::Metrics::METRIC_TRANSPORT_TRACE_TOO_LARGE
|
|
26
|
-
count :transport_chunked, Ext::Health::Metrics::METRIC_TRANSPORT_CHUNKED
|
|
27
|
-
count :writer_cpu_time, Ext::Health::Metrics::METRIC_WRITER_CPU_TIME
|
|
28
|
-
|
|
29
|
-
gauge :queue_length, Ext::Health::Metrics::METRIC_QUEUE_LENGTH
|
|
30
|
-
gauge :queue_max_length, Ext::Health::Metrics::METRIC_QUEUE_MAX_LENGTH
|
|
31
|
-
gauge :queue_spans, Ext::Health::Metrics::METRIC_QUEUE_SPANS
|
|
32
|
-
gauge :sampling_service_cache_length, Ext::Health::Metrics::METRIC_SAMPLING_SERVICE_CACHE_LENGTH
|
|
13
|
+
# TODO: Don't reference this. Have tracing add its metrics behavior.
|
|
14
|
+
extend Tracing::Diagnostics::Health::Metrics
|
|
33
15
|
end
|
|
34
16
|
end
|
|
35
17
|
end
|