ddtrace 0.53.0 → 1.9.0

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 (1210) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +687 -12
  3. data/LICENSE-3rdparty.csv +6 -1
  4. data/README.md +10 -1
  5. data/bin/ddtracerb +5 -5
  6. data/ext/ddtrace_profiling_loader/ddtrace_profiling_loader.c +134 -0
  7. data/ext/ddtrace_profiling_loader/extconf.rb +74 -0
  8. data/ext/ddtrace_profiling_native_extension/NativeExtensionDesign.md +156 -0
  9. data/ext/ddtrace_profiling_native_extension/clock_id.h +25 -0
  10. data/ext/ddtrace_profiling_native_extension/clock_id_from_pthread.c +75 -0
  11. data/ext/ddtrace_profiling_native_extension/clock_id_noop.c +23 -0
  12. data/ext/ddtrace_profiling_native_extension/collectors_cpu_and_wall_time.c +899 -0
  13. data/ext/ddtrace_profiling_native_extension/collectors_cpu_and_wall_time.h +9 -0
  14. data/ext/ddtrace_profiling_native_extension/collectors_cpu_and_wall_time_worker.c +776 -0
  15. data/ext/ddtrace_profiling_native_extension/collectors_dynamic_sampling_rate.c +142 -0
  16. data/ext/ddtrace_profiling_native_extension/collectors_dynamic_sampling_rate.h +14 -0
  17. data/ext/ddtrace_profiling_native_extension/collectors_idle_sampling_helper.c +241 -0
  18. data/ext/ddtrace_profiling_native_extension/collectors_idle_sampling_helper.h +3 -0
  19. data/ext/ddtrace_profiling_native_extension/collectors_stack.c +390 -0
  20. data/ext/ddtrace_profiling_native_extension/collectors_stack.h +18 -0
  21. data/ext/ddtrace_profiling_native_extension/extconf.rb +234 -14
  22. data/ext/ddtrace_profiling_native_extension/helpers.h +17 -0
  23. data/ext/ddtrace_profiling_native_extension/http_transport.c +354 -0
  24. data/ext/ddtrace_profiling_native_extension/libdatadog_helpers.h +18 -0
  25. data/ext/ddtrace_profiling_native_extension/native_extension_helpers.rb +319 -0
  26. data/ext/ddtrace_profiling_native_extension/private_vm_api_access.c +846 -0
  27. data/ext/ddtrace_profiling_native_extension/private_vm_api_access.h +45 -0
  28. data/ext/ddtrace_profiling_native_extension/profiling.c +237 -3
  29. data/ext/ddtrace_profiling_native_extension/ruby_helpers.c +110 -0
  30. data/ext/ddtrace_profiling_native_extension/ruby_helpers.h +89 -0
  31. data/ext/ddtrace_profiling_native_extension/setup_signal_handler.c +115 -0
  32. data/ext/ddtrace_profiling_native_extension/setup_signal_handler.h +11 -0
  33. data/ext/ddtrace_profiling_native_extension/stack_recorder.c +487 -0
  34. data/ext/ddtrace_profiling_native_extension/stack_recorder.h +39 -0
  35. data/ext/ddtrace_profiling_native_extension/time_helpers.c +17 -0
  36. data/ext/ddtrace_profiling_native_extension/time_helpers.h +10 -0
  37. data/lib/datadog/appsec/assets/blocked.html +99 -0
  38. data/lib/datadog/appsec/assets/blocked.json +1 -0
  39. data/lib/datadog/appsec/assets/blocked.text +5 -0
  40. data/lib/datadog/appsec/assets/waf_rules/README.md +7 -0
  41. data/lib/datadog/appsec/assets/waf_rules/recommended.json +6588 -0
  42. data/lib/datadog/appsec/assets/waf_rules/risky.json +1499 -0
  43. data/lib/datadog/appsec/assets/waf_rules/strict.json +1533 -0
  44. data/lib/datadog/appsec/assets.rb +38 -0
  45. data/lib/datadog/appsec/autoload.rb +18 -0
  46. data/lib/datadog/appsec/configuration/settings.rb +211 -0
  47. data/lib/datadog/appsec/configuration.rb +86 -0
  48. data/lib/datadog/appsec/contrib/auto_instrument.rb +27 -0
  49. data/lib/datadog/appsec/contrib/configuration/settings.rb +20 -0
  50. data/lib/datadog/appsec/contrib/integration.rb +37 -0
  51. data/lib/datadog/appsec/contrib/patcher.rb +12 -0
  52. data/lib/datadog/appsec/contrib/rack/configuration/settings.rb +22 -0
  53. data/lib/datadog/appsec/contrib/rack/ext.rb +15 -0
  54. data/lib/datadog/appsec/contrib/rack/gateway/watcher.rb +174 -0
  55. data/lib/datadog/appsec/contrib/rack/integration.rb +49 -0
  56. data/lib/datadog/appsec/contrib/rack/patcher.rb +32 -0
  57. data/lib/datadog/appsec/contrib/rack/reactive/request.rb +83 -0
  58. data/lib/datadog/appsec/contrib/rack/reactive/request_body.rb +64 -0
  59. data/lib/datadog/appsec/contrib/rack/reactive/response.rb +64 -0
  60. data/lib/datadog/appsec/contrib/rack/request.rb +78 -0
  61. data/lib/datadog/appsec/contrib/rack/request_body_middleware.rb +41 -0
  62. data/lib/datadog/appsec/contrib/rack/request_middleware.rb +139 -0
  63. data/lib/datadog/appsec/contrib/rack/response.rb +24 -0
  64. data/lib/datadog/appsec/contrib/rails/configuration/settings.rb +22 -0
  65. data/lib/datadog/appsec/contrib/rails/ext.rb +15 -0
  66. data/lib/datadog/appsec/contrib/rails/framework.rb +30 -0
  67. data/lib/datadog/appsec/contrib/rails/gateway/watcher.rb +82 -0
  68. data/lib/datadog/appsec/contrib/rails/integration.rb +48 -0
  69. data/lib/datadog/appsec/contrib/rails/patcher.rb +159 -0
  70. data/lib/datadog/appsec/contrib/rails/reactive/action.rb +68 -0
  71. data/lib/datadog/appsec/contrib/rails/request.rb +36 -0
  72. data/lib/datadog/appsec/contrib/rails/request_middleware.rb +20 -0
  73. data/lib/datadog/appsec/contrib/sinatra/configuration/settings.rb +22 -0
  74. data/lib/datadog/appsec/contrib/sinatra/ext.rb +16 -0
  75. data/lib/datadog/appsec/contrib/sinatra/framework.rb +34 -0
  76. data/lib/datadog/appsec/contrib/sinatra/gateway/watcher.rb +126 -0
  77. data/lib/datadog/appsec/contrib/sinatra/integration.rb +48 -0
  78. data/lib/datadog/appsec/contrib/sinatra/patcher.rb +151 -0
  79. data/lib/datadog/appsec/contrib/sinatra/reactive/routed.rb +63 -0
  80. data/lib/datadog/appsec/contrib/sinatra/request_middleware.rb +20 -0
  81. data/lib/datadog/appsec/event.rb +117 -0
  82. data/lib/datadog/appsec/extensions.rb +138 -0
  83. data/lib/datadog/appsec/instrumentation/gateway.rb +58 -0
  84. data/lib/datadog/appsec/processor.rb +194 -0
  85. data/lib/datadog/appsec/rate_limiter.rb +60 -0
  86. data/lib/datadog/appsec/reactive/address_hash.rb +18 -0
  87. data/lib/datadog/appsec/reactive/engine.rb +44 -0
  88. data/lib/datadog/appsec/reactive/operation.rb +51 -0
  89. data/lib/datadog/appsec/reactive/subscriber.rb +18 -0
  90. data/lib/datadog/appsec/response.rb +63 -0
  91. data/lib/datadog/appsec/utils/http/media_range.rb +201 -0
  92. data/lib/datadog/appsec/utils/http/media_type.rb +87 -0
  93. data/lib/datadog/appsec/utils/http.rb +9 -0
  94. data/lib/datadog/appsec/utils.rb +7 -0
  95. data/lib/datadog/appsec.rb +23 -0
  96. data/lib/datadog/ci/configuration/components.rb +9 -8
  97. data/lib/datadog/ci/configuration/settings.rb +20 -4
  98. data/lib/datadog/ci/contrib/cucumber/configuration/settings.rb +5 -3
  99. data/lib/datadog/ci/contrib/cucumber/ext.rb +2 -0
  100. data/lib/datadog/ci/contrib/cucumber/formatter.rb +9 -13
  101. data/lib/datadog/ci/contrib/cucumber/instrumentation.rb +3 -2
  102. data/lib/datadog/ci/contrib/cucumber/integration.rb +6 -5
  103. data/lib/datadog/ci/contrib/cucumber/patcher.rb +4 -3
  104. data/lib/datadog/ci/contrib/rspec/configuration/settings.rb +5 -3
  105. data/lib/datadog/ci/contrib/rspec/example.rb +9 -13
  106. data/lib/datadog/ci/contrib/rspec/ext.rb +2 -0
  107. data/lib/datadog/ci/contrib/rspec/integration.rb +6 -5
  108. data/lib/datadog/ci/contrib/rspec/patcher.rb +4 -3
  109. data/lib/datadog/ci/ext/app_types.rb +2 -1
  110. data/lib/datadog/ci/ext/environment.rb +214 -133
  111. data/lib/datadog/ci/ext/settings.rb +2 -1
  112. data/lib/datadog/ci/ext/test.rb +2 -0
  113. data/lib/datadog/ci/extensions.rb +7 -6
  114. data/lib/datadog/ci/flush.rb +38 -0
  115. data/lib/datadog/ci/test.rb +22 -16
  116. data/lib/datadog/ci.rb +7 -4
  117. data/lib/datadog/core/buffer/cruby.rb +55 -0
  118. data/lib/datadog/core/buffer/random.rb +134 -0
  119. data/lib/datadog/core/buffer/thread_safe.rb +58 -0
  120. data/lib/datadog/core/chunker.rb +35 -0
  121. data/lib/datadog/core/configuration/agent_settings_resolver.rb +362 -0
  122. data/lib/datadog/core/configuration/base.rb +101 -0
  123. data/lib/datadog/core/configuration/components.rb +462 -0
  124. data/lib/datadog/core/configuration/dependency_resolver.rb +28 -0
  125. data/lib/datadog/core/configuration/ext.rb +26 -0
  126. data/lib/datadog/core/configuration/option.rb +69 -0
  127. data/lib/datadog/core/configuration/option_definition.rb +135 -0
  128. data/lib/datadog/core/configuration/option_definition_set.rb +22 -0
  129. data/lib/datadog/core/configuration/option_set.rb +10 -0
  130. data/lib/datadog/core/configuration/options.rb +118 -0
  131. data/lib/datadog/core/configuration/settings.rb +446 -0
  132. data/lib/datadog/core/configuration.rb +289 -0
  133. data/lib/datadog/core/diagnostics/environment_logger.rb +288 -0
  134. data/lib/datadog/core/diagnostics/health.rb +19 -0
  135. data/lib/datadog/core/encoding.rb +76 -0
  136. data/lib/datadog/core/environment/cgroup.rb +5 -2
  137. data/lib/datadog/core/environment/class_count.rb +1 -0
  138. data/lib/datadog/core/environment/container.rb +4 -2
  139. data/lib/datadog/core/environment/ext.rb +29 -10
  140. data/lib/datadog/core/environment/gc.rb +1 -0
  141. data/lib/datadog/core/environment/identity.rb +12 -5
  142. data/lib/datadog/core/environment/platform.rb +40 -0
  143. data/lib/datadog/core/environment/socket.rb +9 -2
  144. data/lib/datadog/core/environment/thread_count.rb +1 -0
  145. data/lib/datadog/core/environment/variable_helpers.rb +85 -11
  146. data/lib/datadog/core/environment/vm_cache.rb +1 -0
  147. data/lib/datadog/core/error.rb +101 -0
  148. data/lib/datadog/core/extensions.rb +16 -0
  149. data/lib/datadog/core/git/ext.rb +35 -0
  150. data/lib/datadog/core/header_collection.rb +41 -0
  151. data/lib/datadog/core/logger.rb +46 -0
  152. data/lib/datadog/core/logging/ext.rb +11 -0
  153. data/lib/datadog/core/metrics/client.rb +199 -0
  154. data/lib/datadog/core/metrics/ext.rb +18 -0
  155. data/lib/datadog/core/metrics/helpers.rb +25 -0
  156. data/lib/datadog/core/metrics/logging.rb +44 -0
  157. data/lib/datadog/core/metrics/metric.rb +14 -0
  158. data/lib/datadog/core/metrics/options.rb +50 -0
  159. data/lib/datadog/core/pin.rb +75 -0
  160. data/lib/datadog/core/runtime/ext.rb +28 -0
  161. data/lib/datadog/core/runtime/metrics.rb +126 -0
  162. data/lib/datadog/core/telemetry/client.rb +79 -0
  163. data/lib/datadog/core/telemetry/collector.rb +233 -0
  164. data/lib/datadog/core/telemetry/emitter.rb +48 -0
  165. data/lib/datadog/core/telemetry/event.rb +71 -0
  166. data/lib/datadog/core/telemetry/ext.rb +11 -0
  167. data/lib/datadog/core/telemetry/heartbeat.rb +37 -0
  168. data/lib/datadog/core/telemetry/http/adapters/net.rb +113 -0
  169. data/lib/datadog/core/telemetry/http/env.rb +20 -0
  170. data/lib/datadog/core/telemetry/http/ext.rb +20 -0
  171. data/lib/datadog/core/telemetry/http/response.rb +68 -0
  172. data/lib/datadog/core/telemetry/http/transport.rb +53 -0
  173. data/lib/datadog/core/telemetry/v1/app_event.rb +52 -0
  174. data/lib/datadog/core/telemetry/v1/application.rb +86 -0
  175. data/lib/datadog/core/telemetry/v1/configuration.rb +25 -0
  176. data/lib/datadog/core/telemetry/v1/dependency.rb +36 -0
  177. data/lib/datadog/core/telemetry/v1/host.rb +51 -0
  178. data/lib/datadog/core/telemetry/v1/integration.rb +58 -0
  179. data/lib/datadog/core/telemetry/v1/product.rb +28 -0
  180. data/lib/datadog/core/telemetry/v1/telemetry_request.rb +100 -0
  181. data/lib/datadog/core/utils/compression.rb +36 -0
  182. data/lib/datadog/core/utils/forking.rb +63 -0
  183. data/lib/datadog/core/utils/object_set.rb +43 -0
  184. data/lib/datadog/core/utils/only_once.rb +44 -0
  185. data/lib/datadog/core/utils/safe_dup.rb +27 -0
  186. data/lib/datadog/core/utils/sequence.rb +26 -0
  187. data/lib/datadog/core/utils/string_table.rb +49 -0
  188. data/lib/datadog/core/utils/time.rb +54 -0
  189. data/lib/datadog/core/utils.rb +94 -0
  190. data/lib/{ddtrace → datadog/core}/vendor/multipart-post/LICENSE +0 -0
  191. data/lib/datadog/core/vendor/multipart-post/multipart/post/composite_read_io.rb +120 -0
  192. data/lib/datadog/core/vendor/multipart-post/multipart/post/multipartable.rb +61 -0
  193. data/lib/datadog/core/vendor/multipart-post/multipart/post/parts.rb +139 -0
  194. data/lib/datadog/core/vendor/multipart-post/multipart/post/version.rb +13 -0
  195. data/lib/datadog/core/vendor/multipart-post/multipart/post.rb +12 -0
  196. data/lib/datadog/core/vendor/multipart-post/multipart.rb +16 -0
  197. data/lib/datadog/core/vendor/multipart-post/net/http/post/multipart.rb +36 -0
  198. data/lib/datadog/core/worker.rb +24 -0
  199. data/lib/datadog/core/workers/async.rb +180 -0
  200. data/lib/datadog/core/workers/interval_loop.rb +119 -0
  201. data/lib/datadog/core/workers/polling.rb +59 -0
  202. data/lib/datadog/core/workers/queue.rb +44 -0
  203. data/lib/datadog/core/workers/runtime_metrics.rb +62 -0
  204. data/lib/datadog/core.rb +46 -0
  205. data/lib/datadog/kit/appsec/events.rb +75 -0
  206. data/lib/datadog/kit/enable_core_dumps.rb +51 -0
  207. data/lib/datadog/kit/identity.rb +64 -0
  208. data/lib/datadog/kit.rb +11 -0
  209. data/lib/datadog/opentelemetry/api/context.rb +187 -0
  210. data/lib/datadog/opentelemetry/api/trace/span.rb +15 -0
  211. data/lib/datadog/opentelemetry/sdk/configurator.rb +38 -0
  212. data/lib/datadog/opentelemetry/sdk/id_generator.rb +27 -0
  213. data/lib/datadog/opentelemetry/sdk/propagator.rb +91 -0
  214. data/lib/datadog/opentelemetry/sdk/span_processor.rb +92 -0
  215. data/lib/datadog/opentelemetry.rb +48 -0
  216. data/lib/datadog/opentracer/binary_propagator.rb +26 -0
  217. data/lib/datadog/opentracer/carrier.rb +9 -0
  218. data/lib/datadog/opentracer/distributed_headers.rb +56 -0
  219. data/lib/datadog/opentracer/global_tracer.rb +17 -0
  220. data/lib/datadog/opentracer/propagator.rb +26 -0
  221. data/lib/datadog/opentracer/rack_propagator.rb +73 -0
  222. data/lib/datadog/opentracer/scope.rb +18 -0
  223. data/lib/datadog/opentracer/scope_manager.rb +9 -0
  224. data/lib/datadog/opentracer/span.rb +101 -0
  225. data/lib/datadog/opentracer/span_context.rb +19 -0
  226. data/lib/datadog/opentracer/span_context_factory.rb +27 -0
  227. data/lib/datadog/opentracer/text_map_propagator.rb +88 -0
  228. data/lib/datadog/opentracer/thread_local_scope.rb +34 -0
  229. data/lib/datadog/opentracer/thread_local_scope_manager.rb +66 -0
  230. data/lib/datadog/opentracer/tracer.rb +214 -0
  231. data/lib/datadog/opentracer.rb +24 -0
  232. data/lib/datadog/profiling/backtrace_location.rb +34 -0
  233. data/lib/datadog/profiling/buffer.rb +43 -0
  234. data/lib/datadog/profiling/collectors/code_provenance.rb +115 -0
  235. data/lib/datadog/profiling/collectors/cpu_and_wall_time.rb +43 -0
  236. data/lib/datadog/profiling/collectors/cpu_and_wall_time_worker.rb +91 -0
  237. data/lib/datadog/profiling/collectors/dynamic_sampling_rate.rb +14 -0
  238. data/lib/datadog/profiling/collectors/idle_sampling_helper.rb +68 -0
  239. data/lib/datadog/profiling/collectors/old_stack.rb +305 -0
  240. data/lib/datadog/profiling/collectors/stack.rb +13 -0
  241. data/lib/datadog/profiling/encoding/profile.rb +43 -0
  242. data/lib/datadog/profiling/event.rb +15 -0
  243. data/lib/datadog/profiling/events/stack.rb +82 -0
  244. data/lib/datadog/profiling/exporter.rb +85 -0
  245. data/lib/datadog/profiling/ext/forking.rb +98 -0
  246. data/lib/datadog/profiling/ext.rb +45 -0
  247. data/lib/datadog/profiling/flush.rb +38 -0
  248. data/lib/datadog/profiling/http_transport.rb +132 -0
  249. data/lib/datadog/profiling/load_native_extension.rb +22 -0
  250. data/lib/datadog/profiling/native_extension.rb +41 -0
  251. data/lib/datadog/profiling/old_recorder.rb +109 -0
  252. data/lib/datadog/profiling/pprof/builder.rb +127 -0
  253. data/lib/datadog/profiling/pprof/converter.rb +104 -0
  254. data/lib/datadog/profiling/pprof/message_set.rb +16 -0
  255. data/lib/datadog/profiling/pprof/payload.rb +20 -0
  256. data/lib/{ddtrace → datadog}/profiling/pprof/pprof.proto +0 -0
  257. data/lib/datadog/profiling/pprof/pprof_pb.rb +83 -0
  258. data/lib/datadog/profiling/pprof/stack_sample.rb +141 -0
  259. data/lib/datadog/profiling/pprof/string_table.rb +12 -0
  260. data/lib/datadog/profiling/pprof/template.rb +120 -0
  261. data/lib/datadog/profiling/preload.rb +5 -0
  262. data/lib/datadog/profiling/profiler.rb +41 -0
  263. data/lib/datadog/profiling/scheduler.rb +130 -0
  264. data/lib/datadog/profiling/stack_recorder.rb +79 -0
  265. data/lib/datadog/profiling/tag_builder.rb +53 -0
  266. data/lib/datadog/profiling/tasks/exec.rb +50 -0
  267. data/lib/datadog/profiling/tasks/help.rb +18 -0
  268. data/lib/datadog/profiling/tasks/setup.rb +86 -0
  269. data/lib/datadog/profiling/trace_identifiers/ddtrace.rb +45 -0
  270. data/lib/datadog/profiling/trace_identifiers/helper.rb +47 -0
  271. data/lib/datadog/profiling.rb +173 -0
  272. data/lib/datadog/tracing/analytics.rb +25 -0
  273. data/lib/datadog/tracing/buffer.rb +132 -0
  274. data/lib/datadog/tracing/client_ip.rb +164 -0
  275. data/lib/datadog/tracing/configuration/ext.rb +94 -0
  276. data/lib/datadog/tracing/configuration/settings.rb +433 -0
  277. data/lib/datadog/tracing/context.rb +68 -0
  278. data/lib/datadog/tracing/context_provider.rb +82 -0
  279. data/lib/datadog/tracing/contrib/action_cable/configuration/settings.rb +35 -0
  280. data/lib/datadog/tracing/contrib/action_cable/event.rb +71 -0
  281. data/lib/datadog/tracing/contrib/action_cable/events/broadcast.rb +58 -0
  282. data/lib/datadog/tracing/contrib/action_cable/events/perform_action.rb +63 -0
  283. data/lib/datadog/tracing/contrib/action_cable/events/transmit.rb +59 -0
  284. data/lib/datadog/tracing/contrib/action_cable/events.rb +37 -0
  285. data/lib/datadog/tracing/contrib/action_cable/ext.rb +32 -0
  286. data/lib/datadog/tracing/contrib/action_cable/instrumentation.rb +90 -0
  287. data/lib/datadog/tracing/contrib/action_cable/integration.rb +50 -0
  288. data/lib/datadog/tracing/contrib/action_cable/patcher.rb +31 -0
  289. data/lib/datadog/tracing/contrib/action_mailer/configuration/settings.rb +36 -0
  290. data/lib/datadog/tracing/contrib/action_mailer/event.rb +52 -0
  291. data/lib/datadog/tracing/contrib/action_mailer/events/deliver.rb +60 -0
  292. data/lib/datadog/tracing/contrib/action_mailer/events/process.rb +47 -0
  293. data/lib/datadog/tracing/contrib/action_mailer/events.rb +34 -0
  294. data/lib/datadog/tracing/contrib/action_mailer/ext.rb +33 -0
  295. data/lib/datadog/tracing/contrib/action_mailer/integration.rb +50 -0
  296. data/lib/datadog/tracing/contrib/action_mailer/patcher.rb +29 -0
  297. data/lib/datadog/tracing/contrib/action_pack/action_controller/instrumentation.rb +160 -0
  298. data/lib/datadog/tracing/contrib/action_pack/action_controller/patcher.rb +29 -0
  299. data/lib/datadog/tracing/contrib/action_pack/configuration/settings.rb +36 -0
  300. data/lib/datadog/tracing/contrib/action_pack/ext.rb +22 -0
  301. data/lib/datadog/tracing/contrib/action_pack/integration.rb +50 -0
  302. data/lib/datadog/tracing/contrib/action_pack/patcher.rb +27 -0
  303. data/lib/datadog/tracing/contrib/action_pack/utils.rb +40 -0
  304. data/lib/datadog/tracing/contrib/action_view/configuration/settings.rb +36 -0
  305. data/lib/datadog/tracing/contrib/action_view/event.rb +35 -0
  306. data/lib/datadog/tracing/contrib/action_view/events/render_partial.rb +54 -0
  307. data/lib/datadog/tracing/contrib/action_view/events/render_template.rb +57 -0
  308. data/lib/datadog/tracing/contrib/action_view/events.rb +34 -0
  309. data/lib/datadog/tracing/contrib/action_view/ext.rb +24 -0
  310. data/lib/datadog/tracing/contrib/action_view/instrumentation/partial_renderer.rb +78 -0
  311. data/lib/datadog/tracing/contrib/action_view/instrumentation/template_renderer.rb +91 -0
  312. data/lib/datadog/tracing/contrib/action_view/integration.rb +57 -0
  313. data/lib/datadog/tracing/contrib/action_view/patcher.rb +47 -0
  314. data/lib/datadog/tracing/contrib/action_view/utils.rb +36 -0
  315. data/lib/datadog/tracing/contrib/active_job/configuration/settings.rb +37 -0
  316. data/lib/datadog/tracing/contrib/active_job/event.rb +58 -0
  317. data/lib/datadog/tracing/contrib/active_job/events/discard.rb +50 -0
  318. data/lib/datadog/tracing/contrib/active_job/events/enqueue.rb +49 -0
  319. data/lib/datadog/tracing/contrib/active_job/events/enqueue_at.rb +49 -0
  320. data/lib/datadog/tracing/contrib/active_job/events/enqueue_retry.rb +51 -0
  321. data/lib/datadog/tracing/contrib/active_job/events/perform.rb +49 -0
  322. data/lib/datadog/tracing/contrib/active_job/events/retry_stopped.rb +50 -0
  323. data/lib/datadog/tracing/contrib/active_job/events.rb +42 -0
  324. data/lib/datadog/tracing/contrib/active_job/ext.rb +39 -0
  325. data/lib/datadog/tracing/contrib/active_job/integration.rb +50 -0
  326. data/lib/datadog/tracing/contrib/active_job/log_injection.rb +24 -0
  327. data/lib/datadog/tracing/contrib/active_job/patcher.rb +36 -0
  328. data/lib/datadog/tracing/contrib/active_model_serializers/configuration/settings.rb +33 -0
  329. data/lib/datadog/tracing/contrib/active_model_serializers/event.rb +68 -0
  330. data/lib/datadog/tracing/contrib/active_model_serializers/events/render.rb +45 -0
  331. data/lib/datadog/tracing/contrib/active_model_serializers/events/serialize.rb +47 -0
  332. data/lib/datadog/tracing/contrib/active_model_serializers/events.rb +34 -0
  333. data/lib/datadog/tracing/contrib/active_model_serializers/ext.rb +24 -0
  334. data/lib/datadog/tracing/contrib/active_model_serializers/integration.rb +45 -0
  335. data/lib/datadog/tracing/contrib/active_model_serializers/patcher.rb +32 -0
  336. data/lib/datadog/tracing/contrib/active_record/configuration/makara_resolver.rb +36 -0
  337. data/lib/datadog/tracing/contrib/active_record/configuration/resolver.rb +138 -0
  338. data/lib/datadog/tracing/contrib/active_record/configuration/settings.rb +39 -0
  339. data/lib/datadog/tracing/contrib/active_record/event.rb +30 -0
  340. data/lib/datadog/tracing/contrib/active_record/events/instantiation.rb +58 -0
  341. data/lib/datadog/tracing/contrib/active_record/events/sql.rb +78 -0
  342. data/lib/datadog/tracing/contrib/active_record/events.rb +34 -0
  343. data/lib/datadog/tracing/contrib/active_record/ext.rb +29 -0
  344. data/lib/datadog/tracing/contrib/active_record/integration.rb +56 -0
  345. data/lib/datadog/tracing/contrib/active_record/patcher.rb +27 -0
  346. data/lib/datadog/tracing/contrib/active_record/utils.rb +128 -0
  347. data/lib/{ddtrace/vendor/active_record → datadog/tracing/contrib/active_record/vendor}/MIT-LICENSE +0 -0
  348. data/lib/datadog/tracing/contrib/active_record/vendor/connection_specification.rb +307 -0
  349. data/lib/datadog/tracing/contrib/active_support/cache/instrumentation.rb +280 -0
  350. data/lib/datadog/tracing/contrib/active_support/cache/patcher.rb +73 -0
  351. data/lib/datadog/tracing/contrib/active_support/cache/redis.rb +47 -0
  352. data/lib/datadog/tracing/contrib/active_support/configuration/settings.rb +35 -0
  353. data/lib/datadog/tracing/contrib/active_support/ext.rb +31 -0
  354. data/lib/datadog/tracing/contrib/active_support/integration.rb +51 -0
  355. data/lib/datadog/tracing/contrib/active_support/notifications/event.rb +71 -0
  356. data/lib/datadog/tracing/contrib/active_support/notifications/subscriber.rb +71 -0
  357. data/lib/datadog/tracing/contrib/active_support/notifications/subscription.rb +164 -0
  358. data/lib/datadog/tracing/contrib/active_support/patcher.rb +27 -0
  359. data/lib/datadog/tracing/contrib/analytics.rb +29 -0
  360. data/lib/datadog/tracing/contrib/auto_instrument.rb +53 -0
  361. data/lib/datadog/tracing/contrib/aws/configuration/settings.rb +38 -0
  362. data/lib/datadog/tracing/contrib/aws/ext.rb +28 -0
  363. data/lib/datadog/tracing/contrib/aws/instrumentation.rb +96 -0
  364. data/lib/datadog/tracing/contrib/aws/integration.rb +47 -0
  365. data/lib/datadog/tracing/contrib/aws/parsed_context.rb +60 -0
  366. data/lib/datadog/tracing/contrib/aws/patcher.rb +57 -0
  367. data/lib/datadog/tracing/contrib/aws/services.rb +121 -0
  368. data/lib/datadog/tracing/contrib/concurrent_ruby/configuration/settings.rb +23 -0
  369. data/lib/datadog/tracing/contrib/concurrent_ruby/context_composite_executor_service.rb +53 -0
  370. data/lib/datadog/tracing/contrib/concurrent_ruby/ext.rb +16 -0
  371. data/lib/datadog/tracing/contrib/concurrent_ruby/future_patch.rb +27 -0
  372. data/lib/datadog/tracing/contrib/concurrent_ruby/integration.rb +43 -0
  373. data/lib/datadog/tracing/contrib/concurrent_ruby/patcher.rb +33 -0
  374. data/lib/datadog/tracing/contrib/configurable.rb +102 -0
  375. data/lib/datadog/tracing/contrib/configuration/resolver.rb +85 -0
  376. data/lib/datadog/tracing/contrib/configuration/resolvers/pattern_resolver.rb +43 -0
  377. data/lib/datadog/tracing/contrib/configuration/settings.rb +43 -0
  378. data/lib/datadog/tracing/contrib/dalli/configuration/settings.rb +38 -0
  379. data/lib/datadog/tracing/contrib/dalli/ext.rb +26 -0
  380. data/lib/datadog/tracing/contrib/dalli/instrumentation.rb +61 -0
  381. data/lib/datadog/tracing/contrib/dalli/integration.rb +52 -0
  382. data/lib/datadog/tracing/contrib/dalli/patcher.rb +28 -0
  383. data/lib/datadog/tracing/contrib/dalli/quantize.rb +26 -0
  384. data/lib/datadog/tracing/contrib/delayed_job/configuration/settings.rb +38 -0
  385. data/lib/datadog/tracing/contrib/delayed_job/ext.rb +28 -0
  386. data/lib/datadog/tracing/contrib/delayed_job/integration.rb +43 -0
  387. data/lib/datadog/tracing/contrib/delayed_job/patcher.rb +37 -0
  388. data/lib/datadog/tracing/contrib/delayed_job/plugin.rb +104 -0
  389. data/lib/datadog/tracing/contrib/delayed_job/server_internal_tracer/worker.rb +32 -0
  390. data/lib/datadog/tracing/contrib/elasticsearch/configuration/settings.rb +40 -0
  391. data/lib/datadog/tracing/contrib/elasticsearch/ext.rb +29 -0
  392. data/lib/datadog/tracing/contrib/elasticsearch/integration.rb +50 -0
  393. data/lib/datadog/tracing/contrib/elasticsearch/patcher.rb +153 -0
  394. data/lib/datadog/tracing/contrib/elasticsearch/quantize.rb +89 -0
  395. data/lib/datadog/tracing/contrib/ethon/configuration/settings.rb +42 -0
  396. data/lib/datadog/tracing/contrib/ethon/easy_patch.rb +176 -0
  397. data/lib/datadog/tracing/contrib/ethon/ext.rb +25 -0
  398. data/lib/datadog/tracing/contrib/ethon/integration.rb +48 -0
  399. data/lib/datadog/tracing/contrib/ethon/multi_patch.rb +97 -0
  400. data/lib/datadog/tracing/contrib/ethon/patcher.rb +31 -0
  401. data/lib/datadog/tracing/contrib/excon/configuration/settings.rb +42 -0
  402. data/lib/datadog/tracing/contrib/excon/ext.rb +22 -0
  403. data/lib/datadog/tracing/contrib/excon/integration.rb +48 -0
  404. data/lib/datadog/tracing/contrib/excon/middleware.rb +171 -0
  405. data/lib/datadog/tracing/contrib/excon/patcher.rb +31 -0
  406. data/lib/datadog/tracing/contrib/ext.rb +25 -0
  407. data/lib/datadog/tracing/contrib/extensions.rb +199 -0
  408. data/lib/datadog/tracing/contrib/faraday/configuration/settings.rb +46 -0
  409. data/lib/datadog/tracing/contrib/faraday/connection.rb +22 -0
  410. data/lib/datadog/tracing/contrib/faraday/ext.rb +22 -0
  411. data/lib/datadog/tracing/contrib/faraday/integration.rb +48 -0
  412. data/lib/datadog/tracing/contrib/faraday/middleware.rb +93 -0
  413. data/lib/datadog/tracing/contrib/faraday/patcher.rb +56 -0
  414. data/lib/datadog/tracing/contrib/faraday/rack_builder.rb +22 -0
  415. data/lib/datadog/tracing/contrib/grape/configuration/settings.rb +42 -0
  416. data/lib/datadog/tracing/contrib/grape/endpoint.rb +250 -0
  417. data/lib/datadog/tracing/contrib/grape/ext.rb +28 -0
  418. data/lib/datadog/tracing/contrib/grape/instrumentation.rb +37 -0
  419. data/lib/datadog/tracing/contrib/grape/integration.rb +44 -0
  420. data/lib/datadog/tracing/contrib/grape/patcher.rb +33 -0
  421. data/lib/datadog/tracing/contrib/graphql/configuration/settings.rb +36 -0
  422. data/lib/datadog/tracing/contrib/graphql/ext.rb +19 -0
  423. data/lib/datadog/tracing/contrib/graphql/integration.rb +44 -0
  424. data/lib/datadog/tracing/contrib/graphql/patcher.rb +90 -0
  425. data/lib/datadog/tracing/contrib/grpc/configuration/settings.rb +43 -0
  426. data/lib/datadog/tracing/contrib/grpc/datadog_interceptor/client.rb +99 -0
  427. data/lib/datadog/tracing/contrib/grpc/datadog_interceptor/server.rb +90 -0
  428. data/lib/datadog/tracing/contrib/grpc/datadog_interceptor.rb +107 -0
  429. data/lib/datadog/tracing/contrib/grpc/distributed/fetcher.rb +27 -0
  430. data/lib/datadog/tracing/contrib/grpc/distributed/propagation.rb +43 -0
  431. data/lib/datadog/tracing/contrib/grpc/ext.rb +27 -0
  432. data/lib/datadog/tracing/contrib/grpc/integration.rb +43 -0
  433. data/lib/datadog/tracing/contrib/grpc/intercept_with_datadog.rb +53 -0
  434. data/lib/datadog/tracing/contrib/grpc/patcher.rb +35 -0
  435. data/lib/datadog/tracing/contrib/hanami/action_tracer.rb +47 -0
  436. data/lib/datadog/tracing/contrib/hanami/configuration/settings.rb +22 -0
  437. data/lib/datadog/tracing/contrib/hanami/ext.rb +24 -0
  438. data/lib/datadog/tracing/contrib/hanami/integration.rb +44 -0
  439. data/lib/datadog/tracing/contrib/hanami/patcher.rb +33 -0
  440. data/lib/datadog/tracing/contrib/hanami/plugin.rb +23 -0
  441. data/lib/datadog/tracing/contrib/hanami/renderer_policy_tracing.rb +41 -0
  442. data/lib/datadog/tracing/contrib/hanami/router_tracing.rb +44 -0
  443. data/lib/datadog/tracing/contrib/http/circuit_breaker.rb +43 -0
  444. data/lib/datadog/tracing/contrib/http/configuration/settings.rb +47 -0
  445. data/lib/datadog/tracing/contrib/http/distributed/fetcher.rb +39 -0
  446. data/lib/datadog/tracing/contrib/http/distributed/propagation.rb +38 -0
  447. data/lib/datadog/tracing/contrib/http/ext.rb +23 -0
  448. data/lib/datadog/tracing/contrib/http/instrumentation.rb +137 -0
  449. data/lib/datadog/tracing/contrib/http/integration.rb +49 -0
  450. data/lib/datadog/tracing/contrib/http/patcher.rb +30 -0
  451. data/lib/datadog/tracing/contrib/http_annotation_helper.rb +17 -0
  452. data/lib/datadog/tracing/contrib/httpclient/configuration/settings.rb +47 -0
  453. data/lib/datadog/tracing/contrib/httpclient/ext.rb +23 -0
  454. data/lib/datadog/tracing/contrib/httpclient/instrumentation.rb +117 -0
  455. data/lib/datadog/tracing/contrib/httpclient/integration.rb +48 -0
  456. data/lib/datadog/tracing/contrib/httpclient/patcher.rb +42 -0
  457. data/lib/datadog/tracing/contrib/httprb/configuration/settings.rb +47 -0
  458. data/lib/datadog/tracing/contrib/httprb/ext.rb +23 -0
  459. data/lib/datadog/tracing/contrib/httprb/instrumentation.rb +128 -0
  460. data/lib/datadog/tracing/contrib/httprb/integration.rb +48 -0
  461. data/lib/datadog/tracing/contrib/httprb/patcher.rb +42 -0
  462. data/lib/datadog/tracing/contrib/integration.rb +78 -0
  463. data/lib/datadog/tracing/contrib/kafka/configuration/settings.rb +35 -0
  464. data/lib/datadog/tracing/contrib/kafka/consumer_event.rb +19 -0
  465. data/lib/datadog/tracing/contrib/kafka/consumer_group_event.rb +18 -0
  466. data/lib/datadog/tracing/contrib/kafka/event.rb +52 -0
  467. data/lib/datadog/tracing/contrib/kafka/events/connection/request.rb +42 -0
  468. data/lib/datadog/tracing/contrib/kafka/events/consumer/process_batch.rb +49 -0
  469. data/lib/datadog/tracing/contrib/kafka/events/consumer/process_message.rb +47 -0
  470. data/lib/datadog/tracing/contrib/kafka/events/consumer_group/heartbeat.rb +47 -0
  471. data/lib/datadog/tracing/contrib/kafka/events/consumer_group/join_group.rb +37 -0
  472. data/lib/datadog/tracing/contrib/kafka/events/consumer_group/leave_group.rb +37 -0
  473. data/lib/datadog/tracing/contrib/kafka/events/consumer_group/sync_group.rb +37 -0
  474. data/lib/datadog/tracing/contrib/kafka/events/produce_operation/send_messages.rb +41 -0
  475. data/lib/datadog/tracing/contrib/kafka/events/producer/deliver_messages.rb +44 -0
  476. data/lib/datadog/tracing/contrib/kafka/events.rb +48 -0
  477. data/lib/datadog/tracing/contrib/kafka/ext.rb +52 -0
  478. data/lib/datadog/tracing/contrib/kafka/integration.rb +44 -0
  479. data/lib/datadog/tracing/contrib/kafka/patcher.rb +29 -0
  480. data/lib/datadog/tracing/contrib/lograge/configuration/settings.rb +23 -0
  481. data/lib/datadog/tracing/contrib/lograge/ext.rb +15 -0
  482. data/lib/datadog/tracing/contrib/lograge/instrumentation.rb +46 -0
  483. data/lib/datadog/tracing/contrib/lograge/integration.rb +50 -0
  484. data/lib/datadog/tracing/contrib/lograge/patcher.rb +29 -0
  485. data/lib/datadog/tracing/contrib/mongodb/configuration/settings.rb +42 -0
  486. data/lib/datadog/tracing/contrib/mongodb/ext.rb +35 -0
  487. data/lib/datadog/tracing/contrib/mongodb/instrumentation.rb +47 -0
  488. data/lib/datadog/tracing/contrib/mongodb/integration.rb +48 -0
  489. data/lib/datadog/tracing/contrib/mongodb/parsers.rb +49 -0
  490. data/lib/datadog/tracing/contrib/mongodb/patcher.rb +34 -0
  491. data/lib/datadog/tracing/contrib/mongodb/subscribers.rb +127 -0
  492. data/lib/datadog/tracing/contrib/mysql2/configuration/settings.rb +50 -0
  493. data/lib/datadog/tracing/contrib/mysql2/ext.rb +24 -0
  494. data/lib/datadog/tracing/contrib/mysql2/instrumentation.rb +77 -0
  495. data/lib/datadog/tracing/contrib/mysql2/integration.rb +43 -0
  496. data/lib/datadog/tracing/contrib/mysql2/patcher.rb +31 -0
  497. data/lib/datadog/tracing/contrib/patchable.rb +109 -0
  498. data/lib/datadog/tracing/contrib/patcher.rb +86 -0
  499. data/lib/datadog/tracing/contrib/pg/configuration/settings.rb +50 -0
  500. data/lib/datadog/tracing/contrib/pg/ext.rb +33 -0
  501. data/lib/datadog/tracing/contrib/pg/instrumentation.rb +168 -0
  502. data/lib/datadog/tracing/contrib/pg/integration.rb +43 -0
  503. data/lib/datadog/tracing/contrib/pg/patcher.rb +31 -0
  504. data/lib/datadog/tracing/contrib/presto/configuration/settings.rb +38 -0
  505. data/lib/datadog/tracing/contrib/presto/ext.rb +33 -0
  506. data/lib/datadog/tracing/contrib/presto/instrumentation.rb +124 -0
  507. data/lib/datadog/tracing/contrib/presto/integration.rb +43 -0
  508. data/lib/datadog/tracing/contrib/presto/patcher.rb +37 -0
  509. data/lib/datadog/tracing/contrib/propagation/sql_comment/comment.rb +43 -0
  510. data/lib/datadog/tracing/contrib/propagation/sql_comment/ext.rb +33 -0
  511. data/lib/datadog/tracing/contrib/propagation/sql_comment/mode.rb +28 -0
  512. data/lib/datadog/tracing/contrib/propagation/sql_comment.rb +47 -0
  513. data/lib/datadog/tracing/contrib/qless/configuration/settings.rb +40 -0
  514. data/lib/datadog/tracing/contrib/qless/ext.rb +26 -0
  515. data/lib/datadog/tracing/contrib/qless/integration.rb +43 -0
  516. data/lib/datadog/tracing/contrib/qless/patcher.rb +37 -0
  517. data/lib/datadog/tracing/contrib/qless/qless_job.rb +74 -0
  518. data/lib/datadog/tracing/contrib/qless/tracer_cleaner.rb +30 -0
  519. data/lib/datadog/tracing/contrib/que/configuration/settings.rb +49 -0
  520. data/lib/datadog/tracing/contrib/que/ext.rb +34 -0
  521. data/lib/datadog/tracing/contrib/que/integration.rb +46 -0
  522. data/lib/datadog/tracing/contrib/que/patcher.rb +28 -0
  523. data/lib/datadog/tracing/contrib/que/tracer.rb +63 -0
  524. data/lib/datadog/tracing/contrib/racecar/configuration/settings.rb +35 -0
  525. data/lib/datadog/tracing/contrib/racecar/event.rb +78 -0
  526. data/lib/datadog/tracing/contrib/racecar/events/batch.rb +38 -0
  527. data/lib/datadog/tracing/contrib/racecar/events/consume.rb +35 -0
  528. data/lib/datadog/tracing/contrib/racecar/events/message.rb +38 -0
  529. data/lib/datadog/tracing/contrib/racecar/events.rb +36 -0
  530. data/lib/datadog/tracing/contrib/racecar/ext.rb +31 -0
  531. data/lib/datadog/tracing/contrib/racecar/integration.rb +44 -0
  532. data/lib/datadog/tracing/contrib/racecar/patcher.rb +29 -0
  533. data/lib/datadog/tracing/contrib/rack/configuration/settings.rb +51 -0
  534. data/lib/datadog/tracing/contrib/rack/ext.rb +25 -0
  535. data/lib/datadog/tracing/contrib/rack/header_collection.rb +35 -0
  536. data/lib/datadog/tracing/contrib/rack/integration.rb +50 -0
  537. data/lib/datadog/tracing/contrib/rack/middlewares.rb +323 -0
  538. data/lib/datadog/tracing/contrib/rack/patcher.rb +119 -0
  539. data/lib/datadog/tracing/contrib/rack/request_queue.rb +48 -0
  540. data/lib/datadog/tracing/contrib/rails/auto_instrument_railtie.rb +12 -0
  541. data/lib/datadog/tracing/contrib/rails/configuration/settings.rb +74 -0
  542. data/lib/datadog/tracing/contrib/rails/ext.rb +19 -0
  543. data/lib/datadog/tracing/contrib/rails/framework.rb +148 -0
  544. data/lib/datadog/tracing/contrib/rails/integration.rb +49 -0
  545. data/lib/datadog/tracing/contrib/rails/log_injection.rb +32 -0
  546. data/lib/datadog/tracing/contrib/rails/middlewares.rb +46 -0
  547. data/lib/datadog/tracing/contrib/rails/patcher.rb +120 -0
  548. data/lib/datadog/tracing/contrib/rails/railtie.rb +19 -0
  549. data/lib/datadog/tracing/contrib/rails/utils.rb +28 -0
  550. data/lib/datadog/tracing/contrib/rake/configuration/settings.rb +51 -0
  551. data/lib/datadog/tracing/contrib/rake/ext.rb +26 -0
  552. data/lib/datadog/tracing/contrib/rake/instrumentation.rb +103 -0
  553. data/lib/datadog/tracing/contrib/rake/integration.rb +43 -0
  554. data/lib/datadog/tracing/contrib/rake/patcher.rb +33 -0
  555. data/lib/datadog/tracing/contrib/redis/configuration/resolver.rb +49 -0
  556. data/lib/datadog/tracing/contrib/redis/configuration/settings.rb +43 -0
  557. data/lib/datadog/tracing/contrib/redis/ext.rb +29 -0
  558. data/lib/datadog/tracing/contrib/redis/instrumentation.rb +88 -0
  559. data/lib/datadog/tracing/contrib/redis/integration.rb +80 -0
  560. data/lib/datadog/tracing/contrib/redis/patcher.rb +79 -0
  561. data/lib/datadog/tracing/contrib/redis/quantize.rb +82 -0
  562. data/lib/datadog/tracing/contrib/redis/tags.rb +56 -0
  563. data/lib/datadog/tracing/contrib/redis/trace_middleware.rb +72 -0
  564. data/lib/{ddtrace → datadog/tracing}/contrib/redis/vendor/LICENSE +0 -0
  565. data/lib/datadog/tracing/contrib/redis/vendor/resolver.rb +162 -0
  566. data/lib/datadog/tracing/contrib/registerable.rb +50 -0
  567. data/lib/datadog/tracing/contrib/registry.rb +52 -0
  568. data/lib/datadog/tracing/contrib/resque/configuration/settings.rb +37 -0
  569. data/lib/datadog/tracing/contrib/resque/ext.rb +21 -0
  570. data/lib/datadog/tracing/contrib/resque/integration.rb +48 -0
  571. data/lib/datadog/tracing/contrib/resque/patcher.rb +29 -0
  572. data/lib/datadog/tracing/contrib/resque/resque_job.rb +104 -0
  573. data/lib/datadog/tracing/contrib/rest_client/configuration/settings.rb +42 -0
  574. data/lib/datadog/tracing/contrib/rest_client/ext.rb +22 -0
  575. data/lib/datadog/tracing/contrib/rest_client/integration.rb +43 -0
  576. data/lib/datadog/tracing/contrib/rest_client/patcher.rb +29 -0
  577. data/lib/datadog/tracing/contrib/rest_client/request_patch.rb +106 -0
  578. data/lib/datadog/tracing/contrib/semantic_logger/configuration/settings.rb +23 -0
  579. data/lib/datadog/tracing/contrib/semantic_logger/ext.rb +15 -0
  580. data/lib/datadog/tracing/contrib/semantic_logger/instrumentation.rb +50 -0
  581. data/lib/datadog/tracing/contrib/semantic_logger/integration.rb +52 -0
  582. data/lib/datadog/tracing/contrib/semantic_logger/patcher.rb +29 -0
  583. data/lib/datadog/tracing/contrib/sequel/configuration/settings.rb +33 -0
  584. data/lib/datadog/tracing/contrib/sequel/database.rb +59 -0
  585. data/lib/datadog/tracing/contrib/sequel/dataset.rb +64 -0
  586. data/lib/datadog/tracing/contrib/sequel/ext.rb +22 -0
  587. data/lib/datadog/tracing/contrib/sequel/integration.rb +43 -0
  588. data/lib/datadog/tracing/contrib/sequel/patcher.rb +37 -0
  589. data/lib/datadog/tracing/contrib/sequel/utils.rb +87 -0
  590. data/lib/datadog/tracing/contrib/shoryuken/configuration/settings.rb +38 -0
  591. data/lib/datadog/tracing/contrib/shoryuken/ext.rb +25 -0
  592. data/lib/datadog/tracing/contrib/shoryuken/integration.rb +44 -0
  593. data/lib/datadog/tracing/contrib/shoryuken/patcher.rb +28 -0
  594. data/lib/datadog/tracing/contrib/shoryuken/tracer.rb +63 -0
  595. data/lib/datadog/tracing/contrib/sidekiq/client_tracer.rb +57 -0
  596. data/lib/datadog/tracing/contrib/sidekiq/configuration/settings.rb +44 -0
  597. data/lib/datadog/tracing/contrib/sidekiq/ext.rb +44 -0
  598. data/lib/datadog/tracing/contrib/sidekiq/integration.rb +53 -0
  599. data/lib/datadog/tracing/contrib/sidekiq/patcher.rb +78 -0
  600. data/lib/datadog/tracing/contrib/sidekiq/server_internal_tracer/heartbeat.rb +52 -0
  601. data/lib/datadog/tracing/contrib/sidekiq/server_internal_tracer/job_fetch.rb +34 -0
  602. data/lib/datadog/tracing/contrib/sidekiq/server_internal_tracer/redis_info.rb +32 -0
  603. data/lib/datadog/tracing/contrib/sidekiq/server_internal_tracer/scheduled_poller.rb +53 -0
  604. data/lib/datadog/tracing/contrib/sidekiq/server_tracer.rb +102 -0
  605. data/lib/datadog/tracing/contrib/sidekiq/tracing.rb +44 -0
  606. data/lib/datadog/tracing/contrib/sinatra/configuration/settings.rb +43 -0
  607. data/lib/datadog/tracing/contrib/sinatra/env.rb +55 -0
  608. data/lib/datadog/tracing/contrib/sinatra/ext.rb +36 -0
  609. data/lib/datadog/tracing/contrib/sinatra/framework.rb +116 -0
  610. data/lib/datadog/tracing/contrib/sinatra/headers.rb +35 -0
  611. data/lib/datadog/tracing/contrib/sinatra/integration.rb +43 -0
  612. data/lib/datadog/tracing/contrib/sinatra/patcher.rb +76 -0
  613. data/lib/datadog/tracing/contrib/sinatra/tracer.rb +86 -0
  614. data/lib/datadog/tracing/contrib/sinatra/tracer_middleware.rb +127 -0
  615. data/lib/datadog/tracing/contrib/sneakers/configuration/settings.rb +38 -0
  616. data/lib/datadog/tracing/contrib/sneakers/ext.rb +26 -0
  617. data/lib/datadog/tracing/contrib/sneakers/integration.rb +46 -0
  618. data/lib/datadog/tracing/contrib/sneakers/patcher.rb +29 -0
  619. data/lib/datadog/tracing/contrib/sneakers/tracer.rb +59 -0
  620. data/lib/datadog/tracing/contrib/status_code_matcher.rb +75 -0
  621. data/lib/datadog/tracing/contrib/stripe/configuration/settings.rb +33 -0
  622. data/lib/datadog/tracing/contrib/stripe/ext.rb +26 -0
  623. data/lib/datadog/tracing/contrib/stripe/integration.rb +43 -0
  624. data/lib/datadog/tracing/contrib/stripe/patcher.rb +29 -0
  625. data/lib/datadog/tracing/contrib/stripe/request.rb +67 -0
  626. data/lib/datadog/tracing/contrib/sucker_punch/configuration/settings.rb +35 -0
  627. data/lib/datadog/tracing/contrib/sucker_punch/exception_handler.rb +28 -0
  628. data/lib/datadog/tracing/contrib/sucker_punch/ext.rb +27 -0
  629. data/lib/datadog/tracing/contrib/sucker_punch/instrumentation.rb +104 -0
  630. data/lib/datadog/tracing/contrib/sucker_punch/integration.rb +43 -0
  631. data/lib/datadog/tracing/contrib/sucker_punch/patcher.rb +36 -0
  632. data/lib/datadog/tracing/contrib/utils/database.rb +31 -0
  633. data/lib/datadog/tracing/contrib/utils/quantization/hash.rb +111 -0
  634. data/lib/datadog/tracing/contrib/utils/quantization/http.rb +181 -0
  635. data/lib/datadog/tracing/contrib.rb +79 -0
  636. data/lib/datadog/tracing/correlation.rb +100 -0
  637. data/lib/datadog/tracing/diagnostics/ext.rb +36 -0
  638. data/lib/datadog/tracing/diagnostics/health.rb +40 -0
  639. data/lib/datadog/tracing/distributed/b3_multi.rb +66 -0
  640. data/lib/datadog/tracing/distributed/b3_single.rb +66 -0
  641. data/lib/datadog/tracing/distributed/datadog.rb +153 -0
  642. data/lib/datadog/tracing/distributed/datadog_tags_codec.rb +85 -0
  643. data/lib/datadog/tracing/distributed/fetcher.rb +30 -0
  644. data/lib/datadog/tracing/distributed/headers/ext.rb +35 -0
  645. data/lib/datadog/tracing/distributed/helpers.rb +80 -0
  646. data/lib/datadog/tracing/distributed/none.rb +19 -0
  647. data/lib/datadog/tracing/distributed/propagation.rb +127 -0
  648. data/lib/datadog/tracing/distributed/trace_context.rb +378 -0
  649. data/lib/datadog/tracing/event.rb +78 -0
  650. data/lib/datadog/tracing/flush.rb +96 -0
  651. data/lib/datadog/tracing/metadata/analytics.rb +26 -0
  652. data/lib/datadog/tracing/metadata/errors.rb +24 -0
  653. data/lib/datadog/tracing/metadata/ext.rb +178 -0
  654. data/lib/datadog/tracing/metadata/tagging.rb +131 -0
  655. data/lib/datadog/tracing/metadata.rb +20 -0
  656. data/lib/datadog/tracing/pipeline/span_filter.rb +46 -0
  657. data/lib/datadog/tracing/pipeline/span_processor.rb +39 -0
  658. data/lib/datadog/tracing/pipeline.rb +65 -0
  659. data/lib/datadog/tracing/propagation/http.rb +14 -0
  660. data/lib/datadog/tracing/runtime/metrics.rb +19 -0
  661. data/lib/datadog/tracing/sampling/all_sampler.rb +25 -0
  662. data/lib/datadog/tracing/sampling/ext.rb +58 -0
  663. data/lib/datadog/tracing/sampling/matcher.rb +68 -0
  664. data/lib/datadog/tracing/sampling/priority_sampler.rb +165 -0
  665. data/lib/datadog/tracing/sampling/rate_by_key_sampler.rb +96 -0
  666. data/lib/datadog/tracing/sampling/rate_by_service_sampler.rb +65 -0
  667. data/lib/datadog/tracing/sampling/rate_limiter.rb +188 -0
  668. data/lib/datadog/tracing/sampling/rate_sampler.rb +72 -0
  669. data/lib/datadog/tracing/sampling/rule.rb +76 -0
  670. data/lib/datadog/tracing/sampling/rule_sampler.rb +132 -0
  671. data/lib/datadog/tracing/sampling/sampler.rb +44 -0
  672. data/lib/datadog/tracing/sampling/span/ext.rb +25 -0
  673. data/lib/datadog/tracing/sampling/span/matcher.rb +89 -0
  674. data/lib/datadog/tracing/sampling/span/rule.rb +82 -0
  675. data/lib/datadog/tracing/sampling/span/rule_parser.rb +104 -0
  676. data/lib/datadog/tracing/sampling/span/sampler.rb +75 -0
  677. data/lib/datadog/tracing/span.rb +216 -0
  678. data/lib/datadog/tracing/span_operation.rb +520 -0
  679. data/lib/datadog/tracing/sync_writer.rb +69 -0
  680. data/lib/datadog/tracing/trace_digest.rb +146 -0
  681. data/lib/datadog/tracing/trace_operation.rb +476 -0
  682. data/lib/datadog/tracing/trace_segment.rb +212 -0
  683. data/lib/datadog/tracing/tracer.rb +533 -0
  684. data/lib/datadog/tracing/utils.rb +50 -0
  685. data/lib/datadog/tracing/workers/trace_writer.rb +195 -0
  686. data/lib/datadog/tracing/workers.rb +125 -0
  687. data/lib/datadog/tracing/writer.rb +187 -0
  688. data/lib/datadog/tracing.rb +142 -0
  689. data/lib/ddtrace/auto_instrument.rb +14 -3
  690. data/lib/ddtrace/auto_instrument_base.rb +1 -0
  691. data/lib/ddtrace/profiling/preload.rb +2 -2
  692. data/lib/ddtrace/transport/ext.rb +41 -0
  693. data/lib/ddtrace/transport/http/adapters/net.rb +5 -3
  694. data/lib/ddtrace/transport/http/adapters/registry.rb +1 -0
  695. data/lib/ddtrace/transport/http/adapters/test.rb +2 -1
  696. data/lib/ddtrace/transport/http/adapters/unix_socket.rb +4 -3
  697. data/lib/ddtrace/transport/http/api/endpoint.rb +1 -0
  698. data/lib/ddtrace/transport/http/api/fallbacks.rb +1 -0
  699. data/lib/ddtrace/transport/http/api/instance.rb +1 -0
  700. data/lib/ddtrace/transport/http/api/map.rb +2 -1
  701. data/lib/ddtrace/transport/http/api/spec.rb +1 -0
  702. data/lib/ddtrace/transport/http/api.rb +8 -14
  703. data/lib/ddtrace/transport/http/builder.rb +7 -6
  704. data/lib/ddtrace/transport/http/client.rb +5 -3
  705. data/lib/ddtrace/transport/http/env.rb +1 -0
  706. data/lib/ddtrace/transport/http/response.rb +36 -5
  707. data/lib/ddtrace/transport/http/statistics.rb +2 -1
  708. data/lib/ddtrace/transport/http/traces.rb +6 -3
  709. data/lib/ddtrace/transport/http.rb +39 -31
  710. data/lib/ddtrace/transport/io/client.rb +6 -3
  711. data/lib/ddtrace/transport/io/response.rb +2 -1
  712. data/lib/ddtrace/transport/io/traces.rb +5 -4
  713. data/lib/ddtrace/transport/io.rb +5 -4
  714. data/lib/ddtrace/transport/parcel.rb +2 -0
  715. data/lib/ddtrace/transport/request.rb +1 -0
  716. data/lib/ddtrace/transport/response.rb +1 -0
  717. data/lib/ddtrace/transport/serializable_trace.rb +118 -0
  718. data/lib/ddtrace/transport/statistics.rb +6 -4
  719. data/lib/ddtrace/transport/trace_formatter.rb +191 -0
  720. data/lib/ddtrace/transport/traces.rb +20 -8
  721. data/lib/ddtrace/version.rb +14 -12
  722. data/lib/ddtrace.rb +9 -48
  723. metadata +697 -499
  724. data/.editorconfig +0 -22
  725. data/.gitignore +0 -67
  726. data/.yardopts +0 -5
  727. data/CONTRIBUTING.md +0 -81
  728. data/ddtrace.gemspec +0 -53
  729. data/docs/DevelopmentGuide.md +0 -259
  730. data/docs/GettingStarted.md +0 -2585
  731. data/docs/ProfilingDevelopment.md +0 -107
  732. data/lib/datadog/ci/context_flush.rb +0 -29
  733. data/lib/datadog/contrib.rb +0 -71
  734. data/lib/ddtrace/analytics.rb +0 -39
  735. data/lib/ddtrace/buffer.rb +0 -328
  736. data/lib/ddtrace/chunker.rb +0 -35
  737. data/lib/ddtrace/configuration/agent_settings_resolver.rb +0 -298
  738. data/lib/ddtrace/configuration/base.rb +0 -82
  739. data/lib/ddtrace/configuration/components.rb +0 -292
  740. data/lib/ddtrace/configuration/dependency_resolver.rb +0 -25
  741. data/lib/ddtrace/configuration/option.rb +0 -65
  742. data/lib/ddtrace/configuration/option_definition.rb +0 -122
  743. data/lib/ddtrace/configuration/option_definition_set.rb +0 -19
  744. data/lib/ddtrace/configuration/option_set.rb +0 -7
  745. data/lib/ddtrace/configuration/options.rb +0 -112
  746. data/lib/ddtrace/configuration/pin_setup.rb +0 -32
  747. data/lib/ddtrace/configuration/settings.rb +0 -413
  748. data/lib/ddtrace/configuration.rb +0 -195
  749. data/lib/ddtrace/context.rb +0 -326
  750. data/lib/ddtrace/context_flush.rb +0 -82
  751. data/lib/ddtrace/context_provider.rb +0 -62
  752. data/lib/ddtrace/contrib/action_cable/configuration/settings.rb +0 -31
  753. data/lib/ddtrace/contrib/action_cable/event.rb +0 -67
  754. data/lib/ddtrace/contrib/action_cable/events/broadcast.rb +0 -50
  755. data/lib/ddtrace/contrib/action_cable/events/perform_action.rb +0 -56
  756. data/lib/ddtrace/contrib/action_cable/events/transmit.rb +0 -51
  757. data/lib/ddtrace/contrib/action_cable/events.rb +0 -34
  758. data/lib/ddtrace/contrib/action_cable/ext.rb +0 -27
  759. data/lib/ddtrace/contrib/action_cable/instrumentation.rb +0 -78
  760. data/lib/ddtrace/contrib/action_cable/integration.rb +0 -46
  761. data/lib/ddtrace/contrib/action_cable/patcher.rb +0 -29
  762. data/lib/ddtrace/contrib/action_mailer/configuration/settings.rb +0 -32
  763. data/lib/ddtrace/contrib/action_mailer/event.rb +0 -50
  764. data/lib/ddtrace/contrib/action_mailer/events/deliver.rb +0 -54
  765. data/lib/ddtrace/contrib/action_mailer/events/process.rb +0 -41
  766. data/lib/ddtrace/contrib/action_mailer/events.rb +0 -31
  767. data/lib/ddtrace/contrib/action_mailer/ext.rb +0 -32
  768. data/lib/ddtrace/contrib/action_mailer/integration.rb +0 -45
  769. data/lib/ddtrace/contrib/action_mailer/patcher.rb +0 -27
  770. data/lib/ddtrace/contrib/action_pack/action_controller/instrumentation.rb +0 -157
  771. data/lib/ddtrace/contrib/action_pack/action_controller/patcher.rb +0 -26
  772. data/lib/ddtrace/contrib/action_pack/configuration/settings.rb +0 -33
  773. data/lib/ddtrace/contrib/action_pack/ext.rb +0 -20
  774. data/lib/ddtrace/contrib/action_pack/integration.rb +0 -46
  775. data/lib/ddtrace/contrib/action_pack/patcher.rb +0 -24
  776. data/lib/ddtrace/contrib/action_pack/utils.rb +0 -37
  777. data/lib/ddtrace/contrib/action_view/configuration/settings.rb +0 -32
  778. data/lib/ddtrace/contrib/action_view/event.rb +0 -36
  779. data/lib/ddtrace/contrib/action_view/events/render_partial.rb +0 -47
  780. data/lib/ddtrace/contrib/action_view/events/render_template.rb +0 -50
  781. data/lib/ddtrace/contrib/action_view/events.rb +0 -31
  782. data/lib/ddtrace/contrib/action_view/ext.rb +0 -21
  783. data/lib/ddtrace/contrib/action_view/instrumentation/partial_renderer.rb +0 -75
  784. data/lib/ddtrace/contrib/action_view/instrumentation/template_renderer.rb +0 -168
  785. data/lib/ddtrace/contrib/action_view/integration.rb +0 -53
  786. data/lib/ddtrace/contrib/action_view/patcher.rb +0 -48
  787. data/lib/ddtrace/contrib/action_view/utils.rb +0 -33
  788. data/lib/ddtrace/contrib/active_job/configuration/settings.rb +0 -33
  789. data/lib/ddtrace/contrib/active_job/event.rb +0 -54
  790. data/lib/ddtrace/contrib/active_job/events/discard.rb +0 -46
  791. data/lib/ddtrace/contrib/active_job/events/enqueue.rb +0 -45
  792. data/lib/ddtrace/contrib/active_job/events/enqueue_at.rb +0 -45
  793. data/lib/ddtrace/contrib/active_job/events/enqueue_retry.rb +0 -47
  794. data/lib/ddtrace/contrib/active_job/events/perform.rb +0 -45
  795. data/lib/ddtrace/contrib/active_job/events/retry_stopped.rb +0 -46
  796. data/lib/ddtrace/contrib/active_job/events.rb +0 -39
  797. data/lib/ddtrace/contrib/active_job/ext.rb +0 -32
  798. data/lib/ddtrace/contrib/active_job/integration.rb +0 -46
  799. data/lib/ddtrace/contrib/active_job/log_injection.rb +0 -21
  800. data/lib/ddtrace/contrib/active_job/patcher.rb +0 -33
  801. data/lib/ddtrace/contrib/active_model_serializers/configuration/settings.rb +0 -31
  802. data/lib/ddtrace/contrib/active_model_serializers/event.rb +0 -69
  803. data/lib/ddtrace/contrib/active_model_serializers/events/render.rb +0 -33
  804. data/lib/ddtrace/contrib/active_model_serializers/events/serialize.rb +0 -36
  805. data/lib/ddtrace/contrib/active_model_serializers/events.rb +0 -31
  806. data/lib/ddtrace/contrib/active_model_serializers/ext.rb +0 -21
  807. data/lib/ddtrace/contrib/active_model_serializers/integration.rb +0 -41
  808. data/lib/ddtrace/contrib/active_model_serializers/patcher.rb +0 -30
  809. data/lib/ddtrace/contrib/active_record/configuration/makara_resolver.rb +0 -31
  810. data/lib/ddtrace/contrib/active_record/configuration/resolver.rb +0 -135
  811. data/lib/ddtrace/contrib/active_record/configuration/settings.rb +0 -36
  812. data/lib/ddtrace/contrib/active_record/event.rb +0 -31
  813. data/lib/ddtrace/contrib/active_record/events/instantiation.rb +0 -61
  814. data/lib/ddtrace/contrib/active_record/events/sql.rb +0 -69
  815. data/lib/ddtrace/contrib/active_record/events.rb +0 -31
  816. data/lib/ddtrace/contrib/active_record/ext.rb +0 -25
  817. data/lib/ddtrace/contrib/active_record/integration.rb +0 -54
  818. data/lib/ddtrace/contrib/active_record/patcher.rb +0 -24
  819. data/lib/ddtrace/contrib/active_record/utils.rb +0 -124
  820. data/lib/ddtrace/contrib/active_support/cache/instrumentation.rb +0 -259
  821. data/lib/ddtrace/contrib/active_support/cache/patcher.rb +0 -70
  822. data/lib/ddtrace/contrib/active_support/cache/redis.rb +0 -44
  823. data/lib/ddtrace/contrib/active_support/configuration/settings.rb +0 -31
  824. data/lib/ddtrace/contrib/active_support/ext.rb +0 -28
  825. data/lib/ddtrace/contrib/active_support/integration.rb +0 -47
  826. data/lib/ddtrace/contrib/active_support/notifications/event.rb +0 -76
  827. data/lib/ddtrace/contrib/active_support/notifications/subscriber.rb +0 -68
  828. data/lib/ddtrace/contrib/active_support/notifications/subscription.rb +0 -164
  829. data/lib/ddtrace/contrib/active_support/patcher.rb +0 -24
  830. data/lib/ddtrace/contrib/analytics.rb +0 -25
  831. data/lib/ddtrace/contrib/auto_instrument.rb +0 -48
  832. data/lib/ddtrace/contrib/aws/configuration/settings.rb +0 -31
  833. data/lib/ddtrace/contrib/aws/ext.rb +0 -24
  834. data/lib/ddtrace/contrib/aws/instrumentation.rb +0 -91
  835. data/lib/ddtrace/contrib/aws/integration.rb +0 -43
  836. data/lib/ddtrace/contrib/aws/parsed_context.rb +0 -57
  837. data/lib/ddtrace/contrib/aws/patcher.rb +0 -54
  838. data/lib/ddtrace/contrib/aws/services.rb +0 -119
  839. data/lib/ddtrace/contrib/concurrent_ruby/configuration/settings.rb +0 -21
  840. data/lib/ddtrace/contrib/concurrent_ruby/context_composite_executor_service.rb +0 -42
  841. data/lib/ddtrace/contrib/concurrent_ruby/ext.rb +0 -13
  842. data/lib/ddtrace/contrib/concurrent_ruby/future_patch.rb +0 -24
  843. data/lib/ddtrace/contrib/concurrent_ruby/integration.rb +0 -39
  844. data/lib/ddtrace/contrib/concurrent_ruby/patcher.rb +0 -30
  845. data/lib/ddtrace/contrib/configurable.rb +0 -103
  846. data/lib/ddtrace/contrib/configuration/resolver.rb +0 -82
  847. data/lib/ddtrace/contrib/configuration/resolvers/pattern_resolver.rb +0 -40
  848. data/lib/ddtrace/contrib/configuration/settings.rb +0 -56
  849. data/lib/ddtrace/contrib/dalli/configuration/settings.rb +0 -31
  850. data/lib/ddtrace/contrib/dalli/ext.rb +0 -21
  851. data/lib/ddtrace/contrib/dalli/instrumentation.rb +0 -55
  852. data/lib/ddtrace/contrib/dalli/integration.rb +0 -39
  853. data/lib/ddtrace/contrib/dalli/patcher.rb +0 -26
  854. data/lib/ddtrace/contrib/dalli/quantize.rb +0 -23
  855. data/lib/ddtrace/contrib/delayed_job/configuration/settings.rb +0 -33
  856. data/lib/ddtrace/contrib/delayed_job/ext.rb +0 -24
  857. data/lib/ddtrace/contrib/delayed_job/integration.rb +0 -39
  858. data/lib/ddtrace/contrib/delayed_job/patcher.rb +0 -29
  859. data/lib/ddtrace/contrib/delayed_job/plugin.rb +0 -85
  860. data/lib/ddtrace/contrib/elasticsearch/configuration/settings.rb +0 -32
  861. data/lib/ddtrace/contrib/elasticsearch/ext.rb +0 -23
  862. data/lib/ddtrace/contrib/elasticsearch/integration.rb +0 -40
  863. data/lib/ddtrace/contrib/elasticsearch/patcher.rb +0 -123
  864. data/lib/ddtrace/contrib/elasticsearch/quantize.rb +0 -84
  865. data/lib/ddtrace/contrib/ethon/configuration/settings.rb +0 -33
  866. data/lib/ddtrace/contrib/ethon/easy_patch.rb +0 -152
  867. data/lib/ddtrace/contrib/ethon/ext.rb +0 -20
  868. data/lib/ddtrace/contrib/ethon/integration.rb +0 -44
  869. data/lib/ddtrace/contrib/ethon/multi_patch.rb +0 -85
  870. data/lib/ddtrace/contrib/ethon/patcher.rb +0 -27
  871. data/lib/ddtrace/contrib/excon/configuration/settings.rb +0 -34
  872. data/lib/ddtrace/contrib/excon/ext.rb +0 -18
  873. data/lib/ddtrace/contrib/excon/integration.rb +0 -44
  874. data/lib/ddtrace/contrib/excon/middleware.rb +0 -164
  875. data/lib/ddtrace/contrib/excon/patcher.rb +0 -28
  876. data/lib/ddtrace/contrib/extensions.rb +0 -169
  877. data/lib/ddtrace/contrib/faraday/configuration/settings.rb +0 -39
  878. data/lib/ddtrace/contrib/faraday/connection.rb +0 -19
  879. data/lib/ddtrace/contrib/faraday/ext.rb +0 -18
  880. data/lib/ddtrace/contrib/faraday/integration.rb +0 -44
  881. data/lib/ddtrace/contrib/faraday/middleware.rb +0 -86
  882. data/lib/ddtrace/contrib/faraday/patcher.rb +0 -54
  883. data/lib/ddtrace/contrib/faraday/rack_builder.rb +0 -19
  884. data/lib/ddtrace/contrib/grape/configuration/settings.rb +0 -39
  885. data/lib/ddtrace/contrib/grape/endpoint.rb +0 -246
  886. data/lib/ddtrace/contrib/grape/ext.rb +0 -24
  887. data/lib/ddtrace/contrib/grape/instrumentation.rb +0 -34
  888. data/lib/ddtrace/contrib/grape/integration.rb +0 -40
  889. data/lib/ddtrace/contrib/grape/patcher.rb +0 -32
  890. data/lib/ddtrace/contrib/graphql/configuration/settings.rb +0 -33
  891. data/lib/ddtrace/contrib/graphql/ext.rb +0 -17
  892. data/lib/ddtrace/contrib/graphql/integration.rb +0 -40
  893. data/lib/ddtrace/contrib/graphql/patcher.rb +0 -61
  894. data/lib/ddtrace/contrib/grpc/configuration/settings.rb +0 -32
  895. data/lib/ddtrace/contrib/grpc/datadog_interceptor/client.rb +0 -59
  896. data/lib/ddtrace/contrib/grpc/datadog_interceptor/server.rb +0 -80
  897. data/lib/ddtrace/contrib/grpc/datadog_interceptor.rb +0 -79
  898. data/lib/ddtrace/contrib/grpc/ext.rb +0 -19
  899. data/lib/ddtrace/contrib/grpc/integration.rb +0 -39
  900. data/lib/ddtrace/contrib/grpc/intercept_with_datadog.rb +0 -50
  901. data/lib/ddtrace/contrib/grpc/patcher.rb +0 -34
  902. data/lib/ddtrace/contrib/http/circuit_breaker.rb +0 -38
  903. data/lib/ddtrace/contrib/http/configuration/settings.rb +0 -33
  904. data/lib/ddtrace/contrib/http/ext.rb +0 -18
  905. data/lib/ddtrace/contrib/http/instrumentation.rb +0 -180
  906. data/lib/ddtrace/contrib/http/integration.rb +0 -46
  907. data/lib/ddtrace/contrib/http/patcher.rb +0 -27
  908. data/lib/ddtrace/contrib/http_annotation_helper.rb +0 -11
  909. data/lib/ddtrace/contrib/httpclient/configuration/settings.rb +0 -33
  910. data/lib/ddtrace/contrib/httpclient/ext.rb +0 -18
  911. data/lib/ddtrace/contrib/httpclient/instrumentation.rb +0 -148
  912. data/lib/ddtrace/contrib/httpclient/integration.rb +0 -44
  913. data/lib/ddtrace/contrib/httpclient/patcher.rb +0 -39
  914. data/lib/ddtrace/contrib/httprb/configuration/settings.rb +0 -33
  915. data/lib/ddtrace/contrib/httprb/ext.rb +0 -18
  916. data/lib/ddtrace/contrib/httprb/instrumentation.rb +0 -158
  917. data/lib/ddtrace/contrib/httprb/integration.rb +0 -44
  918. data/lib/ddtrace/contrib/httprb/patcher.rb +0 -39
  919. data/lib/ddtrace/contrib/integration.rb +0 -17
  920. data/lib/ddtrace/contrib/kafka/configuration/settings.rb +0 -31
  921. data/lib/ddtrace/contrib/kafka/consumer_event.rb +0 -15
  922. data/lib/ddtrace/contrib/kafka/consumer_group_event.rb +0 -15
  923. data/lib/ddtrace/contrib/kafka/event.rb +0 -52
  924. data/lib/ddtrace/contrib/kafka/events/connection/request.rb +0 -35
  925. data/lib/ddtrace/contrib/kafka/events/consumer/process_batch.rb +0 -42
  926. data/lib/ddtrace/contrib/kafka/events/consumer/process_message.rb +0 -40
  927. data/lib/ddtrace/contrib/kafka/events/consumer_group/heartbeat.rb +0 -40
  928. data/lib/ddtrace/contrib/kafka/events/consumer_group/join_group.rb +0 -30
  929. data/lib/ddtrace/contrib/kafka/events/consumer_group/leave_group.rb +0 -30
  930. data/lib/ddtrace/contrib/kafka/events/consumer_group/sync_group.rb +0 -30
  931. data/lib/ddtrace/contrib/kafka/events/produce_operation/send_messages.rb +0 -33
  932. data/lib/ddtrace/contrib/kafka/events/producer/deliver_messages.rb +0 -36
  933. data/lib/ddtrace/contrib/kafka/events.rb +0 -45
  934. data/lib/ddtrace/contrib/kafka/ext.rb +0 -42
  935. data/lib/ddtrace/contrib/kafka/integration.rb +0 -40
  936. data/lib/ddtrace/contrib/kafka/patcher.rb +0 -27
  937. data/lib/ddtrace/contrib/lograge/configuration/settings.rb +0 -19
  938. data/lib/ddtrace/contrib/lograge/ext.rb +0 -11
  939. data/lib/ddtrace/contrib/lograge/instrumentation.rb +0 -39
  940. data/lib/ddtrace/contrib/lograge/integration.rb +0 -46
  941. data/lib/ddtrace/contrib/lograge/patcher.rb +0 -26
  942. data/lib/ddtrace/contrib/mongodb/configuration/settings.rb +0 -34
  943. data/lib/ddtrace/contrib/mongodb/ext.rb +0 -24
  944. data/lib/ddtrace/contrib/mongodb/instrumentation.rb +0 -70
  945. data/lib/ddtrace/contrib/mongodb/integration.rb +0 -39
  946. data/lib/ddtrace/contrib/mongodb/parsers.rb +0 -69
  947. data/lib/ddtrace/contrib/mongodb/patcher.rb +0 -32
  948. data/lib/ddtrace/contrib/mongodb/subscribers.rb +0 -112
  949. data/lib/ddtrace/contrib/mysql2/configuration/settings.rb +0 -31
  950. data/lib/ddtrace/contrib/mysql2/ext.rb +0 -19
  951. data/lib/ddtrace/contrib/mysql2/instrumentation.rb +0 -65
  952. data/lib/ddtrace/contrib/mysql2/integration.rb +0 -39
  953. data/lib/ddtrace/contrib/mysql2/patcher.rb +0 -28
  954. data/lib/ddtrace/contrib/patchable.rb +0 -71
  955. data/lib/ddtrace/contrib/patcher.rb +0 -66
  956. data/lib/ddtrace/contrib/presto/configuration/settings.rb +0 -31
  957. data/lib/ddtrace/contrib/presto/ext.rb +0 -29
  958. data/lib/ddtrace/contrib/presto/instrumentation.rb +0 -111
  959. data/lib/ddtrace/contrib/presto/integration.rb +0 -39
  960. data/lib/ddtrace/contrib/presto/patcher.rb +0 -34
  961. data/lib/ddtrace/contrib/qless/configuration/settings.rb +0 -36
  962. data/lib/ddtrace/contrib/qless/ext.rb +0 -21
  963. data/lib/ddtrace/contrib/qless/integration.rb +0 -39
  964. data/lib/ddtrace/contrib/qless/patcher.rb +0 -35
  965. data/lib/ddtrace/contrib/qless/qless_job.rb +0 -74
  966. data/lib/ddtrace/contrib/qless/tracer_cleaner.rb +0 -34
  967. data/lib/ddtrace/contrib/que/configuration/settings.rb +0 -44
  968. data/lib/ddtrace/contrib/que/ext.rb +0 -31
  969. data/lib/ddtrace/contrib/que/integration.rb +0 -43
  970. data/lib/ddtrace/contrib/que/patcher.rb +0 -25
  971. data/lib/ddtrace/contrib/que/tracer.rb +0 -58
  972. data/lib/ddtrace/contrib/racecar/configuration/settings.rb +0 -31
  973. data/lib/ddtrace/contrib/racecar/event.rb +0 -77
  974. data/lib/ddtrace/contrib/racecar/events/batch.rb +0 -28
  975. data/lib/ddtrace/contrib/racecar/events/consume.rb +0 -28
  976. data/lib/ddtrace/contrib/racecar/events/message.rb +0 -28
  977. data/lib/ddtrace/contrib/racecar/events.rb +0 -33
  978. data/lib/ddtrace/contrib/racecar/ext.rb +0 -26
  979. data/lib/ddtrace/contrib/racecar/integration.rb +0 -40
  980. data/lib/ddtrace/contrib/racecar/patcher.rb +0 -27
  981. data/lib/ddtrace/contrib/rack/configuration/settings.rb +0 -47
  982. data/lib/ddtrace/contrib/rack/ext.rb +0 -22
  983. data/lib/ddtrace/contrib/rack/integration.rb +0 -46
  984. data/lib/ddtrace/contrib/rack/middlewares.rb +0 -288
  985. data/lib/ddtrace/contrib/rack/patcher.rb +0 -106
  986. data/lib/ddtrace/contrib/rack/request_queue.rb +0 -45
  987. data/lib/ddtrace/contrib/rails/auto_instrument_railtie.rb +0 -10
  988. data/lib/ddtrace/contrib/rails/configuration/settings.rb +0 -94
  989. data/lib/ddtrace/contrib/rails/ext.rb +0 -18
  990. data/lib/ddtrace/contrib/rails/framework.rb +0 -171
  991. data/lib/ddtrace/contrib/rails/integration.rb +0 -45
  992. data/lib/ddtrace/contrib/rails/log_injection.rb +0 -42
  993. data/lib/ddtrace/contrib/rails/middlewares.rb +0 -44
  994. data/lib/ddtrace/contrib/rails/patcher.rb +0 -119
  995. data/lib/ddtrace/contrib/rails/railtie.rb +0 -18
  996. data/lib/ddtrace/contrib/rails/utils.rb +0 -25
  997. data/lib/ddtrace/contrib/rake/configuration/settings.rb +0 -32
  998. data/lib/ddtrace/contrib/rake/ext.rb +0 -22
  999. data/lib/ddtrace/contrib/rake/instrumentation.rb +0 -91
  1000. data/lib/ddtrace/contrib/rake/integration.rb +0 -39
  1001. data/lib/ddtrace/contrib/rake/patcher.rb +0 -31
  1002. data/lib/ddtrace/contrib/redis/configuration/resolver.rb +0 -46
  1003. data/lib/ddtrace/contrib/redis/configuration/settings.rb +0 -36
  1004. data/lib/ddtrace/contrib/redis/ext.rb +0 -23
  1005. data/lib/ddtrace/contrib/redis/integration.rb +0 -43
  1006. data/lib/ddtrace/contrib/redis/patcher.rb +0 -115
  1007. data/lib/ddtrace/contrib/redis/quantize.rb +0 -76
  1008. data/lib/ddtrace/contrib/redis/tags.rb +0 -47
  1009. data/lib/ddtrace/contrib/redis/vendor/resolver.rb +0 -159
  1010. data/lib/ddtrace/contrib/registerable.rb +0 -33
  1011. data/lib/ddtrace/contrib/registry.rb +0 -43
  1012. data/lib/ddtrace/contrib/resque/configuration/settings.rb +0 -49
  1013. data/lib/ddtrace/contrib/resque/ext.rb +0 -18
  1014. data/lib/ddtrace/contrib/resque/integration.rb +0 -48
  1015. data/lib/ddtrace/contrib/resque/patcher.rb +0 -30
  1016. data/lib/ddtrace/contrib/resque/resque_job.rb +0 -104
  1017. data/lib/ddtrace/contrib/rest_client/configuration/settings.rb +0 -32
  1018. data/lib/ddtrace/contrib/rest_client/ext.rb +0 -18
  1019. data/lib/ddtrace/contrib/rest_client/integration.rb +0 -39
  1020. data/lib/ddtrace/contrib/rest_client/patcher.rb +0 -25
  1021. data/lib/ddtrace/contrib/rest_client/request_patch.rb +0 -92
  1022. data/lib/ddtrace/contrib/semantic_logger/configuration/settings.rb +0 -19
  1023. data/lib/ddtrace/contrib/semantic_logger/ext.rb +0 -11
  1024. data/lib/ddtrace/contrib/semantic_logger/instrumentation.rb +0 -43
  1025. data/lib/ddtrace/contrib/semantic_logger/integration.rb +0 -48
  1026. data/lib/ddtrace/contrib/semantic_logger/patcher.rb +0 -26
  1027. data/lib/ddtrace/contrib/sequel/configuration/settings.rb +0 -29
  1028. data/lib/ddtrace/contrib/sequel/database.rb +0 -64
  1029. data/lib/ddtrace/contrib/sequel/dataset.rb +0 -64
  1030. data/lib/ddtrace/contrib/sequel/ext.rb +0 -20
  1031. data/lib/ddtrace/contrib/sequel/integration.rb +0 -39
  1032. data/lib/ddtrace/contrib/sequel/patcher.rb +0 -34
  1033. data/lib/ddtrace/contrib/sequel/utils.rb +0 -75
  1034. data/lib/ddtrace/contrib/shoryuken/configuration/settings.rb +0 -32
  1035. data/lib/ddtrace/contrib/shoryuken/ext.rb +0 -22
  1036. data/lib/ddtrace/contrib/shoryuken/integration.rb +0 -40
  1037. data/lib/ddtrace/contrib/shoryuken/patcher.rb +0 -25
  1038. data/lib/ddtrace/contrib/shoryuken/tracer.rb +0 -56
  1039. data/lib/ddtrace/contrib/sidekiq/client_tracer.rb +0 -44
  1040. data/lib/ddtrace/contrib/sidekiq/configuration/settings.rb +0 -38
  1041. data/lib/ddtrace/contrib/sidekiq/ext.rb +0 -31
  1042. data/lib/ddtrace/contrib/sidekiq/integration.rb +0 -49
  1043. data/lib/ddtrace/contrib/sidekiq/patcher.rb +0 -68
  1044. data/lib/ddtrace/contrib/sidekiq/server_internal_tracer/heartbeat.rb +0 -30
  1045. data/lib/ddtrace/contrib/sidekiq/server_internal_tracer/job_fetch.rb +0 -30
  1046. data/lib/ddtrace/contrib/sidekiq/server_internal_tracer/scheduled_push.rb +0 -29
  1047. data/lib/ddtrace/contrib/sidekiq/server_tracer.rb +0 -66
  1048. data/lib/ddtrace/contrib/sidekiq/tracing.rb +0 -45
  1049. data/lib/ddtrace/contrib/sinatra/configuration/settings.rb +0 -40
  1050. data/lib/ddtrace/contrib/sinatra/env.rb +0 -59
  1051. data/lib/ddtrace/contrib/sinatra/ext.rb +0 -28
  1052. data/lib/ddtrace/contrib/sinatra/headers.rb +0 -30
  1053. data/lib/ddtrace/contrib/sinatra/integration.rb +0 -39
  1054. data/lib/ddtrace/contrib/sinatra/patcher.rb +0 -30
  1055. data/lib/ddtrace/contrib/sinatra/tracer.rb +0 -150
  1056. data/lib/ddtrace/contrib/sinatra/tracer_middleware.rb +0 -112
  1057. data/lib/ddtrace/contrib/sneakers/configuration/settings.rb +0 -34
  1058. data/lib/ddtrace/contrib/sneakers/ext.rb +0 -23
  1059. data/lib/ddtrace/contrib/sneakers/integration.rb +0 -42
  1060. data/lib/ddtrace/contrib/sneakers/patcher.rb +0 -25
  1061. data/lib/ddtrace/contrib/sneakers/tracer.rb +0 -54
  1062. data/lib/ddtrace/contrib/status_code_matcher.rb +0 -70
  1063. data/lib/ddtrace/contrib/sucker_punch/configuration/settings.rb +0 -31
  1064. data/lib/ddtrace/contrib/sucker_punch/exception_handler.rb +0 -25
  1065. data/lib/ddtrace/contrib/sucker_punch/ext.rb +0 -22
  1066. data/lib/ddtrace/contrib/sucker_punch/instrumentation.rb +0 -89
  1067. data/lib/ddtrace/contrib/sucker_punch/integration.rb +0 -39
  1068. data/lib/ddtrace/contrib/sucker_punch/patcher.rb +0 -44
  1069. data/lib/ddtrace/correlation.rb +0 -40
  1070. data/lib/ddtrace/diagnostics/environment_logger.rb +0 -280
  1071. data/lib/ddtrace/diagnostics/health.rb +0 -34
  1072. data/lib/ddtrace/distributed_tracing/headers/b3.rb +0 -45
  1073. data/lib/ddtrace/distributed_tracing/headers/b3_single.rb +0 -57
  1074. data/lib/ddtrace/distributed_tracing/headers/datadog.rb +0 -43
  1075. data/lib/ddtrace/distributed_tracing/headers/headers.rb +0 -72
  1076. data/lib/ddtrace/distributed_tracing/headers/helpers.rb +0 -44
  1077. data/lib/ddtrace/encoding.rb +0 -72
  1078. data/lib/ddtrace/error.rb +0 -97
  1079. data/lib/ddtrace/event.rb +0 -53
  1080. data/lib/ddtrace/ext/analytics.rb +0 -13
  1081. data/lib/ddtrace/ext/app_types.rb +0 -12
  1082. data/lib/ddtrace/ext/correlation.rb +0 -12
  1083. data/lib/ddtrace/ext/diagnostics.rb +0 -37
  1084. data/lib/ddtrace/ext/distributed.rb +0 -40
  1085. data/lib/ddtrace/ext/environment.rb +0 -24
  1086. data/lib/ddtrace/ext/errors.rb +0 -11
  1087. data/lib/ddtrace/ext/forced_tracing.rb +0 -26
  1088. data/lib/ddtrace/ext/git.rb +0 -32
  1089. data/lib/ddtrace/ext/http.rb +0 -47
  1090. data/lib/ddtrace/ext/integration.rb +0 -9
  1091. data/lib/ddtrace/ext/manual_tracing.rb +0 -10
  1092. data/lib/ddtrace/ext/metrics.rb +0 -16
  1093. data/lib/ddtrace/ext/net.rb +0 -11
  1094. data/lib/ddtrace/ext/priority.rb +0 -17
  1095. data/lib/ddtrace/ext/profiling.rb +0 -57
  1096. data/lib/ddtrace/ext/runtime.rb +0 -25
  1097. data/lib/ddtrace/ext/sampling.rb +0 -17
  1098. data/lib/ddtrace/ext/sql.rb +0 -9
  1099. data/lib/ddtrace/ext/test.rb +0 -9
  1100. data/lib/ddtrace/ext/transport.rb +0 -32
  1101. data/lib/ddtrace/forced_tracing.rb +0 -39
  1102. data/lib/ddtrace/logger.rb +0 -41
  1103. data/lib/ddtrace/metrics.rb +0 -282
  1104. data/lib/ddtrace/opentelemetry/extensions.rb +0 -14
  1105. data/lib/ddtrace/opentelemetry/span.rb +0 -34
  1106. data/lib/ddtrace/opentracer/binary_propagator.rb +0 -25
  1107. data/lib/ddtrace/opentracer/carrier.rb +0 -7
  1108. data/lib/ddtrace/opentracer/distributed_headers.rb +0 -56
  1109. data/lib/ddtrace/opentracer/global_tracer.rb +0 -16
  1110. data/lib/ddtrace/opentracer/propagator.rb +0 -23
  1111. data/lib/ddtrace/opentracer/rack_propagator.rb +0 -61
  1112. data/lib/ddtrace/opentracer/scope.rb +0 -16
  1113. data/lib/ddtrace/opentracer/scope_manager.rb +0 -7
  1114. data/lib/ddtrace/opentracer/span.rb +0 -95
  1115. data/lib/ddtrace/opentracer/span_context.rb +0 -15
  1116. data/lib/ddtrace/opentracer/span_context_factory.rb +0 -24
  1117. data/lib/ddtrace/opentracer/text_map_propagator.rb +0 -76
  1118. data/lib/ddtrace/opentracer/thread_local_scope.rb +0 -32
  1119. data/lib/ddtrace/opentracer/thread_local_scope_manager.rb +0 -41
  1120. data/lib/ddtrace/opentracer/tracer.rb +0 -209
  1121. data/lib/ddtrace/opentracer.rb +0 -22
  1122. data/lib/ddtrace/patcher.rb +0 -69
  1123. data/lib/ddtrace/pin.rb +0 -86
  1124. data/lib/ddtrace/pipeline/span_filter.rb +0 -39
  1125. data/lib/ddtrace/pipeline/span_processor.rb +0 -21
  1126. data/lib/ddtrace/pipeline.rb +0 -47
  1127. data/lib/ddtrace/profiling/backtrace_location.rb +0 -33
  1128. data/lib/ddtrace/profiling/buffer.rb +0 -42
  1129. data/lib/ddtrace/profiling/collectors/stack.rb +0 -301
  1130. data/lib/ddtrace/profiling/encoding/profile.rb +0 -46
  1131. data/lib/ddtrace/profiling/event.rb +0 -14
  1132. data/lib/ddtrace/profiling/events/stack.rb +0 -81
  1133. data/lib/ddtrace/profiling/exporter.rb +0 -24
  1134. data/lib/ddtrace/profiling/ext/cpu.rb +0 -67
  1135. data/lib/ddtrace/profiling/ext/cthread.rb +0 -156
  1136. data/lib/ddtrace/profiling/ext/forking.rb +0 -98
  1137. data/lib/ddtrace/profiling/flush.rb +0 -44
  1138. data/lib/ddtrace/profiling/native_extension.rb +0 -18
  1139. data/lib/ddtrace/profiling/pprof/builder.rb +0 -120
  1140. data/lib/ddtrace/profiling/pprof/converter.rb +0 -103
  1141. data/lib/ddtrace/profiling/pprof/message_set.rb +0 -15
  1142. data/lib/ddtrace/profiling/pprof/payload.rb +0 -19
  1143. data/lib/ddtrace/profiling/pprof/pprof_pb.rb +0 -82
  1144. data/lib/ddtrace/profiling/pprof/stack_sample.rb +0 -143
  1145. data/lib/ddtrace/profiling/pprof/string_table.rb +0 -11
  1146. data/lib/ddtrace/profiling/pprof/template.rb +0 -119
  1147. data/lib/ddtrace/profiling/profiler.rb +0 -31
  1148. data/lib/ddtrace/profiling/recorder.rb +0 -96
  1149. data/lib/ddtrace/profiling/scheduler.rb +0 -134
  1150. data/lib/ddtrace/profiling/tasks/setup.rb +0 -81
  1151. data/lib/ddtrace/profiling/trace_identifiers/ddtrace.rb +0 -41
  1152. data/lib/ddtrace/profiling/trace_identifiers/helper.rb +0 -46
  1153. data/lib/ddtrace/profiling/transport/client.rb +0 -15
  1154. data/lib/ddtrace/profiling/transport/http/api/endpoint.rb +0 -101
  1155. data/lib/ddtrace/profiling/transport/http/api/instance.rb +0 -37
  1156. data/lib/ddtrace/profiling/transport/http/api/spec.rb +0 -41
  1157. data/lib/ddtrace/profiling/transport/http/api.rb +0 -44
  1158. data/lib/ddtrace/profiling/transport/http/builder.rb +0 -29
  1159. data/lib/ddtrace/profiling/transport/http/client.rb +0 -34
  1160. data/lib/ddtrace/profiling/transport/http/response.rb +0 -22
  1161. data/lib/ddtrace/profiling/transport/http.rb +0 -111
  1162. data/lib/ddtrace/profiling/transport/io/client.rb +0 -28
  1163. data/lib/ddtrace/profiling/transport/io/response.rb +0 -17
  1164. data/lib/ddtrace/profiling/transport/io.rb +0 -31
  1165. data/lib/ddtrace/profiling/transport/parcel.rb +0 -18
  1166. data/lib/ddtrace/profiling/transport/request.rb +0 -16
  1167. data/lib/ddtrace/profiling/transport/response.rb +0 -9
  1168. data/lib/ddtrace/profiling.rb +0 -151
  1169. data/lib/ddtrace/propagation/grpc_propagator.rb +0 -75
  1170. data/lib/ddtrace/propagation/http_propagator.rb +0 -91
  1171. data/lib/ddtrace/quantization/hash.rb +0 -104
  1172. data/lib/ddtrace/quantization/http.rb +0 -90
  1173. data/lib/ddtrace/runtime/metrics.rb +0 -135
  1174. data/lib/ddtrace/sampler.rb +0 -293
  1175. data/lib/ddtrace/sampling/matcher.rb +0 -58
  1176. data/lib/ddtrace/sampling/rate_limiter.rb +0 -177
  1177. data/lib/ddtrace/sampling/rule.rb +0 -62
  1178. data/lib/ddtrace/sampling/rule_sampler.rb +0 -121
  1179. data/lib/ddtrace/sampling.rb +0 -3
  1180. data/lib/ddtrace/span.rb +0 -445
  1181. data/lib/ddtrace/sync_writer.rb +0 -69
  1182. data/lib/ddtrace/tasks/exec.rb +0 -47
  1183. data/lib/ddtrace/tasks/help.rb +0 -15
  1184. data/lib/ddtrace/tracer.rb +0 -449
  1185. data/lib/ddtrace/utils/compression.rb +0 -28
  1186. data/lib/ddtrace/utils/database.rb +0 -26
  1187. data/lib/ddtrace/utils/forking.rb +0 -53
  1188. data/lib/ddtrace/utils/object_set.rb +0 -40
  1189. data/lib/ddtrace/utils/only_once.rb +0 -41
  1190. data/lib/ddtrace/utils/sequence.rb +0 -18
  1191. data/lib/ddtrace/utils/string_table.rb +0 -46
  1192. data/lib/ddtrace/utils/time.rb +0 -45
  1193. data/lib/ddtrace/utils.rb +0 -80
  1194. data/lib/ddtrace/vendor/active_record/connection_specification.rb +0 -302
  1195. data/lib/ddtrace/vendor/multipart-post/multipart/post/composite_read_io.rb +0 -117
  1196. data/lib/ddtrace/vendor/multipart-post/multipart/post/multipartable.rb +0 -58
  1197. data/lib/ddtrace/vendor/multipart-post/multipart/post/parts.rb +0 -136
  1198. data/lib/ddtrace/vendor/multipart-post/multipart/post/version.rb +0 -10
  1199. data/lib/ddtrace/vendor/multipart-post/multipart/post.rb +0 -9
  1200. data/lib/ddtrace/vendor/multipart-post/multipart.rb +0 -13
  1201. data/lib/ddtrace/vendor/multipart-post/net/http/post/multipart.rb +0 -33
  1202. data/lib/ddtrace/worker.rb +0 -21
  1203. data/lib/ddtrace/workers/async.rb +0 -175
  1204. data/lib/ddtrace/workers/loop.rb +0 -132
  1205. data/lib/ddtrace/workers/polling.rb +0 -56
  1206. data/lib/ddtrace/workers/queue.rb +0 -41
  1207. data/lib/ddtrace/workers/runtime_metrics.rb +0 -65
  1208. data/lib/ddtrace/workers/trace_writer.rb +0 -200
  1209. data/lib/ddtrace/workers.rb +0 -123
  1210. data/lib/ddtrace/writer.rb +0 -200
@@ -0,0 +1,11 @@
1
+ # typed: false
2
+
3
+ module Datadog
4
+ # Datadog::Kit holds public-facing APIs for higher level user-facing
5
+ # features, these features not belonging to a specific product. Contrary to
6
+ # Datadog::Core, Kit depends on products.
7
+ module Kit
8
+ end
9
+ end
10
+
11
+ require_relative 'kit/identity'
@@ -0,0 +1,187 @@
1
+ # frozen_string_literal: true
2
+ # typed: ignore
3
+
4
+ require_relative 'trace/span'
5
+ require_relative '../../tracing/trace_operation'
6
+
7
+ module Datadog
8
+ module OpenTelemetry
9
+ module API
10
+ # The OpenTelemetry Context contains a key-value store that can be attached
11
+ # to a trace.
12
+ #
13
+ # It loosely matches our `TraceOperations#tags`, except for the following:
14
+ # * Context can store arbitrary objects as values. One example is for the key
15
+ # `Context::Key.new('current-span')`, which is associated with a `Span` object.
16
+ # In contrast, `TraceOperations#tags` only stores string values.
17
+ # * Context is how spans know who their parent span is. The parenting operation happens on every
18
+ # span created. Parenting is not directly tied to the active Fiber or Thread.
19
+ # * Context is immutable: changing a value creates a copy of Context.
20
+ # * Context is not bound to a specific trace: it can be reused an arbitrary number of times.
21
+ module Context
22
+ CURRENT_SPAN_KEY = ::OpenTelemetry::Trace.const_get(:CURRENT_SPAN_KEY)
23
+ private_constant :CURRENT_SPAN_KEY
24
+
25
+ def initialize(entries, trace: nil)
26
+ @trace = trace || ::Datadog::Tracing.send(:tracer).send(:start_trace)
27
+ @trace.otel_values.merge!(entries) if entries
28
+ @trace.otel_context ||= self
29
+ end
30
+
31
+ # Because Context can be reused, we have to make sure we have
32
+ # a valid `TraceOperation` on every invocation.
33
+ def ensure_trace
34
+ return nil unless @trace
35
+
36
+ # The Context can be reused after the root span has finished.
37
+ @trace.send(:reset) if @trace.finished?
38
+ @trace
39
+ end
40
+
41
+ # Returns the corresponding value (or nil) for key
42
+ #
43
+ # @param [Key] key The lookup key
44
+ # @return [Object]
45
+ def value(key)
46
+ return nil unless @trace
47
+
48
+ @trace.otel_value(key)
49
+ end
50
+
51
+ alias [] value
52
+
53
+ # Returns a new Context where entries contains the newly added key and value
54
+ #
55
+ # @param [Key] key The key to store this value under
56
+ # @param [Object] value Object to be stored under key
57
+ # @return [Context]
58
+ def set_value(key, value)
59
+ set_values(key => value)
60
+ end
61
+
62
+ # Returns a new Context with the current context's entries merged with the
63
+ # new entries
64
+ #
65
+ # @param [Hash] values The values to be merged with the current context's
66
+ # entries.
67
+ # @param [Object] value Object to be stored under key
68
+ # @return [Context]
69
+ def set_values(values)
70
+ trace = nil
71
+ if (current_span = values[CURRENT_SPAN_KEY])
72
+ trace = current_span.datadog_trace
73
+ end
74
+
75
+ existing_values = @trace && @trace.otel_values || {}
76
+
77
+ ::OpenTelemetry::Context.new(existing_values.merge(values), trace: trace)
78
+ end
79
+
80
+ # The Datadog {TraceOperation} associated with this {Context}.
81
+ def trace
82
+ @trace
83
+ end
84
+
85
+ # Singleton class methods for {Context}
86
+ module SingletonClass
87
+ # Returns current context, which is never nil
88
+ #
89
+ # @return [Context]
90
+ def current
91
+ trace = Tracing.active_trace
92
+ return ::OpenTelemetry::Context::ROOT unless trace
93
+
94
+ trace.otel_context ||= ::OpenTelemetry::Context.from_trace(trace)
95
+ end
96
+
97
+ # Associates a Context with the caller's current Fiber. Every call to
98
+ # this operation should be paired with a corresponding call to detach.
99
+ #
100
+ # Returns a token to be used with the matching call to detach
101
+ #
102
+ # @param [Context] context The new context
103
+ # @return [Object] A token to be used when detaching
104
+ def attach(context)
105
+ previous_trace = Tracing.active_trace
106
+ continue_trace!(context)
107
+
108
+ stack.push(previous_trace && previous_trace.otel_context || ::OpenTelemetry::Context::ROOT)
109
+ stack.size
110
+ end
111
+
112
+ # Restores the previous Context associated with the current Fiber.
113
+ # The supplied token is used to check if the call to detach is balanced
114
+ # with a corresponding attach call. A warning is logged if the
115
+ # calls are unbalanced.
116
+ #
117
+ # @param [Object] token The token provided by the matching call to attach
118
+ # @return [Boolean] True if the calls matched, false otherwise
119
+ def detach(token)
120
+ s = stack
121
+ calls_matched = (token == s.size)
122
+ unless calls_matched
123
+ ::OpenTelemetry.handle_error(
124
+ exception: ::OpenTelemetry::Context::DetachError.new(
125
+ 'calls to detach should match corresponding calls to attach.'
126
+ )
127
+ )
128
+ end
129
+
130
+ previous_context = s.pop
131
+ continue_trace!(previous_context)
132
+ calls_matched
133
+ end
134
+
135
+ # Part of the OpenTelemetry public API for {Context}.
136
+ def clear
137
+ super
138
+ tracer = Tracing.send(:tracer)
139
+ tracer.send(:call_context).activate!(nil)
140
+ end
141
+
142
+ # Creates a new {Context} associated with a {TraceOperation}.
143
+ def from_trace(trace)
144
+ new({}, trace: trace)
145
+ end
146
+
147
+ private
148
+
149
+ def continue_trace!(context, &block)
150
+ call_context = Tracing.send(:tracer).send(:call_context)
151
+ if context && context.trace
152
+ call_context.activate!(context.ensure_trace, &block)
153
+ else
154
+ call_context.activate!(nil)
155
+ end
156
+ end
157
+ end
158
+
159
+ def self.prepended(base)
160
+ base.singleton_class.prepend(SingletonClass)
161
+ end
162
+
163
+ ::OpenTelemetry::Context.prepend(self)
164
+ end
165
+
166
+ # OpenTelemetry-specific {TraceOperation} features.
167
+ #
168
+ # These extensions providing matching between {TraceOperation}
169
+ # and OpenTelemetry {Context}.
170
+ module TraceOperation
171
+ attr_accessor :otel_context
172
+
173
+ # Stores values from Context#entries
174
+ def otel_value(key)
175
+ otel_values[key]
176
+ end
177
+
178
+ # Retrieves values for Context#entries
179
+ def otel_values
180
+ @otel_values ||= {}
181
+ end
182
+
183
+ Tracing::TraceOperation.include(self)
184
+ end
185
+ end
186
+ end
187
+ end
@@ -0,0 +1,15 @@
1
+ # frozen_string_literal: true
2
+ # typed: ignore
3
+
4
+ module Datadog
5
+ module OpenTelemetry
6
+ module Trace
7
+ # Stores associated Datadog entities to the OpenTelemetry Span.
8
+ module Span
9
+ attr_accessor :datadog_trace, :datadog_span
10
+
11
+ ::OpenTelemetry::Trace::Span.prepend(self)
12
+ end
13
+ end
14
+ end
15
+ end
@@ -0,0 +1,38 @@
1
+ # frozen_string_literal: true
2
+ # typed: ignore
3
+
4
+ require_relative 'span_processor'
5
+ require_relative 'id_generator'
6
+ require_relative 'propagator'
7
+
8
+ module Datadog
9
+ module OpenTelemetry
10
+ module SDK
11
+ # The Configurator is responsible for setting wiring up
12
+ # different OpenTelemetry requirements together.
13
+ # Some of the requirements will be changed to Datadog versions.
14
+ module Configurator
15
+ def initialize
16
+ super
17
+ @id_generator = IdGenerator
18
+ end
19
+
20
+ # Ensure Datadog-configure propagation styles have are applied when configured.
21
+ #
22
+ # DEV: Support configuring propagation through the environment variable
23
+ # DEV: `OTEL_PROPAGATORS`, similar to `DD_TRACE_PROPAGATION*`?
24
+ def configure_propagation
25
+ @propagators = [Propagator.new(Tracing::Contrib::HTTP::Distributed::Propagation.new)]
26
+ super
27
+ end
28
+
29
+ # Ensure Datadog-configure trace writer is configured.
30
+ def wrapped_exporters_from_env
31
+ [SpanProcessor.new]
32
+ end
33
+
34
+ ::OpenTelemetry::SDK::Configurator.prepend(self)
35
+ end
36
+ end
37
+ end
38
+ end
@@ -0,0 +1,27 @@
1
+ # frozen_string_literal: true
2
+ # typed: ignore
3
+
4
+ module Datadog
5
+ module OpenTelemetry
6
+ module SDK
7
+ # Generates Datadog-compatible IDs for OpenTelemetry traces.
8
+ # OpenTelemetry traces already produce Datadog-compatible IDs.
9
+ class IdGenerator
10
+ class << self
11
+ include ::OpenTelemetry::Trace
12
+
13
+ # Generates a valid trace identifier, a 16-byte string with at least one
14
+ # non-zero byte.
15
+ #
16
+ # @return [String] a valid trace ID.
17
+ def generate_trace_id
18
+ loop do
19
+ id = Random.bytes(8) # DEV: Change to 16 (16*8-byte) when 128-bit trace_id is supported.
20
+ return id unless id == ::OpenTelemetry::Trace::INVALID_SPAN_ID
21
+ end
22
+ end
23
+ end
24
+ end
25
+ end
26
+ end
27
+ end
@@ -0,0 +1,91 @@
1
+ # frozen_string_literal: true
2
+ # typed: ignore
3
+
4
+ module Datadog
5
+ module OpenTelemetry
6
+ module SDK
7
+ # Compatibility wrapper to allow Datadog propagators to fulfill the
8
+ # OpenTelemetry propagator API.
9
+ class Propagator
10
+ def initialize(datadog_propagator)
11
+ @datadog_propagator = datadog_propagator
12
+ end
13
+
14
+ def inject(
15
+ carrier, context: ::OpenTelemetry::Context.current,
16
+ setter: ::OpenTelemetry::Context::Propagation.text_map_setter
17
+ )
18
+ unless setter == ::OpenTelemetry::Context::Propagation.text_map_setter
19
+ Datadog.logger.error(
20
+ 'Custom setter is not supported. Please inform the `ddtrace` team at ' \
21
+ ' https://github.com/DataDog/dd-trace-rb of your use case so we can best support you. Using the default ' \
22
+ 'OpenTelemetry::Context::Propagation.text_map_setter as a fallback setter.'
23
+ )
24
+ end
25
+
26
+ @datadog_propagator.inject!(context.trace.to_digest, carrier)
27
+ end
28
+
29
+ def extract(
30
+ carrier, context: ::OpenTelemetry::Context.current,
31
+ getter: ::OpenTelemetry::Context::Propagation.text_map_getter
32
+ )
33
+ unless getter == ::OpenTelemetry::Context::Propagation.text_map_getter
34
+ Datadog.logger.error(
35
+ 'Custom getter is not supported. Please inform the `ddtrace` team at ' \
36
+ ' https://github.com/DataDog/dd-trace-rb of your use case so we can best support you. Using the default ' \
37
+ 'OpenTelemetry::Context::Propagation.text_map_getter as a fallback getter.'
38
+ )
39
+ end
40
+
41
+ digest = @datadog_propagator.extract(carrier)
42
+ return context unless digest
43
+
44
+ trace_id = to_otel_id(digest.trace_id)
45
+ span_id = to_otel_id(digest.span_id)
46
+
47
+ if digest.trace_state || digest.trace_flags
48
+ trace_flags = ::OpenTelemetry::Trace::TraceFlags.from_byte(digest.trace_flags)
49
+ tracestate = Tracing::Distributed::TraceContext.new(fetcher: nil).send(:build_tracestate, digest)
50
+ else
51
+ trace_flags = if Tracing::Sampling::PrioritySampler.sampled?(digest.trace_sampling_priority)
52
+ ::OpenTelemetry::Trace::TraceFlags::SAMPLED
53
+ else
54
+ ::OpenTelemetry::Trace::TraceFlags::DEFAULT
55
+ end
56
+ tracestate = ::OpenTelemetry::Trace::Tracestate::DEFAULT
57
+ end
58
+
59
+ span_context = ::OpenTelemetry::Trace::SpanContext.new(
60
+ trace_id: trace_id,
61
+ span_id: span_id,
62
+ trace_flags: trace_flags,
63
+ tracestate: tracestate,
64
+ remote: true
65
+ )
66
+
67
+ span = ::OpenTelemetry::Trace.non_recording_span(span_context)
68
+
69
+ trace = Tracing.continue_trace!(digest)
70
+
71
+ span.datadog_trace = trace
72
+
73
+ ::OpenTelemetry::Trace.context_with_span(span, parent_context: context)
74
+ end
75
+
76
+ # Returns fields set by this propagator.
77
+ # DEV: Doesn't seem like it's used in production Otel code paths.
78
+ def fields
79
+ []
80
+ end
81
+
82
+ private
83
+
84
+ # Converts the {Numeric} Datadog id object to OpenTelemetry's byte array format.
85
+ def to_otel_id(dd_id)
86
+ Array(dd_id).pack('S')
87
+ end
88
+ end
89
+ end
90
+ end
91
+ end
@@ -0,0 +1,92 @@
1
+ # frozen_string_literal: true
2
+ # typed: ignore
3
+
4
+ module Datadog
5
+ module OpenTelemetry
6
+ module SDK
7
+ # Keeps OpenTelemetry spans in sync with the Datadog execution context.
8
+ # Also responsible for flushing spans when their are finished.
9
+ class SpanProcessor
10
+ # Called when a {Span} is started, if the {Span#recording?}
11
+ # returns true.
12
+ #
13
+ # This method is called synchronously on the execution thread, should
14
+ # not throw or block the execution thread.
15
+ #
16
+ # @param [Span] span the {Span} that just started.
17
+ # @param [Context] parent_context the parent {Context} of the newly
18
+ # started span.
19
+ def on_start(span, parent_context)
20
+ create_matching_datadog_span(span, parent_context)
21
+ end
22
+
23
+ # Called when a {Span} is ended, if the {Span#recording?}
24
+ # returns true.
25
+ #
26
+ # This method is called synchronously on the execution thread, should
27
+ # not throw or block the execution thread.
28
+ #
29
+ # @param [Span] span the {Span} that just ended.
30
+ def on_finish(span)
31
+ span.datadog_span.finish
32
+ end
33
+
34
+ # Export all ended spans to the configured `Exporter` that have not yet
35
+ # been exported.
36
+ #
37
+ # This method should only be called in cases where it is absolutely
38
+ # necessary, such as when using some FaaS providers that may suspend
39
+ # the process after an invocation, but before the `Processor` exports
40
+ # the completed spans.
41
+ #
42
+ # @param [optional Numeric] timeout An optional timeout in seconds.
43
+ # @return [Integer] Export::SUCCESS if no error occurred, Export::FAILURE if
44
+ # a non-specific failure occurred, Export::TIMEOUT if a timeout occurred.
45
+ def force_flush(timeout: nil)
46
+ writer.force_flush(timeout: timeout) if writer.respond_to? :force_flush
47
+ Export::SUCCESS
48
+ end
49
+
50
+ # Called when {TracerProvider#shutdown} is called.
51
+ #
52
+ # @param [optional Numeric] timeout An optional timeout in seconds.
53
+ # @return [Integer] Export::SUCCESS if no error occurred, Export::FAILURE if
54
+ # a non-specific failure occurred, Export::TIMEOUT if a timeout occurred.
55
+ def shutdown(timeout: nil)
56
+ writer.stop
57
+ Export::SUCCESS
58
+ end
59
+
60
+ private
61
+
62
+ def writer
63
+ Datadog.configuration.tracing.writer
64
+ end
65
+
66
+ def create_matching_datadog_span(span, parent_context)
67
+ if parent_context.trace
68
+ Tracing.send(:tracer).send(:call_context).activate!(parent_context.ensure_trace)
69
+ else
70
+ Tracing.continue_trace!(nil)
71
+ end
72
+
73
+ datadog_span = start_datadog_span(span)
74
+
75
+ span.datadog_span = datadog_span
76
+ span.datadog_trace = Tracing.active_trace
77
+ end
78
+
79
+ def start_datadog_span(span)
80
+ tags = span.resource.attribute_enumerator.to_h
81
+
82
+ kind = span.kind || 'internal'
83
+ tags[Tracing::Metadata::Ext::TAG_KIND] = kind
84
+
85
+ datadog_span = Tracing.trace(span.name, tags: tags)
86
+ datadog_span.set_error([nil, span.status.description]) unless span.status.ok?
87
+ datadog_span
88
+ end
89
+ end
90
+ end
91
+ end
92
+ end
@@ -0,0 +1,48 @@
1
+ # frozen_string_literal: true
2
+ # typed: ignore
3
+
4
+ # Entrypoint file for OpenTelemetry integration.
5
+ #
6
+ # This file's path is part of the @public_api.
7
+ #
8
+ # OpenTelemetry includes metrics, tracing, logs, and profiling.
9
+ # This file activates the integrations of all OpenTelemetry
10
+ # components supported by Datadog.
11
+
12
+ require_relative 'tracing'
13
+ require_relative 'opentelemetry/api/context'
14
+
15
+ # DEV: Should this be a Contrib integration, that depends on the `opentelemetry-sdk`
16
+ # DEV: and checks for compatibility?
17
+ # DEV: This is different from our existing OpenTracer API, but there are many safety
18
+ # DEV: features built into Contrib instrumentation today.
19
+ require_relative 'opentelemetry/sdk/configurator' if defined?(OpenTelemetry::SDK)
20
+
21
+ module Datadog
22
+ # Datadog OpenTelemetry integration.
23
+ module OpenTelemetry
24
+ # Used by Telemetry to decide if OpenTelemetry instrumentation is enabled
25
+ LOADED = true
26
+
27
+ # Use `Datadog.logger` as the default logger
28
+ def logger
29
+ @logger ||= ::Datadog.logger
30
+ end
31
+
32
+ ::OpenTelemetry.singleton_class.prepend(self)
33
+ end
34
+ end
35
+
36
+ # OpenTelemetry does not wait until the "root" span is finished to flush:
37
+ # the "root" span does not have special influence on flushing order.
38
+ #
39
+ # The "root" OpenTelemetry span might be a span that is never finished, but
40
+ # instead a placeholder for distributed tracing information, and ultimately gets discarded.
41
+ # Consumers of the OpenTelemetry SpanProcessor pipeline are free to flush spans whenever
42
+ # an individual span is finished.
43
+ # Currently, this closely translates to Datadog's partial flushing.
44
+ #
45
+ # @see OpenTelemetry::SDK::Trace::SpanProcessor#on_finish
46
+ Datadog.configure do |c|
47
+ c.tracing.partial_flush.enabled = true
48
+ end
@@ -0,0 +1,26 @@
1
+ # typed: true
2
+
3
+ module Datadog
4
+ module OpenTracer
5
+ # OpenTracing propagator for Datadog::OpenTracer::Tracer
6
+ module BinaryPropagator
7
+ extend Propagator
8
+
9
+ # Inject a SpanContext into the given carrier
10
+ #
11
+ # @param span_context [SpanContext]
12
+ # @param carrier [Carrier] A carrier object of Binary type
13
+ def self.inject(span_context, carrier)
14
+ nil
15
+ end
16
+
17
+ # Extract a SpanContext in Binary format from the given carrier.
18
+ #
19
+ # @param carrier [Carrier] A carrier object of Binary type
20
+ # @return [SpanContext, nil] the extracted SpanContext or nil if none could be found
21
+ def self.extract(carrier)
22
+ SpanContext::NOOP_INSTANCE
23
+ end
24
+ end
25
+ end
26
+ end
@@ -0,0 +1,9 @@
1
+ # typed: strict
2
+
3
+ module Datadog
4
+ module OpenTracer
5
+ # @public_api
6
+ class Carrier < ::OpenTracing::Carrier
7
+ end
8
+ end
9
+ end
@@ -0,0 +1,56 @@
1
+ # typed: true
2
+
3
+ require_relative '../tracing/distributed/datadog'
4
+ require_relative '../tracing/utils'
5
+
6
+ module Datadog
7
+ module OpenTracer
8
+ # DistributedHeaders provides easy access and validation to headers
9
+ # @public_api
10
+ class DistributedHeaders
11
+ def initialize(carrier)
12
+ @carrier = carrier
13
+ end
14
+
15
+ def valid?
16
+ # Sampling priority is optional.
17
+ !trace_id.nil? && !parent_id.nil?
18
+ end
19
+
20
+ def trace_id
21
+ id Tracing::Distributed::Datadog::TRACE_ID_KEY
22
+ end
23
+
24
+ def parent_id
25
+ id Tracing::Distributed::Datadog::PARENT_ID_KEY
26
+ end
27
+
28
+ def sampling_priority
29
+ hdr = @carrier[Tracing::Distributed::Datadog::SAMPLING_PRIORITY_KEY]
30
+ # It's important to make a difference between no header,
31
+ # and a header defined to zero.
32
+ return unless hdr
33
+
34
+ value = hdr.to_i
35
+ return if value < 0
36
+
37
+ value
38
+ end
39
+
40
+ def origin
41
+ hdr = @carrier[Tracing::Distributed::Datadog::ORIGIN_KEY]
42
+ # Only return the value if it is not an empty string
43
+ hdr if hdr != ''
44
+ end
45
+
46
+ private
47
+
48
+ def id(header)
49
+ value = @carrier[header].to_i
50
+ return if value.zero? || value >= Datadog::Tracing::Utils::EXTERNAL_MAX_ID
51
+
52
+ value < 0 ? value + 0x1_0000_0000_0000_0000 : value
53
+ end
54
+ end
55
+ end
56
+ end
@@ -0,0 +1,17 @@
1
+ # typed: true
2
+
3
+ module Datadog
4
+ module OpenTracer
5
+ # Patch for OpenTracing module
6
+ module GlobalTracer
7
+ def global_tracer=(tracer)
8
+ super.tap do
9
+ if tracer.class <= Datadog::OpenTracer::Tracer
10
+ # Update the Datadog global tracer, too.
11
+ Datadog.configure { |c| c.tracing.instance = tracer.datadog_tracer }
12
+ end
13
+ end
14
+ end
15
+ end
16
+ end
17
+ end
@@ -0,0 +1,26 @@
1
+ # typed: false
2
+
3
+ module Datadog
4
+ module OpenTracer
5
+ # OpenTracing propagator for Datadog::OpenTracer::Tracer
6
+ # @abstract
7
+ # @public_api
8
+ module Propagator
9
+ # Inject a SpanContext into the given carrier
10
+ #
11
+ # @param span_context [SpanContext]
12
+ # @param carrier [Carrier] A carrier object of the type dictated by the specified `format`
13
+ def inject(span_context, carrier)
14
+ raise NotImplementedError
15
+ end
16
+
17
+ # Extract a SpanContext in the given format from the given carrier.
18
+ #
19
+ # @param carrier [Carrier] A carrier object of the type dictated by the specified `format`
20
+ # @return [SpanContext, nil] the extracted SpanContext or nil if none could be found
21
+ def extract(carrier)
22
+ raise NotImplementedError
23
+ end
24
+ end
25
+ end
26
+ end