1.15.0
Highlights
Timeline view for Profiler beta
As of ddtrace 1.15.0, the Profiler now supports gathering data for the new Timeline view.
The Timeline view allows you to look at time-based patterns and work distribution over the period of a single profile: you can look at what individual threads were doing, and when 🎉
You can use the timeline view both when looking at individual profiles, as well as when scoped to a given trace.
You can enable it:
- Using an environment variable by setting
DD_PROFILING_EXPERIMENTAL_TIMELINE_ENABLED=true - Or via code by adding to your
Datadog.configureblock:
Datadog.configure do |c|
# … existing configuration …
c.profiling.advanced.experimental_timeline_enabled = true
endGive it a try, let us know what you think!
(Note: We do not recommend enabling this feature prior to 1.15.0!)
google-protobuf dependency is no longer needed by the Profiler
As of ddtrace version 1.15.0, the google-protobuf gem is no longer needed to enable the Profiler.
If you've added this gem to your Gemfile/gems.rb file as part of enabling the Profiler, you can
remove it now. (If you're curious, we've internally replaced this dependency with the libdatadog gem.)
Configure blocking responses for AppSec via configuration or Remote Configuration
As of dd-trace-rb 1.15.0, AppSec supports configuring the blocking response.
You can configure the blocking response via:
- Using the ENV variables:
DD_APPSEC_HTTP_BLOCKED_TEMPLATE_HTML=#{file_name}, andDD_APPSEC_HTTP_BLOCKED_TEMPLATE_JSON=#{file_name} - Via code by adding to your
Datadog.configureblock:
Datadog.configure do |c|
# … existing configuration …
c.appsec.block.templates.html = "#{file_name}"
c.appsec.block.templates.json = "#{file_name}"
end- Using the Remote configuration UI. This option allows you to configure the status code and the blocking behaviour. You can redirect malicious attackers to custom pages.
You can find more information on the official documentation
Configure agentless mode for CI visibility
If you are using CI visibility with a cloud CI provider without access to the underlying worker nodes, such as GitHub Actions or CircleCI, configure the library to use the Agentless mode.
For this, set the following environment variables:
DD_CIVISIBILITY_AGENTLESS_ENABLED=trueDD_API_KEY=<your_api_key>
Additionally, configure which Datadog site you want to send your data to:
DD_SITE (default: datadoghq.com)
You can also enable agentless mode with Datadog.configure block:
Datadog.configure do |c|
# … existing configuration …
c.ci.agentless_mode_enabled = true
# don't forget to set DD_API_KEY env variable!
endAdded
- Enable allocation counting feature by default for some Ruby 3 versions (#3176)
- Detect
WebMockCucumberandRails.envto 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 typein profiler allocation samples (#3074) - Tracing: Support
Rack3 (#3132 ) - Tracing: Support
Opensearch3 (#3189) - Tracing:
grpcaddsclient_error_handleroption (#3095) - Tracing: Add
asyncoption fortest_modeconfiguration (#3158) - Tracing: Implements
_dd.base_servicetag (#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:
dallidisable memcached command tag by default (#3171) - Tracing: Use first valid extracted style for distributed tracing (#2879 )
- Tracing: Rename configuration option
on_settoafter_set(#3107) - Tracing: Rename
experimental_default_proctodefault_proc(#3091) - Tracing: Use
peer.servicefor sql comment propagation (#3127) - Ci-app: Fix
Datadog::CI::Environmentto support the new CI specs (#3080) - Bump
datadog-cidependency to 0.2 (#3186) - Bump
debase-ruby_core_sourcedependency to 3.2.2 (#3163) - Upgrade
libdatadog5 (#3169, #3104) - Upgrade
libddwaf-rb1.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_queuingis enabled inrackinstrumentation (#3109) - Appsec: Span tags reporting the number of WAF failed loaded rules (#3106)
- Tracing: Fix tagging with empty data (#3102)
- Tracing: Fix
rails.cache.backendspan tag with multiple stores (#3060)
Removed
- Profiling: Remove legacy profiler codepath (#3172)
- Ci-app: Remove CI module and add a dependency on
datadog-cigem (#3128) - Tracing: Remove
depends_onoption from configuration DSL (#3085) - Tracing: Remove
delegate_tooption from configuration DSL (#3086)
Read the full changeset and the release milestone.