datadog 2.20.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.
- checksums.yaml +4 -4
- data/CHANGELOG.md +73 -1
- data/README.md +0 -1
- data/ext/LIBDATADOG_DEVELOPMENT.md +60 -0
- data/ext/datadog_profiling_native_extension/collectors_discrete_dynamic_sampler.c +1 -1
- data/ext/libdatadog_api/ddsketch.c +106 -0
- data/ext/libdatadog_api/init.c +3 -0
- data/ext/libdatadog_api/library_config.c +35 -27
- data/ext/libdatadog_api/process_discovery.c +24 -18
- data/ext/libdatadog_extconf_helpers.rb +1 -1
- data/lib/datadog/appsec/api_security/endpoint_collection/grape_route_serializer.rb +26 -0
- data/lib/datadog/appsec/api_security/endpoint_collection/rails_collector.rb +59 -0
- data/lib/datadog/appsec/api_security/endpoint_collection/rails_route_serializer.rb +29 -0
- data/lib/datadog/appsec/api_security/endpoint_collection/sinatra_route_serializer.rb +26 -0
- data/lib/datadog/appsec/api_security/endpoint_collection.rb +10 -0
- data/lib/datadog/appsec/api_security/route_extractor.rb +6 -2
- data/lib/datadog/appsec/assets/waf_rules/README.md +30 -36
- data/lib/datadog/appsec/assets/waf_rules/recommended.json +359 -4
- data/lib/datadog/appsec/assets/waf_rules/strict.json +43 -2
- data/lib/datadog/appsec/autoload.rb +1 -1
- data/lib/datadog/appsec/compressed_json.rb +1 -1
- data/lib/datadog/appsec/configuration/settings.rb +9 -0
- data/lib/datadog/appsec/contrib/active_record/instrumentation.rb +3 -1
- data/lib/datadog/appsec/contrib/excon/ssrf_detection_middleware.rb +3 -2
- data/lib/datadog/appsec/contrib/faraday/ssrf_detection_middleware.rb +3 -1
- data/lib/datadog/appsec/contrib/graphql/gateway/watcher.rb +3 -1
- data/lib/datadog/appsec/contrib/rack/gateway/watcher.rb +9 -4
- data/lib/datadog/appsec/contrib/rack/request_middleware.rb +5 -1
- data/lib/datadog/appsec/contrib/rails/gateway/watcher.rb +7 -2
- data/lib/datadog/appsec/contrib/rails/patcher.rb +30 -0
- data/lib/datadog/appsec/contrib/rest_client/request_ssrf_detection_patch.rb +3 -1
- data/lib/datadog/appsec/contrib/sinatra/gateway/watcher.rb +10 -4
- data/lib/datadog/appsec/event.rb +12 -14
- data/lib/datadog/appsec/metrics/collector.rb +19 -3
- data/lib/datadog/appsec/metrics/telemetry_exporter.rb +2 -1
- data/lib/datadog/appsec/monitor/gateway/watcher.rb +4 -4
- data/lib/datadog/appsec/remote.rb +25 -13
- data/lib/datadog/appsec/security_engine/result.rb +28 -9
- data/lib/datadog/appsec/security_engine/runner.rb +17 -7
- data/lib/datadog/appsec/security_event.rb +5 -7
- data/lib/datadog/core/configuration/agent_settings_resolver.rb +4 -4
- data/lib/datadog/core/configuration/components.rb +22 -8
- data/lib/datadog/core/configuration/config_helper.rb +100 -0
- data/lib/datadog/core/configuration/deprecations.rb +36 -0
- data/lib/datadog/core/configuration/ext.rb +0 -1
- data/lib/datadog/core/configuration/option.rb +38 -43
- data/lib/datadog/core/configuration/option_definition.rb +0 -9
- data/lib/datadog/core/configuration/options.rb +1 -5
- data/lib/datadog/core/configuration/settings.rb +10 -6
- data/lib/datadog/core/configuration/stable_config.rb +10 -0
- data/lib/datadog/core/configuration/supported_configurations.rb +337 -0
- data/lib/datadog/core/configuration.rb +2 -2
- data/lib/datadog/core/ddsketch.rb +21 -0
- data/lib/datadog/core/deprecations.rb +2 -2
- data/lib/datadog/core/environment/ext.rb +0 -2
- data/lib/datadog/core/environment/git.rb +2 -2
- data/lib/datadog/core/environment/variable_helpers.rb +3 -3
- data/lib/datadog/core/environment/yjit.rb +2 -1
- data/lib/datadog/core/metrics/client.rb +2 -2
- data/lib/datadog/core/pin.rb +4 -8
- data/lib/datadog/core/process_discovery/tracer_memfd.rb +2 -4
- data/lib/datadog/core/process_discovery.rb +48 -23
- data/lib/datadog/core/remote/component.rb +4 -6
- data/lib/datadog/core/runtime/ext.rb +0 -1
- data/lib/datadog/core/telemetry/component.rb +11 -0
- data/lib/datadog/core/telemetry/emitter.rb +6 -6
- data/lib/datadog/core/telemetry/event/app_endpoints_loaded.rb +30 -0
- data/lib/datadog/core/telemetry/event/app_started.rb +2 -2
- data/lib/datadog/core/telemetry/event.rb +1 -0
- data/lib/datadog/core/transport/response.rb +4 -1
- data/lib/datadog/core/utils/network.rb +19 -0
- data/lib/datadog/core.rb +2 -0
- data/lib/datadog/di/boot.rb +5 -3
- data/lib/datadog/di/component.rb +14 -0
- data/lib/datadog/di/context.rb +70 -0
- data/lib/datadog/di/el/compiler.rb +164 -0
- data/lib/datadog/di/el/evaluator.rb +159 -0
- data/lib/datadog/di/el/expression.rb +42 -0
- data/lib/datadog/di/el.rb +5 -0
- data/lib/datadog/di/error.rb +25 -0
- data/lib/datadog/di/instrumenter.rb +101 -32
- data/lib/datadog/di/probe.rb +35 -15
- data/lib/datadog/di/probe_builder.rb +39 -1
- data/lib/datadog/di/probe_file_loader.rb +1 -1
- data/lib/datadog/di/probe_manager.rb +3 -2
- data/lib/datadog/di/probe_notification_builder.rb +50 -51
- data/lib/datadog/di/serializer.rb +151 -7
- data/lib/datadog/opentelemetry/sdk/configurator.rb +1 -1
- data/lib/datadog/profiling/collectors/info.rb +1 -1
- data/lib/datadog/profiling/ext.rb +2 -1
- data/lib/datadog/profiling/http_transport.rb +1 -1
- data/lib/datadog/profiling/tasks/exec.rb +2 -2
- data/lib/datadog/tracing/component.rb +6 -17
- data/lib/datadog/tracing/configuration/dynamic.rb +2 -2
- data/lib/datadog/tracing/configuration/ext.rb +0 -3
- data/lib/datadog/tracing/configuration/settings.rb +15 -10
- data/lib/datadog/tracing/contrib/component.rb +2 -2
- data/lib/datadog/tracing/contrib/graphql/configuration/settings.rb +7 -0
- data/lib/datadog/tracing/contrib/graphql/ext.rb +1 -0
- data/lib/datadog/tracing/contrib/graphql/unified_trace.rb +63 -27
- data/lib/datadog/tracing/contrib/rack/request_queue.rb +1 -0
- data/lib/datadog/tracing/contrib/rack/trace_proxy_middleware.rb +7 -1
- data/lib/datadog/tracing/contrib/rails/ext.rb +2 -1
- data/lib/datadog/tracing/contrib/rails/integration.rb +1 -1
- data/lib/datadog/tracing/contrib/span_attribute_schema.rb +1 -1
- data/lib/datadog/tracing/metadata/ext.rb +8 -0
- data/lib/datadog/version.rb +1 -1
- metadata +25 -9
- data/ext/libdatadog_api/macos_development.md +0 -26
@@ -12,7 +12,8 @@ module Datadog
|
|
12
12
|
# @!visibility private
|
13
13
|
ENV_ANALYTICS_ENABLED = 'DD_TRACE_RAILS_ANALYTICS_ENABLED'
|
14
14
|
ENV_ANALYTICS_SAMPLE_RATE = 'DD_TRACE_RAILS_ANALYTICS_SAMPLE_RATE'
|
15
|
-
|
15
|
+
# Note: Alias (previous name DISABLE_DATADOG_RAILS) defined in supported-configurations.json
|
16
|
+
ENV_DISABLE = 'DD_DISABLE_DATADOG_RAILS'
|
16
17
|
|
17
18
|
SPAN_RUNNER_FILE = 'rails.runner.file'
|
18
19
|
SPAN_RUNNER_INLINE = 'rails.runner.inline'
|
@@ -11,7 +11,7 @@ module Datadog
|
|
11
11
|
NO_SOURCE = [].freeze
|
12
12
|
|
13
13
|
def self.fetch_service_name(env, default)
|
14
|
-
|
14
|
+
DATADOG_ENV.fetch(env) do
|
15
15
|
if Datadog.configuration.tracing.contrib.global_default_service_name.enabled
|
16
16
|
return Datadog.configuration.service
|
17
17
|
end
|
@@ -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
|
data/lib/datadog/version.rb
CHANGED
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.
|
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-
|
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.
|
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.
|
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:
|
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:
|
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
|
@@ -286,15 +292,19 @@ files:
|
|
286
292
|
- lib/datadog/core/configuration/base.rb
|
287
293
|
- lib/datadog/core/configuration/components.rb
|
288
294
|
- lib/datadog/core/configuration/components_state.rb
|
295
|
+
- lib/datadog/core/configuration/config_helper.rb
|
296
|
+
- lib/datadog/core/configuration/deprecations.rb
|
289
297
|
- lib/datadog/core/configuration/ext.rb
|
290
298
|
- lib/datadog/core/configuration/option.rb
|
291
299
|
- lib/datadog/core/configuration/option_definition.rb
|
292
300
|
- lib/datadog/core/configuration/options.rb
|
293
301
|
- lib/datadog/core/configuration/settings.rb
|
294
302
|
- lib/datadog/core/configuration/stable_config.rb
|
303
|
+
- lib/datadog/core/configuration/supported_configurations.rb
|
295
304
|
- lib/datadog/core/contrib/rails/utils.rb
|
296
305
|
- lib/datadog/core/crashtracking/component.rb
|
297
306
|
- lib/datadog/core/crashtracking/tag_builder.rb
|
307
|
+
- lib/datadog/core/ddsketch.rb
|
298
308
|
- lib/datadog/core/deprecations.rb
|
299
309
|
- lib/datadog/core/diagnostics/environment_logger.rb
|
300
310
|
- lib/datadog/core/diagnostics/health.rb
|
@@ -363,6 +373,7 @@ files:
|
|
363
373
|
- lib/datadog/core/telemetry/event/app_client_configuration_change.rb
|
364
374
|
- lib/datadog/core/telemetry/event/app_closing.rb
|
365
375
|
- lib/datadog/core/telemetry/event/app_dependencies_loaded.rb
|
376
|
+
- lib/datadog/core/telemetry/event/app_endpoints_loaded.rb
|
366
377
|
- lib/datadog/core/telemetry/event/app_heartbeat.rb
|
367
378
|
- lib/datadog/core/telemetry/event/app_integrations_change.rb
|
368
379
|
- lib/datadog/core/telemetry/event/app_started.rb
|
@@ -438,9 +449,14 @@ files:
|
|
438
449
|
- lib/datadog/di/component.rb
|
439
450
|
- lib/datadog/di/configuration.rb
|
440
451
|
- lib/datadog/di/configuration/settings.rb
|
452
|
+
- lib/datadog/di/context.rb
|
441
453
|
- lib/datadog/di/contrib.rb
|
442
454
|
- lib/datadog/di/contrib/active_record.rb
|
443
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
|
444
460
|
- lib/datadog/di/error.rb
|
445
461
|
- lib/datadog/di/extensions.rb
|
446
462
|
- lib/datadog/di/instrumenter.rb
|
@@ -1004,8 +1020,8 @@ licenses:
|
|
1004
1020
|
- Apache-2.0
|
1005
1021
|
metadata:
|
1006
1022
|
allowed_push_host: https://rubygems.org
|
1007
|
-
changelog_uri: https://github.com/DataDog/dd-trace-rb/blob/v2.
|
1008
|
-
source_code_uri: https://github.com/DataDog/dd-trace-rb/tree/v2.
|
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
|
1009
1025
|
post_install_message:
|
1010
1026
|
rdoc_options: []
|
1011
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).
|