ddtrace 1.4.2 → 1.23.3

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 (895) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +1177 -3
  3. data/LICENSE-3rdparty.csv +3 -1
  4. data/README.md +10 -12
  5. data/bin/ddprofrb +15 -0
  6. data/bin/ddtracerb +3 -1
  7. data/ext/{ddtrace_profiling_loader/ddtrace_profiling_loader.c → datadog_profiling_loader/datadog_profiling_loader.c} +11 -4
  8. data/ext/{ddtrace_profiling_loader → datadog_profiling_loader}/extconf.rb +24 -6
  9. data/ext/{ddtrace_profiling_native_extension → datadog_profiling_native_extension}/NativeExtensionDesign.md +48 -12
  10. data/ext/{ddtrace_profiling_native_extension → datadog_profiling_native_extension}/clock_id.h +1 -3
  11. data/ext/{ddtrace_profiling_native_extension → datadog_profiling_native_extension}/clock_id_from_pthread.c +6 -23
  12. data/ext/{ddtrace_profiling_native_extension → datadog_profiling_native_extension}/clock_id_noop.c +0 -1
  13. data/ext/datadog_profiling_native_extension/collectors_cpu_and_wall_time_worker.c +1161 -0
  14. data/ext/datadog_profiling_native_extension/collectors_discrete_dynamic_sampler.c +422 -0
  15. data/ext/datadog_profiling_native_extension/collectors_discrete_dynamic_sampler.h +101 -0
  16. data/ext/datadog_profiling_native_extension/collectors_dynamic_sampling_rate.c +150 -0
  17. data/ext/datadog_profiling_native_extension/collectors_dynamic_sampling_rate.h +18 -0
  18. data/ext/datadog_profiling_native_extension/collectors_gc_profiling_helper.c +156 -0
  19. data/ext/datadog_profiling_native_extension/collectors_gc_profiling_helper.h +5 -0
  20. data/ext/datadog_profiling_native_extension/collectors_idle_sampling_helper.c +244 -0
  21. data/ext/datadog_profiling_native_extension/collectors_idle_sampling_helper.h +3 -0
  22. data/ext/datadog_profiling_native_extension/collectors_stack.c +372 -0
  23. data/ext/datadog_profiling_native_extension/collectors_stack.h +27 -0
  24. data/ext/datadog_profiling_native_extension/collectors_thread_context.c +1402 -0
  25. data/ext/datadog_profiling_native_extension/collectors_thread_context.h +15 -0
  26. data/ext/{ddtrace_profiling_native_extension → datadog_profiling_native_extension}/extconf.rb +114 -34
  27. data/ext/datadog_profiling_native_extension/heap_recorder.c +1047 -0
  28. data/ext/datadog_profiling_native_extension/heap_recorder.h +166 -0
  29. data/ext/datadog_profiling_native_extension/helpers.h +23 -0
  30. data/ext/{ddtrace_profiling_native_extension → datadog_profiling_native_extension}/http_transport.c +129 -88
  31. data/ext/datadog_profiling_native_extension/libdatadog_helpers.c +62 -0
  32. data/ext/datadog_profiling_native_extension/libdatadog_helpers.h +42 -0
  33. data/ext/{ddtrace_profiling_native_extension → datadog_profiling_native_extension}/native_extension_helpers.rb +104 -29
  34. data/ext/{ddtrace_profiling_native_extension → datadog_profiling_native_extension}/private_vm_api_access.c +331 -131
  35. data/ext/{ddtrace_profiling_native_extension → datadog_profiling_native_extension}/private_vm_api_access.h +29 -1
  36. data/ext/datadog_profiling_native_extension/profiling.c +267 -0
  37. data/ext/datadog_profiling_native_extension/ruby_helpers.c +267 -0
  38. data/ext/datadog_profiling_native_extension/ruby_helpers.h +122 -0
  39. data/ext/datadog_profiling_native_extension/setup_signal_handler.c +115 -0
  40. data/ext/datadog_profiling_native_extension/setup_signal_handler.h +11 -0
  41. data/ext/datadog_profiling_native_extension/stack_recorder.c +1040 -0
  42. data/ext/datadog_profiling_native_extension/stack_recorder.h +27 -0
  43. data/ext/datadog_profiling_native_extension/time_helpers.c +53 -0
  44. data/ext/datadog_profiling_native_extension/time_helpers.h +26 -0
  45. data/lib/datadog/appsec/assets/blocked.html +98 -3
  46. data/lib/datadog/appsec/assets/blocked.json +1 -0
  47. data/lib/datadog/appsec/assets/blocked.text +5 -0
  48. data/lib/datadog/appsec/assets/waf_rules/processors.json +92 -0
  49. data/lib/datadog/appsec/assets/waf_rules/recommended.json +2861 -796
  50. data/lib/datadog/appsec/assets/waf_rules/scanners.json +114 -0
  51. data/lib/datadog/appsec/assets/waf_rules/strict.json +459 -122
  52. data/lib/datadog/appsec/assets.rb +10 -4
  53. data/lib/datadog/appsec/autoload.rb +4 -11
  54. data/lib/datadog/appsec/component.rb +94 -0
  55. data/lib/datadog/appsec/configuration/settings.rb +170 -162
  56. data/lib/datadog/appsec/configuration.rb +1 -70
  57. data/lib/datadog/appsec/contrib/auto_instrument.rb +3 -5
  58. data/lib/datadog/appsec/contrib/devise/event.rb +57 -0
  59. data/lib/datadog/appsec/contrib/devise/ext.rb +13 -0
  60. data/lib/datadog/appsec/contrib/devise/integration.rb +42 -0
  61. data/lib/datadog/appsec/contrib/devise/patcher/authenticatable_patch.rb +76 -0
  62. data/lib/datadog/appsec/contrib/devise/patcher/registration_controller_patch.rb +54 -0
  63. data/lib/datadog/appsec/contrib/devise/patcher.rb +45 -0
  64. data/lib/datadog/appsec/contrib/devise/resource.rb +35 -0
  65. data/lib/datadog/appsec/contrib/devise/tracking.rb +57 -0
  66. data/lib/datadog/appsec/contrib/integration.rb +1 -1
  67. data/lib/datadog/appsec/contrib/patcher.rb +1 -1
  68. data/lib/datadog/appsec/contrib/rack/ext.rb +1 -3
  69. data/lib/datadog/appsec/contrib/rack/gateway/request.rb +104 -0
  70. data/lib/datadog/appsec/contrib/rack/gateway/response.rb +30 -0
  71. data/lib/datadog/appsec/contrib/rack/gateway/watcher.rb +112 -121
  72. data/lib/datadog/appsec/contrib/rack/integration.rb +0 -7
  73. data/lib/datadog/appsec/contrib/rack/patcher.rb +3 -1
  74. data/lib/datadog/appsec/contrib/rack/reactive/request.rb +33 -39
  75. data/lib/datadog/appsec/contrib/rack/reactive/request_body.rb +19 -23
  76. data/lib/datadog/appsec/contrib/rack/reactive/response.rb +25 -23
  77. data/lib/datadog/appsec/contrib/rack/request_body_middleware.rb +11 -8
  78. data/lib/datadog/appsec/contrib/rack/request_middleware.rb +153 -41
  79. data/lib/datadog/appsec/contrib/rails/ext.rb +2 -4
  80. data/lib/datadog/appsec/contrib/rails/framework.rb +2 -16
  81. data/lib/datadog/appsec/contrib/rails/gateway/request.rb +67 -0
  82. data/lib/datadog/appsec/contrib/rails/gateway/watcher.rb +40 -52
  83. data/lib/datadog/appsec/contrib/rails/integration.rb +1 -8
  84. data/lib/datadog/appsec/contrib/rails/patcher.rb +23 -20
  85. data/lib/datadog/appsec/contrib/rails/reactive/action.rb +21 -23
  86. data/lib/datadog/appsec/contrib/rails/request.rb +4 -1
  87. data/lib/datadog/appsec/contrib/rails/request_middleware.rb +1 -1
  88. data/lib/datadog/appsec/contrib/sinatra/ext.rb +2 -3
  89. data/lib/datadog/appsec/contrib/sinatra/framework.rb +2 -16
  90. data/lib/datadog/appsec/contrib/sinatra/gateway/request.rb +17 -0
  91. data/lib/datadog/appsec/contrib/sinatra/gateway/route_params.rb +23 -0
  92. data/lib/datadog/appsec/contrib/sinatra/gateway/watcher.rb +78 -87
  93. data/lib/datadog/appsec/contrib/sinatra/integration.rb +0 -7
  94. data/lib/datadog/appsec/contrib/sinatra/patcher.rb +33 -15
  95. data/lib/datadog/appsec/contrib/sinatra/reactive/routed.rb +19 -21
  96. data/lib/datadog/appsec/contrib/sinatra/request_middleware.rb +1 -1
  97. data/lib/datadog/appsec/event.rb +98 -50
  98. data/lib/datadog/appsec/ext.rb +10 -0
  99. data/lib/datadog/appsec/extensions.rb +2 -105
  100. data/lib/datadog/appsec/instrumentation/gateway/argument.rb +22 -0
  101. data/lib/datadog/appsec/instrumentation/gateway.rb +26 -6
  102. data/lib/datadog/appsec/instrumentation.rb +9 -0
  103. data/lib/datadog/appsec/monitor/gateway/watcher.rb +67 -0
  104. data/lib/datadog/appsec/monitor/reactive/set_user.rb +58 -0
  105. data/lib/datadog/appsec/monitor.rb +11 -0
  106. data/lib/datadog/appsec/processor/actions.rb +49 -0
  107. data/lib/datadog/appsec/processor/rule_loader.rb +123 -0
  108. data/lib/datadog/appsec/processor/rule_merger.rb +152 -0
  109. data/lib/datadog/appsec/processor.rb +68 -61
  110. data/lib/datadog/appsec/rate_limiter.rb +1 -3
  111. data/lib/datadog/appsec/reactive/address_hash.rb +6 -2
  112. data/lib/datadog/appsec/reactive/engine.rb +10 -7
  113. data/lib/datadog/appsec/reactive/operation.rb +19 -2
  114. data/lib/datadog/appsec/reactive/subscriber.rb +2 -1
  115. data/lib/datadog/appsec/remote.rb +129 -0
  116. data/lib/datadog/appsec/response.rb +151 -0
  117. data/lib/datadog/appsec/sample_rate.rb +21 -0
  118. data/lib/datadog/appsec/scope.rb +61 -0
  119. data/lib/datadog/appsec/utils/http/media_range.rb +199 -0
  120. data/lib/datadog/appsec/utils/http/media_type.rb +85 -0
  121. data/lib/datadog/appsec/utils/http.rb +11 -0
  122. data/lib/datadog/appsec/utils.rb +9 -0
  123. data/lib/datadog/appsec.rb +41 -4
  124. data/lib/datadog/auto_instrument.rb +3 -0
  125. data/lib/datadog/core/backport.rb +51 -0
  126. data/lib/datadog/core/buffer/cruby.rb +1 -1
  127. data/lib/datadog/core/buffer/random.rb +1 -1
  128. data/lib/datadog/core/buffer/thread_safe.rb +1 -1
  129. data/lib/datadog/core/chunker.rb +1 -1
  130. data/lib/datadog/core/configuration/agent_settings_resolver.rb +96 -56
  131. data/lib/datadog/core/configuration/base.rb +7 -16
  132. data/lib/datadog/core/configuration/components.rb +46 -300
  133. data/lib/datadog/core/configuration/ext.rb +47 -0
  134. data/lib/datadog/core/configuration/option.rb +272 -22
  135. data/lib/datadog/core/configuration/option_definition.rb +81 -31
  136. data/lib/datadog/core/configuration/options.rb +26 -16
  137. data/lib/datadog/core/configuration/settings.rb +498 -302
  138. data/lib/datadog/core/configuration.rb +16 -10
  139. data/lib/datadog/core/diagnostics/environment_logger.rb +131 -231
  140. data/lib/datadog/core/diagnostics/health.rb +4 -22
  141. data/lib/datadog/core/encoding.rb +0 -4
  142. data/lib/datadog/core/environment/cgroup.rb +0 -4
  143. data/lib/datadog/core/environment/class_count.rb +7 -7
  144. data/lib/datadog/core/environment/container.rb +0 -4
  145. data/lib/datadog/core/environment/execution.rb +103 -0
  146. data/lib/datadog/core/environment/ext.rb +12 -12
  147. data/lib/datadog/core/environment/gc.rb +1 -1
  148. data/lib/datadog/core/environment/git.rb +25 -0
  149. data/lib/datadog/core/environment/identity.rb +27 -1
  150. data/lib/datadog/core/environment/platform.rb +7 -3
  151. data/lib/datadog/core/environment/socket.rb +1 -1
  152. data/lib/datadog/core/environment/thread_count.rb +1 -1
  153. data/lib/datadog/core/environment/variable_helpers.rb +29 -44
  154. data/lib/datadog/core/environment/vm_cache.rb +18 -1
  155. data/lib/datadog/core/environment/yjit.rb +58 -0
  156. data/lib/datadog/core/error.rb +1 -2
  157. data/lib/datadog/core/extensions.rb +1 -1
  158. data/lib/datadog/core/git/ext.rb +5 -24
  159. data/lib/datadog/core/header_collection.rb +43 -0
  160. data/lib/datadog/core/logger.rb +0 -2
  161. data/lib/datadog/core/logging/ext.rb +3 -1
  162. data/lib/datadog/core/metrics/client.rb +3 -4
  163. data/lib/datadog/core/metrics/ext.rb +6 -8
  164. data/lib/datadog/core/metrics/helpers.rb +1 -1
  165. data/lib/datadog/core/metrics/logging.rb +0 -2
  166. data/lib/datadog/core/metrics/metric.rb +1 -1
  167. data/lib/datadog/core/metrics/options.rb +0 -2
  168. data/lib/datadog/core/pin.rb +0 -2
  169. data/lib/datadog/core/remote/client/capabilities.rb +62 -0
  170. data/lib/datadog/core/remote/client.rb +232 -0
  171. data/lib/datadog/core/remote/component.rb +162 -0
  172. data/lib/datadog/core/remote/configuration/content.rb +111 -0
  173. data/lib/datadog/core/remote/configuration/digest.rb +62 -0
  174. data/lib/datadog/core/remote/configuration/path.rb +90 -0
  175. data/lib/datadog/core/remote/configuration/repository.rb +294 -0
  176. data/lib/datadog/core/remote/configuration/target.rb +74 -0
  177. data/lib/datadog/core/remote/configuration.rb +18 -0
  178. data/lib/datadog/core/remote/dispatcher.rb +59 -0
  179. data/lib/datadog/core/remote/ext.rb +13 -0
  180. data/lib/datadog/core/remote/negotiation.rb +70 -0
  181. data/lib/datadog/core/remote/tie/tracing.rb +39 -0
  182. data/lib/datadog/core/remote/tie.rb +27 -0
  183. data/lib/datadog/core/remote/transport/config.rb +60 -0
  184. data/lib/datadog/core/remote/transport/http/api/instance.rb +39 -0
  185. data/lib/datadog/core/remote/transport/http/api/spec.rb +21 -0
  186. data/lib/datadog/core/remote/transport/http/api.rb +58 -0
  187. data/lib/datadog/core/remote/transport/http/builder.rb +219 -0
  188. data/lib/datadog/core/remote/transport/http/client.rb +48 -0
  189. data/lib/datadog/core/remote/transport/http/config.rb +280 -0
  190. data/lib/datadog/core/remote/transport/http/negotiation.rb +146 -0
  191. data/lib/datadog/core/remote/transport/http.rb +179 -0
  192. data/lib/datadog/core/remote/transport/negotiation.rb +62 -0
  193. data/lib/datadog/core/remote/worker.rb +102 -0
  194. data/lib/datadog/core/remote.rb +24 -0
  195. data/lib/datadog/core/runtime/ext.rb +21 -11
  196. data/lib/datadog/core/runtime/metrics.rb +64 -7
  197. data/lib/datadog/core/telemetry/component.rb +66 -0
  198. data/lib/datadog/core/telemetry/emitter.rb +9 -13
  199. data/lib/datadog/core/telemetry/event.rb +250 -47
  200. data/lib/datadog/core/telemetry/ext.rb +7 -2
  201. data/lib/datadog/core/telemetry/http/adapters/net.rb +1 -3
  202. data/lib/datadog/core/telemetry/http/env.rb +1 -1
  203. data/lib/datadog/core/telemetry/http/ext.rb +13 -8
  204. data/lib/datadog/core/telemetry/http/response.rb +4 -4
  205. data/lib/datadog/core/telemetry/http/transport.rb +12 -4
  206. data/lib/datadog/core/telemetry/request.rb +59 -0
  207. data/lib/datadog/core/telemetry/worker.rb +158 -0
  208. data/lib/datadog/core/transport/ext.rb +49 -0
  209. data/lib/datadog/core/transport/http/adapters/net.rb +168 -0
  210. data/lib/datadog/core/transport/http/adapters/registry.rb +29 -0
  211. data/lib/datadog/core/transport/http/adapters/test.rb +89 -0
  212. data/lib/datadog/core/transport/http/adapters/unix_socket.rb +83 -0
  213. data/lib/datadog/core/transport/http/api/endpoint.rb +31 -0
  214. data/lib/datadog/core/transport/http/api/fallbacks.rb +26 -0
  215. data/lib/datadog/core/transport/http/api/map.rb +18 -0
  216. data/lib/datadog/core/transport/http/env.rb +62 -0
  217. data/lib/datadog/core/transport/http/response.rb +60 -0
  218. data/lib/datadog/core/transport/parcel.rb +22 -0
  219. data/lib/datadog/core/transport/request.rb +17 -0
  220. data/lib/datadog/core/transport/response.rb +64 -0
  221. data/lib/datadog/core/utils/compression.rb +6 -2
  222. data/lib/datadog/core/utils/duration.rb +52 -0
  223. data/lib/datadog/core/utils/forking.rb +0 -2
  224. data/lib/datadog/core/utils/hash.rb +79 -0
  225. data/lib/datadog/core/utils/network.rb +140 -0
  226. data/lib/datadog/core/utils/only_once.rb +0 -2
  227. data/lib/datadog/core/utils/only_once_successful.rb +76 -0
  228. data/lib/datadog/core/utils/safe_dup.rb +35 -12
  229. data/lib/datadog/core/utils/sequence.rb +1 -1
  230. data/lib/datadog/core/utils/time.rb +1 -3
  231. data/lib/datadog/core/utils/url.rb +25 -0
  232. data/lib/datadog/core/utils.rb +1 -24
  233. data/lib/datadog/core/vendor/ipaddr.rb +78 -0
  234. data/lib/datadog/core/vendor/multipart-post/multipart/post/composite_read_io.rb +0 -2
  235. data/lib/datadog/core/vendor/multipart-post/multipart/post/multipartable.rb +0 -2
  236. data/lib/datadog/core/vendor/multipart-post/multipart/post/parts.rb +0 -2
  237. data/lib/datadog/core/vendor/multipart-post/multipart/post/version.rb +0 -2
  238. data/lib/datadog/core/vendor/multipart-post/multipart/post.rb +0 -2
  239. data/lib/datadog/core/vendor/multipart-post/multipart.rb +0 -2
  240. data/lib/datadog/core/vendor/multipart-post/net/http/post/multipart.rb +0 -2
  241. data/lib/datadog/core/worker.rb +1 -1
  242. data/lib/datadog/core/workers/async.rb +7 -6
  243. data/lib/datadog/core/workers/interval_loop.rb +6 -2
  244. data/lib/datadog/core/workers/polling.rb +2 -4
  245. data/lib/datadog/core/workers/queue.rb +1 -1
  246. data/lib/datadog/core/workers/runtime_metrics.rb +1 -1
  247. data/lib/datadog/core.rb +20 -55
  248. data/lib/datadog/kit/appsec/events.rb +169 -0
  249. data/lib/datadog/kit/enable_core_dumps.rb +8 -9
  250. data/lib/datadog/kit/identity.rb +90 -49
  251. data/lib/datadog/kit.rb +1 -1
  252. data/lib/datadog/opentelemetry/api/context.rb +193 -0
  253. data/lib/datadog/opentelemetry/api/trace/span.rb +14 -0
  254. data/lib/datadog/opentelemetry/sdk/configurator.rb +37 -0
  255. data/lib/datadog/opentelemetry/sdk/id_generator.rb +26 -0
  256. data/lib/datadog/opentelemetry/sdk/propagator.rb +92 -0
  257. data/lib/datadog/opentelemetry/sdk/span_processor.rb +134 -0
  258. data/lib/datadog/opentelemetry/sdk/trace/span.rb +167 -0
  259. data/lib/datadog/opentelemetry/trace.rb +58 -0
  260. data/lib/datadog/opentelemetry.rb +51 -0
  261. data/lib/datadog/opentracer/binary_propagator.rb +1 -1
  262. data/lib/datadog/opentracer/carrier.rb +1 -1
  263. data/lib/datadog/opentracer/distributed_headers.rb +7 -11
  264. data/lib/datadog/opentracer/global_tracer.rb +1 -1
  265. data/lib/datadog/opentracer/propagator.rb +1 -1
  266. data/lib/datadog/opentracer/rack_propagator.rb +0 -5
  267. data/lib/datadog/opentracer/scope.rb +1 -1
  268. data/lib/datadog/opentracer/scope_manager.rb +1 -1
  269. data/lib/datadog/opentracer/span.rb +0 -2
  270. data/lib/datadog/opentracer/span_context.rb +1 -1
  271. data/lib/datadog/opentracer/span_context_factory.rb +1 -1
  272. data/lib/datadog/opentracer/text_map_propagator.rb +6 -9
  273. data/lib/datadog/opentracer/thread_local_scope.rb +1 -1
  274. data/lib/datadog/opentracer/thread_local_scope_manager.rb +0 -2
  275. data/lib/datadog/opentracer/tracer.rb +0 -2
  276. data/lib/datadog/opentracer.rb +10 -1
  277. data/lib/datadog/profiling/collectors/code_provenance.rb +10 -6
  278. data/lib/datadog/profiling/collectors/cpu_and_wall_time_worker.rb +82 -19
  279. data/lib/datadog/profiling/collectors/dynamic_sampling_rate.rb +14 -0
  280. data/lib/datadog/profiling/collectors/idle_sampling_helper.rb +68 -0
  281. data/lib/datadog/profiling/collectors/info.rb +101 -0
  282. data/lib/datadog/profiling/collectors/stack.rb +1 -1
  283. data/lib/datadog/profiling/collectors/thread_context.rb +61 -0
  284. data/lib/datadog/profiling/component.rb +426 -0
  285. data/lib/datadog/profiling/exporter.rb +32 -10
  286. data/lib/datadog/profiling/ext/forking.rb +0 -2
  287. data/lib/datadog/profiling/ext.rb +22 -32
  288. data/lib/datadog/profiling/flush.rb +11 -6
  289. data/lib/datadog/profiling/http_transport.rb +23 -8
  290. data/lib/datadog/profiling/load_native_extension.rb +25 -8
  291. data/lib/datadog/profiling/native_extension.rb +2 -23
  292. data/lib/datadog/profiling/preload.rb +1 -1
  293. data/lib/datadog/profiling/profiler.rb +42 -14
  294. data/lib/datadog/profiling/scheduler.rb +27 -25
  295. data/lib/datadog/profiling/stack_recorder.rb +36 -8
  296. data/lib/datadog/profiling/tag_builder.rb +6 -1
  297. data/lib/datadog/profiling/tasks/exec.rb +3 -5
  298. data/lib/datadog/profiling/tasks/help.rb +3 -5
  299. data/lib/datadog/profiling/tasks/setup.rb +0 -35
  300. data/lib/datadog/profiling.rb +65 -75
  301. data/lib/datadog/tracing/analytics.rb +1 -1
  302. data/lib/datadog/tracing/buffer.rb +0 -5
  303. data/lib/datadog/tracing/client_ip.rb +61 -0
  304. data/lib/datadog/tracing/component.rb +235 -0
  305. data/lib/datadog/tracing/configuration/agent_settings_resolver.rb +13 -0
  306. data/lib/datadog/tracing/configuration/dynamic/option.rb +71 -0
  307. data/lib/datadog/tracing/configuration/dynamic.rb +64 -0
  308. data/lib/datadog/tracing/configuration/ext.rb +72 -15
  309. data/lib/datadog/tracing/configuration/http.rb +74 -0
  310. data/lib/datadog/tracing/configuration/settings.rb +502 -0
  311. data/lib/datadog/tracing/context.rb +1 -1
  312. data/lib/datadog/tracing/context_provider.rb +0 -2
  313. data/lib/datadog/tracing/contrib/action_cable/configuration/settings.rb +11 -7
  314. data/lib/datadog/tracing/contrib/action_cable/event.rb +1 -1
  315. data/lib/datadog/tracing/contrib/action_cable/events/broadcast.rb +0 -2
  316. data/lib/datadog/tracing/contrib/action_cable/events/perform_action.rb +0 -2
  317. data/lib/datadog/tracing/contrib/action_cable/events/transmit.rb +0 -2
  318. data/lib/datadog/tracing/contrib/action_cable/events.rb +1 -1
  319. data/lib/datadog/tracing/contrib/action_cable/ext.rb +20 -19
  320. data/lib/datadog/tracing/contrib/action_cable/instrumentation.rb +0 -2
  321. data/lib/datadog/tracing/contrib/action_cable/integration.rb +0 -2
  322. data/lib/datadog/tracing/contrib/action_cable/patcher.rb +1 -1
  323. data/lib/datadog/tracing/contrib/action_mailer/configuration/settings.rb +11 -7
  324. data/lib/datadog/tracing/contrib/action_mailer/event.rb +1 -1
  325. data/lib/datadog/tracing/contrib/action_mailer/events/deliver.rb +1 -3
  326. data/lib/datadog/tracing/contrib/action_mailer/events/process.rb +0 -2
  327. data/lib/datadog/tracing/contrib/action_mailer/events.rb +1 -1
  328. data/lib/datadog/tracing/contrib/action_mailer/ext.rb +20 -19
  329. data/lib/datadog/tracing/contrib/action_mailer/integration.rb +0 -2
  330. data/lib/datadog/tracing/contrib/action_mailer/patcher.rb +1 -1
  331. data/lib/datadog/tracing/contrib/action_pack/action_controller/instrumentation.rb +2 -26
  332. data/lib/datadog/tracing/contrib/action_pack/action_controller/patcher.rb +1 -1
  333. data/lib/datadog/tracing/contrib/action_pack/configuration/settings.rb +23 -9
  334. data/lib/datadog/tracing/contrib/action_pack/ext.rb +10 -9
  335. data/lib/datadog/tracing/contrib/action_pack/integration.rb +0 -2
  336. data/lib/datadog/tracing/contrib/action_pack/patcher.rb +1 -1
  337. data/lib/datadog/tracing/contrib/action_pack/utils.rb +0 -2
  338. data/lib/datadog/tracing/contrib/action_view/configuration/settings.rb +10 -8
  339. data/lib/datadog/tracing/contrib/action_view/event.rb +1 -1
  340. data/lib/datadog/tracing/contrib/action_view/events/render_partial.rb +0 -2
  341. data/lib/datadog/tracing/contrib/action_view/events/render_template.rb +0 -2
  342. data/lib/datadog/tracing/contrib/action_view/events.rb +1 -1
  343. data/lib/datadog/tracing/contrib/action_view/ext.rb +12 -11
  344. data/lib/datadog/tracing/contrib/action_view/instrumentation/partial_renderer.rb +0 -2
  345. data/lib/datadog/tracing/contrib/action_view/instrumentation/template_renderer.rb +0 -2
  346. data/lib/datadog/tracing/contrib/action_view/integration.rb +0 -2
  347. data/lib/datadog/tracing/contrib/action_view/patcher.rb +0 -2
  348. data/lib/datadog/tracing/contrib/action_view/utils.rb +0 -2
  349. data/lib/datadog/tracing/contrib/active_job/configuration/settings.rb +15 -8
  350. data/lib/datadog/tracing/contrib/active_job/event.rb +1 -1
  351. data/lib/datadog/tracing/contrib/active_job/events/discard.rb +0 -2
  352. data/lib/datadog/tracing/contrib/active_job/events/enqueue.rb +0 -2
  353. data/lib/datadog/tracing/contrib/active_job/events/enqueue_at.rb +0 -2
  354. data/lib/datadog/tracing/contrib/active_job/events/enqueue_retry.rb +0 -2
  355. data/lib/datadog/tracing/contrib/active_job/events/perform.rb +0 -2
  356. data/lib/datadog/tracing/contrib/active_job/events/retry_stopped.rb +0 -2
  357. data/lib/datadog/tracing/contrib/active_job/events.rb +1 -1
  358. data/lib/datadog/tracing/contrib/active_job/ext.rb +25 -24
  359. data/lib/datadog/tracing/contrib/active_job/integration.rb +0 -2
  360. data/lib/datadog/tracing/contrib/active_job/log_injection.rb +2 -2
  361. data/lib/datadog/tracing/contrib/active_job/patcher.rb +2 -2
  362. data/lib/datadog/tracing/contrib/active_model_serializers/configuration/settings.rb +11 -7
  363. data/lib/datadog/tracing/contrib/active_model_serializers/event.rb +1 -1
  364. data/lib/datadog/tracing/contrib/active_model_serializers/events/render.rb +0 -2
  365. data/lib/datadog/tracing/contrib/active_model_serializers/events/serialize.rb +0 -2
  366. data/lib/datadog/tracing/contrib/active_model_serializers/events.rb +1 -1
  367. data/lib/datadog/tracing/contrib/active_model_serializers/ext.rb +12 -11
  368. data/lib/datadog/tracing/contrib/active_model_serializers/integration.rb +0 -2
  369. data/lib/datadog/tracing/contrib/active_model_serializers/patcher.rb +1 -1
  370. data/lib/datadog/tracing/contrib/active_record/configuration/makara_resolver.rb +0 -2
  371. data/lib/datadog/tracing/contrib/active_record/configuration/resolver.rb +29 -17
  372. data/lib/datadog/tracing/contrib/active_record/configuration/settings.rb +17 -9
  373. data/lib/datadog/tracing/contrib/active_record/event.rb +1 -1
  374. data/lib/datadog/tracing/contrib/active_record/events/instantiation.rb +0 -2
  375. data/lib/datadog/tracing/contrib/active_record/events/sql.rb +3 -6
  376. data/lib/datadog/tracing/contrib/active_record/events.rb +1 -1
  377. data/lib/datadog/tracing/contrib/active_record/ext.rb +17 -16
  378. data/lib/datadog/tracing/contrib/active_record/integration.rb +0 -2
  379. data/lib/datadog/tracing/contrib/active_record/patcher.rb +1 -1
  380. data/lib/datadog/tracing/contrib/active_record/utils.rb +1 -3
  381. data/lib/datadog/tracing/contrib/active_record/vendor/connection_specification.rb +0 -2
  382. data/lib/datadog/tracing/contrib/active_support/cache/instrumentation.rb +107 -201
  383. data/lib/datadog/tracing/contrib/active_support/cache/patcher.rb +4 -1
  384. data/lib/datadog/tracing/contrib/active_support/cache/redis.rb +1 -1
  385. data/lib/datadog/tracing/contrib/active_support/configuration/settings.rb +19 -8
  386. data/lib/datadog/tracing/contrib/active_support/ext.rb +18 -17
  387. data/lib/datadog/tracing/contrib/active_support/integration.rb +0 -2
  388. data/lib/datadog/tracing/contrib/active_support/notifications/event.rb +1 -1
  389. data/lib/datadog/tracing/contrib/active_support/notifications/subscriber.rb +1 -1
  390. data/lib/datadog/tracing/contrib/active_support/notifications/subscription.rb +0 -2
  391. data/lib/datadog/tracing/contrib/active_support/patcher.rb +1 -1
  392. data/lib/datadog/tracing/contrib/analytics.rb +1 -2
  393. data/lib/datadog/tracing/contrib/auto_instrument.rb +1 -1
  394. data/lib/datadog/tracing/contrib/aws/configuration/settings.rb +25 -8
  395. data/lib/datadog/tracing/contrib/aws/ext.rb +37 -14
  396. data/lib/datadog/tracing/contrib/aws/instrumentation.rb +28 -3
  397. data/lib/datadog/tracing/contrib/aws/integration.rb +0 -2
  398. data/lib/datadog/tracing/contrib/aws/parsed_context.rb +4 -2
  399. data/lib/datadog/tracing/contrib/aws/patcher.rb +1 -1
  400. data/lib/datadog/tracing/contrib/aws/service/base.rb +16 -0
  401. data/lib/datadog/tracing/contrib/aws/service/dynamodb.rb +22 -0
  402. data/lib/datadog/tracing/contrib/aws/service/eventbridge.rb +22 -0
  403. data/lib/datadog/tracing/contrib/aws/service/kinesis.rb +32 -0
  404. data/lib/datadog/tracing/contrib/aws/service/s3.rb +22 -0
  405. data/lib/datadog/tracing/contrib/aws/service/sns.rb +30 -0
  406. data/lib/datadog/tracing/contrib/aws/service/sqs.rb +27 -0
  407. data/lib/datadog/tracing/contrib/aws/service/states.rb +40 -0
  408. data/lib/datadog/tracing/contrib/aws/services.rb +17 -3
  409. data/lib/datadog/tracing/contrib/concurrent_ruby/async_patch.rb +20 -0
  410. data/lib/datadog/tracing/contrib/concurrent_ruby/configuration/settings.rb +4 -3
  411. data/lib/datadog/tracing/contrib/concurrent_ruby/context_composite_executor_service.rb +15 -15
  412. data/lib/datadog/tracing/contrib/concurrent_ruby/ext.rb +3 -3
  413. data/lib/datadog/tracing/contrib/concurrent_ruby/future_patch.rb +4 -11
  414. data/lib/datadog/tracing/contrib/concurrent_ruby/integration.rb +2 -3
  415. data/lib/datadog/tracing/contrib/concurrent_ruby/patcher.rb +20 -4
  416. data/lib/datadog/tracing/contrib/concurrent_ruby/promises_future_patch.rb +22 -0
  417. data/lib/datadog/tracing/contrib/configurable.rb +2 -2
  418. data/lib/datadog/tracing/contrib/configuration/resolver.rb +1 -1
  419. data/lib/datadog/tracing/contrib/configuration/resolvers/pattern_resolver.rb +1 -1
  420. data/lib/datadog/tracing/contrib/configuration/settings.rb +1 -5
  421. data/lib/datadog/tracing/contrib/dalli/configuration/settings.rb +30 -8
  422. data/lib/datadog/tracing/contrib/dalli/ext.rb +26 -10
  423. data/lib/datadog/tracing/contrib/dalli/instrumentation.rb +23 -7
  424. data/lib/datadog/tracing/contrib/dalli/integration.rb +0 -2
  425. data/lib/datadog/tracing/contrib/dalli/patcher.rb +1 -1
  426. data/lib/datadog/tracing/contrib/dalli/quantize.rb +0 -2
  427. data/lib/datadog/tracing/contrib/delayed_job/configuration/settings.rb +15 -8
  428. data/lib/datadog/tracing/contrib/delayed_job/ext.rb +16 -15
  429. data/lib/datadog/tracing/contrib/delayed_job/integration.rb +0 -2
  430. data/lib/datadog/tracing/contrib/delayed_job/patcher.rb +1 -1
  431. data/lib/datadog/tracing/contrib/delayed_job/plugin.rb +9 -1
  432. data/lib/datadog/tracing/contrib/delayed_job/server_internal_tracer/worker.rb +3 -1
  433. data/lib/datadog/tracing/contrib/elasticsearch/configuration/settings.rb +25 -8
  434. data/lib/datadog/tracing/contrib/elasticsearch/ext.rb +21 -13
  435. data/lib/datadog/tracing/contrib/elasticsearch/integration.rb +0 -2
  436. data/lib/datadog/tracing/contrib/elasticsearch/patcher.rb +105 -95
  437. data/lib/datadog/tracing/contrib/elasticsearch/quantize.rb +0 -4
  438. data/lib/datadog/tracing/contrib/ethon/configuration/settings.rb +28 -10
  439. data/lib/datadog/tracing/contrib/ethon/easy_patch.rb +52 -7
  440. data/lib/datadog/tracing/contrib/ethon/ext.rb +19 -11
  441. data/lib/datadog/tracing/contrib/ethon/integration.rb +0 -2
  442. data/lib/datadog/tracing/contrib/ethon/multi_patch.rb +10 -3
  443. data/lib/datadog/tracing/contrib/ethon/patcher.rb +1 -2
  444. data/lib/datadog/tracing/contrib/excon/configuration/settings.rb +30 -11
  445. data/lib/datadog/tracing/contrib/excon/ext.rb +16 -8
  446. data/lib/datadog/tracing/contrib/excon/integration.rb +0 -2
  447. data/lib/datadog/tracing/contrib/excon/middleware.rb +27 -4
  448. data/lib/datadog/tracing/contrib/excon/patcher.rb +1 -1
  449. data/lib/datadog/tracing/contrib/ext.rb +55 -0
  450. data/lib/datadog/tracing/contrib/extensions.rb +38 -4
  451. data/lib/datadog/tracing/contrib/faraday/configuration/settings.rb +37 -11
  452. data/lib/datadog/tracing/contrib/faraday/connection.rb +1 -1
  453. data/lib/datadog/tracing/contrib/faraday/ext.rb +16 -8
  454. data/lib/datadog/tracing/contrib/faraday/integration.rb +0 -2
  455. data/lib/datadog/tracing/contrib/faraday/middleware.rb +25 -7
  456. data/lib/datadog/tracing/contrib/faraday/patcher.rb +0 -2
  457. data/lib/datadog/tracing/contrib/faraday/rack_builder.rb +1 -1
  458. data/lib/datadog/tracing/contrib/grape/configuration/settings.rb +10 -7
  459. data/lib/datadog/tracing/contrib/grape/endpoint.rb +0 -4
  460. data/lib/datadog/tracing/contrib/grape/ext.rb +16 -15
  461. data/lib/datadog/tracing/contrib/grape/instrumentation.rb +0 -2
  462. data/lib/datadog/tracing/contrib/grape/integration.rb +0 -2
  463. data/lib/datadog/tracing/contrib/grape/patcher.rb +1 -1
  464. data/lib/datadog/tracing/contrib/graphql/configuration/settings.rb +11 -8
  465. data/lib/datadog/tracing/contrib/graphql/ext.rb +7 -6
  466. data/lib/datadog/tracing/contrib/graphql/integration.rb +0 -2
  467. data/lib/datadog/tracing/contrib/graphql/patcher.rb +0 -2
  468. data/lib/datadog/tracing/contrib/grpc/configuration/settings.rb +51 -10
  469. data/lib/datadog/tracing/contrib/grpc/datadog_interceptor/client.rb +45 -19
  470. data/lib/datadog/tracing/contrib/grpc/datadog_interceptor/server.rb +43 -26
  471. data/lib/datadog/tracing/contrib/grpc/datadog_interceptor.rb +0 -6
  472. data/lib/datadog/tracing/contrib/grpc/distributed/fetcher.rb +26 -0
  473. data/lib/datadog/tracing/contrib/grpc/distributed/propagation.rb +42 -0
  474. data/lib/datadog/tracing/contrib/grpc/ext.rb +16 -11
  475. data/lib/datadog/tracing/contrib/grpc/formatting.rb +127 -0
  476. data/lib/datadog/tracing/contrib/grpc/integration.rb +8 -3
  477. data/lib/datadog/tracing/contrib/grpc/intercept_with_datadog.rb +1 -1
  478. data/lib/datadog/tracing/contrib/grpc/patcher.rb +1 -4
  479. data/lib/datadog/tracing/contrib/hanami/action_tracer.rb +47 -0
  480. data/lib/datadog/tracing/contrib/hanami/configuration/settings.rb +23 -0
  481. data/lib/datadog/tracing/contrib/hanami/ext.rb +24 -0
  482. data/lib/datadog/tracing/contrib/hanami/integration.rb +42 -0
  483. data/lib/datadog/tracing/contrib/hanami/patcher.rb +33 -0
  484. data/lib/datadog/tracing/contrib/hanami/plugin.rb +23 -0
  485. data/lib/datadog/tracing/contrib/hanami/renderer_policy_tracing.rb +41 -0
  486. data/lib/datadog/tracing/contrib/hanami/router_tracing.rb +44 -0
  487. data/lib/datadog/tracing/contrib/http/circuit_breaker.rb +6 -9
  488. data/lib/datadog/tracing/contrib/http/configuration/settings.rb +48 -10
  489. data/lib/datadog/tracing/contrib/http/distributed/fetcher.rb +38 -0
  490. data/lib/datadog/tracing/contrib/http/distributed/propagation.rb +37 -0
  491. data/lib/datadog/tracing/contrib/http/ext.rb +16 -8
  492. data/lib/datadog/tracing/contrib/http/instrumentation.rb +32 -12
  493. data/lib/datadog/tracing/contrib/http/integration.rb +1 -1
  494. data/lib/datadog/tracing/contrib/http/patcher.rb +1 -1
  495. data/lib/datadog/tracing/contrib/http_annotation_helper.rb +1 -1
  496. data/lib/datadog/tracing/contrib/httpclient/configuration/settings.rb +48 -10
  497. data/lib/datadog/tracing/contrib/httpclient/ext.rb +17 -8
  498. data/lib/datadog/tracing/contrib/httpclient/instrumentation.rb +27 -8
  499. data/lib/datadog/tracing/contrib/httpclient/integration.rb +0 -2
  500. data/lib/datadog/tracing/contrib/httpclient/patcher.rb +0 -2
  501. data/lib/datadog/tracing/contrib/httprb/configuration/settings.rb +48 -10
  502. data/lib/datadog/tracing/contrib/httprb/ext.rb +16 -8
  503. data/lib/datadog/tracing/contrib/httprb/instrumentation.rb +27 -9
  504. data/lib/datadog/tracing/contrib/httprb/integration.rb +0 -2
  505. data/lib/datadog/tracing/contrib/httprb/patcher.rb +0 -2
  506. data/lib/datadog/tracing/contrib/integration.rb +1 -1
  507. data/lib/datadog/tracing/contrib/kafka/configuration/settings.rb +11 -7
  508. data/lib/datadog/tracing/contrib/kafka/consumer_event.rb +2 -1
  509. data/lib/datadog/tracing/contrib/kafka/consumer_group_event.rb +1 -1
  510. data/lib/datadog/tracing/contrib/kafka/event.rb +2 -1
  511. data/lib/datadog/tracing/contrib/kafka/events/connection/request.rb +0 -2
  512. data/lib/datadog/tracing/contrib/kafka/events/consumer/process_batch.rb +0 -2
  513. data/lib/datadog/tracing/contrib/kafka/events/consumer/process_message.rb +0 -2
  514. data/lib/datadog/tracing/contrib/kafka/events/consumer_group/heartbeat.rb +0 -2
  515. data/lib/datadog/tracing/contrib/kafka/events/consumer_group/join_group.rb +0 -2
  516. data/lib/datadog/tracing/contrib/kafka/events/consumer_group/leave_group.rb +0 -2
  517. data/lib/datadog/tracing/contrib/kafka/events/consumer_group/sync_group.rb +0 -2
  518. data/lib/datadog/tracing/contrib/kafka/events/produce_operation/send_messages.rb +1 -2
  519. data/lib/datadog/tracing/contrib/kafka/events/producer/deliver_messages.rb +1 -2
  520. data/lib/datadog/tracing/contrib/kafka/events.rb +1 -1
  521. data/lib/datadog/tracing/contrib/kafka/ext.rb +42 -39
  522. data/lib/datadog/tracing/contrib/kafka/integration.rb +0 -2
  523. data/lib/datadog/tracing/contrib/kafka/patcher.rb +1 -1
  524. data/lib/datadog/tracing/contrib/lograge/configuration/settings.rb +4 -3
  525. data/lib/datadog/tracing/contrib/lograge/ext.rb +2 -2
  526. data/lib/datadog/tracing/contrib/lograge/instrumentation.rb +3 -18
  527. data/lib/datadog/tracing/contrib/lograge/integration.rb +0 -2
  528. data/lib/datadog/tracing/contrib/lograge/patcher.rb +1 -1
  529. data/lib/datadog/tracing/contrib/mongodb/configuration/settings.rb +25 -8
  530. data/lib/datadog/tracing/contrib/mongodb/ext.rb +25 -14
  531. data/lib/datadog/tracing/contrib/mongodb/instrumentation.rb +1 -1
  532. data/lib/datadog/tracing/contrib/mongodb/integration.rb +0 -2
  533. data/lib/datadog/tracing/contrib/mongodb/parsers.rb +0 -2
  534. data/lib/datadog/tracing/contrib/mongodb/patcher.rb +1 -1
  535. data/lib/datadog/tracing/contrib/mongodb/subscribers.rb +22 -4
  536. data/lib/datadog/tracing/contrib/mysql2/configuration/settings.rb +36 -8
  537. data/lib/datadog/tracing/contrib/mysql2/ext.rb +15 -9
  538. data/lib/datadog/tracing/contrib/mysql2/instrumentation.rb +38 -4
  539. data/lib/datadog/tracing/contrib/mysql2/integration.rb +0 -2
  540. data/lib/datadog/tracing/contrib/mysql2/patcher.rb +1 -1
  541. data/lib/datadog/tracing/contrib/opensearch/configuration/settings.rb +53 -0
  542. data/lib/datadog/tracing/contrib/opensearch/ext.rb +38 -0
  543. data/lib/datadog/tracing/contrib/opensearch/integration.rb +44 -0
  544. data/lib/datadog/tracing/contrib/opensearch/patcher.rb +135 -0
  545. data/lib/datadog/tracing/contrib/opensearch/quantize.rb +81 -0
  546. data/lib/datadog/tracing/contrib/patchable.rb +1 -1
  547. data/lib/datadog/tracing/contrib/patcher.rb +3 -5
  548. data/lib/datadog/tracing/contrib/pg/configuration/settings.rb +37 -8
  549. data/lib/datadog/tracing/contrib/pg/ext.rb +22 -18
  550. data/lib/datadog/tracing/contrib/pg/instrumentation.rb +122 -39
  551. data/lib/datadog/tracing/contrib/pg/integration.rb +0 -2
  552. data/lib/datadog/tracing/contrib/pg/patcher.rb +1 -1
  553. data/lib/datadog/tracing/contrib/presto/configuration/settings.rb +24 -8
  554. data/lib/datadog/tracing/contrib/presto/ext.rb +25 -19
  555. data/lib/datadog/tracing/contrib/presto/instrumentation.rb +17 -5
  556. data/lib/datadog/tracing/contrib/presto/integration.rb +0 -2
  557. data/lib/datadog/tracing/contrib/presto/patcher.rb +0 -2
  558. data/lib/datadog/tracing/contrib/propagation/sql_comment/comment.rb +41 -0
  559. data/lib/datadog/tracing/contrib/propagation/sql_comment/ext.rb +33 -0
  560. data/lib/datadog/tracing/contrib/propagation/sql_comment/mode.rb +28 -0
  561. data/lib/datadog/tracing/contrib/propagation/sql_comment.rb +53 -0
  562. data/lib/datadog/tracing/contrib/qless/configuration/settings.rb +14 -9
  563. data/lib/datadog/tracing/contrib/qless/ext.rb +14 -13
  564. data/lib/datadog/tracing/contrib/qless/integration.rb +0 -2
  565. data/lib/datadog/tracing/contrib/qless/patcher.rb +1 -2
  566. data/lib/datadog/tracing/contrib/qless/qless_job.rb +3 -2
  567. data/lib/datadog/tracing/contrib/qless/tracer_cleaner.rb +1 -1
  568. data/lib/datadog/tracing/contrib/que/configuration/settings.rb +22 -14
  569. data/lib/datadog/tracing/contrib/que/ext.rb +1 -2
  570. data/lib/datadog/tracing/contrib/que/integration.rb +0 -2
  571. data/lib/datadog/tracing/contrib/que/patcher.rb +0 -2
  572. data/lib/datadog/tracing/contrib/que/tracer.rb +4 -2
  573. data/lib/datadog/tracing/contrib/racecar/configuration/settings.rb +19 -8
  574. data/lib/datadog/tracing/contrib/racecar/event.rb +7 -4
  575. data/lib/datadog/tracing/contrib/racecar/events/batch.rb +4 -3
  576. data/lib/datadog/tracing/contrib/racecar/events/consume.rb +0 -2
  577. data/lib/datadog/tracing/contrib/racecar/events/message.rb +4 -3
  578. data/lib/datadog/tracing/contrib/racecar/events.rb +1 -1
  579. data/lib/datadog/tracing/contrib/racecar/ext.rb +20 -18
  580. data/lib/datadog/tracing/contrib/racecar/integration.rb +0 -2
  581. data/lib/datadog/tracing/contrib/racecar/patcher.rb +1 -1
  582. data/lib/datadog/tracing/contrib/rack/configuration/settings.rb +17 -14
  583. data/lib/datadog/tracing/contrib/rack/ext.rb +18 -12
  584. data/lib/datadog/tracing/contrib/rack/header_collection.rb +38 -0
  585. data/lib/datadog/tracing/contrib/rack/header_tagging.rb +63 -0
  586. data/lib/datadog/tracing/contrib/rack/integration.rb +0 -2
  587. data/lib/datadog/tracing/contrib/rack/middlewares.rb +138 -82
  588. data/lib/datadog/tracing/contrib/rack/patcher.rb +0 -2
  589. data/lib/datadog/tracing/contrib/rack/request_queue.rb +0 -2
  590. data/lib/datadog/tracing/contrib/rails/auto_instrument_railtie.rb +0 -4
  591. data/lib/datadog/tracing/contrib/rails/configuration/settings.rb +29 -19
  592. data/lib/datadog/tracing/contrib/rails/ext.rb +7 -6
  593. data/lib/datadog/tracing/contrib/rails/framework.rb +1 -1
  594. data/lib/datadog/tracing/contrib/rails/integration.rb +0 -2
  595. data/lib/datadog/tracing/contrib/rails/log_injection.rb +7 -12
  596. data/lib/datadog/tracing/contrib/rails/middlewares.rb +1 -1
  597. data/lib/datadog/tracing/contrib/rails/patcher.rb +10 -43
  598. data/lib/datadog/tracing/contrib/rails/railtie.rb +3 -5
  599. data/lib/datadog/tracing/contrib/rails/utils.rb +2 -2
  600. data/lib/datadog/tracing/contrib/rake/configuration/settings.rb +15 -11
  601. data/lib/datadog/tracing/contrib/rake/ext.rb +14 -13
  602. data/lib/datadog/tracing/contrib/rake/instrumentation.rb +0 -2
  603. data/lib/datadog/tracing/contrib/rake/integration.rb +0 -2
  604. data/lib/datadog/tracing/contrib/rake/patcher.rb +1 -1
  605. data/lib/datadog/tracing/contrib/redis/configuration/resolver.rb +0 -2
  606. data/lib/datadog/tracing/contrib/redis/configuration/settings.rb +27 -10
  607. data/lib/datadog/tracing/contrib/redis/ext.rb +22 -13
  608. data/lib/datadog/tracing/contrib/redis/instrumentation.rb +13 -39
  609. data/lib/datadog/tracing/contrib/redis/integration.rb +34 -3
  610. data/lib/datadog/tracing/contrib/redis/patcher.rb +66 -11
  611. data/lib/datadog/tracing/contrib/redis/quantize.rb +11 -10
  612. data/lib/datadog/tracing/contrib/redis/tags.rb +24 -9
  613. data/lib/datadog/tracing/contrib/redis/trace_middleware.rb +83 -0
  614. data/lib/datadog/tracing/contrib/redis/vendor/resolver.rb +0 -2
  615. data/lib/datadog/tracing/contrib/registerable.rb +1 -1
  616. data/lib/datadog/tracing/contrib/registry.rb +1 -1
  617. data/lib/datadog/tracing/contrib/resque/configuration/settings.rb +15 -8
  618. data/lib/datadog/tracing/contrib/resque/ext.rb +9 -8
  619. data/lib/datadog/tracing/contrib/resque/integration.rb +0 -2
  620. data/lib/datadog/tracing/contrib/resque/patcher.rb +1 -1
  621. data/lib/datadog/tracing/contrib/resque/resque_job.rb +5 -1
  622. data/lib/datadog/tracing/contrib/rest_client/configuration/settings.rb +28 -10
  623. data/lib/datadog/tracing/contrib/rest_client/ext.rb +15 -8
  624. data/lib/datadog/tracing/contrib/rest_client/integration.rb +0 -2
  625. data/lib/datadog/tracing/contrib/rest_client/patcher.rb +1 -2
  626. data/lib/datadog/tracing/contrib/rest_client/request_patch.rb +28 -3
  627. data/lib/datadog/tracing/contrib/roda/configuration/settings.rb +38 -0
  628. data/lib/datadog/tracing/contrib/roda/ext.rb +19 -0
  629. data/lib/datadog/tracing/contrib/roda/instrumentation.rb +76 -0
  630. data/lib/datadog/tracing/contrib/roda/integration.rb +45 -0
  631. data/lib/datadog/{ci/contrib/cucumber → tracing/contrib/roda}/patcher.rb +10 -7
  632. data/lib/datadog/tracing/contrib/semantic_logger/configuration/settings.rb +4 -3
  633. data/lib/datadog/tracing/contrib/semantic_logger/ext.rb +2 -2
  634. data/lib/datadog/tracing/contrib/semantic_logger/instrumentation.rb +6 -21
  635. data/lib/datadog/tracing/contrib/semantic_logger/integration.rb +0 -2
  636. data/lib/datadog/tracing/contrib/semantic_logger/patcher.rb +1 -1
  637. data/lib/datadog/tracing/contrib/sequel/configuration/settings.rb +11 -7
  638. data/lib/datadog/tracing/contrib/sequel/database.rb +4 -3
  639. data/lib/datadog/tracing/contrib/sequel/dataset.rb +5 -2
  640. data/lib/datadog/tracing/contrib/sequel/ext.rb +10 -9
  641. data/lib/datadog/tracing/contrib/sequel/integration.rb +0 -2
  642. data/lib/datadog/tracing/contrib/sequel/patcher.rb +1 -1
  643. data/lib/datadog/tracing/contrib/sequel/utils.rb +7 -6
  644. data/lib/datadog/tracing/contrib/shoryuken/configuration/settings.rb +16 -9
  645. data/lib/datadog/tracing/contrib/shoryuken/ext.rb +14 -12
  646. data/lib/datadog/tracing/contrib/shoryuken/integration.rb +0 -2
  647. data/lib/datadog/tracing/contrib/shoryuken/patcher.rb +1 -1
  648. data/lib/datadog/tracing/contrib/shoryuken/tracer.rb +5 -1
  649. data/lib/datadog/tracing/contrib/sidekiq/client_tracer.rb +18 -4
  650. data/lib/datadog/tracing/contrib/sidekiq/configuration/settings.rb +20 -11
  651. data/lib/datadog/tracing/contrib/sidekiq/distributed/propagation.rb +38 -0
  652. data/lib/datadog/tracing/contrib/sidekiq/ext.rb +32 -31
  653. data/lib/datadog/tracing/contrib/sidekiq/integration.rb +8 -2
  654. data/lib/datadog/tracing/contrib/sidekiq/patcher.rb +15 -3
  655. data/lib/datadog/tracing/contrib/sidekiq/server_internal_tracer/heartbeat.rb +14 -5
  656. data/lib/datadog/tracing/contrib/sidekiq/server_internal_tracer/job_fetch.rb +3 -1
  657. data/lib/datadog/tracing/contrib/sidekiq/server_internal_tracer/redis_info.rb +3 -1
  658. data/lib/datadog/tracing/contrib/sidekiq/server_internal_tracer/scheduled_poller.rb +5 -1
  659. data/lib/datadog/tracing/contrib/sidekiq/server_internal_tracer/stop.rb +34 -0
  660. data/lib/datadog/tracing/contrib/sidekiq/server_tracer.rb +24 -3
  661. data/lib/datadog/tracing/contrib/sidekiq/{tracing.rb → utils.rb} +2 -2
  662. data/lib/datadog/tracing/contrib/sinatra/configuration/settings.rb +12 -11
  663. data/lib/datadog/tracing/contrib/sinatra/env.rb +11 -41
  664. data/lib/datadog/tracing/contrib/sinatra/ext.rb +24 -19
  665. data/lib/datadog/tracing/contrib/sinatra/framework.rb +0 -2
  666. data/lib/datadog/tracing/contrib/sinatra/integration.rb +0 -2
  667. data/lib/datadog/tracing/contrib/sinatra/patcher.rb +2 -3
  668. data/lib/datadog/tracing/contrib/sinatra/tracer.rb +8 -82
  669. data/lib/datadog/tracing/contrib/sinatra/tracer_middleware.rb +14 -20
  670. data/lib/datadog/tracing/contrib/sneakers/configuration/settings.rb +15 -10
  671. data/lib/datadog/tracing/contrib/sneakers/ext.rb +3 -2
  672. data/lib/datadog/tracing/contrib/sneakers/integration.rb +0 -2
  673. data/lib/datadog/tracing/contrib/sneakers/patcher.rb +0 -2
  674. data/lib/datadog/tracing/contrib/sneakers/tracer.rb +5 -2
  675. data/lib/datadog/tracing/contrib/span_attribute_schema.rb +92 -0
  676. data/lib/datadog/tracing/contrib/status_code_matcher.rb +0 -3
  677. data/lib/datadog/tracing/contrib/stripe/configuration/settings.rb +37 -0
  678. data/lib/datadog/tracing/contrib/stripe/ext.rb +27 -0
  679. data/lib/datadog/tracing/contrib/stripe/integration.rb +43 -0
  680. data/lib/datadog/tracing/contrib/stripe/patcher.rb +28 -0
  681. data/lib/datadog/tracing/contrib/stripe/request.rb +67 -0
  682. data/lib/datadog/tracing/contrib/sucker_punch/configuration/settings.rb +11 -7
  683. data/lib/datadog/tracing/contrib/sucker_punch/exception_handler.rb +1 -1
  684. data/lib/datadog/tracing/contrib/sucker_punch/ext.rb +15 -14
  685. data/lib/datadog/tracing/contrib/sucker_punch/instrumentation.rb +0 -2
  686. data/lib/datadog/tracing/contrib/sucker_punch/integration.rb +0 -2
  687. data/lib/datadog/tracing/contrib/sucker_punch/patcher.rb +1 -2
  688. data/lib/datadog/tracing/contrib/trilogy/configuration/settings.rb +58 -0
  689. data/lib/datadog/tracing/contrib/trilogy/ext.rb +27 -0
  690. data/lib/datadog/tracing/contrib/trilogy/instrumentation.rb +94 -0
  691. data/lib/datadog/tracing/contrib/trilogy/integration.rb +43 -0
  692. data/lib/datadog/tracing/contrib/trilogy/patcher.rb +31 -0
  693. data/lib/datadog/tracing/contrib/utils/database.rb +4 -4
  694. data/lib/datadog/tracing/contrib/utils/quantization/hash.rb +0 -2
  695. data/lib/datadog/tracing/contrib/utils/quantization/http.rb +92 -14
  696. data/lib/datadog/tracing/contrib.rb +6 -1
  697. data/lib/datadog/tracing/correlation.rb +42 -14
  698. data/lib/datadog/tracing/diagnostics/environment_logger.rb +165 -0
  699. data/lib/datadog/{core → tracing}/diagnostics/ext.rb +21 -26
  700. data/lib/datadog/tracing/diagnostics/health.rb +40 -0
  701. data/lib/datadog/tracing/distributed/b3_multi.rb +72 -0
  702. data/lib/datadog/tracing/distributed/b3_single.rb +68 -0
  703. data/lib/datadog/tracing/distributed/datadog.rb +199 -0
  704. data/lib/datadog/tracing/distributed/datadog_tags_codec.rb +84 -0
  705. data/lib/datadog/tracing/distributed/fetcher.rb +21 -0
  706. data/lib/datadog/tracing/distributed/headers/ext.rb +19 -16
  707. data/lib/datadog/tracing/distributed/helpers.rb +26 -39
  708. data/lib/datadog/tracing/distributed/none.rb +18 -0
  709. data/lib/datadog/tracing/distributed/propagation.rb +127 -0
  710. data/lib/datadog/tracing/distributed/trace_context.rb +415 -0
  711. data/lib/datadog/tracing/event.rb +0 -4
  712. data/lib/datadog/tracing/flush.rb +58 -36
  713. data/lib/datadog/tracing/metadata/analytics.rb +1 -1
  714. data/lib/datadog/tracing/metadata/errors.rb +1 -1
  715. data/lib/datadog/tracing/metadata/ext.rb +29 -14
  716. data/lib/datadog/tracing/metadata/tagging.rb +17 -4
  717. data/lib/datadog/tracing/metadata.rb +1 -1
  718. data/lib/datadog/tracing/pipeline/span_filter.rb +1 -1
  719. data/lib/datadog/tracing/pipeline/span_processor.rb +1 -1
  720. data/lib/datadog/tracing/pipeline.rb +0 -4
  721. data/lib/datadog/tracing/propagation/http.rb +4 -99
  722. data/lib/datadog/tracing/remote.rb +78 -0
  723. data/lib/datadog/tracing/runtime/metrics.rb +1 -3
  724. data/lib/datadog/tracing/sampling/all_sampler.rb +1 -1
  725. data/lib/datadog/tracing/sampling/ext.rb +30 -1
  726. data/lib/datadog/tracing/sampling/matcher.rb +24 -4
  727. data/lib/datadog/tracing/sampling/priority_sampler.rb +58 -5
  728. data/lib/datadog/tracing/sampling/rate_by_key_sampler.rb +8 -11
  729. data/lib/datadog/tracing/sampling/rate_by_service_sampler.rb +29 -8
  730. data/lib/datadog/tracing/sampling/rate_limiter.rb +3 -2
  731. data/lib/datadog/tracing/sampling/rate_sampler.rb +23 -10
  732. data/lib/datadog/tracing/sampling/rule.rb +7 -6
  733. data/lib/datadog/tracing/sampling/rule_sampler.rb +35 -7
  734. data/lib/datadog/tracing/sampling/sampler.rb +0 -2
  735. data/lib/datadog/tracing/sampling/span/ext.rb +25 -0
  736. data/lib/datadog/tracing/sampling/span/matcher.rb +9 -0
  737. data/lib/datadog/tracing/sampling/span/rule.rb +82 -0
  738. data/lib/datadog/tracing/sampling/span/rule_parser.rb +104 -0
  739. data/lib/datadog/tracing/sampling/span/sampler.rb +77 -0
  740. data/lib/datadog/tracing/span.rb +3 -21
  741. data/lib/datadog/tracing/span_operation.rb +8 -24
  742. data/lib/datadog/tracing/sync_writer.rb +4 -6
  743. data/lib/datadog/tracing/trace_digest.rb +120 -3
  744. data/lib/datadog/tracing/trace_operation.rb +62 -15
  745. data/lib/datadog/tracing/trace_segment.rb +20 -7
  746. data/lib/datadog/tracing/tracer.rb +46 -10
  747. data/lib/datadog/tracing/transport/http/api/instance.rb +37 -0
  748. data/lib/datadog/tracing/transport/http/api/spec.rb +19 -0
  749. data/lib/datadog/tracing/transport/http/api.rb +43 -0
  750. data/lib/datadog/tracing/transport/http/builder.rb +162 -0
  751. data/lib/datadog/tracing/transport/http/client.rb +57 -0
  752. data/lib/datadog/tracing/transport/http/statistics.rb +47 -0
  753. data/lib/datadog/tracing/transport/http/traces.rb +152 -0
  754. data/lib/datadog/tracing/transport/http.rb +125 -0
  755. data/lib/datadog/tracing/transport/io/client.rb +89 -0
  756. data/lib/datadog/tracing/transport/io/response.rb +27 -0
  757. data/lib/datadog/tracing/transport/io/traces.rb +101 -0
  758. data/lib/datadog/tracing/transport/io.rb +30 -0
  759. data/lib/datadog/tracing/transport/serializable_trace.rb +126 -0
  760. data/lib/datadog/tracing/transport/statistics.rb +77 -0
  761. data/lib/datadog/tracing/transport/trace_formatter.rb +240 -0
  762. data/lib/datadog/tracing/transport/traces.rb +224 -0
  763. data/lib/datadog/tracing/utils.rb +83 -0
  764. data/lib/datadog/tracing/workers/trace_writer.rb +6 -7
  765. data/lib/datadog/tracing/workers.rb +4 -6
  766. data/lib/datadog/tracing/writer.rb +12 -6
  767. data/lib/datadog/tracing.rb +9 -3
  768. data/lib/ddtrace/auto_instrument.rb +1 -1
  769. data/lib/ddtrace/auto_instrument_base.rb +1 -1
  770. data/lib/ddtrace/profiling/preload.rb +0 -2
  771. data/lib/ddtrace/transport/ext.rb +21 -15
  772. data/lib/ddtrace/version.rb +14 -15
  773. data/lib/ddtrace.rb +3 -5
  774. metadata +278 -148
  775. data/ext/ddtrace_profiling_native_extension/collectors_cpu_and_wall_time.c +0 -390
  776. data/ext/ddtrace_profiling_native_extension/collectors_cpu_and_wall_time.h +0 -6
  777. data/ext/ddtrace_profiling_native_extension/collectors_cpu_and_wall_time_worker.c +0 -391
  778. data/ext/ddtrace_profiling_native_extension/collectors_stack.c +0 -282
  779. data/ext/ddtrace_profiling_native_extension/collectors_stack.h +0 -9
  780. data/ext/ddtrace_profiling_native_extension/helpers.h +0 -12
  781. data/ext/ddtrace_profiling_native_extension/libdatadog_helpers.h +0 -14
  782. data/ext/ddtrace_profiling_native_extension/profiling.c +0 -36
  783. data/ext/ddtrace_profiling_native_extension/ruby_helpers.c +0 -25
  784. data/ext/ddtrace_profiling_native_extension/ruby_helpers.h +0 -65
  785. data/ext/ddtrace_profiling_native_extension/stack_recorder.c +0 -422
  786. data/ext/ddtrace_profiling_native_extension/stack_recorder.h +0 -38
  787. data/lib/datadog/appsec/assets/waf_rules/risky.json +0 -1499
  788. data/lib/datadog/appsec/contrib/configuration/settings.rb +0 -20
  789. data/lib/datadog/appsec/contrib/rack/configuration/settings.rb +0 -22
  790. data/lib/datadog/appsec/contrib/rack/request.rb +0 -58
  791. data/lib/datadog/appsec/contrib/rack/response.rb +0 -24
  792. data/lib/datadog/appsec/contrib/rails/configuration/settings.rb +0 -22
  793. data/lib/datadog/appsec/contrib/sinatra/configuration/settings.rb +0 -22
  794. data/lib/datadog/ci/configuration/components.rb +0 -32
  795. data/lib/datadog/ci/configuration/settings.rb +0 -53
  796. data/lib/datadog/ci/contrib/cucumber/configuration/settings.rb +0 -33
  797. data/lib/datadog/ci/contrib/cucumber/ext.rb +0 -22
  798. data/lib/datadog/ci/contrib/cucumber/formatter.rb +0 -94
  799. data/lib/datadog/ci/contrib/cucumber/instrumentation.rb +0 -28
  800. data/lib/datadog/ci/contrib/cucumber/integration.rb +0 -49
  801. data/lib/datadog/ci/contrib/rspec/configuration/settings.rb +0 -33
  802. data/lib/datadog/ci/contrib/rspec/example.rb +0 -70
  803. data/lib/datadog/ci/contrib/rspec/ext.rb +0 -21
  804. data/lib/datadog/ci/contrib/rspec/integration.rb +0 -50
  805. data/lib/datadog/ci/contrib/rspec/patcher.rb +0 -27
  806. data/lib/datadog/ci/ext/app_types.rb +0 -11
  807. data/lib/datadog/ci/ext/environment.rb +0 -505
  808. data/lib/datadog/ci/ext/settings.rb +0 -12
  809. data/lib/datadog/ci/ext/test.rb +0 -37
  810. data/lib/datadog/ci/extensions.rb +0 -19
  811. data/lib/datadog/ci/flush.rb +0 -38
  812. data/lib/datadog/ci/test.rb +0 -83
  813. data/lib/datadog/ci.rb +0 -20
  814. data/lib/datadog/core/configuration/dependency_resolver.rb +0 -28
  815. data/lib/datadog/core/configuration/option_definition_set.rb +0 -22
  816. data/lib/datadog/core/configuration/option_set.rb +0 -10
  817. data/lib/datadog/core/telemetry/client.rb +0 -79
  818. data/lib/datadog/core/telemetry/collector.rb +0 -234
  819. data/lib/datadog/core/telemetry/heartbeat.rb +0 -37
  820. data/lib/datadog/core/telemetry/v1/app_event.rb +0 -52
  821. data/lib/datadog/core/telemetry/v1/application.rb +0 -86
  822. data/lib/datadog/core/telemetry/v1/configuration.rb +0 -25
  823. data/lib/datadog/core/telemetry/v1/dependency.rb +0 -36
  824. data/lib/datadog/core/telemetry/v1/host.rb +0 -51
  825. data/lib/datadog/core/telemetry/v1/integration.rb +0 -58
  826. data/lib/datadog/core/telemetry/v1/product.rb +0 -28
  827. data/lib/datadog/core/telemetry/v1/telemetry_request.rb +0 -100
  828. data/lib/datadog/core/utils/object_set.rb +0 -43
  829. data/lib/datadog/core/utils/string_table.rb +0 -49
  830. data/lib/datadog/profiling/backtrace_location.rb +0 -34
  831. data/lib/datadog/profiling/buffer.rb +0 -43
  832. data/lib/datadog/profiling/collectors/cpu_and_wall_time.rb +0 -27
  833. data/lib/datadog/profiling/collectors/old_stack.rb +0 -298
  834. data/lib/datadog/profiling/encoding/profile.rb +0 -43
  835. data/lib/datadog/profiling/event.rb +0 -15
  836. data/lib/datadog/profiling/events/stack.rb +0 -82
  837. data/lib/datadog/profiling/old_ext.rb +0 -42
  838. data/lib/datadog/profiling/old_recorder.rb +0 -101
  839. data/lib/datadog/profiling/pprof/builder.rb +0 -127
  840. data/lib/datadog/profiling/pprof/converter.rb +0 -104
  841. data/lib/datadog/profiling/pprof/message_set.rb +0 -16
  842. data/lib/datadog/profiling/pprof/payload.rb +0 -20
  843. data/lib/datadog/profiling/pprof/pprof.proto +0 -212
  844. data/lib/datadog/profiling/pprof/pprof_pb.rb +0 -83
  845. data/lib/datadog/profiling/pprof/stack_sample.rb +0 -141
  846. data/lib/datadog/profiling/pprof/string_table.rb +0 -12
  847. data/lib/datadog/profiling/pprof/template.rb +0 -120
  848. data/lib/datadog/profiling/trace_identifiers/ddtrace.rb +0 -45
  849. data/lib/datadog/profiling/trace_identifiers/helper.rb +0 -47
  850. data/lib/datadog/profiling/transport/http/api/endpoint.rb +0 -85
  851. data/lib/datadog/profiling/transport/http/api/instance.rb +0 -38
  852. data/lib/datadog/profiling/transport/http/api/spec.rb +0 -42
  853. data/lib/datadog/profiling/transport/http/api.rb +0 -45
  854. data/lib/datadog/profiling/transport/http/builder.rb +0 -30
  855. data/lib/datadog/profiling/transport/http/client.rb +0 -37
  856. data/lib/datadog/profiling/transport/http/response.rb +0 -21
  857. data/lib/datadog/profiling/transport/http.rb +0 -118
  858. data/lib/datadog/tracing/contrib/sinatra/headers.rb +0 -35
  859. data/lib/datadog/tracing/distributed/headers/b3.rb +0 -55
  860. data/lib/datadog/tracing/distributed/headers/b3_single.rb +0 -67
  861. data/lib/datadog/tracing/distributed/headers/datadog.rb +0 -52
  862. data/lib/datadog/tracing/distributed/headers/parser.rb +0 -37
  863. data/lib/datadog/tracing/distributed/metadata/b3.rb +0 -55
  864. data/lib/datadog/tracing/distributed/metadata/b3_single.rb +0 -66
  865. data/lib/datadog/tracing/distributed/metadata/datadog.rb +0 -73
  866. data/lib/datadog/tracing/distributed/metadata/parser.rb +0 -34
  867. data/lib/datadog/tracing/propagation/grpc.rb +0 -98
  868. data/lib/ddtrace/transport/http/adapters/net.rb +0 -158
  869. data/lib/ddtrace/transport/http/adapters/registry.rb +0 -27
  870. data/lib/ddtrace/transport/http/adapters/test.rb +0 -87
  871. data/lib/ddtrace/transport/http/adapters/unix_socket.rb +0 -79
  872. data/lib/ddtrace/transport/http/api/endpoint.rb +0 -29
  873. data/lib/ddtrace/transport/http/api/fallbacks.rb +0 -24
  874. data/lib/ddtrace/transport/http/api/instance.rb +0 -35
  875. data/lib/ddtrace/transport/http/api/map.rb +0 -16
  876. data/lib/ddtrace/transport/http/api/spec.rb +0 -17
  877. data/lib/ddtrace/transport/http/api.rb +0 -41
  878. data/lib/ddtrace/transport/http/builder.rb +0 -178
  879. data/lib/ddtrace/transport/http/client.rb +0 -54
  880. data/lib/ddtrace/transport/http/env.rb +0 -58
  881. data/lib/ddtrace/transport/http/response.rb +0 -58
  882. data/lib/ddtrace/transport/http/statistics.rb +0 -45
  883. data/lib/ddtrace/transport/http/traces.rb +0 -146
  884. data/lib/ddtrace/transport/http.rb +0 -121
  885. data/lib/ddtrace/transport/io/client.rb +0 -87
  886. data/lib/ddtrace/transport/io/response.rb +0 -25
  887. data/lib/ddtrace/transport/io/traces.rb +0 -101
  888. data/lib/ddtrace/transport/io.rb +0 -28
  889. data/lib/ddtrace/transport/parcel.rb +0 -22
  890. data/lib/ddtrace/transport/request.rb +0 -15
  891. data/lib/ddtrace/transport/response.rb +0 -62
  892. data/lib/ddtrace/transport/serializable_trace.rb +0 -118
  893. data/lib/ddtrace/transport/statistics.rb +0 -75
  894. data/lib/ddtrace/transport/trace_formatter.rb +0 -187
  895. data/lib/ddtrace/transport/traces.rb +0 -216
@@ -1,5 +1,3 @@
1
- # typed: true
2
-
3
1
  require_relative 'configuration/components'
4
2
  require_relative 'configuration/settings'
5
3
  require_relative 'telemetry/emitter'
@@ -9,9 +7,7 @@ require_relative 'pin'
9
7
  module Datadog
10
8
  module Core
11
9
  # Configuration provides a unique access point for configurations
12
- module Configuration # rubocop:disable Metrics/ModuleLength
13
- include Kernel # Ensure that kernel methods are always available (https://sorbet.org/docs/error-reference#7003)
14
-
10
+ module Configuration
15
11
  # Used to ensure that @components initialization/reconfiguration is performed one-at-a-time, by a single thread.
16
12
  #
17
13
  # This is important because components can end up being accessed from multiple application threads (for instance on
@@ -90,9 +86,7 @@ module Datadog
90
86
  if components?
91
87
  replace_components!(configuration, @components)
92
88
  else
93
- components = build_components(configuration)
94
- components.telemetry.started!
95
- components
89
+ build_components(configuration)
96
90
  end
97
91
  )
98
92
  end
@@ -197,7 +191,11 @@ module Datadog
197
191
  return current_components if current_components || !allow_initialization
198
192
 
199
193
  safely_synchronize do |write_components|
200
- (defined?(@components) && @components) || write_components.call(build_components(configuration))
194
+ if defined?(@components) && @components
195
+ @components
196
+ else
197
+ write_components.call(build_components(configuration))
198
+ end
201
199
  end
202
200
  end
203
201
 
@@ -212,7 +210,11 @@ module Datadog
212
210
  # Used internally to ensure a clean environment between test runs.
213
211
  def reset!
214
212
  safely_synchronize do |write_components|
215
- @components.shutdown! if components?
213
+ if components?
214
+ @components.shutdown!
215
+ @temp_logger = nil # Reset to ensure instance and log level are reset for next run
216
+ end
217
+
216
218
  write_components.call(nil)
217
219
  configuration.reset!
218
220
  end
@@ -273,6 +275,10 @@ module Datadog
273
275
  def handle_interrupt_shutdown!
274
276
  logger = Datadog.logger
275
277
  shutdown_thread = Thread.new { shutdown! }
278
+ unless Gem::Version.new(RUBY_VERSION) < Gem::Version.new('2.3')
279
+ shutdown_thread.name = Datadog::Core::Configuration.name
280
+ end
281
+
276
282
  print_message_treshold_seconds = 0.2
277
283
 
278
284
  slow_shutdown = shutdown_thread.join(print_message_treshold_seconds).nil?
@@ -1,281 +1,181 @@
1
- # typed: true
1
+ # frozen_string_literal: true
2
2
 
3
- require 'date'
4
3
  require 'json'
5
4
  require 'rbconfig'
5
+ require 'time'
6
6
 
7
7
  module Datadog
8
8
  module Core
9
9
  module Diagnostics
10
- # A holistic collection of the environment in which ddtrace is running.
11
- # This logger should allow for easy reporting by users to Datadog support.
12
- #
13
- module EnvironmentLogger
14
- class << self
15
- # Outputs environment information to {Datadog.logger}.
16
- # Executes only once for the lifetime of the program.
17
- def log!(transport_responses)
18
- return if (defined?(@executed) && @executed) || !log?
19
-
20
- @executed = true
21
-
22
- data = EnvironmentCollector.new.collect!(transport_responses)
23
- data.reject! { |_, v| v.nil? } # Remove empty values from hash output
24
-
25
- log_environment!(data.to_json)
26
- log_error!('Agent Error'.freeze, data[:agent_error]) if data[:agent_error]
27
- rescue => e
28
- Datadog.logger.warn("Failed to collect environment information: #{e} Location: #{Array(e.backtrace).first}")
29
- end
30
-
31
- private
32
-
33
- def log_environment!(line)
34
- Datadog.logger.info("DATADOG CONFIGURATION - #{line}")
35
- end
36
-
37
- def log_error!(type, error)
38
- Datadog.logger.warn("DATADOG DIAGNOSTIC - #{type}: #{error}")
39
- end
40
-
41
- # Are we logging the environment data?
42
- def log?
43
- startup_logs_enabled = Datadog.configuration.diagnostics.startup_logs.enabled
44
- if startup_logs_enabled.nil?
45
- !repl? # Suppress logs if we running in a REPL
46
- else
47
- startup_logs_enabled
48
- end
49
- end
50
-
51
- REPL_PROGRAM_NAMES = %w[irb pry].freeze
52
-
53
- def repl?
54
- REPL_PROGRAM_NAMES.include?($PROGRAM_NAME)
55
- end
10
+ # Base class for EnvironmentLoggers - should allow for easy reporting by users to Datadog support.
11
+ module EnvironmentLogging
12
+ def log_configuration!(prefix, data)
13
+ logger.info("DATADOG CONFIGURATION - #{prefix} - #{data}")
56
14
  end
57
- end
58
15
 
59
- # Collects environment information for diagnostic logging
60
- class EnvironmentCollector
61
- # @return [String] current time in ISO8601 format
62
- def date
63
- DateTime.now.iso8601
16
+ def log_error!(prefix, type, error)
17
+ logger.warn("DATADOG ERROR - #{prefix} - #{type}: #{error}")
64
18
  end
65
19
 
66
- # Best portable guess of OS information.
67
- # @return [String] platform string
68
- def os_name
69
- RbConfig::CONFIG['host'.freeze]
70
- end
71
-
72
- # @return [String] ddtrace version
73
- def version
74
- DDTrace::VERSION::STRING
75
- end
76
-
77
- # @return [String] "ruby"
78
- def lang
79
- Core::Environment::Ext::LANG
80
- end
81
-
82
- # Supported Ruby language version.
83
- # Will be distinct from VM version for non-MRI environments.
84
- # @return [String]
85
- def lang_version
86
- Core::Environment::Ext::LANG_VERSION
87
- end
20
+ protected
88
21
 
89
- # @return [String] configured application environment
90
- def env
91
- Datadog.configuration.env
22
+ def logger
23
+ Datadog.logger
92
24
  end
93
25
 
94
- # @return [Boolean, nil]
95
- def enabled
96
- Datadog.configuration.tracing.enabled
97
- end
26
+ # If logger should log and hasn't logged already, then output environment configuration and possible errors.
27
+ def log_once!
28
+ # Check if already been executed
29
+ return false if (defined?(@executed) && @executed) || !log?
98
30
 
99
- # @return [String] configured application service name
100
- def service
101
- Datadog.configuration.service
102
- end
31
+ yield if block_given?
103
32
 
104
- # @return [String] configured application version
105
- def dd_version
106
- Datadog.configuration.version
33
+ @executed = true
107
34
  end
108
35
 
109
- # @return [String] target agent URL for trace flushing
110
- def agent_url
111
- # Retrieve the effect agent URL, regardless of how it was configured
112
- transport = Tracing.send(:tracer).writer.transport
113
- adapter = transport.client.api.adapter
114
- adapter.url
36
+ # Are we logging the environment data?
37
+ def log?
38
+ startup_logs_enabled = Datadog.configuration.diagnostics.startup_logs.enabled
39
+ if startup_logs_enabled.nil?
40
+ !repl? && !rspec? # Suppress logs if we are running in a REPL or rspec
41
+ else
42
+ startup_logs_enabled
43
+ end
115
44
  end
116
45
 
117
- # Error returned by Datadog agent during a tracer flush attempt
118
- # @return [String] concatenated list of transport errors
119
- def agent_error(transport_responses)
120
- error_responses = transport_responses.reject(&:ok?)
121
-
122
- return nil if error_responses.empty?
46
+ REPL_PROGRAM_NAMES = %w[irb pry].freeze
123
47
 
124
- error_responses.map(&:inspect).join(','.freeze)
48
+ def repl?
49
+ REPL_PROGRAM_NAMES.include?($PROGRAM_NAME)
125
50
  end
126
51
 
127
- # @return [Boolean, nil] debug mode enabled in configuration
128
- def debug
129
- !!Datadog.configuration.diagnostics.debug
130
- end
131
-
132
- # @return [Boolean, nil] analytics enabled in configuration
133
- def analytics_enabled
134
- !!Datadog.configuration.tracing.analytics.enabled
52
+ def rspec?
53
+ $PROGRAM_NAME.end_with?('rspec')
135
54
  end
55
+ end
136
56
 
137
- # @return [Numeric, nil] tracer sample rate configured
138
- def sample_rate
139
- sampler = Datadog.configuration.tracing.sampler
140
- return nil unless sampler
57
+ # Collects and logs Core diagnostic information
58
+ module EnvironmentLogger
59
+ extend EnvironmentLogging
141
60
 
142
- sampler.sample_rate(nil) rescue nil
61
+ def self.collect_and_log!(extra_fields = nil)
62
+ log_once! do
63
+ data = EnvironmentCollector.collect_config!
64
+ data = data.merge(extra_fields) if extra_fields
65
+ log_configuration!('CORE', data.to_json)
66
+ end
67
+ rescue => e
68
+ logger.warn("Failed to collect core environment information: #{e} Location: #{Array(e.backtrace).first}")
143
69
  end
70
+ end
144
71
 
145
- # DEV: We currently only support SimpleRule instances.
146
- # DEV: These are the most commonly used rules.
147
- # DEV: We should expand support for other rules in the future,
148
- # DEV: although it is tricky to serialize arbitrary rules.
149
- #
150
- # @return [Hash, nil] sample rules configured
151
- def sampling_rules
152
- sampler = Datadog.configuration.tracing.sampler
153
- return nil unless sampler.is_a?(Tracing::Sampling::PrioritySampler) &&
154
- sampler.priority_sampler.is_a?(Tracing::Sampling::RuleSampler)
155
-
156
- sampler.priority_sampler.rules.map do |rule|
157
- next unless rule.is_a?(Tracing::Sampling::SimpleRule)
158
-
72
+ # Collects environment information for Core diagnostic logging
73
+ module EnvironmentCollector
74
+ class << self
75
+ def collect_config!
159
76
  {
160
- name: rule.matcher.name,
161
- service: rule.matcher.service,
162
- sample_rate: rule.sampler.sample_rate(nil)
77
+ date: date,
78
+ os_name: os_name,
79
+ version: version,
80
+ lang: lang,
81
+ lang_version: lang_version,
82
+ env: env,
83
+ service: service,
84
+ dd_version: dd_version,
85
+ debug: debug,
86
+ tags: tags,
87
+ runtime_metrics_enabled: runtime_metrics_enabled,
88
+ vm: vm,
89
+ health_metrics_enabled: health_metrics_enabled
163
90
  }
164
- end.compact
165
- end
166
-
167
- # @return [Hash, nil] concatenated list of global tracer tags configured
168
- def tags
169
- tags = Datadog.configuration.tags
170
- return nil if tags.empty?
91
+ end
171
92
 
172
- hash_serializer(tags)
173
- end
93
+ # @return [String] current time in ISO8601 format
94
+ def date
95
+ Time.now.utc.iso8601
96
+ end
174
97
 
175
- # @return [Boolean, nil] runtime metrics enabled in configuration
176
- def runtime_metrics_enabled
177
- Datadog.configuration.runtime_metrics.enabled
178
- end
98
+ # Best portable guess of OS information.
99
+ # @return [String] platform string
100
+ def os_name
101
+ RbConfig::CONFIG['host']
102
+ end
179
103
 
180
- # Concatenated list of integrations activated, with their gem version.
181
- # Example: "rails@6.0.3,rack@2.2.3"
182
- #
183
- # @return [String, nil]
184
- def integrations_loaded
185
- integrations = instrumented_integrations
186
- return if integrations.empty?
104
+ # @return [String] ddtrace version
105
+ def version
106
+ DDTrace::VERSION::STRING
107
+ end
187
108
 
188
- integrations.map { |name, integration| "#{name}@#{integration.class.version}" }.join(','.freeze)
189
- end
109
+ # @return [String] "ruby"
110
+ def lang
111
+ Core::Environment::Ext::LANG
112
+ end
190
113
 
191
- # Ruby VM name and version.
192
- # Examples: "ruby-2.7.1", "jruby-9.2.11.1", "truffleruby-20.1.0"
193
- # @return [String, nil]
194
- def vm
195
- # RUBY_ENGINE_VERSION returns the VM version, which
196
- # will differ from RUBY_VERSION for non-mri VMs.
197
- if defined?(RUBY_ENGINE_VERSION)
198
- "#{RUBY_ENGINE}-#{RUBY_ENGINE_VERSION}"
199
- else
200
- # Ruby < 2.3 doesn't support RUBY_ENGINE_VERSION
201
- "#{RUBY_ENGINE}-#{RUBY_VERSION}"
114
+ # Supported Ruby language version.
115
+ # Will be distinct from VM version for non-MRI environments.
116
+ # @return [String]
117
+ def lang_version
118
+ Core::Environment::Ext::LANG_VERSION
202
119
  end
203
- end
204
120
 
205
- # @return [Boolean, nil] partial flushing enabled in configuration
206
- def partial_flushing_enabled
207
- !!Datadog.configuration.tracing.partial_flush.enabled
208
- end
121
+ # @return [String] configured application environment
122
+ def env
123
+ Datadog.configuration.env
124
+ end
209
125
 
210
- # @return [Boolean, nil] priority sampling enabled in configuration
211
- def priority_sampling_enabled
212
- !!Datadog.configuration.tracing.priority_sampling
213
- end
126
+ # @return [String] configured application service name
127
+ def service
128
+ Datadog.configuration.service
129
+ end
214
130
 
215
- # @return [Boolean, nil] health metrics enabled in configuration
216
- def health_metrics_enabled
217
- !!Datadog.configuration.diagnostics.health_metrics.enabled
218
- end
131
+ # @return [String] configured application version
132
+ def dd_version
133
+ Datadog.configuration.version
134
+ end
219
135
 
220
- # TODO: Populate when profiling is implemented
221
- # def profiling_enabled
222
- # end
136
+ # @return [Boolean, nil] debug mode enabled in configuration
137
+ def debug
138
+ !!Datadog.configuration.diagnostics.debug
139
+ end
223
140
 
224
- # TODO: Populate when automatic log correlation is implemented
225
- # def logs_correlation_enabled
226
- # end
141
+ # @return [Hash, nil] concatenated list of global tracer tags configured
142
+ def tags
143
+ tags = Datadog.configuration.tags
144
+ return nil if tags.empty?
227
145
 
228
- # @return [Hash] environment information available at call time
229
- def collect!(transport_responses)
230
- {
231
- date: date,
232
- os_name: os_name,
233
- version: version,
234
- lang: lang,
235
- lang_version: lang_version,
236
- env: env,
237
- enabled: enabled,
238
- service: service,
239
- dd_version: dd_version,
240
- agent_url: agent_url,
241
- agent_error: agent_error(transport_responses),
242
- debug: debug,
243
- analytics_enabled: analytics_enabled,
244
- sample_rate: sample_rate,
245
- sampling_rules: sampling_rules,
246
- tags: tags,
247
- runtime_metrics_enabled: runtime_metrics_enabled,
248
- integrations_loaded: integrations_loaded,
249
- vm: vm,
250
- partial_flushing_enabled: partial_flushing_enabled,
251
- priority_sampling_enabled: priority_sampling_enabled,
252
- health_metrics_enabled: health_metrics_enabled,
253
- **instrumented_integrations_settings
254
- }
255
- end
146
+ hash_serializer(tags)
147
+ end
256
148
 
257
- private
149
+ # @return [Boolean, nil] runtime metrics enabled in configuration
150
+ def runtime_metrics_enabled
151
+ Datadog.configuration.runtime_metrics.enabled
152
+ end
258
153
 
259
- def instrumented_integrations
260
- Datadog.configuration.tracing.instrumented_integrations
261
- end
154
+ # Ruby VM name and version.
155
+ # Examples: "ruby-2.7.1", "jruby-9.2.11.1", "truffleruby-20.1.0"
156
+ # @return [String, nil]
157
+ def vm
158
+ # RUBY_ENGINE_VERSION returns the VM version, which
159
+ # will differ from RUBY_VERSION for non-mri VMs.
160
+ if defined?(RUBY_ENGINE_VERSION)
161
+ "#{RUBY_ENGINE}-#{RUBY_ENGINE_VERSION}"
162
+ else
163
+ # Ruby < 2.3 doesn't support RUBY_ENGINE_VERSION
164
+ "#{RUBY_ENGINE}-#{RUBY_VERSION}"
165
+ end
166
+ end
262
167
 
263
- # Capture all active integration settings into "integrationName_settingName: value" entries.
264
- def instrumented_integrations_settings
265
- instrumented_integrations.flat_map do |name, integration|
266
- integration.configuration.to_h.flat_map do |setting, value|
267
- next [] if setting == :tracer # Skip internal Ruby objects
168
+ # @return [Boolean, nil] health metrics enabled in configuration
169
+ def health_metrics_enabled
170
+ !!Datadog.configuration.diagnostics.health_metrics.enabled
171
+ end
268
172
 
269
- # Convert value to a string to avoid custom #to_json
270
- # handlers possibly causing errors.
271
- [[:"integration_#{name}_#{setting}", value.to_s]]
272
- end
273
- end.to_h
274
- end
173
+ private
275
174
 
276
- # Outputs "k1:v1,k2:v2,..."
277
- def hash_serializer(h)
278
- h.map { |k, v| "#{k}:#{v}" }.join(','.freeze)
175
+ # Outputs "k1:v1,k2:v2,..."
176
+ def hash_serializer(h)
177
+ h.map { |k, v| "#{k}:#{v}" }.join(',')
178
+ end
279
179
  end
280
180
  end
281
181
  end
@@ -1,7 +1,7 @@
1
- # typed: strict
1
+ # frozen_string_literal: true
2
2
 
3
- require_relative 'ext'
4
3
  require_relative '../metrics/client'
4
+ require_relative '../../tracing/diagnostics/health'
5
5
 
6
6
  module Datadog
7
7
  module Core
@@ -10,26 +10,8 @@ module Datadog
10
10
  module Health
11
11
  # Health metrics for diagnostics
12
12
  class Metrics < Core::Metrics::Client
13
- count :api_errors, Ext::Health::Metrics::METRIC_API_ERRORS
14
- count :api_requests, Ext::Health::Metrics::METRIC_API_REQUESTS
15
- count :api_responses, Ext::Health::Metrics::METRIC_API_RESPONSES
16
- count :error_context_overflow, Ext::Health::Metrics::METRIC_ERROR_CONTEXT_OVERFLOW
17
- count :error_instrumentation_patch, Ext::Health::Metrics::METRIC_ERROR_INSTRUMENTATION_PATCH
18
- count :error_span_finish, Ext::Health::Metrics::METRIC_ERROR_SPAN_FINISH
19
- count :error_unfinished_spans, Ext::Health::Metrics::METRIC_ERROR_UNFINISHED_SPANS
20
- count :instrumentation_patched, Ext::Health::Metrics::METRIC_INSTRUMENTATION_PATCHED
21
- count :queue_accepted, Ext::Health::Metrics::METRIC_QUEUE_ACCEPTED
22
- count :queue_accepted_lengths, Ext::Health::Metrics::METRIC_QUEUE_ACCEPTED_LENGTHS
23
- count :queue_dropped, Ext::Health::Metrics::METRIC_QUEUE_DROPPED
24
- count :traces_filtered, Ext::Health::Metrics::METRIC_TRACES_FILTERED
25
- count :transport_trace_too_large, Ext::Health::Metrics::METRIC_TRANSPORT_TRACE_TOO_LARGE
26
- count :transport_chunked, Ext::Health::Metrics::METRIC_TRANSPORT_CHUNKED
27
- count :writer_cpu_time, Ext::Health::Metrics::METRIC_WRITER_CPU_TIME
28
-
29
- gauge :queue_length, Ext::Health::Metrics::METRIC_QUEUE_LENGTH
30
- gauge :queue_max_length, Ext::Health::Metrics::METRIC_QUEUE_MAX_LENGTH
31
- gauge :queue_spans, Ext::Health::Metrics::METRIC_QUEUE_SPANS
32
- gauge :sampling_service_cache_length, Ext::Health::Metrics::METRIC_SAMPLING_SERVICE_CACHE_LENGTH
13
+ # TODO: Don't reference this. Have tracing add its metrics behavior.
14
+ extend Tracing::Diagnostics::Health::Metrics
33
15
  end
34
16
  end
35
17
  end
@@ -1,5 +1,3 @@
1
- # typed: true
2
-
3
1
  require 'json'
4
2
  require 'msgpack'
5
3
 
@@ -10,8 +8,6 @@ module Datadog
10
8
  # Encoder interface that provides the logic to encode traces and service
11
9
  # @abstract
12
10
  module Encoder
13
- include Kernel # Ensure that kernel methods are always available (https://sorbet.org/docs/error-reference#7003)
14
-
15
11
  def content_type
16
12
  raise NotImplementedError
17
13
  end
@@ -1,5 +1,3 @@
1
- # typed: true
2
-
3
1
  require_relative 'ext'
4
2
 
5
3
  module Datadog
@@ -10,8 +8,6 @@ module Datadog
10
8
  # about the current Linux container identity.
11
9
  # @see https://man7.org/linux/man-pages/man7/cgroups.7.html
12
10
  module Cgroup
13
- include Kernel # Ensure that kernel methods are always available (https://sorbet.org/docs/error-reference#7003)
14
-
15
11
  LINE_REGEX = /^(\d+):([^:]*):(.+)$/.freeze
16
12
 
17
13
  Descriptor = Struct.new(
@@ -1,19 +1,19 @@
1
- # typed: true
1
+ # frozen_string_literal: true
2
2
 
3
3
  module Datadog
4
4
  module Core
5
5
  module Environment
6
6
  # Retrieves number of classes from runtime
7
7
  module ClassCount
8
- module_function
9
-
10
- def value
8
+ def self.value
11
9
  ::ObjectSpace.count_objects[:T_CLASS]
12
10
  end
13
11
 
14
- def available?
15
- ::ObjectSpace.respond_to?(:count_objects) \
16
- && ::ObjectSpace.count_objects.key?(:T_CLASS)
12
+ def self.available?
13
+ return @class_count_available if defined?(@class_count_available)
14
+
15
+ @class_count_available =
16
+ ::ObjectSpace.respond_to?(:count_objects) && ::ObjectSpace.count_objects.key?(:T_CLASS)
17
17
  end
18
18
  end
19
19
  end
@@ -1,5 +1,3 @@
1
- # typed: true
2
-
3
1
  require_relative 'cgroup'
4
2
 
5
3
  module Datadog
@@ -7,8 +5,6 @@ module Datadog
7
5
  module Environment
8
6
  # For container environments
9
7
  module Container
10
- include Kernel # Ensure that kernel methods are always available (https://sorbet.org/docs/error-reference#7003)
11
-
12
8
  UUID_PATTERN = '[0-9a-f]{8}[-_]?[0-9a-f]{4}[-_]?[0-9a-f]{4}[-_]?[0-9a-f]{4}[-_]?[0-9a-f]{12}'.freeze
13
9
  CONTAINER_PATTERN = '[0-9a-f]{64}'.freeze
14
10