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.
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
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 69e775ab06a83ce14114a7287056e3d3fb575191b7ff6ccdc5c7b33f7fd58172
4
- data.tar.gz: 13b607a4e29e516be4988dca7827eca09b79e968cf98e0641a155039d2ec3273
3
+ metadata.gz: 836f8f52564c86b8ee1a4681309d3d168b1689f3742dfed4d1a8171e23852ffa
4
+ data.tar.gz: f0ad632313b36e6550e33f952da8e7ea89349fd8abc2122f41d649292a700028
5
5
  SHA512:
6
- metadata.gz: d345e07c8b0a654974c51a7457b3fc6d3d7eb99226cfc5555d6bc8ee3e65b17b3782b1e582591be925297c09dd104108007b2081e28ee43c103f8f2fec3ffe5b
7
- data.tar.gz: '085ea801f5fae16ed58cd79bab86839cd1aa23fa09261b39219264f603455633e19dbb8f60d647e407c7218d7d00052ef7b593405ec5af828af56ffecd58227d'
6
+ metadata.gz: 1021b4efd906f5cf362e27be17249ce82fad3100b62b9a39ba2fd65d508c07ac520cb94971d6986a5171d1575a7fc8e219ed2dc4785166d0bd0ec774cd447d19
7
+ data.tar.gz: 6ef6b7f391bb98e8e7f039cd72d6df56ee821df539803d3398ef7aaebe2c414eef87f4c2f0cf361ef3a066faf0490bb4b75831563a17729d11115c84243ab349
data/CHANGELOG.md CHANGED
@@ -2,6 +2,152 @@
2
2
 
3
3
  ## [Unreleased]
4
4
 
5
+ ## [1.23.2] - 2024-06-13
6
+
7
+ ### Fixed
8
+
9
+ * Profiling: Fix rpath for linking to libdatadog when loading from extension dir ([#3683][])
10
+
11
+ ## [1.23.1] - 2024-06-06
12
+
13
+ ### Fixed
14
+
15
+ * AppSec: Fix undefined method error when Tracing disabled ([#3650][])
16
+
17
+ ## [1.23.0] - 2024-05-09
18
+
19
+ ### Added
20
+
21
+ * Profiling: Enable endpoint profiling for Sidekiq and similar background job processors ([#3619][])
22
+
23
+ ### Fixed
24
+
25
+ * Fix no such file or directory issue when using single step instrumentation ([#3623][])
26
+ * Fix error during telemetry debug logging attempt ([#3618][])
27
+
28
+ ## [1.22.0] - 2024-04-16
29
+
30
+ ### Added
31
+
32
+ * Tracing: Add sampling rules by trace resouce and tags ([#3587][], [#3585][])
33
+ * Appsec: Add WAF vendor header support ([#3528][])
34
+
35
+ ### Changed
36
+
37
+ * Upgrade `Telemetry` to V2 ([#3551][])
38
+ * Upgrade to libdatadog 7 ([#3536][])
39
+ * Profiling: Enable Garbage Collection profiling by default ([#3558][])
40
+ * Profiling: Skip heap samples with age 0 ([#3573][])
41
+ * Profiling: Support falling back into extension directory when loading profiler ([#3582][])
42
+
43
+ ### Fixed
44
+
45
+ * Appsec: Fix MIME-style newlines with strict base64 encoding ([#3565][])
46
+
47
+ ## [2.0.0.beta1] - 2024-03-22
48
+
49
+ Release notes: https://github.com/DataDog/dd-trace-rb/releases/tag/v2.0.0.beta1
50
+
51
+ Git diff: https://github.com/DataDog/dd-trace-rb/compare/v1.21.1...v2.0.0.beta1
52
+
53
+ See https://github.com/DataDog/dd-trace-rb/blob/v2.0.0.beta1/docs/UpgradeGuide2.md.
54
+
55
+ ## [1.21.1] - 2024-03-20
56
+
57
+ ### Added
58
+
59
+ * Backports auto instrument shim with `datadog/auto_instrument` ([#3535][])
60
+
61
+ ### Fixed
62
+
63
+ * Fix ActiveRecord resolving invalid string ([#3523][])
64
+ * Revert `http.route` tagging to fix instrumentation failure for Rails 7.1 apps ([#3539][])
65
+ * Fix wrong permissions on released gem files ([#3531][])
66
+
67
+ ## [1.21.0] - 2024-03-14
68
+
69
+ ### Highlights
70
+ Allocation profiling is now in beta, and timeline profiling is enabled by default.
71
+ For more details, check the [release notes](https://github.com/DataDog/dd-trace-rb/releases/tag/v1.21.0)
72
+
73
+ ### Added
74
+
75
+ * APM source code integration ([#3463][])
76
+ * Core: Reduce startup logs verbosity ([#3468][])
77
+ * Tracing: Add Concurrent::Async instrumentation ([#3427][])
78
+ * Profiling: System info support ([#3357][])
79
+ * Profiling: Add bin/ddprofrb ([#3501][])
80
+
81
+ ### Changed
82
+
83
+ * Bump datadog-ci dependency to 0.8.1 ([#3518][])
84
+ * Upgrade to libdatadog 6 ([#3455][])
85
+ * Core: Allow suppressing error logs for Core::Remote::Negotiation ([#3495][])
86
+ * Tracing: Add `http.route` tag to rack ([#3345][])
87
+ * Tracing: Logs deprecation warning for `use` removal ([#3438][])
88
+ * Profiling: Allocation sampling overhead improvements ([#3434][], [#3440][])
89
+ * Profiling: Enable timeline by default ([#3428][])
90
+ * Profiling: Rename Profiling files to reflect "datadog" instead of "ddtrace" ([#3502][])
91
+ * Profiling: Replace `profiling.advanced.experimental_allocation_enabled` with `profiling.allocation_enabled` and remove experimental warning ([#3520][])
92
+
93
+ ### Fixed
94
+
95
+ * Core: Fix rare remote configuration worker thread leak ([#3519][])
96
+ * Tracing: Fix `Datadog::Tracing.reject!` with correct metrics ([#3491][])
97
+ * Tracing: Guard PG result with `nil` check ([#3511][])
98
+ * Profiling: Add workaround for Ruby VM bug causing crash in gc_finalize_deferred ([#3473][])
99
+ * Profiling: Fix missing profiling code hotspots when using ddtrace+otel ([#3466][])
100
+ * Profiling: Stop worker on clock failure ([#3439][])
101
+ * Profiling: Upgrade libdatadog to fix incorrect platform detection for x86_64-linux-gnu/aarch64-linux-gnu ([#3503][])
102
+
103
+ ## [1.20.0] - 2024-02-05
104
+
105
+ ### Added
106
+
107
+ * Tracing: Add `Trilogy` instrumentation ([#3274][])
108
+ * Rack: Add remote configuration boot tags ([#3315][])
109
+ * Faraday: Add `on_error` option ([#3431][])
110
+ * Profiling: Add dynamic allocation sampling ([#3395][])
111
+
112
+ ### Changed
113
+
114
+ * Bump `datadog-ci` dependency to 0.7.0 ([#3408][])
115
+ * Improve performance of gathering ClassCount metric ([#3386][])
116
+
117
+ ### Fixed
118
+
119
+ * OpenTelemetry: Fix internal loading ([#3400][])
120
+ * Core: Fix logger deadlock ([#3426][])
121
+ * Rack: Fix missing active trace ([#3420][])
122
+ * Redis: Fix instance configuration ([#3278][])
123
+
124
+ ## [1.19.0] - 2024-01-10
125
+
126
+ ### Highlights
127
+ Alpha support for memory profiling has been added. For more details, check the [release notes](https://github.com/DataDog/dd-trace-rb/releases/tag/v1.19.0)
128
+
129
+ ### Added
130
+ * Tracing: Add `on_error` settings for `mysql2` ([#3316][])
131
+ * Core: Add install_signature to app-started telemetry event ([#3349][])
132
+ * Profiling: Heap Profiling ([#3281][]) ([#3287][]) ([#3328][]) ([#3329][]) ([#3333][]) ([#3360][])
133
+ * Profiling: Redesign GC profiling to add timeline support and reduce overhead ([#3313][])
134
+ * Core: Use Ruby 3.3 stable for CI testing ([#3354][])
135
+
136
+ ### Changed
137
+ * Core: Bump `datadog-ci` dependency to 0.6.0 ([#3361][])
138
+ * Core: Bump debase-ruby_core_source dependency to 3.3.1 ([#3373][])
139
+ * Docs: Backport "List Ruby 3.3 as supported in the docs" to master branch ([#3374][])
140
+ * Profiling: Import upstream `rb_profile_frames` fix ([#3352][])
141
+ * Profiling: Allow the dynamic sampling rate overhead target to be set ([#3310][])
142
+ * Profiling: Split profiling tests into ractor and non-ractor suites. ([#3320][])
143
+
144
+ ### Fixed
145
+ * Docs: Fix `pg` doc markdown format ([#3317][])
146
+ * Tracing: Fix recursive `require` in Railtie ([#3365][])
147
+ * Profiling: Fix issues stemming from rb_gc_force_recycle ([#3366][])
148
+ * Profiling: Fix Ruby 3.3 CI being broken in master due to profiler ([#3356][])
149
+ * Profiling: Fix "no signals" workaround detection when mariadb is in use ([#3362][])
150
+
5
151
  ## [1.18.0] - 2023-12-07
6
152
 
7
153
  ### Added
@@ -2680,7 +2826,16 @@ Release notes: https://github.com/DataDog/dd-trace-rb/releases/tag/v0.3.1
2680
2826
  Git diff: https://github.com/DataDog/dd-trace-rb/compare/v0.3.0...v0.3.1
2681
2827
 
2682
2828
 
2683
- [Unreleased]: https://github.com/DataDog/dd-trace-rb/compare/v1.18.0...master
2829
+ [Unreleased]: https://github.com/DataDog/dd-trace-rb/compare/v1.23.2...master
2830
+ [1.23.2]: https://github.com/DataDog/dd-trace-rb/compare/v1.23.1...v1.23.2
2831
+ [1.23.1]: https://github.com/DataDog/dd-trace-rb/compare/v1.23.0...v1.23.1
2832
+ [1.23.0]: https://github.com/DataDog/dd-trace-rb/compare/v1.22.0...v1.23.0
2833
+ [1.22.0]: https://github.com/DataDog/dd-trace-rb/compare/v1.21.1...v1.22.0
2834
+ [2.0.0.beta1]: https://github.com/DataDog/dd-trace-rb/compare/v1.21.1...v2.0.0.beta1
2835
+ [1.21.1]: https://github.com/DataDog/dd-trace-rb/compare/v1.21.0...v1.21.1
2836
+ [1.21.0]: https://github.com/DataDog/dd-trace-rb/compare/v1.20.0...v1.21.0
2837
+ [1.20.0]: https://github.com/DataDog/dd-trace-rb/compare/v1.19.0...v1.20.0
2838
+ [1.19.0]: https://github.com/DataDog/dd-trace-rb/compare/v1.18.0...v1.19.0
2684
2839
  [1.18.0]: https://github.com/DataDog/dd-trace-rb/compare/v1.17.0...v1.18.0
2685
2840
  [1.17.0]: https://github.com/DataDog/dd-trace-rb/compare/v1.16.2...v1.17.0
2686
2841
  [1.16.2]: https://github.com/DataDog/dd-trace-rb/compare/v1.16.1...v1.16.2
@@ -3908,14 +4063,85 @@ Git diff: https://github.com/DataDog/dd-trace-rb/compare/v0.3.0...v0.3.1
3908
4063
  [#3270]: https://github.com/DataDog/dd-trace-rb/issues/3270
3909
4064
  [#3271]: https://github.com/DataDog/dd-trace-rb/issues/3271
3910
4065
  [#3273]: https://github.com/DataDog/dd-trace-rb/issues/3273
4066
+ [#3274]: https://github.com/DataDog/dd-trace-rb/issues/3274
4067
+ [#3278]: https://github.com/DataDog/dd-trace-rb/issues/3278
3911
4068
  [#3279]: https://github.com/DataDog/dd-trace-rb/issues/3279
3912
4069
  [#3280]: https://github.com/DataDog/dd-trace-rb/issues/3280
4070
+ [#3281]: https://github.com/DataDog/dd-trace-rb/issues/3281
3913
4071
  [#3284]: https://github.com/DataDog/dd-trace-rb/issues/3284
3914
4072
  [#3286]: https://github.com/DataDog/dd-trace-rb/issues/3286
4073
+ [#3287]: https://github.com/DataDog/dd-trace-rb/issues/3287
3915
4074
  [#3289]: https://github.com/DataDog/dd-trace-rb/issues/3289
3916
4075
  [#3303]: https://github.com/DataDog/dd-trace-rb/issues/3303
3917
4076
  [#3307]: https://github.com/DataDog/dd-trace-rb/issues/3307
3918
4077
  [#3308]: https://github.com/DataDog/dd-trace-rb/issues/3308
4078
+ [#3310]: https://github.com/DataDog/dd-trace-rb/issues/3310
4079
+ [#3313]: https://github.com/DataDog/dd-trace-rb/issues/3313
4080
+ [#3315]: https://github.com/DataDog/dd-trace-rb/issues/3315
4081
+ [#3316]: https://github.com/DataDog/dd-trace-rb/issues/3316
4082
+ [#3317]: https://github.com/DataDog/dd-trace-rb/issues/3317
4083
+ [#3320]: https://github.com/DataDog/dd-trace-rb/issues/3320
4084
+ [#3328]: https://github.com/DataDog/dd-trace-rb/issues/3328
4085
+ [#3329]: https://github.com/DataDog/dd-trace-rb/issues/3329
4086
+ [#3333]: https://github.com/DataDog/dd-trace-rb/issues/3333
4087
+ [#3345]: https://github.com/DataDog/dd-trace-rb/issues/3345
4088
+ [#3349]: https://github.com/DataDog/dd-trace-rb/issues/3349
4089
+ [#3352]: https://github.com/DataDog/dd-trace-rb/issues/3352
4090
+ [#3354]: https://github.com/DataDog/dd-trace-rb/issues/3354
4091
+ [#3356]: https://github.com/DataDog/dd-trace-rb/issues/3356
4092
+ [#3357]: https://github.com/DataDog/dd-trace-rb/issues/3357
4093
+ [#3360]: https://github.com/DataDog/dd-trace-rb/issues/3360
4094
+ [#3361]: https://github.com/DataDog/dd-trace-rb/issues/3361
4095
+ [#3362]: https://github.com/DataDog/dd-trace-rb/issues/3362
4096
+ [#3365]: https://github.com/DataDog/dd-trace-rb/issues/3365
4097
+ [#3366]: https://github.com/DataDog/dd-trace-rb/issues/3366
4098
+ [#3373]: https://github.com/DataDog/dd-trace-rb/issues/3373
4099
+ [#3374]: https://github.com/DataDog/dd-trace-rb/issues/3374
4100
+ [#3386]: https://github.com/DataDog/dd-trace-rb/issues/3386
4101
+ [#3395]: https://github.com/DataDog/dd-trace-rb/issues/3395
4102
+ [#3400]: https://github.com/DataDog/dd-trace-rb/issues/3400
4103
+ [#3408]: https://github.com/DataDog/dd-trace-rb/issues/3408
4104
+ [#3420]: https://github.com/DataDog/dd-trace-rb/issues/3420
4105
+ [#3426]: https://github.com/DataDog/dd-trace-rb/issues/3426
4106
+ [#3427]: https://github.com/DataDog/dd-trace-rb/issues/3427
4107
+ [#3428]: https://github.com/DataDog/dd-trace-rb/issues/3428
4108
+ [#3431]: https://github.com/DataDog/dd-trace-rb/issues/3431
4109
+ [#3434]: https://github.com/DataDog/dd-trace-rb/issues/3434
4110
+ [#3438]: https://github.com/DataDog/dd-trace-rb/issues/3438
4111
+ [#3439]: https://github.com/DataDog/dd-trace-rb/issues/3439
4112
+ [#3440]: https://github.com/DataDog/dd-trace-rb/issues/3440
4113
+ [#3455]: https://github.com/DataDog/dd-trace-rb/issues/3455
4114
+ [#3463]: https://github.com/DataDog/dd-trace-rb/issues/3463
4115
+ [#3466]: https://github.com/DataDog/dd-trace-rb/issues/3466
4116
+ [#3468]: https://github.com/DataDog/dd-trace-rb/issues/3468
4117
+ [#3473]: https://github.com/DataDog/dd-trace-rb/issues/3473
4118
+ [#3491]: https://github.com/DataDog/dd-trace-rb/issues/3491
4119
+ [#3495]: https://github.com/DataDog/dd-trace-rb/issues/3495
4120
+ [#3501]: https://github.com/DataDog/dd-trace-rb/issues/3501
4121
+ [#3502]: https://github.com/DataDog/dd-trace-rb/issues/3502
4122
+ [#3503]: https://github.com/DataDog/dd-trace-rb/issues/3503
4123
+ [#3511]: https://github.com/DataDog/dd-trace-rb/issues/3511
4124
+ [#3518]: https://github.com/DataDog/dd-trace-rb/issues/3518
4125
+ [#3519]: https://github.com/DataDog/dd-trace-rb/issues/3519
4126
+ [#3520]: https://github.com/DataDog/dd-trace-rb/issues/3520
4127
+ [#3523]: https://github.com/DataDog/dd-trace-rb/issues/3523
4128
+ [#3528]: https://github.com/DataDog/dd-trace-rb/issues/3528
4129
+ [#3531]: https://github.com/DataDog/dd-trace-rb/issues/3531
4130
+ [#3535]: https://github.com/DataDog/dd-trace-rb/issues/3535
4131
+ [#3536]: https://github.com/DataDog/dd-trace-rb/issues/3536
4132
+ [#3539]: https://github.com/DataDog/dd-trace-rb/issues/3539
4133
+ [#3551]: https://github.com/DataDog/dd-trace-rb/issues/3551
4134
+ [#3558]: https://github.com/DataDog/dd-trace-rb/issues/3558
4135
+ [#3565]: https://github.com/DataDog/dd-trace-rb/issues/3565
4136
+ [#3573]: https://github.com/DataDog/dd-trace-rb/issues/3573
4137
+ [#3582]: https://github.com/DataDog/dd-trace-rb/issues/3582
4138
+ [#3585]: https://github.com/DataDog/dd-trace-rb/issues/3585
4139
+ [#3587]: https://github.com/DataDog/dd-trace-rb/issues/3587
4140
+ [#3618]: https://github.com/DataDog/dd-trace-rb/issues/3618
4141
+ [#3619]: https://github.com/DataDog/dd-trace-rb/issues/3619
4142
+ [#3623]: https://github.com/DataDog/dd-trace-rb/issues/3623
4143
+ [#3650]: https://github.com/DataDog/dd-trace-rb/issues/3650
4144
+ [#3683]: https://github.com/DataDog/dd-trace-rb/issues/3683
3919
4145
  [@AdrianLC]: https://github.com/AdrianLC
3920
4146
  [@Azure7111]: https://github.com/Azure7111
3921
4147
  [@BabyGroot]: https://github.com/BabyGroot
@@ -4067,4 +4293,4 @@ Git diff: https://github.com/DataDog/dd-trace-rb/compare/v0.3.0...v0.3.1
4067
4293
  [@y-yagi]: https://github.com/y-yagi
4068
4294
  [@yujideveloper]: https://github.com/yujideveloper
4069
4295
  [@yukimurasawa]: https://github.com/yukimurasawa
4070
- [@zachmccormick]: https://github.com/zachmccormick
4296
+ [@zachmccormick]: https://github.com/zachmccormick
data/LICENSE-3rdparty.csv CHANGED
@@ -2,7 +2,7 @@ Component,Origin,License,Copyright
2
2
  lib/datadog/core/vendor/multipart-post,https://github.com/socketry/multipart-post,MIT,"Copyright (c) 2007-2013 Nick Sieger."
3
3
  lib/datadog/tracing/contrib/active_record/vendor,https://github.com/rails/rails/,MIT,"Copyright (c) 2005-2018 David Heinemeier Hansson"
4
4
  lib/datadog/tracing/contrib/utils/quantization/http.rb,https://github.com/ruby/uri,BSD-2-Clause,"Copyright (C) 1993-2013 Yukihiro Matsumoto. All rights reserved."
5
- ext/ddtrace_profiling_native_extension/private_vm_api_access,https://github.com/ruby/ruby,BSD-2-Clause,"Copyright (C) 1993-2013 Yukihiro Matsumoto. All rights reserved."
5
+ ext/datadog_profiling_native_extension/private_vm_api_access,https://github.com/ruby/ruby,BSD-2-Clause,"Copyright (C) 1993-2013 Yukihiro Matsumoto. All rights reserved."
6
6
  msgpack,https://rubygems.org/gems/msgpack,Apache-2.0,"Copyright (c) 2008-2015 Sadayuki Furuhashi"
7
7
  debase-ruby_core_source,https://rubygems.org/gems/debase-ruby_core_source,MIT for gem and BSD-2-Clause for Ruby sources,"Copyright (c) 2012 Gabriel Horner. Files from Ruby sources are Copyright (C) 1993-2013 Yukihiro Matsumoto. All rights reserved."
8
8
  lib/datadog/core/vendor/ipaddr,https://github.com/ruby/ipaddr/blob/master/lib/ipaddr.rb,BSD 2-Clause "Simplified" License,"Copyright (c) 2002 Hajimu UMEMOTO <ume@mahoroba.org> Copyright (c) 2007-2017 Akinori MUSHA <knu@iDaemons.org>"
data/bin/ddprofrb ADDED
@@ -0,0 +1,15 @@
1
+ #!/usr/bin/env ruby
2
+ require 'datadog/profiling/tasks/exec'
3
+ require 'datadog/profiling/tasks/help'
4
+
5
+ command = ARGV.shift
6
+
7
+ case command
8
+ when 'exec'
9
+ Datadog::Profiling::Tasks::Exec.new(ARGV).run
10
+ when 'help', '--help'
11
+ Datadog::Profiling::Tasks::Help.new.run
12
+ else
13
+ puts "Command '#{command}' is not valid for ddprofrb."
14
+ Datadog::Profiling::Tasks::Help.new.run
15
+ end
data/bin/ddtracerb CHANGED
@@ -1,4 +1,6 @@
1
1
  #!/usr/bin/env ruby
2
+ Kernel.warn 'WARNING: Use of `ddtracerb` is deprecated, and will be removed in 2.0. Use `ddprofrb` instead.'
3
+
2
4
  require 'datadog/profiling/tasks/exec'
3
5
  require 'datadog/profiling/tasks/help'
4
6
 
@@ -10,6 +12,6 @@ when 'exec'
10
12
  when 'help', '--help'
11
13
  Datadog::Profiling::Tasks::Help.new.run
12
14
  else
13
- puts "Command '#{command}' is not valid for ddtrace."
15
+ puts "Command '#{command}' is not valid for ddtracerb."
14
16
  Datadog::Profiling::Tasks::Help.new.run
15
17
  end
@@ -14,7 +14,7 @@
14
14
  // up other's symbols (`RTLD_DEEPBIND`).
15
15
  //
16
16
  // But Ruby's extension loading mechanism is not configurable -- there's no way to tell it to use different flags when
17
- // calling `dlopen`. To get around this, this file (ddtrace_profiling_loader.c) introduces another extension
17
+ // calling `dlopen`. To get around this, this file (datadog_profiling_loader.c) introduces another extension
18
18
  // (profiling loader) which has only a single responsibility: mimic Ruby's extension loading mechanism, but when calling
19
19
  // `dlopen` use a different set of flags.
20
20
  // This idea was shamelessly stolen from @lloeki's work in https://github.com/rubyjs/mini_racer/pull/179, big thanks!
@@ -48,7 +48,7 @@ static void unload_failed_library(void *handle);
48
48
 
49
49
  #define DDTRACE_EXPORT __attribute__ ((visibility ("default")))
50
50
 
51
- void DDTRACE_EXPORT Init_ddtrace_profiling_loader(void) {
51
+ void DDTRACE_EXPORT Init_datadog_profiling_loader(void) {
52
52
  VALUE datadog_module = rb_define_module("Datadog");
53
53
  VALUE profiling_module = rb_define_module_under(datadog_module, "Profiling");
54
54
  VALUE loader_module = rb_define_module_under(profiling_module, "Loader");
@@ -3,7 +3,7 @@
3
3
 
4
4
  if RUBY_ENGINE != 'ruby' || Gem.win_platform?
5
5
  $stderr.puts(
6
- 'WARN: Skipping build of ddtrace profiling loader. See ddtrace profiling native extension note for details.'
6
+ 'WARN: Skipping build of Datadog profiling loader. See Datadog profiling native extension note for details.'
7
7
  )
8
8
 
9
9
  File.write('Makefile', 'all install clean: # dummy makefile that does nothing')
@@ -46,7 +46,7 @@ add_compiler_flag '-Werror-implicit-function-declaration'
46
46
  add_compiler_flag '-Wunused-parameter'
47
47
 
48
48
  # The native extension is not intended to expose any symbols/functions for other native libraries to use;
49
- # the sole exception being `Init_ddtrace_profiling_loader` which needs to be visible for Ruby to call it when
49
+ # the sole exception being `Init_datadog_profiling_loader` which needs to be visible for Ruby to call it when
50
50
  # it `dlopen`s the library.
51
51
  #
52
52
  # By setting this compiler flag, we tell it to assume that everything is private unless explicitly stated.
@@ -64,7 +64,7 @@ add_compiler_flag '-Wextra'
64
64
  # This makes it easier for development (avoids "oops I forgot to rebuild when I switched my Ruby") and ensures that
65
65
  # the wrong library is never loaded.
66
66
  # When requiring, we need to use the exact same string, including the version and the platform.
67
- EXTENSION_NAME = "ddtrace_profiling_loader.#{RUBY_VERSION}_#{RUBY_PLATFORM}".freeze
67
+ EXTENSION_NAME = "datadog_profiling_loader.#{RUBY_VERSION}_#{RUBY_PLATFORM}".freeze
68
68
 
69
69
  create_makefile(EXTENSION_NAME)
70
70