ddtrace 1.18.0 → 1.23.2
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 +228 -2
- data/LICENSE-3rdparty.csv +1 -1
- data/bin/ddprofrb +15 -0
- data/bin/ddtracerb +3 -1
- data/ext/{ddtrace_profiling_loader/ddtrace_profiling_loader.c → datadog_profiling_loader/datadog_profiling_loader.c} +2 -2
- data/ext/{ddtrace_profiling_loader → datadog_profiling_loader}/extconf.rb +3 -3
- data/ext/{ddtrace_profiling_native_extension → datadog_profiling_native_extension}/collectors_cpu_and_wall_time_worker.c +312 -117
- data/ext/datadog_profiling_native_extension/collectors_discrete_dynamic_sampler.c +422 -0
- data/ext/datadog_profiling_native_extension/collectors_discrete_dynamic_sampler.h +101 -0
- data/ext/{ddtrace_profiling_native_extension → datadog_profiling_native_extension}/collectors_dynamic_sampling_rate.c +22 -14
- data/ext/{ddtrace_profiling_native_extension → datadog_profiling_native_extension}/collectors_dynamic_sampling_rate.h +4 -0
- data/ext/datadog_profiling_native_extension/collectors_gc_profiling_helper.c +156 -0
- data/ext/datadog_profiling_native_extension/collectors_gc_profiling_helper.h +5 -0
- data/ext/{ddtrace_profiling_native_extension → datadog_profiling_native_extension}/collectors_stack.c +43 -102
- data/ext/{ddtrace_profiling_native_extension → datadog_profiling_native_extension}/collectors_stack.h +10 -3
- data/ext/{ddtrace_profiling_native_extension → datadog_profiling_native_extension}/collectors_thread_context.c +272 -136
- data/ext/{ddtrace_profiling_native_extension → datadog_profiling_native_extension}/collectors_thread_context.h +2 -1
- data/ext/{ddtrace_profiling_native_extension → datadog_profiling_native_extension}/extconf.rb +28 -7
- data/ext/datadog_profiling_native_extension/heap_recorder.c +1047 -0
- data/ext/datadog_profiling_native_extension/heap_recorder.h +166 -0
- data/ext/{ddtrace_profiling_native_extension → datadog_profiling_native_extension}/helpers.h +6 -0
- data/ext/{ddtrace_profiling_native_extension → datadog_profiling_native_extension}/http_transport.c +15 -19
- data/ext/{ddtrace_profiling_native_extension → datadog_profiling_native_extension}/libdatadog_helpers.c +20 -0
- data/ext/{ddtrace_profiling_native_extension → datadog_profiling_native_extension}/libdatadog_helpers.h +11 -0
- data/ext/{ddtrace_profiling_native_extension → datadog_profiling_native_extension}/native_extension_helpers.rb +50 -4
- data/ext/{ddtrace_profiling_native_extension → datadog_profiling_native_extension}/private_vm_api_access.c +19 -0
- data/ext/{ddtrace_profiling_native_extension → datadog_profiling_native_extension}/private_vm_api_access.h +4 -0
- data/ext/{ddtrace_profiling_native_extension → datadog_profiling_native_extension}/profiling.c +18 -1
- data/ext/datadog_profiling_native_extension/ruby_helpers.c +267 -0
- data/ext/{ddtrace_profiling_native_extension → datadog_profiling_native_extension}/ruby_helpers.h +33 -0
- data/ext/{ddtrace_profiling_native_extension → datadog_profiling_native_extension}/stack_recorder.c +476 -58
- data/ext/{ddtrace_profiling_native_extension → datadog_profiling_native_extension}/stack_recorder.h +3 -0
- data/ext/{ddtrace_profiling_native_extension → datadog_profiling_native_extension}/time_helpers.h +2 -0
- data/lib/datadog/appsec/contrib/devise/tracking.rb +8 -0
- data/lib/datadog/appsec/contrib/rack/request_middleware.rb +45 -14
- data/lib/datadog/appsec/event.rb +1 -1
- data/lib/datadog/auto_instrument.rb +3 -0
- data/lib/datadog/core/configuration/components.rb +7 -6
- data/lib/datadog/core/configuration/option.rb +8 -6
- data/lib/datadog/core/configuration/settings.rb +259 -60
- data/lib/datadog/core/configuration.rb +20 -4
- data/lib/datadog/core/diagnostics/environment_logger.rb +4 -3
- data/lib/datadog/core/environment/class_count.rb +6 -6
- data/lib/datadog/core/environment/git.rb +25 -0
- data/lib/datadog/core/environment/identity.rb +18 -48
- data/lib/datadog/core/environment/platform.rb +7 -1
- data/lib/datadog/core/git/ext.rb +2 -23
- data/lib/datadog/core/remote/client/capabilities.rb +1 -1
- data/lib/datadog/core/remote/component.rb +25 -12
- data/lib/datadog/core/remote/ext.rb +1 -0
- data/lib/datadog/core/remote/negotiation.rb +2 -2
- data/lib/datadog/core/remote/tie/tracing.rb +39 -0
- data/lib/datadog/core/remote/tie.rb +27 -0
- data/lib/datadog/core/remote/transport/http/config.rb +1 -1
- data/lib/datadog/core/remote/worker.rb +7 -4
- data/lib/datadog/core/telemetry/client.rb +18 -10
- data/lib/datadog/core/telemetry/emitter.rb +9 -13
- data/lib/datadog/core/telemetry/event.rb +247 -56
- data/lib/datadog/core/telemetry/ext.rb +4 -0
- data/lib/datadog/core/telemetry/heartbeat.rb +1 -3
- data/lib/datadog/core/telemetry/http/ext.rb +4 -1
- data/lib/datadog/core/telemetry/http/response.rb +4 -0
- data/lib/datadog/core/telemetry/http/transport.rb +9 -4
- data/lib/datadog/core/telemetry/request.rb +59 -0
- data/lib/datadog/core/transport/ext.rb +2 -0
- data/lib/datadog/core/utils/url.rb +25 -0
- data/lib/datadog/opentelemetry/sdk/propagator.rb +3 -2
- data/lib/datadog/opentelemetry.rb +3 -0
- data/lib/datadog/profiling/collectors/code_provenance.rb +10 -4
- data/lib/datadog/profiling/collectors/cpu_and_wall_time_worker.rb +36 -12
- data/lib/datadog/profiling/collectors/info.rb +101 -0
- data/lib/datadog/profiling/component.rb +210 -34
- data/lib/datadog/profiling/exporter.rb +23 -6
- data/lib/datadog/profiling/ext.rb +2 -0
- data/lib/datadog/profiling/flush.rb +6 -3
- data/lib/datadog/profiling/http_transport.rb +5 -1
- data/lib/datadog/profiling/load_native_extension.rb +19 -6
- data/lib/datadog/profiling/native_extension.rb +1 -1
- data/lib/datadog/profiling/scheduler.rb +4 -6
- data/lib/datadog/profiling/stack_recorder.rb +19 -4
- data/lib/datadog/profiling/tag_builder.rb +5 -0
- data/lib/datadog/profiling/tasks/exec.rb +3 -3
- data/lib/datadog/profiling/tasks/help.rb +3 -3
- data/lib/datadog/profiling.rb +13 -2
- data/lib/datadog/tracing/configuration/ext.rb +0 -1
- data/lib/datadog/tracing/configuration/settings.rb +2 -1
- data/lib/datadog/tracing/contrib/action_cable/configuration/settings.rb +1 -0
- data/lib/datadog/tracing/contrib/action_cable/ext.rb +1 -0
- data/lib/datadog/tracing/contrib/action_mailer/configuration/settings.rb +1 -0
- data/lib/datadog/tracing/contrib/action_mailer/events/deliver.rb +1 -1
- data/lib/datadog/tracing/contrib/action_mailer/ext.rb +1 -0
- data/lib/datadog/tracing/contrib/action_pack/configuration/settings.rb +1 -0
- data/lib/datadog/tracing/contrib/action_pack/ext.rb +1 -0
- data/lib/datadog/tracing/contrib/action_view/configuration/settings.rb +1 -0
- data/lib/datadog/tracing/contrib/action_view/ext.rb +1 -0
- data/lib/datadog/tracing/contrib/active_job/configuration/settings.rb +1 -0
- data/lib/datadog/tracing/contrib/active_job/ext.rb +1 -0
- data/lib/datadog/tracing/contrib/active_model_serializers/configuration/settings.rb +1 -0
- data/lib/datadog/tracing/contrib/active_model_serializers/ext.rb +1 -0
- data/lib/datadog/tracing/contrib/active_record/configuration/resolver.rb +11 -4
- data/lib/datadog/tracing/contrib/active_record/configuration/settings.rb +1 -0
- data/lib/datadog/tracing/contrib/active_record/ext.rb +1 -0
- data/lib/datadog/tracing/contrib/active_support/configuration/settings.rb +1 -0
- data/lib/datadog/tracing/contrib/active_support/ext.rb +1 -0
- data/lib/datadog/tracing/contrib/analytics.rb +0 -1
- data/lib/datadog/tracing/contrib/aws/configuration/settings.rb +1 -0
- data/lib/datadog/tracing/contrib/aws/ext.rb +1 -0
- data/lib/datadog/tracing/contrib/concurrent_ruby/async_patch.rb +20 -0
- data/lib/datadog/tracing/contrib/concurrent_ruby/patcher.rb +11 -1
- data/lib/datadog/tracing/contrib/configurable.rb +1 -1
- data/lib/datadog/tracing/contrib/dalli/configuration/settings.rb +1 -0
- data/lib/datadog/tracing/contrib/dalli/ext.rb +1 -0
- data/lib/datadog/tracing/contrib/delayed_job/configuration/settings.rb +1 -0
- data/lib/datadog/tracing/contrib/delayed_job/ext.rb +1 -0
- data/lib/datadog/tracing/contrib/elasticsearch/configuration/settings.rb +1 -0
- data/lib/datadog/tracing/contrib/elasticsearch/ext.rb +1 -0
- data/lib/datadog/tracing/contrib/ethon/configuration/settings.rb +1 -0
- data/lib/datadog/tracing/contrib/ethon/ext.rb +1 -0
- data/lib/datadog/tracing/contrib/excon/configuration/settings.rb +1 -0
- data/lib/datadog/tracing/contrib/excon/ext.rb +1 -0
- data/lib/datadog/tracing/contrib/extensions.rb +6 -2
- data/lib/datadog/tracing/contrib/faraday/configuration/settings.rb +7 -0
- data/lib/datadog/tracing/contrib/faraday/ext.rb +1 -0
- data/lib/datadog/tracing/contrib/faraday/middleware.rb +1 -1
- data/lib/datadog/tracing/contrib/grape/configuration/settings.rb +1 -0
- data/lib/datadog/tracing/contrib/grape/ext.rb +1 -0
- data/lib/datadog/tracing/contrib/graphql/configuration/settings.rb +1 -0
- data/lib/datadog/tracing/contrib/graphql/ext.rb +1 -0
- data/lib/datadog/tracing/contrib/grpc/configuration/settings.rb +1 -0
- data/lib/datadog/tracing/contrib/grpc/ext.rb +1 -0
- data/lib/datadog/tracing/contrib/http/configuration/settings.rb +1 -0
- data/lib/datadog/tracing/contrib/http/distributed/fetcher.rb +2 -2
- data/lib/datadog/tracing/contrib/http/ext.rb +1 -0
- data/lib/datadog/tracing/contrib/httpclient/configuration/settings.rb +1 -0
- data/lib/datadog/tracing/contrib/httpclient/ext.rb +1 -0
- data/lib/datadog/tracing/contrib/httprb/configuration/settings.rb +1 -0
- data/lib/datadog/tracing/contrib/httprb/ext.rb +1 -0
- data/lib/datadog/tracing/contrib/kafka/configuration/settings.rb +1 -0
- data/lib/datadog/tracing/contrib/kafka/ext.rb +1 -0
- data/lib/datadog/tracing/contrib/mongodb/configuration/settings.rb +1 -0
- data/lib/datadog/tracing/contrib/mongodb/ext.rb +1 -0
- data/lib/datadog/tracing/contrib/mysql2/configuration/settings.rb +5 -0
- data/lib/datadog/tracing/contrib/mysql2/ext.rb +1 -0
- data/lib/datadog/tracing/contrib/mysql2/instrumentation.rb +2 -1
- data/lib/datadog/tracing/contrib/opensearch/configuration/settings.rb +1 -0
- data/lib/datadog/tracing/contrib/opensearch/ext.rb +1 -0
- data/lib/datadog/tracing/contrib/pg/configuration/settings.rb +1 -0
- data/lib/datadog/tracing/contrib/pg/ext.rb +1 -0
- data/lib/datadog/tracing/contrib/pg/instrumentation.rb +11 -4
- data/lib/datadog/tracing/contrib/presto/configuration/settings.rb +1 -0
- data/lib/datadog/tracing/contrib/presto/ext.rb +1 -0
- data/lib/datadog/tracing/contrib/qless/configuration/settings.rb +1 -0
- data/lib/datadog/tracing/contrib/qless/ext.rb +1 -0
- data/lib/datadog/tracing/contrib/que/configuration/settings.rb +1 -0
- data/lib/datadog/tracing/contrib/que/ext.rb +1 -0
- data/lib/datadog/tracing/contrib/racecar/configuration/settings.rb +1 -0
- data/lib/datadog/tracing/contrib/racecar/ext.rb +1 -0
- data/lib/datadog/tracing/contrib/rack/configuration/settings.rb +1 -0
- data/lib/datadog/tracing/contrib/rack/ext.rb +1 -0
- data/lib/datadog/tracing/contrib/rack/middlewares.rb +9 -2
- data/lib/datadog/tracing/contrib/rails/auto_instrument_railtie.rb +0 -2
- data/lib/datadog/tracing/contrib/rails/configuration/settings.rb +1 -0
- data/lib/datadog/tracing/contrib/rails/ext.rb +1 -0
- data/lib/datadog/tracing/contrib/rake/configuration/settings.rb +1 -0
- data/lib/datadog/tracing/contrib/rake/ext.rb +1 -0
- data/lib/datadog/tracing/contrib/redis/configuration/settings.rb +1 -0
- data/lib/datadog/tracing/contrib/redis/ext.rb +1 -0
- data/lib/datadog/tracing/contrib/redis/instrumentation.rb +2 -2
- data/lib/datadog/tracing/contrib/redis/patcher.rb +34 -21
- data/lib/datadog/tracing/contrib/resque/configuration/settings.rb +1 -0
- data/lib/datadog/tracing/contrib/resque/ext.rb +1 -0
- data/lib/datadog/tracing/contrib/rest_client/configuration/settings.rb +1 -0
- data/lib/datadog/tracing/contrib/rest_client/ext.rb +1 -0
- data/lib/datadog/tracing/contrib/roda/configuration/settings.rb +1 -0
- data/lib/datadog/tracing/contrib/roda/ext.rb +1 -0
- data/lib/datadog/tracing/contrib/sequel/configuration/settings.rb +1 -0
- data/lib/datadog/tracing/contrib/sequel/ext.rb +1 -0
- data/lib/datadog/tracing/contrib/shoryuken/configuration/settings.rb +1 -0
- data/lib/datadog/tracing/contrib/shoryuken/ext.rb +1 -0
- data/lib/datadog/tracing/contrib/sidekiq/configuration/settings.rb +1 -0
- data/lib/datadog/tracing/contrib/sidekiq/ext.rb +1 -0
- data/lib/datadog/tracing/contrib/sinatra/configuration/settings.rb +1 -0
- data/lib/datadog/tracing/contrib/sinatra/ext.rb +1 -0
- data/lib/datadog/tracing/contrib/sneakers/configuration/settings.rb +1 -0
- data/lib/datadog/tracing/contrib/sneakers/ext.rb +1 -0
- data/lib/datadog/tracing/contrib/stripe/configuration/settings.rb +1 -0
- data/lib/datadog/tracing/contrib/stripe/ext.rb +1 -0
- data/lib/datadog/tracing/contrib/sucker_punch/configuration/settings.rb +1 -0
- data/lib/datadog/tracing/contrib/sucker_punch/ext.rb +1 -0
- data/lib/datadog/tracing/contrib/trilogy/configuration/settings.rb +58 -0
- data/lib/datadog/tracing/contrib/trilogy/ext.rb +27 -0
- data/lib/datadog/tracing/contrib/trilogy/instrumentation.rb +94 -0
- data/lib/datadog/tracing/contrib/trilogy/integration.rb +43 -0
- data/lib/datadog/tracing/contrib/trilogy/patcher.rb +31 -0
- data/lib/datadog/tracing/contrib.rb +1 -0
- data/lib/datadog/tracing/sampling/matcher.rb +23 -3
- data/lib/datadog/tracing/sampling/rule.rb +7 -2
- data/lib/datadog/tracing/sampling/rule_sampler.rb +2 -0
- data/lib/datadog/tracing/trace_operation.rb +1 -2
- data/lib/datadog/tracing/transport/http.rb +1 -0
- data/lib/datadog/tracing/transport/trace_formatter.rb +31 -0
- data/lib/datadog/tracing.rb +8 -2
- data/lib/ddtrace/version.rb +2 -2
- metadata +71 -61
- data/ext/ddtrace_profiling_native_extension/pid_controller.c +0 -57
- data/ext/ddtrace_profiling_native_extension/pid_controller.h +0 -45
- data/ext/ddtrace_profiling_native_extension/ruby_helpers.c +0 -110
- data/lib/datadog/core/telemetry/collector.rb +0 -240
- data/lib/datadog/core/telemetry/v1/app_event.rb +0 -52
- data/lib/datadog/core/telemetry/v1/application.rb +0 -92
- data/lib/datadog/core/telemetry/v1/configuration.rb +0 -25
- data/lib/datadog/core/telemetry/v1/dependency.rb +0 -43
- data/lib/datadog/core/telemetry/v1/host.rb +0 -59
- data/lib/datadog/core/telemetry/v1/integration.rb +0 -64
- data/lib/datadog/core/telemetry/v1/product.rb +0 -36
- data/lib/datadog/core/telemetry/v1/telemetry_request.rb +0 -106
- data/lib/datadog/core/telemetry/v2/app_client_configuration_change.rb +0 -41
- data/lib/datadog/core/telemetry/v2/request.rb +0 -29
- data/lib/datadog/profiling/diagnostics/environment_logger.rb +0 -39
- /data/ext/{ddtrace_profiling_native_extension → datadog_profiling_native_extension}/NativeExtensionDesign.md +0 -0
- /data/ext/{ddtrace_profiling_native_extension → datadog_profiling_native_extension}/clock_id.h +0 -0
- /data/ext/{ddtrace_profiling_native_extension → datadog_profiling_native_extension}/clock_id_from_pthread.c +0 -0
- /data/ext/{ddtrace_profiling_native_extension → datadog_profiling_native_extension}/clock_id_noop.c +0 -0
- /data/ext/{ddtrace_profiling_native_extension → datadog_profiling_native_extension}/collectors_idle_sampling_helper.c +0 -0
- /data/ext/{ddtrace_profiling_native_extension → datadog_profiling_native_extension}/collectors_idle_sampling_helper.h +0 -0
- /data/ext/{ddtrace_profiling_native_extension → datadog_profiling_native_extension}/setup_signal_handler.c +0 -0
- /data/ext/{ddtrace_profiling_native_extension → datadog_profiling_native_extension}/setup_signal_handler.h +0 -0
- /data/ext/{ddtrace_profiling_native_extension → datadog_profiling_native_extension}/time_helpers.c +0 -0
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: ddtrace
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 1.
|
|
4
|
+
version: 1.23.2
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Datadog, Inc.
|
|
8
|
-
autorequire:
|
|
8
|
+
autorequire:
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date:
|
|
11
|
+
date: 2024-06-13 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: msgpack
|
|
@@ -30,14 +30,14 @@ dependencies:
|
|
|
30
30
|
requirements:
|
|
31
31
|
- - '='
|
|
32
32
|
- !ruby/object:Gem::Version
|
|
33
|
-
version: 3.
|
|
33
|
+
version: 3.3.1
|
|
34
34
|
type: :runtime
|
|
35
35
|
prerelease: false
|
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
|
37
37
|
requirements:
|
|
38
38
|
- - '='
|
|
39
39
|
- !ruby/object:Gem::Version
|
|
40
|
-
version: 3.
|
|
40
|
+
version: 3.3.1
|
|
41
41
|
- !ruby/object:Gem::Dependency
|
|
42
42
|
name: libddwaf
|
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -58,29 +58,30 @@ dependencies:
|
|
|
58
58
|
requirements:
|
|
59
59
|
- - "~>"
|
|
60
60
|
- !ruby/object:Gem::Version
|
|
61
|
-
version:
|
|
61
|
+
version: 7.0.0.1.0
|
|
62
62
|
type: :runtime
|
|
63
63
|
prerelease: false
|
|
64
64
|
version_requirements: !ruby/object:Gem::Requirement
|
|
65
65
|
requirements:
|
|
66
66
|
- - "~>"
|
|
67
67
|
- !ruby/object:Gem::Version
|
|
68
|
-
version:
|
|
68
|
+
version: 7.0.0.1.0
|
|
69
69
|
- !ruby/object:Gem::Dependency
|
|
70
70
|
name: datadog-ci
|
|
71
71
|
requirement: !ruby/object:Gem::Requirement
|
|
72
72
|
requirements:
|
|
73
73
|
- - "~>"
|
|
74
74
|
- !ruby/object:Gem::Version
|
|
75
|
-
version: 0.
|
|
75
|
+
version: 0.8.1
|
|
76
76
|
type: :runtime
|
|
77
77
|
prerelease: false
|
|
78
78
|
version_requirements: !ruby/object:Gem::Requirement
|
|
79
79
|
requirements:
|
|
80
80
|
- - "~>"
|
|
81
81
|
- !ruby/object:Gem::Version
|
|
82
|
-
version: 0.
|
|
82
|
+
version: 0.8.1
|
|
83
83
|
description: |
|
|
84
|
+
NOTICE: This gem has been renamed to `datadog` since 2.0.0. Please use `datadog` instead of `ddtrace`.
|
|
84
85
|
ddtrace is Datadog's tracing client for Ruby. It is used to trace requests
|
|
85
86
|
as they flow across web servers, databases and microservices so that developers
|
|
86
87
|
have great visiblity into bottlenecks and troublesome requests.
|
|
@@ -88,9 +89,10 @@ email:
|
|
|
88
89
|
- dev@datadoghq.com
|
|
89
90
|
executables:
|
|
90
91
|
- ddtracerb
|
|
92
|
+
- ddprofrb
|
|
91
93
|
extensions:
|
|
92
|
-
- ext/
|
|
93
|
-
- ext/
|
|
94
|
+
- ext/datadog_profiling_native_extension/extconf.rb
|
|
95
|
+
- ext/datadog_profiling_loader/extconf.rb
|
|
94
96
|
extra_rdoc_files: []
|
|
95
97
|
files:
|
|
96
98
|
- CHANGELOG.md
|
|
@@ -100,41 +102,46 @@ files:
|
|
|
100
102
|
- LICENSE.BSD3
|
|
101
103
|
- NOTICE
|
|
102
104
|
- README.md
|
|
105
|
+
- bin/ddprofrb
|
|
103
106
|
- bin/ddtracerb
|
|
104
|
-
- ext/
|
|
105
|
-
- ext/
|
|
106
|
-
- ext/
|
|
107
|
-
- ext/
|
|
108
|
-
- ext/
|
|
109
|
-
- ext/
|
|
110
|
-
- ext/
|
|
111
|
-
- ext/
|
|
112
|
-
- ext/
|
|
113
|
-
- ext/
|
|
114
|
-
- ext/
|
|
115
|
-
- ext/
|
|
116
|
-
- ext/
|
|
117
|
-
- ext/
|
|
118
|
-
- ext/
|
|
119
|
-
- ext/
|
|
120
|
-
- ext/
|
|
121
|
-
- ext/
|
|
122
|
-
- ext/
|
|
123
|
-
- ext/
|
|
124
|
-
- ext/
|
|
125
|
-
- ext/
|
|
126
|
-
- ext/
|
|
127
|
-
- ext/
|
|
128
|
-
- ext/
|
|
129
|
-
- ext/
|
|
130
|
-
- ext/
|
|
131
|
-
- ext/
|
|
132
|
-
- ext/
|
|
133
|
-
- ext/
|
|
134
|
-
- ext/
|
|
135
|
-
- ext/
|
|
136
|
-
- ext/
|
|
137
|
-
- ext/
|
|
107
|
+
- ext/datadog_profiling_loader/datadog_profiling_loader.c
|
|
108
|
+
- ext/datadog_profiling_loader/extconf.rb
|
|
109
|
+
- ext/datadog_profiling_native_extension/NativeExtensionDesign.md
|
|
110
|
+
- ext/datadog_profiling_native_extension/clock_id.h
|
|
111
|
+
- ext/datadog_profiling_native_extension/clock_id_from_pthread.c
|
|
112
|
+
- ext/datadog_profiling_native_extension/clock_id_noop.c
|
|
113
|
+
- ext/datadog_profiling_native_extension/collectors_cpu_and_wall_time_worker.c
|
|
114
|
+
- ext/datadog_profiling_native_extension/collectors_discrete_dynamic_sampler.c
|
|
115
|
+
- ext/datadog_profiling_native_extension/collectors_discrete_dynamic_sampler.h
|
|
116
|
+
- ext/datadog_profiling_native_extension/collectors_dynamic_sampling_rate.c
|
|
117
|
+
- ext/datadog_profiling_native_extension/collectors_dynamic_sampling_rate.h
|
|
118
|
+
- ext/datadog_profiling_native_extension/collectors_gc_profiling_helper.c
|
|
119
|
+
- ext/datadog_profiling_native_extension/collectors_gc_profiling_helper.h
|
|
120
|
+
- ext/datadog_profiling_native_extension/collectors_idle_sampling_helper.c
|
|
121
|
+
- ext/datadog_profiling_native_extension/collectors_idle_sampling_helper.h
|
|
122
|
+
- ext/datadog_profiling_native_extension/collectors_stack.c
|
|
123
|
+
- ext/datadog_profiling_native_extension/collectors_stack.h
|
|
124
|
+
- ext/datadog_profiling_native_extension/collectors_thread_context.c
|
|
125
|
+
- ext/datadog_profiling_native_extension/collectors_thread_context.h
|
|
126
|
+
- ext/datadog_profiling_native_extension/extconf.rb
|
|
127
|
+
- ext/datadog_profiling_native_extension/heap_recorder.c
|
|
128
|
+
- ext/datadog_profiling_native_extension/heap_recorder.h
|
|
129
|
+
- ext/datadog_profiling_native_extension/helpers.h
|
|
130
|
+
- ext/datadog_profiling_native_extension/http_transport.c
|
|
131
|
+
- ext/datadog_profiling_native_extension/libdatadog_helpers.c
|
|
132
|
+
- ext/datadog_profiling_native_extension/libdatadog_helpers.h
|
|
133
|
+
- ext/datadog_profiling_native_extension/native_extension_helpers.rb
|
|
134
|
+
- ext/datadog_profiling_native_extension/private_vm_api_access.c
|
|
135
|
+
- ext/datadog_profiling_native_extension/private_vm_api_access.h
|
|
136
|
+
- ext/datadog_profiling_native_extension/profiling.c
|
|
137
|
+
- ext/datadog_profiling_native_extension/ruby_helpers.c
|
|
138
|
+
- ext/datadog_profiling_native_extension/ruby_helpers.h
|
|
139
|
+
- ext/datadog_profiling_native_extension/setup_signal_handler.c
|
|
140
|
+
- ext/datadog_profiling_native_extension/setup_signal_handler.h
|
|
141
|
+
- ext/datadog_profiling_native_extension/stack_recorder.c
|
|
142
|
+
- ext/datadog_profiling_native_extension/stack_recorder.h
|
|
143
|
+
- ext/datadog_profiling_native_extension/time_helpers.c
|
|
144
|
+
- ext/datadog_profiling_native_extension/time_helpers.h
|
|
138
145
|
- lib/datadog/appsec.rb
|
|
139
146
|
- lib/datadog/appsec/assets.rb
|
|
140
147
|
- lib/datadog/appsec/assets/blocked.html
|
|
@@ -215,6 +222,7 @@ files:
|
|
|
215
222
|
- lib/datadog/appsec/utils/http.rb
|
|
216
223
|
- lib/datadog/appsec/utils/http/media_range.rb
|
|
217
224
|
- lib/datadog/appsec/utils/http/media_type.rb
|
|
225
|
+
- lib/datadog/auto_instrument.rb
|
|
218
226
|
- lib/datadog/core.rb
|
|
219
227
|
- lib/datadog/core/backport.rb
|
|
220
228
|
- lib/datadog/core/buffer/cruby.rb
|
|
@@ -239,6 +247,7 @@ files:
|
|
|
239
247
|
- lib/datadog/core/environment/execution.rb
|
|
240
248
|
- lib/datadog/core/environment/ext.rb
|
|
241
249
|
- lib/datadog/core/environment/gc.rb
|
|
250
|
+
- lib/datadog/core/environment/git.rb
|
|
242
251
|
- lib/datadog/core/environment/identity.rb
|
|
243
252
|
- lib/datadog/core/environment/platform.rb
|
|
244
253
|
- lib/datadog/core/environment/socket.rb
|
|
@@ -272,6 +281,8 @@ files:
|
|
|
272
281
|
- lib/datadog/core/remote/dispatcher.rb
|
|
273
282
|
- lib/datadog/core/remote/ext.rb
|
|
274
283
|
- lib/datadog/core/remote/negotiation.rb
|
|
284
|
+
- lib/datadog/core/remote/tie.rb
|
|
285
|
+
- lib/datadog/core/remote/tie/tracing.rb
|
|
275
286
|
- lib/datadog/core/remote/transport/config.rb
|
|
276
287
|
- lib/datadog/core/remote/transport/http.rb
|
|
277
288
|
- lib/datadog/core/remote/transport/http/api.rb
|
|
@@ -286,7 +297,6 @@ files:
|
|
|
286
297
|
- lib/datadog/core/runtime/ext.rb
|
|
287
298
|
- lib/datadog/core/runtime/metrics.rb
|
|
288
299
|
- lib/datadog/core/telemetry/client.rb
|
|
289
|
-
- lib/datadog/core/telemetry/collector.rb
|
|
290
300
|
- lib/datadog/core/telemetry/emitter.rb
|
|
291
301
|
- lib/datadog/core/telemetry/event.rb
|
|
292
302
|
- lib/datadog/core/telemetry/ext.rb
|
|
@@ -296,16 +306,7 @@ files:
|
|
|
296
306
|
- lib/datadog/core/telemetry/http/ext.rb
|
|
297
307
|
- lib/datadog/core/telemetry/http/response.rb
|
|
298
308
|
- lib/datadog/core/telemetry/http/transport.rb
|
|
299
|
-
- lib/datadog/core/telemetry/
|
|
300
|
-
- lib/datadog/core/telemetry/v1/application.rb
|
|
301
|
-
- lib/datadog/core/telemetry/v1/configuration.rb
|
|
302
|
-
- lib/datadog/core/telemetry/v1/dependency.rb
|
|
303
|
-
- lib/datadog/core/telemetry/v1/host.rb
|
|
304
|
-
- lib/datadog/core/telemetry/v1/integration.rb
|
|
305
|
-
- lib/datadog/core/telemetry/v1/product.rb
|
|
306
|
-
- lib/datadog/core/telemetry/v1/telemetry_request.rb
|
|
307
|
-
- lib/datadog/core/telemetry/v2/app_client_configuration_change.rb
|
|
308
|
-
- lib/datadog/core/telemetry/v2/request.rb
|
|
309
|
+
- lib/datadog/core/telemetry/request.rb
|
|
309
310
|
- lib/datadog/core/transport/ext.rb
|
|
310
311
|
- lib/datadog/core/transport/http/adapters/net.rb
|
|
311
312
|
- lib/datadog/core/transport/http/adapters/registry.rb
|
|
@@ -329,6 +330,7 @@ files:
|
|
|
329
330
|
- lib/datadog/core/utils/safe_dup.rb
|
|
330
331
|
- lib/datadog/core/utils/sequence.rb
|
|
331
332
|
- lib/datadog/core/utils/time.rb
|
|
333
|
+
- lib/datadog/core/utils/url.rb
|
|
332
334
|
- lib/datadog/core/vendor/ipaddr.rb
|
|
333
335
|
- lib/datadog/core/vendor/multipart-post/LICENSE
|
|
334
336
|
- lib/datadog/core/vendor/multipart-post/multipart.rb
|
|
@@ -378,10 +380,10 @@ files:
|
|
|
378
380
|
- lib/datadog/profiling/collectors/cpu_and_wall_time_worker.rb
|
|
379
381
|
- lib/datadog/profiling/collectors/dynamic_sampling_rate.rb
|
|
380
382
|
- lib/datadog/profiling/collectors/idle_sampling_helper.rb
|
|
383
|
+
- lib/datadog/profiling/collectors/info.rb
|
|
381
384
|
- lib/datadog/profiling/collectors/stack.rb
|
|
382
385
|
- lib/datadog/profiling/collectors/thread_context.rb
|
|
383
386
|
- lib/datadog/profiling/component.rb
|
|
384
|
-
- lib/datadog/profiling/diagnostics/environment_logger.rb
|
|
385
387
|
- lib/datadog/profiling/exporter.rb
|
|
386
388
|
- lib/datadog/profiling/ext.rb
|
|
387
389
|
- lib/datadog/profiling/ext/forking.rb
|
|
@@ -508,6 +510,7 @@ files:
|
|
|
508
510
|
- lib/datadog/tracing/contrib/aws/service/sqs.rb
|
|
509
511
|
- lib/datadog/tracing/contrib/aws/service/states.rb
|
|
510
512
|
- lib/datadog/tracing/contrib/aws/services.rb
|
|
513
|
+
- lib/datadog/tracing/contrib/concurrent_ruby/async_patch.rb
|
|
511
514
|
- lib/datadog/tracing/contrib/concurrent_ruby/configuration/settings.rb
|
|
512
515
|
- lib/datadog/tracing/contrib/concurrent_ruby/context_composite_executor_service.rb
|
|
513
516
|
- lib/datadog/tracing/contrib/concurrent_ruby/ext.rb
|
|
@@ -787,6 +790,11 @@ files:
|
|
|
787
790
|
- lib/datadog/tracing/contrib/sucker_punch/instrumentation.rb
|
|
788
791
|
- lib/datadog/tracing/contrib/sucker_punch/integration.rb
|
|
789
792
|
- lib/datadog/tracing/contrib/sucker_punch/patcher.rb
|
|
793
|
+
- lib/datadog/tracing/contrib/trilogy/configuration/settings.rb
|
|
794
|
+
- lib/datadog/tracing/contrib/trilogy/ext.rb
|
|
795
|
+
- lib/datadog/tracing/contrib/trilogy/instrumentation.rb
|
|
796
|
+
- lib/datadog/tracing/contrib/trilogy/integration.rb
|
|
797
|
+
- lib/datadog/tracing/contrib/trilogy/patcher.rb
|
|
790
798
|
- lib/datadog/tracing/contrib/utils/database.rb
|
|
791
799
|
- lib/datadog/tracing/contrib/utils/quantization/hash.rb
|
|
792
800
|
- lib/datadog/tracing/contrib/utils/quantization/http.rb
|
|
@@ -869,10 +877,12 @@ files:
|
|
|
869
877
|
homepage: https://github.com/DataDog/dd-trace-rb
|
|
870
878
|
licenses:
|
|
871
879
|
- BSD-3-Clause
|
|
880
|
+
- Apache-2.0
|
|
872
881
|
metadata:
|
|
873
882
|
allowed_push_host: https://rubygems.org
|
|
874
|
-
changelog_uri: https://github.com/DataDog/dd-trace-rb/blob/
|
|
875
|
-
|
|
883
|
+
changelog_uri: https://github.com/DataDog/dd-trace-rb/blob/v1.23.2/CHANGELOG.md
|
|
884
|
+
source_code_uri: https://github.com/DataDog/dd-trace-rb/tree/v1.23.2
|
|
885
|
+
post_install_message:
|
|
876
886
|
rdoc_options: []
|
|
877
887
|
require_paths:
|
|
878
888
|
- lib
|
|
@@ -890,8 +900,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
890
900
|
- !ruby/object:Gem::Version
|
|
891
901
|
version: 2.0.0
|
|
892
902
|
requirements: []
|
|
893
|
-
rubygems_version: 3.4.
|
|
894
|
-
signing_key:
|
|
903
|
+
rubygems_version: 3.4.10
|
|
904
|
+
signing_key:
|
|
895
905
|
specification_version: 4
|
|
896
906
|
summary: Datadog tracing code for your Ruby applications
|
|
897
907
|
test_files: []
|
|
@@ -1,57 +0,0 @@
|
|
|
1
|
-
/*
|
|
2
|
-
* Copyright 2023 Datadog, Inc
|
|
3
|
-
*
|
|
4
|
-
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
|
-
* you may not use this file except in compliance with the License.
|
|
6
|
-
* You may obtain a copy of the License at
|
|
7
|
-
*
|
|
8
|
-
* http://www.apache.org/licenses/LICENSE-2.0
|
|
9
|
-
*
|
|
10
|
-
* Unless required by applicable law or agreed to in writing, software
|
|
11
|
-
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
12
|
-
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
-
* See the License for the specific language governing permissions and
|
|
14
|
-
* limitations under the License.
|
|
15
|
-
*/
|
|
16
|
-
|
|
17
|
-
// Originally imported from https://github.com/DataDog/java-profiler/blob/11fe6206c31a14c6e5134e8401eaec8b22c618d7/ddprof-lib/src/main/cpp/pidController.cpp
|
|
18
|
-
|
|
19
|
-
#include "pid_controller.h"
|
|
20
|
-
|
|
21
|
-
#include <math.h>
|
|
22
|
-
|
|
23
|
-
inline static double computeAlpha(float cutoff) {
|
|
24
|
-
if (cutoff <= 0)
|
|
25
|
-
return 1;
|
|
26
|
-
// α(fₙ) = cos(2πfₙ) - 1 + √( cos(2πfₙ)² - 4 cos(2πfₙ) + 3 )
|
|
27
|
-
const double c = cos(2 * ((double) M_PI) * cutoff);
|
|
28
|
-
return c - 1 + sqrt(c * c - 4 * c + 3);
|
|
29
|
-
}
|
|
30
|
-
|
|
31
|
-
void pid_controller_init(pid_controller *controller, u64 target_per_second, double proportional_gain, double integral_gain, double derivative_gain, int sampling_window, double cutoff_secs) {
|
|
32
|
-
controller->_target = target_per_second * sampling_window;
|
|
33
|
-
controller->_proportional_gain = proportional_gain;
|
|
34
|
-
controller->_integral_gain = integral_gain * sampling_window;
|
|
35
|
-
controller->_derivative_gain = derivative_gain / sampling_window;
|
|
36
|
-
controller->_alpha = computeAlpha(sampling_window / cutoff_secs);
|
|
37
|
-
controller->_avg_error= 0;
|
|
38
|
-
controller->_integral_value = 0;
|
|
39
|
-
}
|
|
40
|
-
|
|
41
|
-
double pid_controller_compute(pid_controller *controller, u64 input, double time_delta_coefficient) {
|
|
42
|
-
// time_delta_coefficient allows variable sampling window
|
|
43
|
-
// the values are linearly scaled using that coefficient to reinterpret the given value within the expected sampling window
|
|
44
|
-
double absolute_error = (((double) controller->_target) - ((double) input)) * time_delta_coefficient;
|
|
45
|
-
|
|
46
|
-
double avg_error = (controller->_alpha * absolute_error) + ((1 - controller->_alpha) * controller->_avg_error);
|
|
47
|
-
double derivative = avg_error - controller->_avg_error;
|
|
48
|
-
|
|
49
|
-
// PID formula:
|
|
50
|
-
// u[k] = Kp e[k] + Ki e_i[k] + Kd e_d[k], control signal
|
|
51
|
-
double signal = controller->_proportional_gain * absolute_error + controller->_integral_gain * controller->_integral_value + controller->_derivative_gain * derivative;
|
|
52
|
-
|
|
53
|
-
controller->_integral_value += absolute_error;
|
|
54
|
-
controller->_avg_error = avg_error;
|
|
55
|
-
|
|
56
|
-
return signal;
|
|
57
|
-
}
|
|
@@ -1,45 +0,0 @@
|
|
|
1
|
-
/*
|
|
2
|
-
* Copyright 2023 Datadog, Inc
|
|
3
|
-
*
|
|
4
|
-
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
|
-
* you may not use this file except in compliance with the License.
|
|
6
|
-
* You may obtain a copy of the License at
|
|
7
|
-
*
|
|
8
|
-
* http://www.apache.org/licenses/LICENSE-2.0
|
|
9
|
-
*
|
|
10
|
-
* Unless required by applicable law or agreed to in writing, software
|
|
11
|
-
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
12
|
-
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
-
* See the License for the specific language governing permissions and
|
|
14
|
-
* limitations under the License.
|
|
15
|
-
*/
|
|
16
|
-
|
|
17
|
-
// Originally imported from https://github.com/DataDog/java-profiler/blob/11fe6206c31a14c6e5134e8401eaec8b22c618d7/ddprof-lib/src/main/cpp/pidController.h
|
|
18
|
-
|
|
19
|
-
#ifndef _PIDCONTROLLER_H
|
|
20
|
-
#define _PIDCONTROLLER_H
|
|
21
|
-
|
|
22
|
-
// From arch.h in java-profiler
|
|
23
|
-
typedef unsigned long long u64;
|
|
24
|
-
|
|
25
|
-
/*
|
|
26
|
-
* A simple implementation of a PID controller.
|
|
27
|
-
* Heavily influenced by https://tttapa.github.io/Pages/Arduino/Control-Theory/Motor-Fader/PID-Cpp-Implementation.html
|
|
28
|
-
*/
|
|
29
|
-
|
|
30
|
-
typedef struct {
|
|
31
|
-
u64 _target;
|
|
32
|
-
double _proportional_gain;
|
|
33
|
-
double _derivative_gain;
|
|
34
|
-
double _integral_gain;
|
|
35
|
-
double _alpha;
|
|
36
|
-
|
|
37
|
-
double _avg_error;
|
|
38
|
-
long long _integral_value;
|
|
39
|
-
} pid_controller;
|
|
40
|
-
|
|
41
|
-
void pid_controller_init(pid_controller *controller, u64 target_per_second, double proportional_gain, double integral_gain, double derivative_gain, int sampling_window, double cutoff_secs);
|
|
42
|
-
|
|
43
|
-
double pid_controller_compute(pid_controller *controller, u64 input, double time_delta_seconds);
|
|
44
|
-
|
|
45
|
-
#endif
|
|
@@ -1,110 +0,0 @@
|
|
|
1
|
-
#include <ruby.h>
|
|
2
|
-
#include <ruby/thread.h>
|
|
3
|
-
|
|
4
|
-
#include "ruby_helpers.h"
|
|
5
|
-
#include "private_vm_api_access.h"
|
|
6
|
-
|
|
7
|
-
void raise_unexpected_type(
|
|
8
|
-
VALUE value,
|
|
9
|
-
const char *value_name,
|
|
10
|
-
const char *type_name,
|
|
11
|
-
const char *file,
|
|
12
|
-
int line,
|
|
13
|
-
const char* function_name
|
|
14
|
-
) {
|
|
15
|
-
rb_exc_raise(
|
|
16
|
-
rb_exc_new_str(
|
|
17
|
-
rb_eTypeError,
|
|
18
|
-
rb_sprintf("wrong argument %"PRIsVALUE" for '%s' (expected a %s) at %s:%d:in `%s'",
|
|
19
|
-
rb_inspect(value),
|
|
20
|
-
value_name,
|
|
21
|
-
type_name,
|
|
22
|
-
file,
|
|
23
|
-
line,
|
|
24
|
-
function_name
|
|
25
|
-
)
|
|
26
|
-
)
|
|
27
|
-
);
|
|
28
|
-
}
|
|
29
|
-
|
|
30
|
-
#define MAX_RAISE_MESSAGE_SIZE 256
|
|
31
|
-
|
|
32
|
-
struct raise_arguments {
|
|
33
|
-
VALUE exception_class;
|
|
34
|
-
char exception_message[MAX_RAISE_MESSAGE_SIZE];
|
|
35
|
-
};
|
|
36
|
-
|
|
37
|
-
static void *trigger_raise(void *raise_arguments) {
|
|
38
|
-
struct raise_arguments *args = (struct raise_arguments *) raise_arguments;
|
|
39
|
-
rb_raise(args->exception_class, "%s", args->exception_message);
|
|
40
|
-
}
|
|
41
|
-
|
|
42
|
-
void grab_gvl_and_raise(VALUE exception_class, const char *format_string, ...) {
|
|
43
|
-
struct raise_arguments args;
|
|
44
|
-
|
|
45
|
-
args.exception_class = exception_class;
|
|
46
|
-
|
|
47
|
-
va_list format_string_arguments;
|
|
48
|
-
va_start(format_string_arguments, format_string);
|
|
49
|
-
vsnprintf(args.exception_message, MAX_RAISE_MESSAGE_SIZE, format_string, format_string_arguments);
|
|
50
|
-
|
|
51
|
-
if (is_current_thread_holding_the_gvl()) {
|
|
52
|
-
rb_raise(
|
|
53
|
-
rb_eRuntimeError,
|
|
54
|
-
"grab_gvl_and_raise called by thread holding the global VM lock. exception_message: '%s'",
|
|
55
|
-
args.exception_message
|
|
56
|
-
);
|
|
57
|
-
}
|
|
58
|
-
|
|
59
|
-
rb_thread_call_with_gvl(trigger_raise, &args);
|
|
60
|
-
|
|
61
|
-
rb_bug("[ddtrace] Unexpected: Reached the end of grab_gvl_and_raise while raising '%s'\n", args.exception_message);
|
|
62
|
-
}
|
|
63
|
-
|
|
64
|
-
struct syserr_raise_arguments {
|
|
65
|
-
int syserr_errno;
|
|
66
|
-
char exception_message[MAX_RAISE_MESSAGE_SIZE];
|
|
67
|
-
};
|
|
68
|
-
|
|
69
|
-
static void *trigger_syserr_raise(void *syserr_raise_arguments) {
|
|
70
|
-
struct syserr_raise_arguments *args = (struct syserr_raise_arguments *) syserr_raise_arguments;
|
|
71
|
-
rb_syserr_fail(args->syserr_errno, args->exception_message);
|
|
72
|
-
}
|
|
73
|
-
|
|
74
|
-
void grab_gvl_and_raise_syserr(int syserr_errno, const char *format_string, ...) {
|
|
75
|
-
struct syserr_raise_arguments args;
|
|
76
|
-
|
|
77
|
-
args.syserr_errno = syserr_errno;
|
|
78
|
-
|
|
79
|
-
va_list format_string_arguments;
|
|
80
|
-
va_start(format_string_arguments, format_string);
|
|
81
|
-
vsnprintf(args.exception_message, MAX_RAISE_MESSAGE_SIZE, format_string, format_string_arguments);
|
|
82
|
-
|
|
83
|
-
if (is_current_thread_holding_the_gvl()) {
|
|
84
|
-
rb_raise(
|
|
85
|
-
rb_eRuntimeError,
|
|
86
|
-
"grab_gvl_and_raise_syserr called by thread holding the global VM lock. syserr_errno: %d, exception_message: '%s'",
|
|
87
|
-
syserr_errno,
|
|
88
|
-
args.exception_message
|
|
89
|
-
);
|
|
90
|
-
}
|
|
91
|
-
|
|
92
|
-
rb_thread_call_with_gvl(trigger_syserr_raise, &args);
|
|
93
|
-
|
|
94
|
-
rb_bug("[ddtrace] Unexpected: Reached the end of grab_gvl_and_raise_syserr while raising '%s'\n", args.exception_message);
|
|
95
|
-
}
|
|
96
|
-
|
|
97
|
-
void raise_syserr(
|
|
98
|
-
int syserr_errno,
|
|
99
|
-
bool have_gvl,
|
|
100
|
-
const char *expression,
|
|
101
|
-
const char *file,
|
|
102
|
-
int line,
|
|
103
|
-
const char *function_name
|
|
104
|
-
) {
|
|
105
|
-
if (have_gvl) {
|
|
106
|
-
rb_exc_raise(rb_syserr_new_str(syserr_errno, rb_sprintf("Failure returned by '%s' at %s:%d:in `%s'", expression, file, line, function_name)));
|
|
107
|
-
} else {
|
|
108
|
-
grab_gvl_and_raise_syserr(syserr_errno, "Failure returned by '%s' at %s:%d:in `%s'", expression, file, line, function_name);
|
|
109
|
-
}
|
|
110
|
-
}
|