ddtrace 1.18.0 → 1.23.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (229) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +228 -2
  3. data/LICENSE-3rdparty.csv +1 -1
  4. data/bin/ddprofrb +15 -0
  5. data/bin/ddtracerb +3 -1
  6. data/ext/{ddtrace_profiling_loader/ddtrace_profiling_loader.c → datadog_profiling_loader/datadog_profiling_loader.c} +2 -2
  7. data/ext/{ddtrace_profiling_loader → datadog_profiling_loader}/extconf.rb +3 -3
  8. data/ext/{ddtrace_profiling_native_extension → datadog_profiling_native_extension}/collectors_cpu_and_wall_time_worker.c +312 -117
  9. data/ext/datadog_profiling_native_extension/collectors_discrete_dynamic_sampler.c +422 -0
  10. data/ext/datadog_profiling_native_extension/collectors_discrete_dynamic_sampler.h +101 -0
  11. data/ext/{ddtrace_profiling_native_extension → datadog_profiling_native_extension}/collectors_dynamic_sampling_rate.c +22 -14
  12. data/ext/{ddtrace_profiling_native_extension → datadog_profiling_native_extension}/collectors_dynamic_sampling_rate.h +4 -0
  13. data/ext/datadog_profiling_native_extension/collectors_gc_profiling_helper.c +156 -0
  14. data/ext/datadog_profiling_native_extension/collectors_gc_profiling_helper.h +5 -0
  15. data/ext/{ddtrace_profiling_native_extension → datadog_profiling_native_extension}/collectors_stack.c +43 -102
  16. data/ext/{ddtrace_profiling_native_extension → datadog_profiling_native_extension}/collectors_stack.h +10 -3
  17. data/ext/{ddtrace_profiling_native_extension → datadog_profiling_native_extension}/collectors_thread_context.c +272 -136
  18. data/ext/{ddtrace_profiling_native_extension → datadog_profiling_native_extension}/collectors_thread_context.h +2 -1
  19. data/ext/{ddtrace_profiling_native_extension → datadog_profiling_native_extension}/extconf.rb +28 -7
  20. data/ext/datadog_profiling_native_extension/heap_recorder.c +1047 -0
  21. data/ext/datadog_profiling_native_extension/heap_recorder.h +166 -0
  22. data/ext/{ddtrace_profiling_native_extension → datadog_profiling_native_extension}/helpers.h +6 -0
  23. data/ext/{ddtrace_profiling_native_extension → datadog_profiling_native_extension}/http_transport.c +15 -19
  24. data/ext/{ddtrace_profiling_native_extension → datadog_profiling_native_extension}/libdatadog_helpers.c +20 -0
  25. data/ext/{ddtrace_profiling_native_extension → datadog_profiling_native_extension}/libdatadog_helpers.h +11 -0
  26. data/ext/{ddtrace_profiling_native_extension → datadog_profiling_native_extension}/native_extension_helpers.rb +50 -4
  27. data/ext/{ddtrace_profiling_native_extension → datadog_profiling_native_extension}/private_vm_api_access.c +19 -0
  28. data/ext/{ddtrace_profiling_native_extension → datadog_profiling_native_extension}/private_vm_api_access.h +4 -0
  29. data/ext/{ddtrace_profiling_native_extension → datadog_profiling_native_extension}/profiling.c +18 -1
  30. data/ext/datadog_profiling_native_extension/ruby_helpers.c +267 -0
  31. data/ext/{ddtrace_profiling_native_extension → datadog_profiling_native_extension}/ruby_helpers.h +33 -0
  32. data/ext/{ddtrace_profiling_native_extension → datadog_profiling_native_extension}/stack_recorder.c +476 -58
  33. data/ext/{ddtrace_profiling_native_extension → datadog_profiling_native_extension}/stack_recorder.h +3 -0
  34. data/ext/{ddtrace_profiling_native_extension → datadog_profiling_native_extension}/time_helpers.h +2 -0
  35. data/lib/datadog/appsec/contrib/devise/tracking.rb +8 -0
  36. data/lib/datadog/appsec/contrib/rack/request_middleware.rb +45 -14
  37. data/lib/datadog/appsec/event.rb +1 -1
  38. data/lib/datadog/auto_instrument.rb +3 -0
  39. data/lib/datadog/core/configuration/components.rb +7 -6
  40. data/lib/datadog/core/configuration/option.rb +8 -6
  41. data/lib/datadog/core/configuration/settings.rb +259 -60
  42. data/lib/datadog/core/configuration.rb +20 -4
  43. data/lib/datadog/core/diagnostics/environment_logger.rb +4 -3
  44. data/lib/datadog/core/environment/class_count.rb +6 -6
  45. data/lib/datadog/core/environment/git.rb +25 -0
  46. data/lib/datadog/core/environment/identity.rb +18 -48
  47. data/lib/datadog/core/environment/platform.rb +7 -1
  48. data/lib/datadog/core/git/ext.rb +2 -23
  49. data/lib/datadog/core/remote/client/capabilities.rb +1 -1
  50. data/lib/datadog/core/remote/component.rb +25 -12
  51. data/lib/datadog/core/remote/ext.rb +1 -0
  52. data/lib/datadog/core/remote/negotiation.rb +2 -2
  53. data/lib/datadog/core/remote/tie/tracing.rb +39 -0
  54. data/lib/datadog/core/remote/tie.rb +27 -0
  55. data/lib/datadog/core/remote/transport/http/config.rb +1 -1
  56. data/lib/datadog/core/remote/worker.rb +7 -4
  57. data/lib/datadog/core/telemetry/client.rb +18 -10
  58. data/lib/datadog/core/telemetry/emitter.rb +9 -13
  59. data/lib/datadog/core/telemetry/event.rb +247 -56
  60. data/lib/datadog/core/telemetry/ext.rb +4 -0
  61. data/lib/datadog/core/telemetry/heartbeat.rb +1 -3
  62. data/lib/datadog/core/telemetry/http/ext.rb +4 -1
  63. data/lib/datadog/core/telemetry/http/response.rb +4 -0
  64. data/lib/datadog/core/telemetry/http/transport.rb +9 -4
  65. data/lib/datadog/core/telemetry/request.rb +59 -0
  66. data/lib/datadog/core/transport/ext.rb +2 -0
  67. data/lib/datadog/core/utils/url.rb +25 -0
  68. data/lib/datadog/opentelemetry/sdk/propagator.rb +3 -2
  69. data/lib/datadog/opentelemetry.rb +3 -0
  70. data/lib/datadog/profiling/collectors/code_provenance.rb +10 -4
  71. data/lib/datadog/profiling/collectors/cpu_and_wall_time_worker.rb +36 -12
  72. data/lib/datadog/profiling/collectors/info.rb +101 -0
  73. data/lib/datadog/profiling/component.rb +210 -34
  74. data/lib/datadog/profiling/exporter.rb +23 -6
  75. data/lib/datadog/profiling/ext.rb +2 -0
  76. data/lib/datadog/profiling/flush.rb +6 -3
  77. data/lib/datadog/profiling/http_transport.rb +5 -1
  78. data/lib/datadog/profiling/load_native_extension.rb +19 -6
  79. data/lib/datadog/profiling/native_extension.rb +1 -1
  80. data/lib/datadog/profiling/scheduler.rb +4 -6
  81. data/lib/datadog/profiling/stack_recorder.rb +19 -4
  82. data/lib/datadog/profiling/tag_builder.rb +5 -0
  83. data/lib/datadog/profiling/tasks/exec.rb +3 -3
  84. data/lib/datadog/profiling/tasks/help.rb +3 -3
  85. data/lib/datadog/profiling.rb +13 -2
  86. data/lib/datadog/tracing/configuration/ext.rb +0 -1
  87. data/lib/datadog/tracing/configuration/settings.rb +2 -1
  88. data/lib/datadog/tracing/contrib/action_cable/configuration/settings.rb +1 -0
  89. data/lib/datadog/tracing/contrib/action_cable/ext.rb +1 -0
  90. data/lib/datadog/tracing/contrib/action_mailer/configuration/settings.rb +1 -0
  91. data/lib/datadog/tracing/contrib/action_mailer/events/deliver.rb +1 -1
  92. data/lib/datadog/tracing/contrib/action_mailer/ext.rb +1 -0
  93. data/lib/datadog/tracing/contrib/action_pack/configuration/settings.rb +1 -0
  94. data/lib/datadog/tracing/contrib/action_pack/ext.rb +1 -0
  95. data/lib/datadog/tracing/contrib/action_view/configuration/settings.rb +1 -0
  96. data/lib/datadog/tracing/contrib/action_view/ext.rb +1 -0
  97. data/lib/datadog/tracing/contrib/active_job/configuration/settings.rb +1 -0
  98. data/lib/datadog/tracing/contrib/active_job/ext.rb +1 -0
  99. data/lib/datadog/tracing/contrib/active_model_serializers/configuration/settings.rb +1 -0
  100. data/lib/datadog/tracing/contrib/active_model_serializers/ext.rb +1 -0
  101. data/lib/datadog/tracing/contrib/active_record/configuration/resolver.rb +11 -4
  102. data/lib/datadog/tracing/contrib/active_record/configuration/settings.rb +1 -0
  103. data/lib/datadog/tracing/contrib/active_record/ext.rb +1 -0
  104. data/lib/datadog/tracing/contrib/active_support/configuration/settings.rb +1 -0
  105. data/lib/datadog/tracing/contrib/active_support/ext.rb +1 -0
  106. data/lib/datadog/tracing/contrib/analytics.rb +0 -1
  107. data/lib/datadog/tracing/contrib/aws/configuration/settings.rb +1 -0
  108. data/lib/datadog/tracing/contrib/aws/ext.rb +1 -0
  109. data/lib/datadog/tracing/contrib/concurrent_ruby/async_patch.rb +20 -0
  110. data/lib/datadog/tracing/contrib/concurrent_ruby/patcher.rb +11 -1
  111. data/lib/datadog/tracing/contrib/configurable.rb +1 -1
  112. data/lib/datadog/tracing/contrib/dalli/configuration/settings.rb +1 -0
  113. data/lib/datadog/tracing/contrib/dalli/ext.rb +1 -0
  114. data/lib/datadog/tracing/contrib/delayed_job/configuration/settings.rb +1 -0
  115. data/lib/datadog/tracing/contrib/delayed_job/ext.rb +1 -0
  116. data/lib/datadog/tracing/contrib/elasticsearch/configuration/settings.rb +1 -0
  117. data/lib/datadog/tracing/contrib/elasticsearch/ext.rb +1 -0
  118. data/lib/datadog/tracing/contrib/ethon/configuration/settings.rb +1 -0
  119. data/lib/datadog/tracing/contrib/ethon/ext.rb +1 -0
  120. data/lib/datadog/tracing/contrib/excon/configuration/settings.rb +1 -0
  121. data/lib/datadog/tracing/contrib/excon/ext.rb +1 -0
  122. data/lib/datadog/tracing/contrib/extensions.rb +6 -2
  123. data/lib/datadog/tracing/contrib/faraday/configuration/settings.rb +7 -0
  124. data/lib/datadog/tracing/contrib/faraday/ext.rb +1 -0
  125. data/lib/datadog/tracing/contrib/faraday/middleware.rb +1 -1
  126. data/lib/datadog/tracing/contrib/grape/configuration/settings.rb +1 -0
  127. data/lib/datadog/tracing/contrib/grape/ext.rb +1 -0
  128. data/lib/datadog/tracing/contrib/graphql/configuration/settings.rb +1 -0
  129. data/lib/datadog/tracing/contrib/graphql/ext.rb +1 -0
  130. data/lib/datadog/tracing/contrib/grpc/configuration/settings.rb +1 -0
  131. data/lib/datadog/tracing/contrib/grpc/ext.rb +1 -0
  132. data/lib/datadog/tracing/contrib/http/configuration/settings.rb +1 -0
  133. data/lib/datadog/tracing/contrib/http/distributed/fetcher.rb +2 -2
  134. data/lib/datadog/tracing/contrib/http/ext.rb +1 -0
  135. data/lib/datadog/tracing/contrib/httpclient/configuration/settings.rb +1 -0
  136. data/lib/datadog/tracing/contrib/httpclient/ext.rb +1 -0
  137. data/lib/datadog/tracing/contrib/httprb/configuration/settings.rb +1 -0
  138. data/lib/datadog/tracing/contrib/httprb/ext.rb +1 -0
  139. data/lib/datadog/tracing/contrib/kafka/configuration/settings.rb +1 -0
  140. data/lib/datadog/tracing/contrib/kafka/ext.rb +1 -0
  141. data/lib/datadog/tracing/contrib/mongodb/configuration/settings.rb +1 -0
  142. data/lib/datadog/tracing/contrib/mongodb/ext.rb +1 -0
  143. data/lib/datadog/tracing/contrib/mysql2/configuration/settings.rb +5 -0
  144. data/lib/datadog/tracing/contrib/mysql2/ext.rb +1 -0
  145. data/lib/datadog/tracing/contrib/mysql2/instrumentation.rb +2 -1
  146. data/lib/datadog/tracing/contrib/opensearch/configuration/settings.rb +1 -0
  147. data/lib/datadog/tracing/contrib/opensearch/ext.rb +1 -0
  148. data/lib/datadog/tracing/contrib/pg/configuration/settings.rb +1 -0
  149. data/lib/datadog/tracing/contrib/pg/ext.rb +1 -0
  150. data/lib/datadog/tracing/contrib/pg/instrumentation.rb +11 -4
  151. data/lib/datadog/tracing/contrib/presto/configuration/settings.rb +1 -0
  152. data/lib/datadog/tracing/contrib/presto/ext.rb +1 -0
  153. data/lib/datadog/tracing/contrib/qless/configuration/settings.rb +1 -0
  154. data/lib/datadog/tracing/contrib/qless/ext.rb +1 -0
  155. data/lib/datadog/tracing/contrib/que/configuration/settings.rb +1 -0
  156. data/lib/datadog/tracing/contrib/que/ext.rb +1 -0
  157. data/lib/datadog/tracing/contrib/racecar/configuration/settings.rb +1 -0
  158. data/lib/datadog/tracing/contrib/racecar/ext.rb +1 -0
  159. data/lib/datadog/tracing/contrib/rack/configuration/settings.rb +1 -0
  160. data/lib/datadog/tracing/contrib/rack/ext.rb +1 -0
  161. data/lib/datadog/tracing/contrib/rack/middlewares.rb +9 -2
  162. data/lib/datadog/tracing/contrib/rails/auto_instrument_railtie.rb +0 -2
  163. data/lib/datadog/tracing/contrib/rails/configuration/settings.rb +1 -0
  164. data/lib/datadog/tracing/contrib/rails/ext.rb +1 -0
  165. data/lib/datadog/tracing/contrib/rake/configuration/settings.rb +1 -0
  166. data/lib/datadog/tracing/contrib/rake/ext.rb +1 -0
  167. data/lib/datadog/tracing/contrib/redis/configuration/settings.rb +1 -0
  168. data/lib/datadog/tracing/contrib/redis/ext.rb +1 -0
  169. data/lib/datadog/tracing/contrib/redis/instrumentation.rb +2 -2
  170. data/lib/datadog/tracing/contrib/redis/patcher.rb +34 -21
  171. data/lib/datadog/tracing/contrib/resque/configuration/settings.rb +1 -0
  172. data/lib/datadog/tracing/contrib/resque/ext.rb +1 -0
  173. data/lib/datadog/tracing/contrib/rest_client/configuration/settings.rb +1 -0
  174. data/lib/datadog/tracing/contrib/rest_client/ext.rb +1 -0
  175. data/lib/datadog/tracing/contrib/roda/configuration/settings.rb +1 -0
  176. data/lib/datadog/tracing/contrib/roda/ext.rb +1 -0
  177. data/lib/datadog/tracing/contrib/sequel/configuration/settings.rb +1 -0
  178. data/lib/datadog/tracing/contrib/sequel/ext.rb +1 -0
  179. data/lib/datadog/tracing/contrib/shoryuken/configuration/settings.rb +1 -0
  180. data/lib/datadog/tracing/contrib/shoryuken/ext.rb +1 -0
  181. data/lib/datadog/tracing/contrib/sidekiq/configuration/settings.rb +1 -0
  182. data/lib/datadog/tracing/contrib/sidekiq/ext.rb +1 -0
  183. data/lib/datadog/tracing/contrib/sinatra/configuration/settings.rb +1 -0
  184. data/lib/datadog/tracing/contrib/sinatra/ext.rb +1 -0
  185. data/lib/datadog/tracing/contrib/sneakers/configuration/settings.rb +1 -0
  186. data/lib/datadog/tracing/contrib/sneakers/ext.rb +1 -0
  187. data/lib/datadog/tracing/contrib/stripe/configuration/settings.rb +1 -0
  188. data/lib/datadog/tracing/contrib/stripe/ext.rb +1 -0
  189. data/lib/datadog/tracing/contrib/sucker_punch/configuration/settings.rb +1 -0
  190. data/lib/datadog/tracing/contrib/sucker_punch/ext.rb +1 -0
  191. data/lib/datadog/tracing/contrib/trilogy/configuration/settings.rb +58 -0
  192. data/lib/datadog/tracing/contrib/trilogy/ext.rb +27 -0
  193. data/lib/datadog/tracing/contrib/trilogy/instrumentation.rb +94 -0
  194. data/lib/datadog/tracing/contrib/trilogy/integration.rb +43 -0
  195. data/lib/datadog/tracing/contrib/trilogy/patcher.rb +31 -0
  196. data/lib/datadog/tracing/contrib.rb +1 -0
  197. data/lib/datadog/tracing/sampling/matcher.rb +23 -3
  198. data/lib/datadog/tracing/sampling/rule.rb +7 -2
  199. data/lib/datadog/tracing/sampling/rule_sampler.rb +2 -0
  200. data/lib/datadog/tracing/trace_operation.rb +1 -2
  201. data/lib/datadog/tracing/transport/http.rb +1 -0
  202. data/lib/datadog/tracing/transport/trace_formatter.rb +31 -0
  203. data/lib/datadog/tracing.rb +8 -2
  204. data/lib/ddtrace/version.rb +2 -2
  205. metadata +71 -61
  206. data/ext/ddtrace_profiling_native_extension/pid_controller.c +0 -57
  207. data/ext/ddtrace_profiling_native_extension/pid_controller.h +0 -45
  208. data/ext/ddtrace_profiling_native_extension/ruby_helpers.c +0 -110
  209. data/lib/datadog/core/telemetry/collector.rb +0 -240
  210. data/lib/datadog/core/telemetry/v1/app_event.rb +0 -52
  211. data/lib/datadog/core/telemetry/v1/application.rb +0 -92
  212. data/lib/datadog/core/telemetry/v1/configuration.rb +0 -25
  213. data/lib/datadog/core/telemetry/v1/dependency.rb +0 -43
  214. data/lib/datadog/core/telemetry/v1/host.rb +0 -59
  215. data/lib/datadog/core/telemetry/v1/integration.rb +0 -64
  216. data/lib/datadog/core/telemetry/v1/product.rb +0 -36
  217. data/lib/datadog/core/telemetry/v1/telemetry_request.rb +0 -106
  218. data/lib/datadog/core/telemetry/v2/app_client_configuration_change.rb +0 -41
  219. data/lib/datadog/core/telemetry/v2/request.rb +0 -29
  220. data/lib/datadog/profiling/diagnostics/environment_logger.rb +0 -39
  221. /data/ext/{ddtrace_profiling_native_extension → datadog_profiling_native_extension}/NativeExtensionDesign.md +0 -0
  222. /data/ext/{ddtrace_profiling_native_extension → datadog_profiling_native_extension}/clock_id.h +0 -0
  223. /data/ext/{ddtrace_profiling_native_extension → datadog_profiling_native_extension}/clock_id_from_pthread.c +0 -0
  224. /data/ext/{ddtrace_profiling_native_extension → datadog_profiling_native_extension}/clock_id_noop.c +0 -0
  225. /data/ext/{ddtrace_profiling_native_extension → datadog_profiling_native_extension}/collectors_idle_sampling_helper.c +0 -0
  226. /data/ext/{ddtrace_profiling_native_extension → datadog_profiling_native_extension}/collectors_idle_sampling_helper.h +0 -0
  227. /data/ext/{ddtrace_profiling_native_extension → datadog_profiling_native_extension}/setup_signal_handler.c +0 -0
  228. /data/ext/{ddtrace_profiling_native_extension → datadog_profiling_native_extension}/setup_signal_handler.h +0 -0
  229. /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.18.0
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: 2023-12-07 00:00:00.000000000 Z
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.2.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.2.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: 5.0.0.1.0
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: 5.0.0.1.0
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.5.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.5.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/ddtrace_profiling_native_extension/extconf.rb
93
- - ext/ddtrace_profiling_loader/extconf.rb
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/ddtrace_profiling_loader/ddtrace_profiling_loader.c
105
- - ext/ddtrace_profiling_loader/extconf.rb
106
- - ext/ddtrace_profiling_native_extension/NativeExtensionDesign.md
107
- - ext/ddtrace_profiling_native_extension/clock_id.h
108
- - ext/ddtrace_profiling_native_extension/clock_id_from_pthread.c
109
- - ext/ddtrace_profiling_native_extension/clock_id_noop.c
110
- - ext/ddtrace_profiling_native_extension/collectors_cpu_and_wall_time_worker.c
111
- - ext/ddtrace_profiling_native_extension/collectors_dynamic_sampling_rate.c
112
- - ext/ddtrace_profiling_native_extension/collectors_dynamic_sampling_rate.h
113
- - ext/ddtrace_profiling_native_extension/collectors_idle_sampling_helper.c
114
- - ext/ddtrace_profiling_native_extension/collectors_idle_sampling_helper.h
115
- - ext/ddtrace_profiling_native_extension/collectors_stack.c
116
- - ext/ddtrace_profiling_native_extension/collectors_stack.h
117
- - ext/ddtrace_profiling_native_extension/collectors_thread_context.c
118
- - ext/ddtrace_profiling_native_extension/collectors_thread_context.h
119
- - ext/ddtrace_profiling_native_extension/extconf.rb
120
- - ext/ddtrace_profiling_native_extension/helpers.h
121
- - ext/ddtrace_profiling_native_extension/http_transport.c
122
- - ext/ddtrace_profiling_native_extension/libdatadog_helpers.c
123
- - ext/ddtrace_profiling_native_extension/libdatadog_helpers.h
124
- - ext/ddtrace_profiling_native_extension/native_extension_helpers.rb
125
- - ext/ddtrace_profiling_native_extension/pid_controller.c
126
- - ext/ddtrace_profiling_native_extension/pid_controller.h
127
- - ext/ddtrace_profiling_native_extension/private_vm_api_access.c
128
- - ext/ddtrace_profiling_native_extension/private_vm_api_access.h
129
- - ext/ddtrace_profiling_native_extension/profiling.c
130
- - ext/ddtrace_profiling_native_extension/ruby_helpers.c
131
- - ext/ddtrace_profiling_native_extension/ruby_helpers.h
132
- - ext/ddtrace_profiling_native_extension/setup_signal_handler.c
133
- - ext/ddtrace_profiling_native_extension/setup_signal_handler.h
134
- - ext/ddtrace_profiling_native_extension/stack_recorder.c
135
- - ext/ddtrace_profiling_native_extension/stack_recorder.h
136
- - ext/ddtrace_profiling_native_extension/time_helpers.c
137
- - ext/ddtrace_profiling_native_extension/time_helpers.h
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/v1/app_event.rb
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/master/CHANGELOG.md
875
- post_install_message:
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.21
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
- }