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.configure
block:
Datadog.configure do |c|
# … existing configuration …
c.profiling.advanced.experimental_timeline_enabled = true
end
Give 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.configure
block:
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=true
DD_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!
end
Added
- Enable allocation counting feature by default for some Ruby 3 versions (#3176)
- Detect
WebMock
Cucumber
andRails.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
addsclient_error_handler
option (#3095) - Tracing: Add
async
option fortest_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
toafter_set
(#3107) - Tracing: Rename
experimental_default_proc
todefault_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 inrack
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)
Read the full changeset and the release milestone.