datadog 2.21.0 → 2.22.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (77) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +48 -1
  3. data/ext/LIBDATADOG_DEVELOPMENT.md +60 -0
  4. data/ext/datadog_profiling_native_extension/collectors_discrete_dynamic_sampler.c +1 -1
  5. data/ext/libdatadog_api/ddsketch.c +106 -0
  6. data/ext/libdatadog_api/init.c +3 -0
  7. data/ext/libdatadog_api/library_config.c +35 -27
  8. data/ext/libdatadog_api/process_discovery.c +19 -13
  9. data/ext/libdatadog_extconf_helpers.rb +1 -1
  10. data/lib/datadog/appsec/api_security/endpoint_collection/grape_route_serializer.rb +26 -0
  11. data/lib/datadog/appsec/api_security/endpoint_collection/rails_collector.rb +59 -0
  12. data/lib/datadog/appsec/api_security/endpoint_collection/rails_route_serializer.rb +29 -0
  13. data/lib/datadog/appsec/api_security/endpoint_collection/sinatra_route_serializer.rb +26 -0
  14. data/lib/datadog/appsec/api_security/endpoint_collection.rb +10 -0
  15. data/lib/datadog/appsec/assets/waf_rules/README.md +30 -36
  16. data/lib/datadog/appsec/assets/waf_rules/recommended.json +359 -4
  17. data/lib/datadog/appsec/assets/waf_rules/strict.json +43 -2
  18. data/lib/datadog/appsec/compressed_json.rb +1 -1
  19. data/lib/datadog/appsec/configuration/settings.rb +9 -0
  20. data/lib/datadog/appsec/contrib/active_record/instrumentation.rb +3 -1
  21. data/lib/datadog/appsec/contrib/excon/ssrf_detection_middleware.rb +3 -2
  22. data/lib/datadog/appsec/contrib/faraday/ssrf_detection_middleware.rb +3 -1
  23. data/lib/datadog/appsec/contrib/graphql/gateway/watcher.rb +3 -1
  24. data/lib/datadog/appsec/contrib/rack/gateway/watcher.rb +9 -4
  25. data/lib/datadog/appsec/contrib/rack/request_middleware.rb +5 -1
  26. data/lib/datadog/appsec/contrib/rails/gateway/watcher.rb +7 -2
  27. data/lib/datadog/appsec/contrib/rails/patcher.rb +30 -0
  28. data/lib/datadog/appsec/contrib/rest_client/request_ssrf_detection_patch.rb +3 -1
  29. data/lib/datadog/appsec/contrib/sinatra/gateway/watcher.rb +10 -4
  30. data/lib/datadog/appsec/event.rb +12 -14
  31. data/lib/datadog/appsec/metrics/collector.rb +19 -3
  32. data/lib/datadog/appsec/metrics/telemetry_exporter.rb +2 -1
  33. data/lib/datadog/appsec/monitor/gateway/watcher.rb +4 -4
  34. data/lib/datadog/appsec/remote.rb +25 -13
  35. data/lib/datadog/appsec/security_engine/result.rb +28 -9
  36. data/lib/datadog/appsec/security_engine/runner.rb +17 -7
  37. data/lib/datadog/appsec/security_event.rb +5 -7
  38. data/lib/datadog/core/configuration/components.rb +14 -6
  39. data/lib/datadog/core/configuration/stable_config.rb +10 -0
  40. data/lib/datadog/core/configuration/supported_configurations.rb +2 -0
  41. data/lib/datadog/core/configuration.rb +1 -1
  42. data/lib/datadog/core/ddsketch.rb +21 -0
  43. data/lib/datadog/core/environment/yjit.rb +2 -1
  44. data/lib/datadog/core/pin.rb +4 -8
  45. data/lib/datadog/core/process_discovery.rb +4 -2
  46. data/lib/datadog/core/remote/component.rb +4 -6
  47. data/lib/datadog/core/telemetry/component.rb +11 -0
  48. data/lib/datadog/core/telemetry/emitter.rb +6 -6
  49. data/lib/datadog/core/telemetry/event/app_endpoints_loaded.rb +30 -0
  50. data/lib/datadog/core/telemetry/event.rb +1 -0
  51. data/lib/datadog/core/transport/response.rb +4 -1
  52. data/lib/datadog/core/utils/network.rb +19 -0
  53. data/lib/datadog/di/boot.rb +1 -0
  54. data/lib/datadog/di/component.rb +14 -0
  55. data/lib/datadog/di/context.rb +70 -0
  56. data/lib/datadog/di/el/compiler.rb +164 -0
  57. data/lib/datadog/di/el/evaluator.rb +159 -0
  58. data/lib/datadog/di/el/expression.rb +42 -0
  59. data/lib/datadog/di/el.rb +5 -0
  60. data/lib/datadog/di/error.rb +25 -0
  61. data/lib/datadog/di/instrumenter.rb +101 -32
  62. data/lib/datadog/di/probe.rb +35 -15
  63. data/lib/datadog/di/probe_builder.rb +39 -1
  64. data/lib/datadog/di/probe_manager.rb +3 -2
  65. data/lib/datadog/di/probe_notification_builder.rb +50 -51
  66. data/lib/datadog/di/serializer.rb +151 -7
  67. data/lib/datadog/tracing/component.rb +6 -17
  68. data/lib/datadog/tracing/configuration/dynamic.rb +2 -2
  69. data/lib/datadog/tracing/configuration/settings.rb +3 -3
  70. data/lib/datadog/tracing/contrib/component.rb +2 -2
  71. data/lib/datadog/tracing/contrib/graphql/configuration/settings.rb +7 -0
  72. data/lib/datadog/tracing/contrib/graphql/ext.rb +1 -0
  73. data/lib/datadog/tracing/contrib/graphql/unified_trace.rb +53 -28
  74. data/lib/datadog/tracing/metadata/ext.rb +8 -0
  75. data/lib/datadog/version.rb +1 -1
  76. metadata +22 -9
  77. data/ext/libdatadog_api/macos_development.md +0 -26
@@ -82,6 +82,14 @@ module Datadog
82
82
  TAG_MSG = 'error.message'
83
83
  TAG_STACK = 'error.stack'
84
84
  TAG_TYPE = 'error.type'
85
+
86
+ # From https://opentelemetry.io/docs/specs/semconv/registry/attributes/exception/#exception-stacktrace
87
+ ATTRIBUTE_MESSAGE = 'exception.message'
88
+ ATTRIBUTE_STACKTRACE = 'exception.stacktrace'
89
+ ATTRIBUTE_TYPE = 'exception.type'
90
+
91
+ # From https://opentelemetry.io/docs/specs/semconv/exceptions/exceptions-spans/#exception-event
92
+ EVENT_NAME = 'exception'
85
93
  end
86
94
 
87
95
  # @public_api
@@ -3,7 +3,7 @@
3
3
  module Datadog
4
4
  module VERSION
5
5
  MAJOR = 2
6
- MINOR = 21
6
+ MINOR = 22
7
7
  PATCH = 0
8
8
  PRE = nil
9
9
  BUILD = nil
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: datadog
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.21.0
4
+ version: 2.22.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Datadog, Inc.
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2025-09-17 00:00:00.000000000 Z
11
+ date: 2025-10-15 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: msgpack
@@ -50,28 +50,28 @@ dependencies:
50
50
  requirements:
51
51
  - - "~>"
52
52
  - !ruby/object:Gem::Version
53
- version: 1.24.1.2.1
53
+ version: 1.25.1.1.0
54
54
  type: :runtime
55
55
  prerelease: false
56
56
  version_requirements: !ruby/object:Gem::Requirement
57
57
  requirements:
58
58
  - - "~>"
59
59
  - !ruby/object:Gem::Version
60
- version: 1.24.1.2.1
60
+ version: 1.25.1.1.0
61
61
  - !ruby/object:Gem::Dependency
62
62
  name: libdatadog
63
63
  requirement: !ruby/object:Gem::Requirement
64
64
  requirements:
65
65
  - - "~>"
66
66
  - !ruby/object:Gem::Version
67
- version: 18.1.0.1.0
67
+ version: 22.0.1.1.0
68
68
  type: :runtime
69
69
  prerelease: false
70
70
  version_requirements: !ruby/object:Gem::Requirement
71
71
  requirements:
72
72
  - - "~>"
73
73
  - !ruby/object:Gem::Version
74
- version: 18.1.0.1.0
74
+ version: 22.0.1.1.0
75
75
  - !ruby/object:Gem::Dependency
76
76
  name: logger
77
77
  requirement: !ruby/object:Gem::Requirement
@@ -107,6 +107,7 @@ files:
107
107
  - NOTICE
108
108
  - README.md
109
109
  - bin/ddprofrb
110
+ - ext/LIBDATADOG_DEVELOPMENT.md
110
111
  - ext/datadog_profiling_native_extension/NativeExtensionDesign.md
111
112
  - ext/datadog_profiling_native_extension/clock_id.h
112
113
  - ext/datadog_profiling_native_extension/clock_id_from_pthread.c
@@ -155,11 +156,11 @@ files:
155
156
  - ext/libdatadog_api/crashtracker.h
156
157
  - ext/libdatadog_api/datadog_ruby_common.c
157
158
  - ext/libdatadog_api/datadog_ruby_common.h
159
+ - ext/libdatadog_api/ddsketch.c
158
160
  - ext/libdatadog_api/extconf.rb
159
161
  - ext/libdatadog_api/init.c
160
162
  - ext/libdatadog_api/library_config.c
161
163
  - ext/libdatadog_api/library_config.h
162
- - ext/libdatadog_api/macos_development.md
163
164
  - ext/libdatadog_api/process_discovery.c
164
165
  - ext/libdatadog_api/process_discovery.h
165
166
  - ext/libdatadog_extconf_helpers.rb
@@ -169,6 +170,11 @@ files:
169
170
  - lib/datadog/appsec/actions_handler/serializable_backtrace.rb
170
171
  - lib/datadog/appsec/anonymizer.rb
171
172
  - lib/datadog/appsec/api_security.rb
173
+ - lib/datadog/appsec/api_security/endpoint_collection.rb
174
+ - lib/datadog/appsec/api_security/endpoint_collection/grape_route_serializer.rb
175
+ - lib/datadog/appsec/api_security/endpoint_collection/rails_collector.rb
176
+ - lib/datadog/appsec/api_security/endpoint_collection/rails_route_serializer.rb
177
+ - lib/datadog/appsec/api_security/endpoint_collection/sinatra_route_serializer.rb
172
178
  - lib/datadog/appsec/api_security/lru_cache.rb
173
179
  - lib/datadog/appsec/api_security/route_extractor.rb
174
180
  - lib/datadog/appsec/api_security/sampler.rb
@@ -298,6 +304,7 @@ files:
298
304
  - lib/datadog/core/contrib/rails/utils.rb
299
305
  - lib/datadog/core/crashtracking/component.rb
300
306
  - lib/datadog/core/crashtracking/tag_builder.rb
307
+ - lib/datadog/core/ddsketch.rb
301
308
  - lib/datadog/core/deprecations.rb
302
309
  - lib/datadog/core/diagnostics/environment_logger.rb
303
310
  - lib/datadog/core/diagnostics/health.rb
@@ -366,6 +373,7 @@ files:
366
373
  - lib/datadog/core/telemetry/event/app_client_configuration_change.rb
367
374
  - lib/datadog/core/telemetry/event/app_closing.rb
368
375
  - lib/datadog/core/telemetry/event/app_dependencies_loaded.rb
376
+ - lib/datadog/core/telemetry/event/app_endpoints_loaded.rb
369
377
  - lib/datadog/core/telemetry/event/app_heartbeat.rb
370
378
  - lib/datadog/core/telemetry/event/app_integrations_change.rb
371
379
  - lib/datadog/core/telemetry/event/app_started.rb
@@ -441,9 +449,14 @@ files:
441
449
  - lib/datadog/di/component.rb
442
450
  - lib/datadog/di/configuration.rb
443
451
  - lib/datadog/di/configuration/settings.rb
452
+ - lib/datadog/di/context.rb
444
453
  - lib/datadog/di/contrib.rb
445
454
  - lib/datadog/di/contrib/active_record.rb
446
455
  - lib/datadog/di/contrib/railtie.rb
456
+ - lib/datadog/di/el.rb
457
+ - lib/datadog/di/el/compiler.rb
458
+ - lib/datadog/di/el/evaluator.rb
459
+ - lib/datadog/di/el/expression.rb
447
460
  - lib/datadog/di/error.rb
448
461
  - lib/datadog/di/extensions.rb
449
462
  - lib/datadog/di/instrumenter.rb
@@ -1007,8 +1020,8 @@ licenses:
1007
1020
  - Apache-2.0
1008
1021
  metadata:
1009
1022
  allowed_push_host: https://rubygems.org
1010
- changelog_uri: https://github.com/DataDog/dd-trace-rb/blob/v2.21.0/CHANGELOG.md
1011
- source_code_uri: https://github.com/DataDog/dd-trace-rb/tree/v2.21.0
1023
+ changelog_uri: https://github.com/DataDog/dd-trace-rb/blob/v2.22.0/CHANGELOG.md
1024
+ source_code_uri: https://github.com/DataDog/dd-trace-rb/tree/v2.22.0
1012
1025
  post_install_message:
1013
1026
  rdoc_options: []
1014
1027
  require_paths:
@@ -1,26 +0,0 @@
1
- # Developing on macOS
2
-
3
- As of this writing (August 2024), the libdatadog builds on rubygems.org only support Linux.
4
-
5
- We don't officially support using libdatadog for Ruby on other platforms yet, but it is possible to use it for local development on macOS.
6
- (**Note that you don't need these instructions if you develop inside docker.**)
7
-
8
- Here's how you can do so:
9
-
10
- 1. [Install rust](https://www.rust-lang.org/tools/install)
11
- 2. Install `cbindgen`: `cargo install cbindgen`
12
- 3. Clone [libdatadog](https://github.com/datadog/libdatadog)
13
- 4. Create a folder for building into based on your ruby platform:
14
-
15
- ```
16
- export DD_RUBY_PLATFORM=`ruby -e 'puts Gem::Platform.local.to_s'`
17
- mkdir -p my-libdatadog-build/$DD_RUBY_PLATFORM
18
- ```
19
-
20
- 5. From inside of the libdatadog repo, build libdatadog into this folder: `./build-profiling-ffi.sh my-libdatadog-build/$DD_RUBY_PLATFORM`
21
- 6. Tell Ruby where to find libdatadog: `export LIBDATADOG_VENDOR_OVERRIDE=/full/path/to/my-libdatadog-build/` (Notice no platform here)
22
- 7. From dd-trace-rb, run `bundle exec rake clean compile`
23
-
24
- If you additionally want to run the profiler test suite, also remember to `export DD_PROFILING_MACOS_TESTING=true` and re-run `rake clean compile`.
25
-
26
- These instructions can quickly get outdated, so feel free to open an issue if they're not working (and/or ping @ivoanjo).