Skip to content

Latest commit

 

History

History
4375 lines (3315 loc) · 194 KB

CHANGELOG.md

File metadata and controls

4375 lines (3315 loc) · 194 KB

Changelog

1.23.0 - 2024-05-09

Added

  • Profiling: Enable endpoint profiling for Sidekiq and similar background job processors (#3619)

Fixed

  • Fix no such file or directory issue when using single step instrumentation (#3623)
  • Fix error during telemetry debug logging attempt (#3618)

2.0.0.beta2 - 2024-04-18

Added

  • Add Agent configuration option: timeout_seconds, uds_path, and use_ssl (#3350)
  • Tracing: Add lightweight log correlation generation (#3486)
  • Tracing: Add span links (#3546)
  • Tracing: Add span_remote field to TraceDigest (#3516)
  • Tracing: Add _dd.parent_id to tracestate (#3488)
  • Tracing: Allow RateSampler with zero sampling rate (#3295)
  • Grape: Add on_error settings (#3370)

Changed

  • Rename gem from ddtrace to datadog (#3490)
  • Require Ruby >= 2.5 (#3291)
  • Frozen string literals (#3392)
  • Startup logs emit when reconfigures (#3441)
  • Enhance validation for configuration (#3332, #3326)
  • Tracing: Propagation style configuration becomes case-insensitive (#3299)
  • Tracing: Return string for #trace_id and #span_id from Correlation::Identifier (#3322)
  • Elasticsearch: Replace instance configuration from client to transport instance (#3399)
  • Grape: Change error_statuses settings to error_status_codes (#3370)
  • GraphQL: Instrument with GraphQL::Tracing::DataDogTrace and more (#3409, #3417, #3388)
  • Rack: Change http proxy span pattern (#3369)
  • Sidekiq: Remove tag_args option and worker specific configuration (#3396, #3402)
  • Integrations: Rename error_handler settings to on_error (#3341)

Fixed

  • Tracing: Fix error_status_codes options (#3344)

Removed

  • Profiling: Remove bin/ddtracerb (#3506)
  • Ci-app: Remove datadog-ci gem dependency (#3288)
  • Tracing: Remove SpanOperation aliases (#3330)
  • Tracing: Remove b3 style from default propagation (#3293)
  • Tracing: Minimize sampling API (#3423)
  • Tracing: Remove client_ip disabled env (#3404)
  • Tracing: Remove use alias for instrument (#3403)
  • Tracing: OpenTracing, qless removed (#3398, #3443)
  • Net/Http: Remove Datadog::Tracing::Contrib::HTTP::Instrumentation.after_request (#3367)
  • Rails: Drop support for Rails 3 (#3324)
  • Rails: Remove exception_controller option (#3243)
  • Remove constants, methods and more (#3401, #3336, #3454, #3338, #3335, #3298, #3297, #3309, #3294, #3325, #3300)

1.22.0 - 2024-04-16

Added

  • Tracing: Add sampling rules by trace resouce and tags (#3587, #3585)
  • Appsec: Add WAF vendor header support (#3528)

Changed

  • Upgrade Telemetry to V2 (#3551)
  • Upgrade to libdatadog 7 (#3536)
  • Profiling: Enable Garbage Collection profiling by default (#3558)
  • Profiling: Skip heap samples with age 0 (#3573)
  • Profiling: Support falling back into extension directory when loading profiler (#3582)

Fixed

  • Appsec: Fix MIME-style newlines with strict base64 encoding (#3565)

2.0.0.beta1 - 2024-03-22

Release notes: https://github.com/DataDog/dd-trace-rb/releases/tag/v2.0.0.beta1

Git diff: https://github.com/DataDog/dd-trace-rb/compare/v1.21.1...v2.0.0.beta1

See https://github.com/DataDog/dd-trace-rb/blob/v2.0.0.beta1/docs/UpgradeGuide2.md.

1.21.1 - 2024-03-20

Added

  • Backports auto instrument shim with datadog/auto_instrument (#3535)

Fixed

  • Fix ActiveRecord resolving invalid string (#3523)
  • Revert http.route tagging to fix instrumentation failure for Rails 7.1 apps (#3539)
  • Fix wrong permissions on released gem files (#3531)

1.21.0 - 2024-03-14

Highlights

Allocation profiling is now in beta, and timeline profiling is enabled by default. For more details, check the release notes

Added

  • APM source code integration (#3463)
  • Core: Reduce startup logs verbosity (#3468)
  • Tracing: Add Concurrent::Async instrumentation (#3427)
  • Profiling: System info support (#3357)
  • Profiling: Add bin/ddprofrb (#3501)

Changed

  • Bump datadog-ci dependency to 0.8.1 (#3518)
  • Upgrade to libdatadog 6 (#3455)
  • Core: Allow suppressing error logs for Core::Remote::Negotiation (#3495)
  • Tracing: Add http.route tag to rack (#3345)
  • Tracing: Logs deprecation warning for use removal (#3438)
  • Profiling: Allocation sampling overhead improvements (#3434, #3440)
  • Profiling: Enable timeline by default (#3428)
  • Profiling: Rename Profiling files to reflect "datadog" instead of "ddtrace" (#3502)
  • Profiling: Replace profiling.advanced.experimental_allocation_enabled with profiling.allocation_enabled and remove experimental warning (#3520)

Fixed

  • Core: Fix rare remote configuration worker thread leak (#3519)
  • Tracing: Fix Datadog::Tracing.reject! with correct metrics (#3491)
  • Tracing: Guard PG result with nil check (#3511)
  • Profiling: Add workaround for Ruby VM bug causing crash in gc_finalize_deferred (#3473)
  • Profiling: Fix missing profiling code hotspots when using ddtrace+otel (#3466)
  • Profiling: Stop worker on clock failure (#3439)
  • Profiling: Upgrade libdatadog to fix incorrect platform detection for x86_64-linux-gnu/aarch64-linux-gnu (#3503)

1.20.0 - 2024-02-05

Added

  • Tracing: Add Trilogy instrumentation (#3274)
  • Rack: Add remote configuration boot tags (#3315)
  • Faraday: Add on_error option (#3431)
  • Profiling: Add dynamic allocation sampling (#3395)

Changed

  • Bump datadog-ci dependency to 0.7.0 (#3408)
  • Improve performance of gathering ClassCount metric (#3386)

Fixed

  • OpenTelemetry: Fix internal loading (#3400)
  • Core: Fix logger deadlock (#3426)
  • Rack: Fix missing active trace (#3420)
  • Redis: Fix instance configuration (#3278)

1.19.0 - 2024-01-10

Highlights

Alpha support for memory profiling has been added. For more details, check the release notes

Added

  • Tracing: Add on_error settings for mysql2 (#3316)
  • Core: Add install_signature to app-started telemetry event (#3349)
  • Profiling: Heap Profiling (#3281) (#3287) (#3328) (#3329) (#3333) (#3360)
  • Profiling: Redesign GC profiling to add timeline support and reduce overhead (#3313)
  • Core: Use Ruby 3.3 stable for CI testing (#3354)

Changed

  • Core: Bump datadog-ci dependency to 0.6.0 (#3361)
  • Core: Bump debase-ruby_core_source dependency to 3.3.1 (#3373)
  • Docs: Backport "List Ruby 3.3 as supported in the docs" to master branch (#3374)
  • Profiling: Import upstream rb_profile_frames fix (#3352)
  • Profiling: Allow the dynamic sampling rate overhead target to be set (#3310)
  • Profiling: Split profiling tests into ractor and non-ractor suites. (#3320)

Fixed

  • Docs: Fix pg doc markdown format (#3317)
  • Tracing: Fix recursive require in Railtie (#3365)
  • Profiling: Fix issues stemming from rb_gc_force_recycle (#3366)
  • Profiling: Fix Ruby 3.3 CI being broken in master due to profiler (#3356)
  • Profiling: Fix "no signals" workaround detection when mariadb is in use (#3362)

1.18.0 - 2023-12-07

Added

  • Tracing: Support lib injection for ARM64 architecture (#3307)
  • Tracing: Add error_handler for pg instrumentation (#3303)
  • Appsec: Enable "Trusted IPs", a.k.a passlist with optional monitoring (#3229)

Changed

  • Mark ddtrace threads as fork-safe (#3279)
  • Bump datadog-ci dependency to 0.5.0 (#3308)
  • Bump debase-ruby_core_source dependency to 3.2.3 (#3284)
  • Profiling: Disable profiler on Ruby 3.3 when running with RUBY_MN_THREADS=1 (#3259)
  • Profiling: Run without "no signals" workaround on passenger 6.0.19+ (#3280)

Fixed

  • Tracing: Fix pg instrumentation enabled settings (#3271)
  • Profiling: Fix potential crash by importing upstream rb_profile_frames fix (#3289)
  • Appsec: Call devise RegistrationsController block (#3286)

1.17.0 - 2023-11-22

For W3C Trace Context, this release adds tracecontext to the default trace propagation extraction and injection styles. The new defaults are:

  • Extraction: Datadog,b3multi,b3,tracecontext
  • Injection: Datadog,tracecontext

And to increase interoperability with tracecontext, 128-bit Trace ID generation is now the default.

For OpenTelemetry, this release adds support for converting OpenTelemetry Trace Semantic Conventions into equivalent Datadog trace semantics. Also, it's now possible to configure top-level Datadog span fields using OpenTelemetry span attributes (#3262).

For CI Visibility, you can now manually create CI traces and spans with the newly released API.

Added

  • OpenTelemetry: Parse OpenTelemetry semantic conventions to Datadog's (#3273)
  • OpenTelemetry: Support span reserved attribute overrides (#3262)
  • Tracing: Ensure W3C tracestate is always propagated (#3255)

Changed

  • Tracing: Set 128-bit trace_id to true by default (#3266)
  • Tracing: Default trace propagation styles to Datadog,b3multi,b3,tracecontext (#3248,#3267)
  • Ci-App: Upgraded datadog-ci dependency to 0.4 (#3270)

1.16.2 - 2023-11-10

This release reverts a change to appsec response body parsing that was introduced in 1.16.0 that may cause memory leaks.

Fixed

1.16.1 - 2023-11-08

Fixed

  • Tracing: Fix concurrent-ruby future propagation without active_trace (#3242)
  • Tracing: Fix host injection error handling (#3240)

1.16.0 - 2023-11-03

This release includes a security change for the Tracing Redis integration:

Currently, the Datadog Agent removes command arguments from the resource name. However there are cases, like Redis compressed keys, where this obfuscation cannot correctly remove command arguments. To safeguard that situation, the resource name set by the tracer will only be the command (e.g. SET) with no arguments. To retain the previous behavior and keep arguments in the span resource, with the potential risk of some command arguments not being fully obfuscated, set DD_REDIS_COMMAND_ARGS=true or set the option c.instrument :redis, command_args: true.

Added

  • Tracing: Propagate trace through Concurrent::Promises.future (#1522)
  • Core: Name Datadog::Core::Remote::Worker thread (#3207)

Changed

  • Tracing: Redis - Omit command arguments from span.resource by default (#3235)
  • Ci-app: Bump datadog-ci dependency from 0.2.0 to 0.3.0 (#3223)

Fixed

  • Appsec: ASM parse response body (#3153)
  • Appsec: ASM make sure to append content type and length information (#3204)
  • Appsec: Make sure function that checks content-type header value accepts nil content-type header value (#3234)
  • Profiling: Shut down profiler if any components failed (#3197)
  • Tracing: Fix ActiveSupport instrumentation of custom cache stores (#3206)

1.15.0 - 2023-10-09

Highlights

  • Timeline view for Profiler beta
  • Configure AppSec blocking responses via configuration or Remote Configuration
  • CI visibility to configure with agentless mode

For more details, check the release notes

Added

  • Enable allocation counting feature by default for some Ruby 3 versions (#3176)
  • Detect WebMock Cucumber and Rails.env to disable telemetry and remote configuration for development environment (#3065, #3062, #3145)
  • Profiling: Import java-profiler PID controller and port it to C (#3190)
  • Profiling: Record allocation type when sampling objects (#3096)
  • Profiling: Include ruby vm type in profiler allocation samples (#3074)
  • Tracing: Support Rack 3 (#3132)
  • Tracing: Support Opensearch 3 (#3189)
  • Tracing: grpc adds client_error_handler option (#3095)
  • Tracing: Add async option for test_mode configuration (#3158)
  • Tracing: Implements _dd.base_service tag (#3018)
  • Appsec: Allow blocking response template configuration via ENV variables (#2975)
  • Appsec: ASM API security. Schema extraction (#3131, #3166, #3177)
  • Appsec: Enable configuring blocking response via Remote Configuration (#3099)
  • Ci-app: Validate git tags (#3100)
  • Ci-app: Add agentless mode (#3186)

Changed

  • Appsec: Skip passing waf addresses when the value is empty (#3188)
  • Profiling: Restore support for Ruby 3.3 (#3167)
  • Profiling: Add approximate thread state categorization for timeline (#3162)
  • Profiling: Wire up allocation sampling into CpuAndWallTimeWorker (#3103)
  • Tracing: dalli disable memcached command tag by default (#3171)
  • Tracing: Use first valid extracted style for distributed tracing (#2879)
  • Tracing: Rename configuration option on_set to after_set (#3107)
  • Tracing: Rename experimental_default_proc to default_proc (#3091)
  • Tracing: Use peer.service for sql comment propagation (#3127)
  • Ci-app: Fix Datadog::CI::Environment to support the new CI specs (#3080)
  • Bump datadog-ci dependency to 0.2 (#3186)
  • Bump debase-ruby_core_source dependency to 3.2.2 (#3163)
  • Upgrade libdatadog 5 (#3169, #3104)
  • Upgrade libddwaf-rb 1.11.0 (#3087)
  • Update AppSec rules to 1.8.0 (#3140, #3139)

Fixed

  • Profiling: Add workaround for incorrect invoke location when logging gem is in use (#3183)
  • Profiling: Fix missing endpoint profiling when request_queuing is enabled in rack instrumentation (#3109)
  • Appsec: Span tags reporting the number of WAF failed loaded rules (#3106)
  • Tracing: Fix tagging with empty data (#3102)
  • Tracing: Fix rails.cache.backend span tag with multiple stores (#3060)

Removed

  • Profiling: Remove legacy profiler codepath (#3172)
  • Ci-app: Remove CI module and add a dependency on datadog-ci gem (#3128)
  • Tracing: Remove depends_on option from configuration DSL (#3085)
  • Tracing: Remove delegate_to option from configuration DSL (#3086)

1.14.0 - 2023-08-24

Added

  • Cucumber 8.0.0 support, test CI visibility with cucumber versions 6-8 (#3061)
  • Tracing: Add ddsource to #to_log_format (#3025)
  • Core: include peer service configurations in telemetry payload (#3056)
  • Tracing: Improve quantization (#3041)

Changed

  • Profiling: Disable profiler on Ruby 3.3 due to incompatibility (#3054)
  • Core: EnvironmentLogger adjustments (#3020, #3057)

Fixed

  • Appsec: Fix ASM setting for automated user events. (#3070)
  • Tracing: Fix ActiveRecord adapter name for Rails 7 (#3051)

1.13.1 - 2023-08-14

Fixed

  • Tracing: net/http instrumentation excludes query string for http.url tag (#3045)
  • Tracing: Remove log_tags warning when given hash for log injection (#3022)
  • Tracing: Fix OpenSearch integration loading (#3019)
  • Core: Fix default hostname/port when mixing http and uds configuration (#3037)
  • Core: Disable Telemetry and Remote Configuration in development environments (#3039)
  • Profiling: Improve Datadog::Profiling::HttpTransport error logging (#3038)
  • Docs: Document known issues with hanging Resque workers (#3033)

1.13.0 - 2023-07-31

Added

  • Core: Add support for Option precedence (#2915)
  • Core: Add support for unsetting options (#2972)
  • Core: Gauge primitive RubyVM::YJIT.runtime_stats, if YJIT is enabled (#2711, #2959)(@HeyNonster)
  • Core: Add Telemetry app-client-configuration-change event (#2977)
  • Core: Improve our SafeDup module (#2960)
  • Tracing: Add OpenSearch Integration (#2940)
  • Tracing: Implement peer.service tag to integrations (#2982)
  • Tracing: Add mandatory rpc and grpc tags for grpc integration (#2620, #2962)
  • Tracing: Include _dd.profiling.enabled tag (#2913)
  • Tracing: Support host injection (#2941, #3007)
  • Tracing: Implement Dynamic Configuration for tracing (#2848, #2973)
  • Tracing: Add for dynamic log injection configuration (#2992)
  • Tracing: Add sampling configuration with DD_TRACE_SAMPLING_RULES (#2968)
  • Tracing: Add HTTP header tagging with DD_TRACE_HEADER_TAGS for clients and servers (#2946, #2935)
  • Profiling: Add fallback name/invoke location for unnamed threads started in native code (#2993)
  • Profiling: Use invoke location as a fallback for nameless threads in the profiler (#2950)
  • Profiling: Add fallback name for main thread in profiling data (#2939)
  • Ci-app: Add Minitest CI integration (#2932) (@bravehager)
  • Appsec: Devise integration and automatic user events (#2877)
  • Appsec: Handle disabled tracing and appsec events (#2572)
  • Appsec: Automate user events check for UUID in safe mode (#2952)
  • Docs: Add Ruby 3.2 support to compatibility matrix (#2971)

Changed

  • Core: Set maximum supported Ruby version (#2497)
  • Core: Prevent telemetry requests from being traced (#2961)
  • Core: Add env and type to Core configuration option (#2983, #2988, #2994)
  • Core: Remove lazy from Core configuration option (#2931, #2999)
  • Profiling: Bump libdatadog dependency to version 3 (#2948)
  • Profiling: Improve error message when ddtrace_profiling_loader fails to load (#2957)
  • Tracing: Improve log injection runtime conditionals (#2926, #2882)

Fixed

  • Core: Fix polynomial-time regular expressions (#2814)
  • Core: Fix environment variable for dynamic configuration polling interval (#2967)
  • Core: Reduce remote configuration error logging noise (#3011)
  • Tracing: Fix manual log injection for 128 bit trace_id (#2974)
  • Tracing: Ensure the GRPC client interceptor return the response (#2928) (@KJTsanaktsidis)
  • Tracing: Remove dynamic input used in regular expression (#2867)
  • Tracing: Fix distributed tracing header formats (#3005 )
  • Profiling: Fix profiler libmysqlclient version detection with mysql2-aurora gem (#2956)
  • Profiling: Automatically enable profiler "no signals" workaround for passenger web server (#2978)

1.12.1 - 2023-06-14

Added

  • Appsec: Add appsec.blocked tag to span (#2895)
  • Profiling: Add workaround for legacy profiler incompatibility with ruby-cloud-profiler gem (#2891)
  • Core: Allow setting remote configuration service name (#2853)

Changed

  • Appsec: Change the value format for the WAF address server.request.query (#2903)
  • Profiling: Log pkg-config command when building profiling native extension

Fixed

  • Appsec: Update blocked response content_type resolution (#2900)
  • Appsec: Ensure to use service entry span. (#2898)
  • Tracing: Fix AWS integration constant loading (#2896)

1.12.0 - 2023-06-02

Added

  • Profiling: Add support for profiling Ruby 3.3.0-preview1 (#2860)
  • Appsec: Appsec support nested apps (#2836)
  • Appsec: Appsec add support for custom rules (#2856)
  • Appsec: Update appsec static rules to 1.7.0 version (#2869)
  • Appsec: Tag AppSec on Rack top-level span (#2858)
  • Profiling: Implement "no signals" workaround and enable CPU Profiling 2.0 for all customers (#2873)
  • Ci: Update CI Visibility spec (#2874)
  • Appsec: Added missing waf addresses to request operation (#2883)

Changed

  • Tracing: Consistent APM Span tags for AWS SDK Requests (#2730)
  • Tracing: Change default service_name values Part 2 (#2765)
  • Profiling: Bump debase-ruby_core_source dependency to 3.2.1 (#2875)

Fixed

  • Telemetry: Disable for non-HTTP agent connection (#2815)
  • Tracing: Fix circular requires (#2826)
  • Tracing: Update comment about Datadog::Tracing::Distributed::Ext to correct modules (#2840)
  • Appsec: Check if :appsec setting is present before accessing it in remote component (#2854)
  • Telemetry: Do not send Dependency hash when version is present (#2855)
  • Core: Fix symbol configuration for env and service (#2864)
  • Tracing: Fix sql comment propagation full mode when tracing is disabled (#2866)
  • Appsec: Use relative URI for server.request.uri.raw (#2890)

1.11.1 - 2023-05-03

Fixed

  • Appsec: Remove misreported ASM_CUSTOM_RULES capability (#2829)
  • Appsec: Fix block response content negotiation (#2824)
  • Appsec: Fix incorrect remote configuration payload key handling (#2822)

1.11.0 - 2023-04-27

Highlights

As of ddtrace 1.11.0, these features are GA and emabled by default:

  • CPU Profiling 2.0
  • Remote Configuration
  • Telemetry

For more details, check the release notes.

Added

Changed

  • Core: Allow 1 as true value in environment variables (#2710)
  • Profiling: Enable CPU Profiling 2.0 by default (#2702)
  • Tracing: Improve controller instrumentation and deprecate option exception_controller (#2726)
  • Tracing: Implement Span Attribute Schema Environment Variable (#2727)
  • Tracing: Change default service_name values (gated by feature flag) (#2760)

Fixed

  • Bug: Tracing: Fix w3c propagation special character handling (#2720)
  • Performance: Tracing: Use +@ instead of dup for duplicating strings (#2704)
  • Profiling: Avoid triggering allocation sampling during sampling (#2690)
  • Integrations: Tracing: Fix Rails < 3 conditional check in Utils#railtie_supported? (#2695)
  • Profiling: Do not auto-enable new profiler when rugged gem is detected (#2741)
  • Tracing: Fix using SemanticLogger#log(severity, message, progname) (#2748) (@rqz13)
  • Profiling: Improve detection of mysql2 gem incompatibilities with profiler (#2770)
  • AppSec: Remove check for ::Rack::Request.instance_methods.include?(:each_header) at load time (#2778)
  • Tracing: Fix quadratic backtracking on invalid URI (#2788)
  • Community: Correctly set mutex (#2757) (@ixti)

Read the full changeset and the release milestone.

1.11.0.beta1 - 2023-04-14

As of ddtrace 1.11.0.beta1, CPU Profiling 2.0 is now GA and enabled by default. For more details, check the release notes.

As of ddtrace 1.11.0.beta1, Remote Configuration is now public beta and disabled by default. For more details, check the release notes.

Added

Changed

  • Core: Allow 1 as true value in environment variables (#2710)
  • Profiling: [PROF-7360] Enable CPU Profiling 2.0 by default (#2702)
  • Tracing: Improve controller instrumentation and deprecate option exception_controller (#2726)
  • Tracing: Implement Span Attribute Schema Environment Variable (#2727)

Fixed

  • Bug: Tracing: Fix w3c propagation special character handling (#2720)
  • Performance: Tracing: Use +@ instead of dup for duplicating strings (#2704)
  • Profiling: [PROF-7307] Avoid triggering allocation sampling during sampling (#2690)
  • Integrations: Tracing: Fix Rails < 3 conditional check in Utils#railtie_supported? (#2695)
  • Profiling: [PROF-7409] Do not auto-enable new profiler when rugged gem is detected (#2741)
  • Tracing: Fix using SemanticLogger#log(severity, message, progname) (#2748) (@rqz13)
  • Profiling: [PROF-6447] Improve detection of mysql2 gem incompatibilities with profiler (#2770)
  • AppSec: Remove check for ::Rack::Request.instance_methods.include?(:each_header) at load time (#2778)
  • Tracing: Fix quadratic backtracking on invalid URI (#2788)

1.10.1 - 2023-03-10

Fixed

  • CI: Update TeamCity environment variable support (#2668)
  • Core: Fix spurious dependency on AppSec when loading CI with require 'datadog/ci' (#2679)
  • Core: Allow multiple headers and multiple IPs per header for client IP (#2665)
  • AppSec: prevent side-effect on AppSec login event tracking method arguments (#2663) (@coneill-enhance)

1.10.0 - 2023-03-06

Added

  • Support Ruby 3.2 (#2601)
  • Publish init container image (beta) for dd-trace-rb injection through K8s admission controller (#2606)
  • Tracing: Support 128 bits trace id (#2543)
  • Tracing: Add tags to integrations (que / racecar / resque/ shoryken / sneakers / qless / delayed_job / kafka / sidekiq / dalli / presto / elasticsearch) (#2619, #2613 , #2608, #2590)
  • Appsec: Introduce AppSec::Instrumentation::Gateway::Argument (#2648)
  • Appsec: Block request when user ID matches rules (#2642)
  • Appsec: Block request base on response addresses matches (#2605)
  • Appsec: Allow to set user id denylist (#2612)
  • Profiling: Show profiler overhead in flamegraph for CPU Profiling 2.0 (#2607)
  • Profiling: Add support for allocation samples to ThreadContext (#2657)
  • Profiling: Exclude disabled profiling sample value types from output (#2634)
  • Profiling: Extend stack collector to record the alloc-samples metric (#2618)
  • Profiling: Add Profiling.allocation_count API for new profiler (#2635)

Changed

  • Tracing: rack instrumentation counts time spent in queue as part of the http_server.queue span (#2591) (@agrobbin)
  • Appsec: Update ruleset to 1.5.2 (#2662, #2659, #2598)
  • Appsec: Update libddwaf version to 1.6.2.0.0 (#2614)
  • Profiling: Upgrade profiler to use libdatadog v2.0.0 (#2599)
  • Profiling: Remove support for profiling Ruby 2.2 (#2592)

Fixed

  • Fix broken Ruby VM statistics for Ruby 3.2 (#2600)
  • Tracing: Fix 'uninitialized constant GRPC::Interceptor' error with 'gapic-common' gem (#2649)
  • Profiling: Fix profiler not adding the "In native code" placeholder (#2594)
  • Fix profiler detection for google-protobuf installation (#2595)

1.9.0 - 2023-01-30

As of ddtrace 1.9.0, CPU Profiling 2.0 is now in opt-in (that is, disabled by default) public beta. For more details, check the release notes.

Release notes: https://github.com/DataDog/dd-trace-rb/releases/tag/v1.9.0

Added

  • Tracing: Add Stripe instrumentation (#2557)
  • Tracing: Add configurable response codes considered as errors for Net/HTTP, httprb and httpclient (#2501, #2576)(@caramcc)
  • Tracing: Flexible header matching for HTTP propagator (#2504)
  • Tracing: OpenTelemetry Traces support (#2496)
  • Tracing: W3C: Propagate unknown values as-is (#2485)
  • Appsec: Add event kit API (#2512)
  • Profiling: Allow profiler development on arm64 macOS (#2573)
  • Core: Add profiling_enabled state to environment logger output (#2541)
  • Core: Add 'type' to OptionDefinition (#2493)
  • Allow debase-ruby_core_source 3.2.0 to be used (#2526)

Changed

  • Profiling: Upgrade to libdatadog to 1.0.1.1.0 (#2530)
  • Appsec: Update appsec rules 1.4.3 (#2580)
  • Ci: Update CI Visibility metadata extraction (#2586)

Fixed

  • Profiling: Fix wrong libdatadog version being picked during profiler build (#2531)
  • Tracing: Support PG calls with a block (#2522)
  • Ci: Fix error in teamcity env vars (#2562)

1.8.0 - 2022-12-14

Release notes: https://github.com/DataDog/dd-trace-rb/releases/tag/v1.8.0

As of ddtrace 1.8.0, CPU Profiling 2.0 is now in opt-in (that is, disabled by default) public beta. For more details, check the release notes.

Added

  • Core: Profiling: [PROF-6559] Mark Ruby CPU Profiling 2.0 as being in beta (#2489)
  • Tracing: Attempt to parse future version of TraceContext (#2473)
  • Tracing: Add DD_TRACE_PROPAGATION_STYLE option (#2466)
  • Integrations: Tracing: SQL comment propagation full mode with traceparent (#2464)
  • Integrations: Tracing: Wire W3C propagator to HTTP & gRPC propagation (#2458)
  • Integrations: Tracing: Auto-instrumentation with service_name from environmental variable (#2455)
  • Core: Integrations: Tracing: Deprecation notice for B3 propagation configuration (#2454)
  • Tracing: Add W3C Trace Context propagator (#2451)
  • Integrations: Tracing: Redis 5 Instrumentation (#2428)

Changed

  • Tracing: Changes error.msg to error.message for UNC (#2469)
  • Tracing: Semicolons not allowed in 'origin' (#2461)
  • Core: Dev/refactor: Tracing: Dev/internal: Move Utils#next_id and constants to Tracing::Utils (#2463)
  • Core: Dev/refactor: Tracing: Dev/internal: Move Tracing config settings from Core to Tracing (#2459)
  • Core: Dev/refactor: Tracing: Dev/internal: Move Tracing diagnostic code from Core to Tracing (#2453)

Fixed

  • Integrations: Tracing: Improve redis integration patching (#2470)
  • Tracing: Extra testing from W3C spec (#2460)

1.7.0 - 2022-11-29

Added

  • Integrations: Support que 2 (#2382) (@danhodge)
  • Tracing: Unified tagging span.kind as server and client (#2365)
  • Tracing: Adds span.kind tag for kafka, sidekiq, racecar, que, shoryuken, sneakers, and resque (#2420, #2419, #2413, #2394)
  • Tracing: Adds span.kind with values producer and consumer for delayed_job (#2393)
  • Tracing: Adds span.kind as client for redis (#2392)
  • Appsec: Pass HTTP client IP to WAF (#2316)
  • Unified tagging process_id (#2276)

Changed

  • Allow debase-ruby_core_source 0.10.18 to be used (#2435)
  • Update AppSec ruleset to v1.4.2 (#2390)
  • Refactored clearing of profile data after Ruby app forks (#2362, #2367)
  • Tracing: Move distributed propagation to Contrib (#2352)

Fixed

  • Fix ddtrace installation issue when users have CI=true (#2378)

1.6.1 - 2022-11-16

Changed

  • Limit redis version support to less than 5

Fixed

  • [redis]: Fix frozen input for Redis.new(...)

1.6.0 - 2022-11-15

Added

  • Trace level tags propagation in distributed tracing (#2260)
  • [hanami]: Hanami 1.x instrumentation (#2230)
  • [pg, mysql2]: option comment_propagation for SQL comment propagation, default is disabled (#2339)(#2324)

Changed

  • [rack, sinatra]: Squash nested spans and improve patching mechanism.
    No need to register Datadog::Tracing::Contrib::Sinatra::Tracer(#2217)
  • [rails, rack]: Fix Non-GET request method with rails exception controller (#2317)
  • Upgrade to libdatadog 0.9.0.1.0 (#2302)
  • Remove legacy profiling transport (#2062)

Fixed

  • [redis]: Fix redis instance configuration, not on client (#2363)
# Change your code from
Datadog.configure_onto(redis.client, service_name: '...')
# to
Datadog.configure_onto(redis, service_name: '...')
  • Allow DD_TAGS values to have the colon character (#2292)
  • Ensure that TraceSegment can be reported correctly when they are dropped (#2335)
  • Docs: Fixes upgrade guide on configure_onto (#2307)
  • Fix environment logger with IO transport (#2313)

1.5.2 - 2022-10-27

Deprecation notice

  • DD_TRACE_CLIENT_IP_HEADER_DISABLED was changed to DD_TRACE_CLIENT_IP_ENABLED. Although the former still works we encourage usage of the latter instead.

Changed

  • http.client_ip tag collection is made opt-in for APM. Note that http.client_ip is always collected when ASM is enabled as part of the security service provided (#2321, #2331)

Fixed

1.5.1 - 2022-10-19

Changed

  • Update libddwaf to 1.5.1 (#2306)
  • Improve libddwaf extension memory management (#2306)

Fixed

  • Fix URI::InvalidURIError (#2310, #2318) (@yujideveloper)
  • Handle URLs with invalid characters (#2311, #2319)
  • Fix missing appsec.event tag (#2306)
  • Fix missing Rack and Rails request body parsing for AppSec analysis (#2306)
  • Fix unneeded AppSec call in a Rack context when AppSec is disabled (#2306)
  • Fix spurious AppSec instrumentation (#2306)

1.5.0 - 2022-09-29

Deprecation notice

  • c.tracing.instrument :rack, { quantize: { base: ... } } will change its default from :exclude to :show in a future version. Voluntarily moving to :show is recommended.
  • c.tracing.instrument :rack, { quantize: { query: { show: ... } } will change its default to :all in a future version, together with quantize.query.obfuscate changing to :internal. Voluntarily moving to these future values is recommended.

Added

  • Feature: Single Span Sampling (#2128)
  • Add query string automatic redaction (#2283)
  • Use full URL in http.url tag (#2265)
  • Add http.useragent tag (#2252)
  • Add http.client_ip tag for Rack-based frameworks (#2248)
  • Ci-app: CI: Fetch committer and author in Bitrise (#2258)

Changed

  • Bump allowed version of debase-ruby_core_source to include v0.10.17 (#2267)

Fixed

  • Bug: Fix service_nam typo to service_name (#2296)
  • Bug: Check AppSec Rails for railties instead of rails meta gem (#2293) (@seuros)
  • Ci-app: Correctly extract commit message from AppVeyor (#2257)

[1.4.2] - 2022-09-27

Fixed

OpenTracing context propagation (#2191, #2289)

1.4.1 - 2022-09-15

Fixed

  • Missing distributed traces when trace is dropped by priority sampling (#2101, #2279)
  • Profiling support when Ruby is compiled without a shared library (#2250)

1.4.0 - 2022-08-25

Release notes: https://github.com/DataDog/dd-trace-rb/releases/tag/v1.4.0

Git diff: https://github.com/DataDog/dd-trace-rb/compare/v1.3.0...v1.4.0

Added

  • gRPC: tag grpc.client.deadline (#2200)
  • Implement telemetry, disable by default (#2153)

Changed

  • Bump libdatadog dependency version (#2229)

Fixed

  • Fix CI instrumentation configuration (#2219)

1.3.0 - 2022-08-04

Release notes: https://github.com/DataDog/dd-trace-rb/releases/tag/v1.3.0

Git diff: https://github.com/DataDog/dd-trace-rb/compare/v1.2.0...v1.3.0

Added

  • Top-level span being tagged to avoid duplicate computation (#2138)

Changed

  • ActiveSupport: Optionally disable tracing with Rails (@marcotc)
  • Rack: Resource overwritten by nested application (#2180)
  • Rake: Explicit task instrumentation to prevent memory bloat (#2174)
  • Sidekiq and DelayedJob: Add spans to improve tracing (#2170)
  • Drop Profiling support for Ruby 2.1 (#2140)
  • Migrate libddprof dependency to libdatadog (#2061)

Fixed

  • Fix OpenTracing propagation with TraceDigest (#2201)
  • Fix SpanFilter dropping descendant spans (#2074)
  • Redis: Fix Empty pipelined span being dropped (#757) (@sponomarev)
  • Fix profiler not restarting on Process.daemon (#2150)
  • Fix setting service from Rails configuration (#2118) (@agrobbin)
  • Some document and development improvement (@marocchino) (@yukimurasawa)

1.2.0 - 2022-07-11

Release notes: https://github.com/DataDog/dd-trace-rb/releases/tag/v1.2.0

Git diff: https://github.com/DataDog/dd-trace-rb/compare/v1.1.0...v1.2.0

Special thanks go to @miketheman for gifting Datadog access to the datadog gem a few days ago.

Added

  • Add Postgres (pg gem) instrumentation (#2054) (@jennchenn)
  • Add env var for debugging profiling native extension compilation issues (#2069)
  • Teach Rest Client integration the :split_by_domain option (#2079) (@agrobbin)
  • Allow passing request_queuing option to Rack through Rails tracer (#2082) (@KieranP)
  • Add Utility to Collect Platform Information (#2097) (@jennchenn)
  • Add convenient interface for getting and setting tags using [] and []= respectively (#2076) (@ioquatix)
  • Add b3 metadata in grpc (#2110) (@henrich-m)

Changed

  • Profiler now reports profiling data using the libddprof gem (#2059)
  • Rename Kernel#at_fork_blocks monkey patch to Kernel#ddtrace_at_fork_blocks (#2070)
  • Improved error message for enabling profiling when pkg-config system tool is not installed (#2134)

Fixed

  • Prevent errors in action_controller integration when tracing is disabled (#2027) (@ahorner)
  • Fix profiler not building on ruby-head (3.2) due to VM refactoring (#2066)
  • Span and trace IDs should not be zero (#2113) (@albertvaka)
  • Fix object_id usage as thread local key (#2096)
  • Fix profiling not working on Heroku and AWS Elastic Beanstalk due to linking issues (#2125)

1.1.0 - 2022-05-25

Release notes: https://github.com/DataDog/dd-trace-rb/releases/tag/v1.1.0

Git diff: https://github.com/DataDog/dd-trace-rb/compare/v1.0.0...v1.1.0

Added

Changed

  • Support spaces in environment variable DD_TAGS (#2011)

Fixed

  • Fix "circular require considered harmful" warnings (#1998)
  • Logging: Change ddsource to a scalar value (#2022)
  • Improve exception logging (#1992)

1.0.0 - 2022-04-28

Release notes: https://github.com/DataDog/dd-trace-rb/releases/tag/v1.0.0

Git diff: https://github.com/DataDog/dd-trace-rb/compare/v1.0.0.beta2...v1.0.0

Diff since last stable release: https://github.com/DataDog/dd-trace-rb/compare/v0.54.2...v1.0.0

Added

  • GraphQL 2.0 support (#1982)

Changed

  • AppSec: Update libddwaf to 1.3.0 (#1981)

Fixed

  • Rails log correlation (#1989) (@cwoodcox)
  • Resource not inherited from lazily annotated spans (#1983)
  • AppSec: Query address for libddwaf (#1990)

Refactored

1.0.0.beta2 - 2022-04-14

Release notes: https://github.com/DataDog/dd-trace-rb/releases/tag/v1.0.0.beta2

Git diff: https://github.com/DataDog/dd-trace-rb/compare/v1.0.0.beta1...v1.0.0.beta2

Added

Changed

  • Access to configuration settings is namespaced (#1922)
  • AWS provides metrics by default (#1976) (@dudo)
  • Update debase-ruby_core_source version (#1964)
  • Profiling: Hide symbols/functions in native extension (#1968)
  • Profiling: Renamed code_provenance.json to code-provenance.json (#1919)
  • AppSec: Update libddwaf to v1.2.1 (#1942)
  • AppSec: Update rulesets to v1.3.1 (#1965, #1961, #1937)
  • AppSec: Avoid exception on missing ruleset file (#1948)
  • AppSec: Env var consistency (#1938)

Fixed

Removed

  • OpenTelemetry extensions (Use OTLP instead) (#1917)

Refactored

1.0.0.beta1 - 2022-02-15

Release notes: https://github.com/DataDog/dd-trace-rb/releases/tag/v1.0.0.beta1

Git diff: https://github.com/DataDog/dd-trace-rb/compare/v0.54.2...v1.0.0.beta1

See https://github.com/DataDog/dd-trace-rb/blob/v1.0.0.beta1/docs/UpgradeGuide.md.

0.54.2 - 2022-01-18

Release notes: https://github.com/DataDog/dd-trace-rb/releases/tag/v0.54.2

Git diff: https://github.com/DataDog/dd-trace-rb/compare/v0.54.1...v0.54.2

Changed

  • Bump debase-ruby_core_source dependency version; also allow older versions to be used (#1798, #1829)
  • Profiler: Reduce impact of reporting data in multi-process applications (#1807)
  • Profiler: Update API used to report data to backend (#1820)

Fixed

  • Gracefully handle installation on environments where Ruby JIT seems to be available but is actually broken (#1801)

0.54.1 - 2021-11-30

Release notes: https://github.com/DataDog/dd-trace-rb/releases/tag/v0.54.1

Git diff: https://github.com/DataDog/dd-trace-rb/compare/v0.54.0...v0.54.1

Fixed

  • Skip building profiling native extension when Ruby has been compiled without JIT (#1774, #1776)

0.54.0 - 2021-11-17

Release notes: https://github.com/DataDog/dd-trace-rb/releases/tag/v0.54.0

Git diff: https://github.com/DataDog/dd-trace-rb/compare/v0.53.0...v0.54.0

Added

  • MongoDB service name resolver when using multi cluster (#1423) (@skcc321)
  • Service name override for ActiveJob in Rails configuration (#1703, #1770) (@hatstand)
  • Profiler: Expose profile duration and start to the UI (#1709)
  • Profiler: Gather CPU time without monkey patching Thread (#1735, #1740)
  • Profiler: Link profiler samples to individual web requests (#1688)
  • Profiler: Capture threads with empty backtrace (#1719)
  • CI-App: Memoize environment tags to improve performance (#1762)
  • CI-App: test.framework_version tag for rspec and cucumber (#1713)

Changed

  • Set minimum version of dogstatsd-ruby 5 series to 5.3 (#1717)
  • Use USER_KEEP/USER_REJECT for RuleSampler decisions (#1769)

Fixed

  • "private method `ruby2_keywords' called" errors (#1712, #1714)
  • Configuration warning when Agent port is a String (#1720)
  • Ensure internal trace buffer respects its maximum size (#1715)
  • Remove erroneous maximum resque version support (#1761)
  • CI-App: Environment variables parsing precedence (#1745, #1763)
  • CI-App: GitHub Metadata Extraction (#1771)
  • Profiler: Missing thread id for natively created threads (#1718)
  • Docs: Active Job integration example code (#1721) (@y-yagi)

Refactored

0.53.0 - 2021-10-06

Release notes: https://github.com/DataDog/dd-trace-rb/releases/tag/v0.53.0

Git diff: https://github.com/DataDog/dd-trace-rb/compare/v0.52.0...v0.53.0

Added

  • ActiveJob integration (#1639) (@bensheldon)
  • Instrument Action Cable subscribe/unsubscribe hooks (#1674) (@agrobbin)
  • Instrument Sidekiq server internal events (heartbeat, job fetch, and scheduled push) (#1685) (@agrobbin)
  • Correlate Active Job logs to the active DataDog trace (#1694) (@agrobbin)
  • Runtime Metrics: Global VM cache statistics (#1680)
  • Automatically send traces to agent Unix socket if present (#1700)
  • CI-App: User Provided Git Metadata (#1662)
  • ActionMailer integration (#1280)

Changed

  • Profiler: Set Sinatra resource setting at beginning of request and delay setting fallback resource (#1628)
  • Profiler: Use most recent event for trace resource name (#1695)
  • Profiler: Limit number of threads per sample (#1699)
  • Profiler: Rename extract_trace_resource to endpoint.collection.enabled (#1702)

Fixed

  • Capture Rails exception before default error page is rendered (#1684)
  • NoMethodError in sinatra integration when Tracer middleware is missing (#1643, #1644) (@mscrivo)
  • CI-App: Require rspec-core for RSpec integration (#1654) (@elliterate)
  • CI-App: Use the merge request branch on merge requests (#1687) (@carlallen)
  • Remove circular dependencies. (#1668) (@saturnflyer)
  • Links in the Table of Contents (#1661) (@chychkan)
  • CI-App: Fix CI Visibility Spec Tests (#1706)

Refactored

  • Profiler: pprof encoding benchmark and improvements (#1511)

0.52.0 - 2021-08-09

Release notes: https://github.com/DataDog/dd-trace-rb/releases/tag/v0.52.0

Git diff: https://github.com/DataDog/dd-trace-rb/compare/v0.51.1...v0.52.0

Added

  • Add Sorbet typechecker to dd-trace-rb (#1607)

    Note that no inline type signatures were added, to avoid a hard dependency on sorbet.

  • Profiler: Add support for annotating profiler stacks with the resource of the active web trace, if any (#1623)

    Note that this data is not yet visible on the profiling interface.

  • Add error_handler option to GRPC tracer configuration (#1583) (@fteem)

  • User-friendly handling of slow submissions on shutdown (#1601)

  • Profiler: Add experimental toggle to disable the profiling native extension (#1594)

  • Profiler: Bootstrap profiling native extension (#1584)

Changed

  • Profiler: Profiling data is no longer reported when there's less than 1 second of data to report (#1630)
  • Move Grape span resource setting to beginning of request (#1629)
  • Set resource in Sinatra spans at the beginning of requests, and delay setting fallback resource to end of requests (#1628)
  • Move Rails span resource setting to beginning of request (#1626)
  • Make registry a global constant repository (#1572)
  • Profiler: Remove automatic agentless support (#1590)

Fixed

  • Profiler: Fix CPU-time accounting in Profiling when fibers are used (#1636)
  • Don't set peer.service tag on grpc.server spans (#1632)
  • CI-App: Fix GitHub actions environment variable extraction (#1622)
  • Additional Faraday 1.4+ cgroup parsing formats (#1595)
  • Avoid shipping development cruft files in gem releases (#1585)

0.51.1 - 2021-07-13

Release notes: https://github.com/DataDog/dd-trace-rb/releases/tag/v0.51.1

Git diff: https://github.com/DataDog/dd-trace-rb/compare/v0.51.0...v0.51.1

Fixed

  • AWS-SDK instrumentation without aws-sdk-s3 (#1592)

0.51.0 - 2021-07-12

Release notes: https://github.com/DataDog/dd-trace-rb/releases/tag/v0.51.0

Git diff: https://github.com/DataDog/dd-trace-rb/compare/v0.50.0...v0.51.0

Added

  • Semantic Logger trace correlation injection (#1566)
  • New and improved Lograge trace correlation injection (#1555)
  • Profiler: Start profiler on ddtrace/auto_instrument
  • CI-App: Add runtime and OS information (#1587)
  • CI-App: Read metadata from local git repository (#1561)

Changed

  • Rename Datadog::Runtime to Datadog::Core::Environment (#1570)

    As we prepare the Datadog Ruby namespace to better accommodate new products, we are moving a few internal modules to a different location to avoid conflicts.

    None of the affected files are exposed publicly in our documentation, and they are only expected to be used internally and may change at any time, even between patch releases.

    • The following modules have been moved:
    Datadog::Runtime::Cgroup -> Datadog::Core::Environment::Cgroup
    Datadog::Runtime::ClassCount -> Datadog::Core::Environment::ClassCount
    Datadog::Runtime::Container -> Datadog::Core::Environment::Container
    Datadog::Runtime::GC -> Datadog::Core::Environment::GC
    Datadog::Runtime::Identity -> Datadog::Core::Environment::Identity
    Datadog::Runtime::ObjectSpace -> Datadog::Core::Environment::ObjectSpace
    Datadog::Runtime::Socket -> Datadog::Core::Environment::Socket
    Datadog::Runtime::ThreadCount -> Datadog::Core::Environment::ThreadCount
    • Most constants from Datadog::Ext::Runtime have been moved to a new module: Datadog::Core::Environment::Ext.
  • Skip CPU time instrumentation if logging gem is detected (#1557)

Fixed

  • Initialize dogstatsd-ruby in single threaded mode (#1576)

    This should alleviate any existing issues with dogstatsd-ruby resource leaks.

  • Do not use configured dogstatsd-ruby instance when it's an incompatible version (#1560)

  • Ensure tags with special Datadog processing are consistently serialized (#1556)

  • Profiler: NameError during initialization (#1552)

Refactored

  • Improvements to test suite & CI (#1586)
  • Improvements to documentation (#1397)

[0.50.0] - 2021-06-07

Release notes: https://github.com/DataDog/dd-trace-rb/releases/tag/v0.50.0

Git diff: https://github.com/DataDog/dd-trace-rb/compare/v0.49.0...v0.50.0

Added

  • Add warning, update documentation, for incompatible dogstastd-ruby version (#1544#1533)
  • Add CI mode and Test mode feature (#1504)
  • Add Gem.loaded_specs fallback behavior if protobuf or dogstatsd-ruby already loaded(#1506#1510)

Changed

  • Declare EOL for Ruby 2.0 support (#1534)
  • Rename Thread#native_thread_id to #pthread_thread_id to avoid conflict with Ruby 3.1 (#1537)

Fixed

  • Fix tracer ignoring value for service tag (service.name) in DD_TAGS (#1543)
  • Fix nested error reporting to correctly walk clause chain (#1535)
  • Fix AWS integration to prevent S3 URL presigning from generating a remote request span (#1494)
  • Fix backtrace handling of exception classes that return nil message (#1500) (@masato-hi)

Refactored

[0.49.0] - 2021-05-12

Release notes: https://github.com/DataDog/dd-trace-rb/releases/tag/v0.49.0

Git diff: https://github.com/DataDog/dd-trace-rb/compare/v0.48.0...v0.49.0

Added

  • Add cause to error stack trace (#1472)

Changed

Fixed

  • Prevent double initialization when auto instrumenting non-Rails applications (#1497)
  • Support kwargs in Ruby 3.0 for sucker_punch (#1495) (@lloeki)
  • Fargate fixes and Container parsing for CGroups (#1487#1480#1475)
  • Fix ActionPack instrumentation #starts_with? error(#1489)
  • Doc fixes (#1473) (@kexoth)

Refactored

0.48.0 - 2021-04-19

Release notes: https://github.com/DataDog/dd-trace-rb/releases/tag/v0.48.0

Git diff: https://github.com/DataDog/dd-trace-rb/compare/v0.47.0...v0.48.0

Added

  • Makara support with ActiveRecord (#1447)
  • tag_body configuration for Shoryuken (#1449) (@gkampjes)

Changed

  • Add deprecation warning for Ruby 2.0 support (#1441)

    Support for Ruby 2.0 will be available up to release 0.49.x, and dropped from release 0.50.0 and greater. Users are welcome to continue using version < 0.50.0 for their Ruby 2.0 deployments going forward.

  • Auto instrument Resque workers by default (#1400)

Fixed

  • Ensure DD_TRACE_SAMPLE_RATE enables full RuleSampler (#1416)
  • Fix Fargate 1.4 container ID not being read (#1457)
  • Correctly close all StatsD clients (#1429)

Refactored

0.47.0 - 2021-03-29

Release notes: https://github.com/DataDog/dd-trace-rb/releases/tag/v0.47.0

Git diff: https://github.com/DataDog/dd-trace-rb/compare/v0.46.0...v0.47.0

Added

Changed

  • BREAKING Separate Resolver configuration and resolution steps (#1319)

    ActiveRecord describes configuration now supports partial matching

    Partial matching of connection fields (adapter, username, host, port, database) is now allowed. Previously, only an exact match of connections fields would be considered matching. This should help greatly simplify database configuration matching, as you will only need to provide enough fields to correctly separate your distinct database connections.

    If you have a c.use active_record, describe: statement in your application that is currently not matching any connections, you might start seeing them match after this release.

    c.use active_record, describe: statements that are currently matching a connection will continue to match that same connection.

    You can refer to the expanded ActiveSupport documentation for details on how to use the new partial matchers and configuration code examples.

    Datadog::Contrib::Configuration::Resolver interface changed

    The interface for Datadog::Contrib::Configuration::Resolver has changed: custom configuration resolvers that inherit from Datadog::Contrib::Configuration::Resolver will need be changed to fulfill the new interface. See code documentation for Datadog::Contrib::Configuration::Resolver for specific API requirements.

  • Remove type check from ThreadLocalContext#local. (#1399) (@orekyuu)

Fixed

  • Support for JRuby 9.2.0.0 (#1409)
  • Failed integration message (#1394) (@e1senh0rn)
  • Addressed "warning: instance variable @components not initialized" (#1419)
  • Close /proc/self/cgroup file after reading (#1414)
  • Improve internal "only once" behavior across the tracer (#1398)
  • Increase thread-safety during tracer initialization (#1418)

Refactored

0.46.0 - 2021-03-03

Release notes: https://github.com/DataDog/dd-trace-rb/releases/tag/v0.46.0

Git diff: https://github.com/DataDog/dd-trace-rb/compare/v0.45.0...v0.46.0

Added

  • Add EventBridge to supported AWS services (#1368) (@tomgi)
  • Add time_now_provider configuration option (#1224)
    • This new option allows the span start_time and end_time to be configured in environments that change the default time provider, like with Timecop. More information in the official documentation.
  • Add name to background threads created by ddtrace (#1366)

Changed

  • Rework RSpec instrumentation as separate traces for each test (#1381)

Fixed

  • ArgumentError: wrong number of arguments (given 2, expected 0) due to concurrent require (#1306, #1354) (@EvNomad)
  • Fix Rails' deprecation warnings (#1352)
  • Fully populate Rake span fields on exceptions (#1377)
  • Fix a typo in httpclient integration (#1365) (@y-yagi)
  • Add missing license files for vendor'd code (#1346)

Refactored

Removed

  • Remove deprecated Datadog::Monkey (#1341)
  • Remove deprecated Datadog::DeprecatedPin (#1342)
  • Remove unused Shim/MethodWrapper/MethodWrapping (#1347)
  • Remove APP_ANALYTICS from tests instrumentation (#1378) (@AdrianLC)

0.45.0 - 2021-01-26

Release notes: https://github.com/DataDog/dd-trace-rb/releases/tag/v0.45.0

Git diff: https://github.com/DataDog/dd-trace-rb/compare/v0.44.0...v0.45.0

Added

Changed

  • Promote request_queuing out of experimental (#1320)
  • Safeguards around distributed HTTP propagator (#1304)
  • Improvements to test integrations (#1291, #1303, #1307)

Refactored

0.44.0 - 2021-01-06

Release notes: https://github.com/DataDog/dd-trace-rb/releases/tag/v0.44.0

Git diff: https://github.com/DataDog/dd-trace-rb/compare/v0.43.0...v0.44.0

Added

Changed

  • Reduce Runtime Metrics frequency to every 10 seconds (#1269)

Fixed

  • Disambiguate resource names for Grape endpoints with shared paths (#1279) (@pzaich)
  • Remove invalid Jenkins URL from CI integration (#1283)

Refactored

0.43.0 - 2020-11-18

Release notes: https://github.com/DataDog/dd-trace-rb/releases/tag/v0.43.0

Git diff: https://github.com/DataDog/dd-trace-rb/compare/v0.42.0...v0.43.0

Added

  • Background job custom error handlers (#1212) (@norbertnytko)
  • Add "multi" methods instrumentation for Rails cache (#1217) (@michaelkl)
  • Support custom error status codes for Grape (#1238)
  • Cucumber integration (#1216)
  • RSpec integration (#1234)
  • Validation to :on_error argument on Datadog::Tracer#trace (#1220)

Changed

  • Update TokenBucket#effective_rate calculation (#1236)

Fixed

  • Avoid writer reinitialization during shutdown (#1235, #1248)
  • Fix configuration multiplexing (#1204, #1227)
  • Fix misnamed B3 distributed headers (#1226, #1229)
  • Correct span type for AWS SDK (#1233)
  • Correct span type for internal Pin on HTTP clients (#1239)
  • Reset trace context after fork (#1225)

Refactored

Removed

[0.42.0] - 2020-10-21

Release notes: https://github.com/DataDog/dd-trace-rb/releases/tag/v0.42.0

Git diff: https://github.com/DataDog/dd-trace-rb/compare/v0.41.0...v0.42.0

Added

Changed

Fixed

  • Improve Rails log_injection option to support more Lograge formats (#1210) (@Supy)

  • Fix Changelog (#1199) (@y-yagi)

Refactored

  • Refactor Trace buffer into multiple components (#1195)

0.41.0 - 2020-09-30

Release notes: https://github.com/DataDog/dd-trace-rb/releases/tag/v0.41.0

Git diff: https://github.com/DataDog/dd-trace-rb/compare/v0.40.0...v0.41.0

Added

Changed

  • Add peer.service tag to external services and skip tagging external services with language tag for runtime metrics (#934, #935, #1180)
    • This helps support the way runtime metrics are associated with spans in the UI.
  • Faster TraceBuffer for CRuby (#1172)
  • Reduce memory usage during gem startup (#1090)
  • Reduce memory usage of the HTTP transport (#1165)

Fixed

  • Improved prepared statement support for Sequel integrations (#1186)
  • Fix Sequel instrumentation when executing literal strings (#1185) (@matchbookmac)
  • Remove explicit Logger class verification (#1181) (@bartekbsh)
    • This allows users to pass in a custom logger that does not inherit from Logger class.
  • Correct tracer buffer metric counting (#1182)
  • Fix Span#pretty_print for empty duration (#1183)

Refactored

0.40.0 - 2020-09-08

Release notes: https://github.com/DataDog/dd-trace-rb/releases/tag/v0.40.0

Git diff: https://github.com/DataDog/dd-trace-rb/compare/v0.39.0...v0.40.0

Added

  • Rails log_injection option to auto enable log correlation (#1157)
  • Que integration (#1141, #1146) (@hs-bguven)
  • Components#startup! hook (#1151)
  • Code coverage report (#1159)
    • Every commit now has a coverage CI step that contains the code coverage report. This report can be found in the Artifacts tab of that CI step, under coverage/index.html.

Changed

  • Use a single top level span for Racecar consumers (#1150) (@dasch)

Fixed

  • Sinatra nested modular applications possibly leaking spans (#1035, #1145)

    • BREAKING for nested modular Sinatra applications only:
      class Nested < Sinatra::Base
      end
      
      class TopLevel < Sinatra::Base
        use Nested # Nesting happens here
      end
    • Non-breaking for classic applications nor modular non-nested applications.

    Fixes issues introduced by #1015 (in 0.35.0), when we first introduced Sinatra support for modular applications.

    The main issue we had to solve for modular support is how to handle nested applications, as only one application is actually responsible for handling the route. A naive implementation would cause the creation of nested sinatra.request spans, even for applications that did not handle the request. This is technically correct, as Sinatra is traversing that middleware, accruing overhead, but that does not aligned with our existing behavior of having a single sinatra.request span.

    While trying to achieve backwards-compatibility, we had to resort to a solution that turned out brittle: sinatra.request spans had to start in one middleware level and finished it in another. This allowed us to only capture the sinatra.request for the matching route, and skip the non-matching one. This caused unexpected issues on some user setups, specially around Sinatra middleware that created spans in between the initialization and closure of sinatra.request spans.

    This change now address these implementation issues by creating multiple sinatra.request, one for each traversed Sinatra application, even non-matching ones. This instrumentation is more correct, but at the cost of being a breaking change for nested modular applications.

    Please see #1145 for more information, and example screenshots on how traces for affected applications will look like.

  • Rack/Rails span error propagation with rescue_from (#1155, #1162)

  • Prevent logger recursion during startup (#1158)

  • Race condition on new worker classes (#1154)

    • These classes represent future work, and not being used at the moment.

Refactored

Removed

  • Ruby 1.9 support ended, as it transitions from Maintenance to End-Of-Life (#1137)
  • GitLab status check when not applicable (#1160)
    • Allows for PRs pass all status checks once again. Before this change, a dd-gitlab/copy_to_s3 check would never leave the "Pending" status. This check tracks the deployment of a commit to an internal testing platform, which currently only happens on master branch or when manually triggered internally.

0.39.0 - 2020-08-05

Release notes: https://github.com/DataDog/dd-trace-rb/releases/tag/v0.39.0

Git diff: https://github.com/DataDog/dd-trace-rb/compare/v0.38.0...v0.39.0

Added

Changed

  • Consistent environment variables across languages (#1115)
  • Default logger level from WARN to INFO (#1120) (@gingerlime)
    • This change also reduces the startup environment log message to INFO level (#1104)

Fixed

Refactored

  • Improved ActiveRecord documentation (#1119)
  • Improvements to test suite (#1105, #1118)

0.38.0 - 2020-07-13

Release notes: https://github.com/DataDog/dd-trace-rb/releases/tag/v0.38.0

Git diff: https://github.com/DataDog/dd-trace-rb/compare/v0.37.0...v0.38.0

Added

Changed

  • Auto instrument Faraday default connection (#1057)
  • Sidekiq client middleware is now the same for client and server (#1099) (@drcapulet)
  • Single pass SpanFilter (#1071) (@tjwp)

Fixed

  • Ensure fatal exceptions are propagated (#1100)
  • Respect child_of: option in Tracer#trace (#1082) (@DocX)
  • Improve Writer thread safety (#1091) (@fledman)

Refactored

0.37.0 - 2020-06-24

Release notes: https://github.com/DataDog/dd-trace-rb/releases/tag/v0.37.0

Git diff: https://github.com/DataDog/dd-trace-rb/compare/v0.36.0...v0.37.0

Refactored

Removed

  • DEPRECATION: Deprecate Contrib::Configuration::Settings#tracer= (#1072, #1079)

    • The tracer: option is no longer supported for integration configuration. A deprecation warning will be issued when this option is used.

    • Tracer instances are dynamically created when ddtrace is reconfigured (through Datadog.configure{} calls).

      A reference to a tracer instance cannot be stored as it will be replaced by a new instance during reconfiguration.

      Retrieving the global tracer instance, by invoking Datadog.tracer, is the only safe mechanism to acquire the active tracer instance.

      Allowing an integration to set its tracer instance is effectively preventing that integration from dynamically retrieving the current active tracer in the future, thus causing it to record spans in a stale tracer instance. Spans recorded in a stale tracer instance will look disconnected from their parent context.

  • BREAKING: Remove Pin#tracer= and DeprecatedPin#tracer= (#1073)

    • The Pin and DeprecatedPin are internal tools used to provide more granular configuration for integrations.
    • The APIs being removed are not public nor have been externally documented. The DeprecatedPin specifically has been considered deprecated since 0.20.0.
    • This removal is a continuation of #1079 above, thus carrying the same rationale.

Migration

  • Remove tracer argument provided to integrations (e.g. c.use :rails, tracer: ...).
  • Remove tracer argument provided to Pin or DeprecatedPin initializers (e.g. Pin.new(service, tracer: ...)).
  • If you require a custom tracer instance, use a global instance configuration:
    Datadog.configure do |c|
      c.tracer.instance = custom_tracer
    end

0.36.0 - 2020-05-27

Release notes: https://github.com/DataDog/dd-trace-rb/releases/tag/v0.36.0

Git diff: https://github.com/DataDog/dd-trace-rb/compare/v0.35.2...v0.36.0

Changed

  • Prevent trace components from being re-initialized multiple times during setup (#1037)

Fixed

Refactored

0.35.2 - 2020-05-08

Release notes: https://github.com/DataDog/dd-trace-rb/releases/tag/v0.35.2

Git diff: https://github.com/DataDog/dd-trace-rb/compare/v0.35.1...v0.35.2

Fixed

0.35.1 - 2020-05-05

Release notes: https://github.com/DataDog/dd-trace-rb/releases/tag/v0.35.1

Git diff: https://github.com/DataDog/dd-trace-rb/compare/v0.35.0...v0.35.1

Fixed

0.35.0 - 2020-04-29

Release notes: https://github.com/DataDog/dd-trace-rb/releases/tag/v0.35.0

Git diff: https://github.com/DataDog/dd-trace-rb/compare/v0.34.2...v0.35.0

Added

Changed

  • Populate env, service, and version from tags (#1008)
  • Extract components from configuration (#996)
  • Extract logger to components (#997)
  • Extract runtime metrics worker from Writer (#1004)
  • Improvements to Faraday documentation (#1005)

Fixed

  • Runtime metrics not starting after #write (#1010)

Refactored

0.34.2 - 2020-04-09

Release notes: https://github.com/DataDog/dd-trace-rb/releases/tag/v0.34.2

Git diff: https://github.com/DataDog/dd-trace-rb/compare/v0.34.1...v0.34.2

Changed

  • Revert Rails applications setting default env if none are configured. (#1000) (@errriclee)

0.34.1 - 2020-04-02

Release notes: https://github.com/DataDog/dd-trace-rb/releases/tag/v0.34.1

Git diff: https://github.com/DataDog/dd-trace-rb/compare/v0.34.0...v0.34.1

Changed

  • Rails applications set default service and env if none are configured. (#990)

Fixed

0.34.0 - 2020-03-31

Release notes: https://github.com/DataDog/dd-trace-rb/releases/tag/v0.34.0

Git diff: https://github.com/DataDog/dd-trace-rb/compare/v0.33.1...v0.34.0

Added

  • Datadog::Event for simple pub-sub messaging (#972)
  • Datadog::Workers for trace writing (#969, #973)
  • _dd.measured tag to some integrations for more statistics (#974)
  • env, service, version, tags configuration for auto-tagging (#977, #980, #982, #983, #985)
  • Multiplexed configuration for Ethon, Excon, Faraday, HTTP integrations (#882, #953) (@stormsilver)

Fixed

  • Runtime metrics configuration dropping with new writer (#967, #968) (@ericmustin)
  • Faraday "unexpected middleware" warnings on v0.x (#965, #971)
  • Presto configuration (#975)
  • Test suite issues (#981)

0.33.1 - 2020-03-09

Release notes: https://github.com/DataDog/dd-trace-rb/releases/tag/v0.33.1

Git diff: https://github.com/DataDog/dd-trace-rb/compare/v0.33.0...v0.33.1

Fixed

0.33.0 - 2020-03-05

Release notes: https://github.com/DataDog/dd-trace-rb/releases/tag/v0.33.0

Git diff: https://github.com/DataDog/dd-trace-rb/compare/v0.32.0...v0.33.0

Added

Changed

  • Enforced minimum version requirements for instrumentation (#944)
  • RubyGems minimum version requirement 2.0.0 (#954) (@Joas1988)
  • Relaxed Rack minimum version to 1.1.0 (#952)

Fixed

0.32.0 - 2020-01-22

Release notes: https://github.com/DataDog/dd-trace-rb/releases/tag/v0.32.0

Git diff: https://github.com/DataDog/dd-trace-rb/compare/v0.31.1...v0.32.0

Added

  • New transport: Datadog::Transport::IO (#910)
  • Dual License (#893, #921)

Changed

  • Improved annotation of net/http spans during exception (#888, #907) (@djmb, @ericmustin)
  • RuleSampler is now the default sampler; no behavior changes by default (#917)

Refactored

  • Improved support for multiple tracer instances (#919)
  • Improvements to test suite (#909, #928, #929)

0.31.1 - 2020-01-15

Release notes: https://github.com/DataDog/dd-trace-rb/releases/tag/v0.31.1

Git diff: https://github.com/DataDog/dd-trace-rb/compare/v0.31.0...v0.31.1

Fixed

  • Implement SyncWriter#stop method (#914, #915) (@Yurokle)
  • Fix references to Datadog::Tracer.log (#912)
  • Ensure http.status_code tag is always a string (#927)

Refactored

  • Improvements to test suite & CI (#911, #918)

0.31.0 - 2020-01-07

Release notes: https://github.com/DataDog/dd-trace-rb/releases/tag/v0.31.0

Git diff: https://github.com/DataDog/dd-trace-rb/compare/v0.30.1...v0.31.0

Added

Changed

  • Updated partial trace flushing to conform with new back-end requirements (#845)
  • Store numeric tags as metrics (#886)
  • Moved logging from Datadog::Tracer to Datadog::Logger (#880)
  • Changed default RuleSampler rate limit from unlimited to 100/s (#898)

Fixed

  • SyncWriter incompatibility with Transport::HTTP::Client (#903, #904) (@Yurokle)

Refactored

0.30.1 - 2019-12-30

Release notes: https://github.com/DataDog/dd-trace-rb/releases/tag/v0.30.1

Git diff: https://github.com/DataDog/dd-trace-rb/compare/v0.30.0...v0.30.1

Fixed

  • NoMethodError when configuring tracer with SyncWriter (#899, #900) (@Yurokle)
  • Spans associated with runtime metrics when disabled (#885)

Refactored

0.30.0 - 2019-12-04

Release notes: https://github.com/DataDog/dd-trace-rb/releases/tag/v0.30.0

Git diff: https://github.com/DataDog/dd-trace-rb/compare/v0.29.1...v0.30.0

Added

  • Additional tracer health metrics (#867)
  • Integration patching instrumentation (#871)
  • Rule-based trace sampling (#854)

Fixed

  • Rails template layout name error (#872) (@djmb)

0.29.1 - 2019-11-26

Release notes: https://github.com/DataDog/dd-trace-rb/releases/tag/v0.29.1

Git diff: https://github.com/DataDog/dd-trace-rb/compare/v0.29.0...v0.29.1

Fixed

  • Priority sampling not activating by default (#868)

0.29.0 - 2019-11-20

Release notes: https://github.com/DataDog/dd-trace-rb/releases/tag/v0.29.0

Git diff: https://github.com/DataDog/dd-trace-rb/compare/v0.28.0...v0.29.0

Added

Changed

  • Default trace buffer size from 100 to 1000 (#865)
  • Rack request start headers to accept more values (#832) (@JamesHarker)
  • Faraday to apply default instrumentation out-of-the-box (#786, #843) (@mdross95)

Fixed

  • Synthetics trace context being ignored (#856)

Refactored

  • Tracer buffer constants (#851)

Removed

0.28.0 - 2019-10-01

Release notes: https://github.com/DataDog/dd-trace-rb/releases/tag/v0.28.0

Git diff: https://github.com/DataDog/dd-trace-rb/compare/v0.27.0...v0.28.0

Added

  • Support for Rails 6.0 (#814)
  • Multiplexing on hostname/port for Dalli (#823)
  • Support for Redis array arguments (#796, #817) (@brafales)

Refactored

0.27.0 - 2019-09-04

Release notes: https://github.com/DataDog/dd-trace-rb/releases/tag/v0.27.0

Git diff: https://github.com/DataDog/dd-trace-rb/compare/v0.26.0...v0.27.0

Support for Ruby < 2.0 is removed. Plan for timeline is as follows:

  • 0.25.0: Support for Ruby < 2.0 is deprecated; retains full feature support.
  • 0.26.0: Last version to support Ruby < 2.0; any new features will not support 1.9.
  • 0.27.0: Support for Ruby < 2.0 is removed.

Version 0.26.x will receive only critical bugfixes for 1 year following the release of 0.26.0 (August 6th, 2020.)

Added

Refactored

  • Rails integration into smaller integrations per component (#747, #762, #795)

Removed

  • Support for Ruby 1.9 (#791)

0.26.0 - 2019-08-06

Release notes: https://github.com/DataDog/dd-trace-rb/releases/tag/v0.26.0

Git diff: https://github.com/DataDog/dd-trace-rb/compare/v0.25.1...v0.26.0

Support for Ruby < 2.0 is deprecated. Plan for timeline is as follows:

  • 0.25.0: Support for Ruby < 2.0 is deprecated; retains full feature support.
  • 0.26.0: Last version to support Ruby < 2.0; any new features will not support 1.9.
  • 0.27.0: Support for Ruby < 2.0 is removed.

Version 0.26.x will receive only critical bugfixes for 1 year following the release of 0.26.0 (August 6th, 2020.)

Added

  • Container ID tagging for containerized environments (#784)

Refactored

  • Datadog::Metrics constants (#789)

Removed

  • Datadog::HTTPTransport and related components (#782)

0.25.1 - 2019-07-16

Release notes: https://github.com/DataDog/dd-trace-rb/releases/tag/v0.25.1

Git diff: https://github.com/DataDog/dd-trace-rb/compare/v0.25.0...v0.25.1

Fixed

  • Redis integration not quantizing AUTH command (#776)

0.25.0 - 2019-06-27

Release notes: https://github.com/DataDog/dd-trace-rb/releases/tag/v0.25.0

Git diff: https://github.com/DataDog/dd-trace-rb/compare/v0.24.0...v0.25.0

Support for Ruby < 2.0 is deprecated. Plan for timeline is as follows:

  • 0.25.0: Support for Ruby < 2.0 is deprecated; retains full feature support.
  • 0.26.0: Last version to support Ruby < 2.0; any new features will not support 1.9.
  • 0.27.0: Support for Ruby < 2.0 is removed.

Version 0.26.x will receive only critical bugfixes for 1 year following the release of 0.26.0.

Added

  • Unix socket support for transport layer (#770)

Changed

  • Renamed 'ForcedTracing' to 'ManualTracing' (#765)

Fixed

  • HTTP headers for distributed tracing sometimes appearing in duplicate (#768)

Refactored

  • Transport layer (#628)

Deprecated

  • Ruby < 2.0 support (#771)
  • Use of Datadog::HTTPTransport (#628)
  • Use of Datadog::Ext::ForcedTracing (#765)

0.24.0 - 2019-05-21

Release notes: https://github.com/DataDog/dd-trace-rb/releases/tag/v0.24.0

Git diff: https://github.com/DataDog/dd-trace-rb/compare/v0.23.3...v0.24.0

Added

  • B3 header support (#753)
  • Hostname tagging option (#760)
  • Contribution and development guides (#754)

0.23.3 - 2019-05-16

Release notes: https://github.com/DataDog/dd-trace-rb/releases/tag/v0.23.3

Git diff: https://github.com/DataDog/dd-trace-rb/compare/v0.23.2...v0.23.3

Fixed

  • Integrations initializing tracer at load time (#756)

0.23.2 - 2019-05-10

Release notes: https://github.com/DataDog/dd-trace-rb/releases/tag/v0.23.2

Git diff: https://github.com/DataDog/dd-trace-rb/compare/v0.23.1...v0.23.2

Fixed

0.23.1 - 2019-05-02

Release notes: https://github.com/DataDog/dd-trace-rb/releases/tag/v0.23.1

Git diff: https://github.com/DataDog/dd-trace-rb/compare/v0.23.0...v0.23.1

Fixed

  • NoMethodError runtime_metrics for SyncWriter (#748)

0.23.0 - 2019-04-30

Release notes: https://github.com/DataDog/dd-trace-rb/releases/tag/v0.23.0

Git diff: https://github.com/DataDog/dd-trace-rb/compare/v0.22.0...v0.23.0

Added

  • Error status support via tags for OpenTracing (#739)
  • Forced sampling support via tags (#720)

Fixed

Removed

  • Obsolete service telemetry (#738)

0.22.0 - 2019-04-15

Release notes: https://github.com/DataDog/dd-trace-rb/releases/tag/v0.22.0

Git diff: https://github.com/DataDog/dd-trace-rb/compare/v0.21.2...v0.22.0

In this release we are adding initial support for the beta Runtime metrics collection feature.

Changed

Added

  • Initial beta support for Runtime metrics collection (#677)

0.21.2 - 2019-04-10

Release notes: https://github.com/DataDog/dd-trace-rb/releases/tag/v0.21.2

Git diff: https://github.com/DataDog/dd-trace-rb/compare/v0.21.1...v0.21.2

Changed

0.21.1 - 2019-03-26

Release notes: https://github.com/DataDog/dd-trace-rb/releases/tag/v0.21.1

Git diff: https://github.com/DataDog/dd-trace-rb/compare/v0.21.0...v0.21.1

Changed

  • Support TAG_ENABLED for custom instrumentation with analytics. (#728)

0.21.0 - 2019-03-20

Release notes: https://github.com/DataDog/dd-trace-rb/releases/tag/v0.21.0

Git diff: https://github.com/DataDog/dd-trace-rb/compare/v0.20.0...v0.21.0

Added

  • Trace analytics support (#697, #715)
  • HTTP after_request span hook (#716, #724)

Fixed

Refactored

  • Global configuration for tracing into configuration API (#714)

0.20.0 - 2019-03-07

Release notes: https://github.com/DataDog/dd-trace-rb/releases/tag/v0.20.0

Git diff: https://github.com/DataDog/dd-trace-rb/compare/v0.19.1...v0.20.0

This release will log deprecation warnings for any usage of Datadog::Pin. These changes are backwards compatible, but all integration configuration should be moved away from Pin and to the configuration API instead.

Added

  • Propagate synthetics origin header (#699)

Changed

  • Enable distributed tracing by default (#701)

Fixed

  • Fix Rack http_server.queue spans missing from distributed traces (#709)

Refactored

  • Refactor MongoDB to use instrumentation module (#704)
  • Refactor HTTP to use instrumentation module (#703)
  • Deprecate GRPC global pin in favor of configuration API (#702)
  • Deprecate Grape pin in favor of configuration API (#700)
  • Deprecate Faraday pin in favor of configuration API (#696)
  • Deprecate Dalli pin in favor of configuration API (#693)

0.19.1 - 2019-02-07

Release notes: https://github.com/DataDog/dd-trace-rb/releases/tag/v0.19.1

Git diff: https://github.com/DataDog/dd-trace-rb/compare/v0.19.0...v0.19.1

Added

Fixed

  • Priority sampling dropping spans (#686)

0.19.0 - 2019-01-22

Release notes: https://github.com/DataDog/dd-trace-rb/releases/tag/v0.19.0

Git diff: https://github.com/DataDog/dd-trace-rb/compare/v0.18.3...v0.19.0

Added

  • Tracer#active_correlation for adding correlation IDs to logs. (#660, #664, #673)
  • Opt-in support for event_sample_rate tag for some integrations. (#665, #666)

Changed

  • Priority sampling enabled by default. (#654)

0.18.3 - 2019-01-17

Release notes: https://github.com/DataDog/dd-trace-rb/releases/tag/v0.18.3

Git diff: https://github.com/DataDog/dd-trace-rb/compare/v0.18.2...v0.18.3

Fixed

  • Mongo NoMethodError when no span available during #failed. (#674, #675) (@Azure7111)
  • Rack deprecation warnings firing with some 3rd party libraries present. (#672)
  • Shoryuken resource name when used with ActiveJob. (#671) (@aurelian)

0.18.2 - 2019-01-03

Release notes: https://github.com/DataDog/dd-trace-rb/releases/tag/v0.18.2

Git diff: https://github.com/DataDog/dd-trace-rb/compare/v0.18.1...v0.18.2

Fixed

0.18.1 - 2018-12-20

Release notes: https://github.com/DataDog/dd-trace-rb/releases/tag/v0.18.1

Git diff: https://github.com/DataDog/dd-trace-rb/compare/v0.18.0...v0.18.1

Fixed

0.18.0 - 2018-12-18

Release notes: https://github.com/DataDog/dd-trace-rb/releases/tag/v0.18.0

Git diff: https://github.com/DataDog/dd-trace-rb/compare/v0.17.3...v0.18.0

Added

Changed

  • Use DD_AGENT_HOST and DD_TRACE_AGENT_PORT env vars if available (#631)
  • Inject :connection into sql.active_record event (#640, #649, #656) (@guizmaii)
  • Return default configuration instead of nil on miss (#651)

0.17.3 - 2018-11-29

Release notes: https://github.com/DataDog/dd-trace-rb/releases/tag/v0.17.3

Git diff: https://github.com/DataDog/dd-trace-rb/compare/v0.17.2...v0.17.3

Fixed

  • Bad resource names for Grape::API objects in Grape 1.2.0 (#639)
  • RestClient raising NoMethodError when response is nil (#636, #642) (@frsantos)
  • Rack middleware inserted twice in some Rails applications (#641)

0.17.2 - 2018-11-23

Release notes: https://github.com/DataDog/dd-trace-rb/releases/tag/v0.17.2

Git diff: https://github.com/DataDog/dd-trace-rb/compare/v0.17.1...v0.17.2

Fixed

  • Resque integration shutting down tracer when forking is disabled (#637)

0.17.1 - 2018-11-07

Release notes: https://github.com/DataDog/dd-trace-rb/releases/tag/v0.17.1

Git diff: https://github.com/DataDog/dd-trace-rb/compare/v0.17.0...v0.17.1

Fixed

0.17.0 - 2018-10-30

Release notes: https://github.com/DataDog/dd-trace-rb/releases/tag/v0.17.0

Git diff: https://github.com/DataDog/dd-trace-rb/compare/v0.16.1...v0.17.0

Added

  • [BETA] Span memory allocations attribute (#597) (@dasch)

Changed

  • Use Rack Env to update resource in Rails (#580) (@dasch)
  • Expand support for Sidekiq to 3.5.4+ (#593)
  • Expand support for mysql2 to 0.3.21+ (#578)

Refactored

  • Upgraded integrations to new API (#544)
  • Encoding classes into modules (#598)

0.16.1 - 2018-10-17

Release notes: https://github.com/DataDog/dd-trace-rb/releases/tag/v0.16.1

Git diff: https://github.com/DataDog/dd-trace-rb/compare/v0.16.0...v0.16.1

Fixed

  • Priority sampling response being mishandled (#591)
  • HTTP open timeout to agent too long (#582)

0.16.0 - 2018-09-18

Release notes: https://github.com/DataDog/dd-trace-rb/releases/tag/v0.16.0

Git diff: https://github.com/DataDog/dd-trace-rb/compare/v0.15.0...v0.16.0

Added

  • OpenTracing support (#517)
  • middleware option for disabling Rails trace middleware. (#552)

0.15.0 - 2018-09-12

Release notes: https://github.com/DataDog/dd-trace-rb/releases/tag/v0.15.0

Git diff: https://github.com/DataDog/dd-trace-rb/compare/v0.14.2...v0.15.0

Added

  • Rails 5.2 support (#535)
  • Context propagation support for Concurrent::Future (#415, #496)

Fixed

  • Grape uninitialized constant TraceMiddleware (#525, #533) (@dim)
  • Signed integer trace and span IDs being discarded in distributed traces (#530) (@alloy)

0.14.2 - 2018-08-23

Release notes: https://github.com/DataDog/dd-trace-rb/releases/tag/v0.14.2

Git diff: https://github.com/DataDog/dd-trace-rb/compare/v0.14.1...v0.14.2

Fixed

  • Sampling priority from request headers not being used (#521)

0.14.1 - 2018-08-21

Release notes: https://github.com/DataDog/dd-trace-rb/releases/tag/v0.14.1

Git diff: https://github.com/DataDog/dd-trace-rb/compare/v0.14.0...v0.14.1

Changed

  • Reduce verbosity of connection errors in log (#515)

Fixed

0.14.0 - 2018-08-14

Release notes: https://github.com/DataDog/dd-trace-rb/releases/tag/v0.14.0

Git diff: https://github.com/DataDog/dd-trace-rb/compare/v0.13.2...v0.14.0

Added

  • RestClient integration (#422, #460)
  • DelayedJob integration (#393 #444)
  • Version information to integrations (#483)
  • Tracer#active_root_span helper (#503)

Changed

  • Resque to flush traces when Job finishes instead of using SyncWriter (#474)
  • ActiveRecord to allow configuring multiple databases (#451)
  • Integrations configuration settings (#450, #452, #451)

Fixed

  • Context propagation for distributed traces when context is full (#502)
  • Rake shutdown tracer after execution (#487) (@kissrobber)
  • Deprecation warnings fired using Unicorn (#508)

0.14.0.rc1 - 2018-08-08

Release notes: https://github.com/DataDog/dd-trace-rb/releases/tag/v0.14.0.rc1

Git diff: https://github.com/DataDog/dd-trace-rb/compare/v0.14.0.beta2...v0.14.0.rc1

Added

  • RestClient integration (#422, #460)
  • Tracer#active_root_span helper (#503)

Fixed

  • Context propagation for distributed traces when context is full (#502)

0.14.0.beta2 - 2018-07-25

Release notes: https://github.com/DataDog/dd-trace-rb/releases/tag/v0.14.0.beta2

Git diff: https://github.com/DataDog/dd-trace-rb/compare/v0.14.0.beta1...v0.14.0.beta2

Fixed

0.14.0.beta1 - 2018-07-24

Release notes: https://github.com/DataDog/dd-trace-rb/releases/tag/v0.14.0.beta1

Git diff: https://github.com/DataDog/dd-trace-rb/compare/v0.13.1...v0.14.0.beta1

Changed

  • Resque to flush traces when Job finishes instead of using SyncWriter (#474)
  • ActiveRecord to allow configuring multiple databases (#451)
  • Integrations configuration settings (#450, #452, #451)

Fixed

  • Ruby warnings during tests (#499)
  • Tests failing intermittently on Ruby 1.9.3 (#497)

Added

  • DelayedJob integration (#393 #444)
  • Version information to integrations (#483)

0.13.2 - 2018-08-07

Release notes: https://github.com/DataDog/dd-trace-rb/releases/tag/v0.13.2

Git diff: https://github.com/DataDog/dd-trace-rb/compare/v0.13.1...v0.13.2

Fixed

  • Context propagation for distributed traces when context is full (#502)

0.13.1 - 2018-07-17

Release notes: https://github.com/DataDog/dd-trace-rb/releases/tag/v0.13.1

Git diff: https://github.com/DataDog/dd-trace-rb/compare/v0.13.0...v0.13.1

Changed

Fixed

  • Workers not shutting down quickly in some short running processes (#475)
  • Missing documentation for mysql2 and Rails (#476, #488)
  • Missing variable in rescue block (#481) (@kitop)
  • Unclosed spans in ActiveSupport::Notifications with multithreading (#431, #478) (@senny)

0.13.0 - 2018-06-20

Release notes: https://github.com/DataDog/dd-trace-rb/releases/tag/v0.13.0

Git diff: https://github.com/DataDog/dd-trace-rb/compare/v0.12.1...v0.13.0

Added

Fixed

  • Elasticsearch quantization of ids (#458)
  • MongoDB to allow quantization of collection name (#463)

Refactored

  • Hash quantization into core library (#410)
  • MongoDB integration to use Hash quantization library (#463)

Changed

  • Hash quantization truncates arrays with nested objects (#463)

0.13.0.beta1 - 2018-05-09

Release notes: https://github.com/DataDog/dd-trace-rb/releases/tag/v0.13.0.beta1

Git diff: https://github.com/DataDog/dd-trace-rb/compare/v0.12.0...v0.13.0.beta1

Added

Refactored

  • Hash quantization into core library (#410)

0.12.1 - 2018-06-12

Release notes: https://github.com/DataDog/dd-trace-rb/releases/tag/v0.12.1

Git diff: https://github.com/DataDog/dd-trace-rb/compare/v0.12.0...v0.12.1

Changed

  • Cache configuration Proxy objects (#446)
  • freeze more constant strings, to improve memory usage (#446)
  • Utils#truncate to use slightly less memory (#446)

Fixed

Refactored

  • ActionController patching strategy using modules. (#439)
  • ActionView tracing strategy. (#445, #447)

0.12.0 - 2018-05-08

Release notes: https://github.com/DataDog/dd-trace-rb/releases/tag/v0.12.0

Git diff: https://github.com/DataDog/dd-trace-rb/compare/v0.11.4...v0.12.0

Added

  • GraphQL integration (supporting graphql 1.7.9+) (#295)
  • ActiveRecord object instantiation tracing (#311, #334)
  • Subscriber module for ActiveSupport::Notifications tracing (#324, #380, #390, #395) (@dasch)
  • HTTP quantization module (#384)
  • Partial flushing option to tracer (#247, #397)

Changed

  • Rack applies URL quantization by default (#371)
  • Elasticsearch applies body quantization by default (#362)
  • Context for a single trace now has hard limit of 100,000 spans (#247)
  • Tags with rails.db.x to active_record.db.x instead (#396)

Fixed

  • Loading the ddtrace library after Rails has fully initialized can result in load errors. (#357)
  • Some scenarios where middleware_names could result in bad resource names (#354)
  • ActionController instrumentation conflicting with some gems that monkey patch Rails (#391)

Deprecated

  • Use of :datadog_rack_request_span variable in favor of 'datadog.rack_request_span' in Rack. (#365, #392)

Refactored

  • Racecar to use ActiveSupport::Notifications Subscriber module (#381)
  • Rails to use ActiveRecord integration instead of its own implementation (#396)
  • ActiveRecord to use ActiveSupport::Notifications Subscriber module (#396)

0.12.0.rc1 - 2018-04-11

Release notes: https://github.com/DataDog/dd-trace-rb/releases/tag/v0.12.0.rc1

Git diff: https://github.com/DataDog/dd-trace-rb/compare/v0.11.4...v0.12.0.rc1

Added

  • GraphQL integration (supporting graphql 1.7.9+) (#295)
  • ActiveRecord object instantiation tracing (#311, #334)
  • Subscriber module for ActiveSupport::Notifications tracing (#324, #380, #390, #395) (@dasch)
  • HTTP quantization module (#384)
  • Partial flushing option to tracer (#247, #397)

Changed

  • Rack applies URL quantization by default (#371)
  • Elasticsearch applies body quantization by default (#362)
  • Context for a single trace now has hard limit of 100,000 spans (#247)
  • Tags with rails.db.x to active_record.db.x instead (#396)

Fixed

  • Loading the ddtrace library after Rails has fully initialized can result in load errors. (#357)
  • Some scenarios where middleware_names could result in bad resource names (#354)
  • ActionController instrumentation conflicting with some gems that monkey patch Rails (#391)

Deprecated

  • Use of :datadog_rack_request_span variable in favor of 'datadog.rack_request_span' in Rack. (#365, #392)

Refactored

  • Racecar to use ActiveSupport::Notifications Subscriber module (#381)
  • Rails to use ActiveRecord integration instead of its own implementation (#396)
  • ActiveRecord to use ActiveSupport::Notifications Subscriber module (#396)

0.12.0.beta2 - 2018-02-28

Release notes: https://github.com/DataDog/dd-trace-rb/releases/tag/v0.12.0.beta2

Git diff: https://github.com/DataDog/dd-trace-rb/compare/v0.12.0.beta1...v0.12.0.beta2

Fixed

  • Loading the ddtrace library after Rails has fully initialized can result in load errors. (#357)

0.12.0.beta1 - 2018-02-09

Release notes: https://github.com/DataDog/dd-trace-rb/releases/tag/v0.12.0.beta1

Git diff: https://github.com/DataDog/dd-trace-rb/compare/v0.11.2...v0.12.0.beta1

Added

  • GraphQL integration (supporting graphql 1.7.9+) (#295)
  • ActiveRecord object instantiation tracing (#311, #334)
  • http.request_id tag to Rack spans (#335)

0.11.4 - 2018-03-29

Release notes: https://github.com/DataDog/dd-trace-rb/releases/tag/v0.11.4

Git diff: https://github.com/DataDog/dd-trace-rb/compare/v0.11.3...v0.11.4

Fixed

  • Transport body parsing when downgrading (#369)
  • Transport incorrectly attempting to apply sampling to service metadata (#370)
  • sql.active_record traces showing incorrect adapter settings when non-default adapter used (#383)

0.11.3 - 2018-03-06

Release notes: https://github.com/DataDog/dd-trace-rb/releases/tag/v0.11.3

Git diff: https://github.com/DataDog/dd-trace-rb/compare/v0.11.2...v0.11.3

Added

Fixed

  • Extra indentation in README.md (#349) (@ck3g)
  • http.url when Rails raises exceptions (#351, #353)
  • Rails from being patched twice (#352)
  • 4XX responses from middleware being marked as errors (#345)
  • Rails exception middleware sometimes not being inserted at correct position (#345)
  • Processing pipeline documentation typo (#355) (@MMartyn)
  • Loading the ddtrace library after Rails has fully initialized can result in load errors. (#357)
  • Use of block syntax with Rails render not working (#359, #360) (@dorner)

0.11.2 - 2018-02-02

Critical update: Datadog::Monkey removed in version 0.11.1. Adds Datadog::Monkey back as no-op, deprecated module.

Release notes: https://github.com/DataDog/dd-trace-rb/releases/tag/v0.11.2

Git diff: https://github.com/DataDog/dd-trace-rb/compare/v0.11.1...v0.11.2

Deprecated

  • Datadog::Monkey to be no-op and print deprecation warnings.

0.11.1 - 2018-01-29

Release notes: https://github.com/DataDog/dd-trace-rb/releases/tag/v0.11.1

Git diff: https://github.com/DataDog/dd-trace-rb/compare/v0.11.0...v0.11.1

Added

  • http.base_url tag for Rack applications (#301, #327)
  • distributed_tracing option to Sinatra (#325)
  • exception_controller option to Rails (#320)

Changed

  • Decoupled Sinatra and ActiveRecord integrations (#328, #330) (@hawknewton)
  • Racecar uses preferred ActiveSupport::Notifications strategy (#323)

Removed

  • Datadog::Monkey in favor of newer configuration API (#322)

Fixed

  • Custom resource names from Rails controllers being overridden (#321)
  • Custom Rails exception controllers reporting as the resource (#320)

0.11.0 - 2018-01-17

Release notes: https://github.com/DataDog/dd-trace-rb/releases/tag/v0.11.0

Git diff: https://github.com/DataDog/dd-trace-rb/compare/v0.10.0...v0.11.0

0.11.0.beta2 - 2017-12-27

Release notes: https://github.com/DataDog/dd-trace-rb/releases/tag/v0.11.0.beta2

Git diff: https://github.com/DataDog/dd-trace-rb/compare/v0.11.0.beta1...v0.11.0.beta2

0.11.0.beta1 - 2017-12-04

Release notes: https://github.com/DataDog/dd-trace-rb/releases/tag/v0.11.0.beta1

Git diff: https://github.com/DataDog/dd-trace-rb/compare/v0.10.0...v0.11.0.beta1

0.10.0 - 2017-11-30

Release notes: https://github.com/DataDog/dd-trace-rb/releases/tag/v0.10.0

Git diff: https://github.com/DataDog/dd-trace-rb/compare/v0.9.2...v0.10.0

0.9.2 - 2017-11-03

Release notes: https://github.com/DataDog/dd-trace-rb/releases/tag/v0.9.2

Git diff: https://github.com/DataDog/dd-trace-rb/compare/v0.9.1...v0.9.2

0.9.1 - 2017-11-02

Release notes: https://github.com/DataDog/dd-trace-rb/releases/tag/v0.9.1

Git diff: https://github.com/DataDog/dd-trace-rb/compare/v0.9.0...v0.9.1

0.9.0 - 2017-10-06

Release notes: https://github.com/DataDog/dd-trace-rb/releases/tag/v0.9.0

Git diff: https://github.com/DataDog/dd-trace-rb/compare/v0.8.2...v0.9.0

0.8.2 - 2017-09-08

Release notes: https://github.com/DataDog/dd-trace-rb/releases/tag/v0.8.2

Git diff: https://github.com/DataDog/dd-trace-rb/compare/v0.8.1...v0.8.2

0.8.1 - 2017-08-10

Release notes: https://github.com/DataDog/dd-trace-rb/releases/tag/v0.8.1

Git diff: https://github.com/DataDog/dd-trace-rb/compare/v0.8.0...v0.8.1

0.8.0 - 2017-07-24

Release notes: https://github.com/DataDog/dd-trace-rb/releases/tag/v0.8.0

Git diff: https://github.com/DataDog/dd-trace-rb/compare/v0.7.2...v0.8.0

0.7.2 - 2017-05-24

Release notes: https://github.com/DataDog/dd-trace-rb/releases/tag/v0.7.2

Git diff: https://github.com/DataDog/dd-trace-rb/compare/v0.7.1...v0.7.2

0.7.1 - 2017-05-10

Release notes: https://github.com/DataDog/dd-trace-rb/releases/tag/v0.7.1

Git diff: https://github.com/DataDog/dd-trace-rb/compare/v0.7.0...v0.7.1

0.7.0 - 2017-04-24

Release notes: https://github.com/DataDog/dd-trace-rb/releases/tag/v0.7.0

Git diff: https://github.com/DataDog/dd-trace-rb/compare/v0.6.2...v0.7.0

0.6.2 - 2017-04-07

Release notes: https://github.com/DataDog/dd-trace-rb/releases/tag/v0.6.2

Git diff: https://github.com/DataDog/dd-trace-rb/compare/v0.6.1...v0.6.2

0.6.1 - 2017-04-05

Release notes: https://github.com/DataDog/dd-trace-rb/releases/tag/v0.6.1

Git diff: https://github.com/DataDog/dd-trace-rb/compare/v0.6.0...v0.6.1

0.6.0 - 2017-03-28

Release notes: https://github.com/DataDog/dd-trace-rb/releases/tag/v0.6.0

Git diff: https://github.com/DataDog/dd-trace-rb/compare/v0.5.0...v0.6.0

0.5.0 - 2017-03-08

Release notes: https://github.com/DataDog/dd-trace-rb/releases/tag/v0.5.0

Git diff: https://github.com/DataDog/dd-trace-rb/compare/v0.4.3...v0.5.0

0.4.3 - 2017-02-17

Release notes: https://github.com/DataDog/dd-trace-rb/releases/tag/v0.4.3

Git diff: https://github.com/DataDog/dd-trace-rb/compare/v0.4.2...v0.4.3

0.4.2 - 2017-02-14

Release notes: https://github.com/DataDog/dd-trace-rb/releases/tag/v0.4.2

Git diff: https://github.com/DataDog/dd-trace-rb/compare/v0.4.1...v0.4.2

0.4.1 - 2017-02-14

Release notes: https://github.com/DataDog/dd-trace-rb/releases/tag/v0.4.1

Git diff: https://github.com/DataDog/dd-trace-rb/compare/v0.4.0...v0.4.1

0.4.0 - 2017-01-24

Release notes: https://github.com/DataDog/dd-trace-rb/releases/tag/v0.4.0

Git diff: https://github.com/DataDog/dd-trace-rb/compare/v0.3.1...v0.4.0

0.3.1 - 2017-01-23

Release notes: https://github.com/DataDog/dd-trace-rb/releases/tag/v0.3.1

Git diff: https://github.com/DataDog/dd-trace-rb/compare/v0.3.0...v0.3.1