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
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