ddtrace 0.52.0 → 1.8.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 (1169) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +701 -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 +353 -0
  24. data/ext/ddtrace_profiling_native_extension/libdatadog_helpers.h +14 -0
  25. data/ext/ddtrace_profiling_native_extension/native_extension_helpers.rb +297 -0
  26. data/ext/ddtrace_profiling_native_extension/private_vm_api_access.c +836 -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 +6521 -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 +198 -0
  47. data/lib/datadog/appsec/configuration.rb +84 -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 +128 -0
  83. data/lib/datadog/appsec/instrumentation/gateway.rb +58 -0
  84. data/lib/datadog/appsec/processor.rb +198 -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 +54 -0
  91. data/lib/datadog/appsec.rb +23 -0
  92. data/lib/datadog/ci/configuration/components.rb +9 -8
  93. data/lib/datadog/ci/configuration/settings.rb +20 -4
  94. data/lib/datadog/ci/contrib/cucumber/configuration/settings.rb +5 -3
  95. data/lib/datadog/ci/contrib/cucumber/ext.rb +2 -0
  96. data/lib/datadog/ci/contrib/cucumber/formatter.rb +9 -13
  97. data/lib/datadog/ci/contrib/cucumber/instrumentation.rb +3 -2
  98. data/lib/datadog/ci/contrib/cucumber/integration.rb +6 -5
  99. data/lib/datadog/ci/contrib/cucumber/patcher.rb +4 -3
  100. data/lib/datadog/ci/contrib/rspec/configuration/settings.rb +5 -3
  101. data/lib/datadog/ci/contrib/rspec/example.rb +9 -13
  102. data/lib/datadog/ci/contrib/rspec/ext.rb +2 -0
  103. data/lib/datadog/ci/contrib/rspec/integration.rb +8 -7
  104. data/lib/datadog/ci/contrib/rspec/patcher.rb +4 -3
  105. data/lib/datadog/ci/ext/app_types.rb +2 -1
  106. data/lib/datadog/ci/ext/environment.rb +189 -115
  107. data/lib/datadog/ci/ext/settings.rb +2 -1
  108. data/lib/datadog/ci/ext/test.rb +2 -0
  109. data/lib/datadog/ci/extensions.rb +7 -6
  110. data/lib/datadog/ci/flush.rb +38 -0
  111. data/lib/datadog/ci/test.rb +22 -16
  112. data/lib/datadog/ci.rb +7 -4
  113. data/lib/datadog/core/buffer/cruby.rb +55 -0
  114. data/lib/datadog/core/buffer/random.rb +134 -0
  115. data/lib/datadog/core/buffer/thread_safe.rb +58 -0
  116. data/lib/datadog/core/chunker.rb +35 -0
  117. data/lib/datadog/core/configuration/agent_settings_resolver.rb +362 -0
  118. data/lib/datadog/core/configuration/base.rb +98 -0
  119. data/lib/datadog/core/configuration/components.rb +462 -0
  120. data/lib/datadog/core/configuration/dependency_resolver.rb +28 -0
  121. data/lib/datadog/core/configuration/ext.rb +18 -0
  122. data/lib/datadog/core/configuration/option.rb +69 -0
  123. data/lib/datadog/core/configuration/option_definition.rb +126 -0
  124. data/lib/datadog/core/configuration/option_definition_set.rb +22 -0
  125. data/lib/datadog/core/configuration/option_set.rb +10 -0
  126. data/lib/datadog/core/configuration/options.rb +118 -0
  127. data/lib/datadog/core/configuration/settings.rb +444 -0
  128. data/lib/datadog/core/configuration.rb +289 -0
  129. data/lib/datadog/core/diagnostics/environment_logger.rb +287 -0
  130. data/lib/datadog/core/diagnostics/health.rb +19 -0
  131. data/lib/datadog/core/encoding.rb +76 -0
  132. data/lib/datadog/core/environment/cgroup.rb +5 -2
  133. data/lib/datadog/core/environment/class_count.rb +1 -0
  134. data/lib/datadog/core/environment/container.rb +4 -2
  135. data/lib/datadog/core/environment/ext.rb +29 -10
  136. data/lib/datadog/core/environment/gc.rb +1 -0
  137. data/lib/datadog/core/environment/identity.rb +12 -5
  138. data/lib/datadog/core/environment/platform.rb +40 -0
  139. data/lib/datadog/core/environment/socket.rb +9 -2
  140. data/lib/datadog/core/environment/thread_count.rb +1 -0
  141. data/lib/datadog/core/environment/variable_helpers.rb +85 -11
  142. data/lib/datadog/core/environment/vm_cache.rb +47 -0
  143. data/lib/datadog/core/error.rb +101 -0
  144. data/lib/datadog/core/extensions.rb +16 -0
  145. data/lib/datadog/core/git/ext.rb +35 -0
  146. data/lib/datadog/core/header_collection.rb +41 -0
  147. data/lib/datadog/core/logger.rb +46 -0
  148. data/lib/datadog/core/logging/ext.rb +11 -0
  149. data/lib/datadog/core/metrics/client.rb +198 -0
  150. data/lib/datadog/core/metrics/ext.rb +20 -0
  151. data/lib/datadog/core/metrics/helpers.rb +25 -0
  152. data/lib/datadog/core/metrics/logging.rb +44 -0
  153. data/lib/datadog/core/metrics/metric.rb +14 -0
  154. data/lib/datadog/core/metrics/options.rb +50 -0
  155. data/lib/datadog/core/pin.rb +75 -0
  156. data/lib/datadog/core/runtime/ext.rb +28 -0
  157. data/lib/datadog/core/runtime/metrics.rb +126 -0
  158. data/lib/datadog/core/telemetry/client.rb +79 -0
  159. data/lib/datadog/core/telemetry/collector.rb +232 -0
  160. data/lib/datadog/core/telemetry/emitter.rb +48 -0
  161. data/lib/datadog/core/telemetry/event.rb +71 -0
  162. data/lib/datadog/core/telemetry/ext.rb +11 -0
  163. data/lib/datadog/core/telemetry/heartbeat.rb +37 -0
  164. data/lib/datadog/core/telemetry/http/adapters/net.rb +113 -0
  165. data/lib/datadog/core/telemetry/http/env.rb +20 -0
  166. data/lib/datadog/core/telemetry/http/ext.rb +20 -0
  167. data/lib/datadog/core/telemetry/http/response.rb +68 -0
  168. data/lib/datadog/core/telemetry/http/transport.rb +53 -0
  169. data/lib/datadog/core/telemetry/v1/app_event.rb +52 -0
  170. data/lib/datadog/core/telemetry/v1/application.rb +86 -0
  171. data/lib/datadog/core/telemetry/v1/configuration.rb +25 -0
  172. data/lib/datadog/core/telemetry/v1/dependency.rb +36 -0
  173. data/lib/datadog/core/telemetry/v1/host.rb +51 -0
  174. data/lib/datadog/core/telemetry/v1/integration.rb +58 -0
  175. data/lib/datadog/core/telemetry/v1/product.rb +28 -0
  176. data/lib/datadog/core/telemetry/v1/telemetry_request.rb +100 -0
  177. data/lib/datadog/core/utils/compression.rb +36 -0
  178. data/lib/datadog/core/utils/forking.rb +63 -0
  179. data/lib/datadog/core/utils/object_set.rb +43 -0
  180. data/lib/datadog/core/utils/only_once.rb +44 -0
  181. data/lib/datadog/core/utils/safe_dup.rb +27 -0
  182. data/lib/datadog/core/utils/sequence.rb +26 -0
  183. data/lib/datadog/core/utils/string_table.rb +49 -0
  184. data/lib/datadog/core/utils/time.rb +54 -0
  185. data/lib/datadog/core/utils.rb +94 -0
  186. data/lib/datadog/core/vendor/multipart-post/multipart/post/composite_read_io.rb +120 -0
  187. data/lib/datadog/core/vendor/multipart-post/multipart/post/multipartable.rb +61 -0
  188. data/lib/datadog/core/vendor/multipart-post/multipart/post/parts.rb +139 -0
  189. data/lib/datadog/core/vendor/multipart-post/multipart/post/version.rb +13 -0
  190. data/lib/datadog/core/vendor/multipart-post/multipart/post.rb +12 -0
  191. data/lib/datadog/core/vendor/multipart-post/multipart.rb +16 -0
  192. data/lib/datadog/core/vendor/multipart-post/net/http/post/multipart.rb +36 -0
  193. data/lib/datadog/core/worker.rb +24 -0
  194. data/lib/datadog/core/workers/async.rb +180 -0
  195. data/lib/datadog/core/workers/interval_loop.rb +119 -0
  196. data/lib/datadog/core/workers/polling.rb +59 -0
  197. data/lib/datadog/core/workers/queue.rb +44 -0
  198. data/lib/datadog/core/workers/runtime_metrics.rb +62 -0
  199. data/lib/datadog/core.rb +46 -0
  200. data/lib/datadog/kit/enable_core_dumps.rb +50 -0
  201. data/lib/datadog/kit/identity.rb +63 -0
  202. data/lib/datadog/kit.rb +11 -0
  203. data/lib/datadog/opentracer/binary_propagator.rb +26 -0
  204. data/lib/datadog/opentracer/carrier.rb +9 -0
  205. data/lib/datadog/opentracer/distributed_headers.rb +56 -0
  206. data/lib/datadog/opentracer/global_tracer.rb +17 -0
  207. data/lib/datadog/opentracer/propagator.rb +26 -0
  208. data/lib/datadog/opentracer/rack_propagator.rb +73 -0
  209. data/lib/datadog/opentracer/scope.rb +18 -0
  210. data/lib/datadog/opentracer/scope_manager.rb +9 -0
  211. data/lib/datadog/opentracer/span.rb +101 -0
  212. data/lib/datadog/opentracer/span_context.rb +19 -0
  213. data/lib/datadog/opentracer/span_context_factory.rb +27 -0
  214. data/lib/datadog/opentracer/text_map_propagator.rb +88 -0
  215. data/lib/datadog/opentracer/thread_local_scope.rb +34 -0
  216. data/lib/datadog/opentracer/thread_local_scope_manager.rb +66 -0
  217. data/lib/datadog/opentracer/tracer.rb +214 -0
  218. data/lib/datadog/opentracer.rb +24 -0
  219. data/lib/datadog/profiling/backtrace_location.rb +34 -0
  220. data/lib/datadog/profiling/buffer.rb +43 -0
  221. data/lib/datadog/profiling/collectors/code_provenance.rb +115 -0
  222. data/lib/datadog/profiling/collectors/cpu_and_wall_time.rb +43 -0
  223. data/lib/datadog/profiling/collectors/cpu_and_wall_time_worker.rb +91 -0
  224. data/lib/datadog/profiling/collectors/dynamic_sampling_rate.rb +14 -0
  225. data/lib/datadog/profiling/collectors/idle_sampling_helper.rb +68 -0
  226. data/lib/datadog/profiling/collectors/old_stack.rb +305 -0
  227. data/lib/datadog/profiling/collectors/stack.rb +13 -0
  228. data/lib/datadog/profiling/encoding/profile.rb +43 -0
  229. data/lib/datadog/profiling/event.rb +15 -0
  230. data/lib/datadog/profiling/events/stack.rb +82 -0
  231. data/lib/datadog/profiling/exporter.rb +85 -0
  232. data/lib/datadog/profiling/ext/forking.rb +98 -0
  233. data/lib/datadog/profiling/ext.rb +45 -0
  234. data/lib/datadog/profiling/flush.rb +38 -0
  235. data/lib/datadog/profiling/http_transport.rb +132 -0
  236. data/lib/datadog/profiling/load_native_extension.rb +22 -0
  237. data/lib/datadog/profiling/native_extension.rb +41 -0
  238. data/lib/datadog/profiling/old_recorder.rb +109 -0
  239. data/lib/datadog/profiling/pprof/builder.rb +127 -0
  240. data/lib/datadog/profiling/pprof/converter.rb +104 -0
  241. data/lib/datadog/profiling/pprof/message_set.rb +16 -0
  242. data/lib/datadog/profiling/pprof/payload.rb +20 -0
  243. data/lib/datadog/profiling/pprof/pprof_pb.rb +83 -0
  244. data/lib/datadog/profiling/pprof/stack_sample.rb +141 -0
  245. data/lib/datadog/profiling/pprof/string_table.rb +12 -0
  246. data/lib/datadog/profiling/pprof/template.rb +120 -0
  247. data/lib/datadog/profiling/preload.rb +5 -0
  248. data/lib/datadog/profiling/profiler.rb +41 -0
  249. data/lib/datadog/profiling/scheduler.rb +130 -0
  250. data/lib/datadog/profiling/stack_recorder.rb +79 -0
  251. data/lib/datadog/profiling/tag_builder.rb +53 -0
  252. data/lib/datadog/profiling/tasks/exec.rb +50 -0
  253. data/lib/datadog/profiling/tasks/help.rb +18 -0
  254. data/lib/datadog/profiling/tasks/setup.rb +86 -0
  255. data/lib/datadog/profiling/trace_identifiers/ddtrace.rb +45 -0
  256. data/lib/datadog/profiling/trace_identifiers/helper.rb +47 -0
  257. data/lib/datadog/profiling.rb +173 -0
  258. data/lib/datadog/tracing/analytics.rb +25 -0
  259. data/lib/datadog/tracing/buffer.rb +132 -0
  260. data/lib/datadog/tracing/client_ip.rb +164 -0
  261. data/lib/datadog/tracing/configuration/ext.rb +95 -0
  262. data/lib/datadog/tracing/configuration/settings.rb +433 -0
  263. data/lib/datadog/tracing/context.rb +68 -0
  264. data/lib/datadog/tracing/context_provider.rb +82 -0
  265. data/lib/datadog/tracing/contrib/action_cable/configuration/settings.rb +35 -0
  266. data/lib/datadog/tracing/contrib/action_cable/event.rb +71 -0
  267. data/lib/datadog/tracing/contrib/action_cable/events/broadcast.rb +58 -0
  268. data/lib/datadog/tracing/contrib/action_cable/events/perform_action.rb +63 -0
  269. data/lib/datadog/tracing/contrib/action_cable/events/transmit.rb +59 -0
  270. data/lib/datadog/tracing/contrib/action_cable/events.rb +37 -0
  271. data/lib/datadog/tracing/contrib/action_cable/ext.rb +32 -0
  272. data/lib/datadog/tracing/contrib/action_cable/instrumentation.rb +90 -0
  273. data/lib/datadog/tracing/contrib/action_cable/integration.rb +50 -0
  274. data/lib/datadog/tracing/contrib/action_cable/patcher.rb +31 -0
  275. data/lib/datadog/tracing/contrib/action_mailer/configuration/settings.rb +36 -0
  276. data/lib/datadog/tracing/contrib/action_mailer/event.rb +52 -0
  277. data/lib/datadog/tracing/contrib/action_mailer/events/deliver.rb +60 -0
  278. data/lib/datadog/tracing/contrib/action_mailer/events/process.rb +47 -0
  279. data/lib/datadog/tracing/contrib/action_mailer/events.rb +34 -0
  280. data/lib/datadog/tracing/contrib/action_mailer/ext.rb +33 -0
  281. data/lib/datadog/tracing/contrib/action_mailer/integration.rb +50 -0
  282. data/lib/datadog/tracing/contrib/action_mailer/patcher.rb +29 -0
  283. data/lib/datadog/tracing/contrib/action_pack/action_controller/instrumentation.rb +160 -0
  284. data/lib/datadog/tracing/contrib/action_pack/action_controller/patcher.rb +29 -0
  285. data/lib/datadog/tracing/contrib/action_pack/configuration/settings.rb +36 -0
  286. data/lib/datadog/tracing/contrib/action_pack/ext.rb +22 -0
  287. data/lib/datadog/tracing/contrib/action_pack/integration.rb +50 -0
  288. data/lib/datadog/tracing/contrib/action_pack/patcher.rb +27 -0
  289. data/lib/datadog/tracing/contrib/action_pack/utils.rb +40 -0
  290. data/lib/datadog/tracing/contrib/action_view/configuration/settings.rb +36 -0
  291. data/lib/datadog/tracing/contrib/action_view/event.rb +35 -0
  292. data/lib/datadog/tracing/contrib/action_view/events/render_partial.rb +54 -0
  293. data/lib/datadog/tracing/contrib/action_view/events/render_template.rb +57 -0
  294. data/lib/datadog/tracing/contrib/action_view/events.rb +34 -0
  295. data/lib/datadog/tracing/contrib/action_view/ext.rb +24 -0
  296. data/lib/datadog/tracing/contrib/action_view/instrumentation/partial_renderer.rb +78 -0
  297. data/lib/datadog/tracing/contrib/action_view/instrumentation/template_renderer.rb +91 -0
  298. data/lib/datadog/tracing/contrib/action_view/integration.rb +57 -0
  299. data/lib/datadog/tracing/contrib/action_view/patcher.rb +47 -0
  300. data/lib/datadog/tracing/contrib/action_view/utils.rb +36 -0
  301. data/lib/datadog/tracing/contrib/active_job/configuration/settings.rb +37 -0
  302. data/lib/datadog/tracing/contrib/active_job/event.rb +58 -0
  303. data/lib/datadog/tracing/contrib/active_job/events/discard.rb +50 -0
  304. data/lib/datadog/tracing/contrib/active_job/events/enqueue.rb +49 -0
  305. data/lib/datadog/tracing/contrib/active_job/events/enqueue_at.rb +49 -0
  306. data/lib/datadog/tracing/contrib/active_job/events/enqueue_retry.rb +51 -0
  307. data/lib/datadog/tracing/contrib/active_job/events/perform.rb +49 -0
  308. data/lib/datadog/tracing/contrib/active_job/events/retry_stopped.rb +50 -0
  309. data/lib/datadog/tracing/contrib/active_job/events.rb +42 -0
  310. data/lib/datadog/tracing/contrib/active_job/ext.rb +39 -0
  311. data/lib/datadog/tracing/contrib/active_job/integration.rb +50 -0
  312. data/lib/datadog/tracing/contrib/active_job/log_injection.rb +24 -0
  313. data/lib/datadog/tracing/contrib/active_job/patcher.rb +36 -0
  314. data/lib/datadog/tracing/contrib/active_model_serializers/configuration/settings.rb +33 -0
  315. data/lib/datadog/tracing/contrib/active_model_serializers/event.rb +68 -0
  316. data/lib/datadog/tracing/contrib/active_model_serializers/events/render.rb +45 -0
  317. data/lib/datadog/tracing/contrib/active_model_serializers/events/serialize.rb +47 -0
  318. data/lib/datadog/tracing/contrib/active_model_serializers/events.rb +34 -0
  319. data/lib/datadog/tracing/contrib/active_model_serializers/ext.rb +24 -0
  320. data/lib/datadog/tracing/contrib/active_model_serializers/integration.rb +45 -0
  321. data/lib/datadog/tracing/contrib/active_model_serializers/patcher.rb +32 -0
  322. data/lib/datadog/tracing/contrib/active_record/configuration/makara_resolver.rb +36 -0
  323. data/lib/datadog/tracing/contrib/active_record/configuration/resolver.rb +138 -0
  324. data/lib/datadog/tracing/contrib/active_record/configuration/settings.rb +39 -0
  325. data/lib/datadog/tracing/contrib/active_record/event.rb +30 -0
  326. data/lib/datadog/tracing/contrib/active_record/events/instantiation.rb +58 -0
  327. data/lib/datadog/tracing/contrib/active_record/events/sql.rb +78 -0
  328. data/lib/datadog/tracing/contrib/active_record/events.rb +34 -0
  329. data/lib/datadog/tracing/contrib/active_record/ext.rb +29 -0
  330. data/lib/datadog/tracing/contrib/active_record/integration.rb +56 -0
  331. data/lib/datadog/tracing/contrib/active_record/patcher.rb +27 -0
  332. data/lib/datadog/tracing/contrib/active_record/utils.rb +128 -0
  333. data/lib/datadog/tracing/contrib/active_record/vendor/connection_specification.rb +307 -0
  334. data/lib/datadog/tracing/contrib/active_support/cache/instrumentation.rb +280 -0
  335. data/lib/datadog/tracing/contrib/active_support/cache/patcher.rb +73 -0
  336. data/lib/datadog/tracing/contrib/active_support/cache/redis.rb +47 -0
  337. data/lib/datadog/tracing/contrib/active_support/configuration/settings.rb +35 -0
  338. data/lib/datadog/tracing/contrib/active_support/ext.rb +31 -0
  339. data/lib/datadog/tracing/contrib/active_support/integration.rb +51 -0
  340. data/lib/datadog/tracing/contrib/active_support/notifications/event.rb +71 -0
  341. data/lib/datadog/tracing/contrib/active_support/notifications/subscriber.rb +71 -0
  342. data/lib/datadog/tracing/contrib/active_support/notifications/subscription.rb +164 -0
  343. data/lib/datadog/tracing/contrib/active_support/patcher.rb +27 -0
  344. data/lib/datadog/tracing/contrib/analytics.rb +29 -0
  345. data/lib/datadog/tracing/contrib/auto_instrument.rb +53 -0
  346. data/lib/datadog/tracing/contrib/aws/configuration/settings.rb +38 -0
  347. data/lib/datadog/tracing/contrib/aws/ext.rb +28 -0
  348. data/lib/datadog/tracing/contrib/aws/instrumentation.rb +96 -0
  349. data/lib/datadog/tracing/contrib/aws/integration.rb +47 -0
  350. data/lib/datadog/tracing/contrib/aws/parsed_context.rb +60 -0
  351. data/lib/datadog/tracing/contrib/aws/patcher.rb +57 -0
  352. data/lib/datadog/tracing/contrib/aws/services.rb +121 -0
  353. data/lib/datadog/tracing/contrib/concurrent_ruby/configuration/settings.rb +23 -0
  354. data/lib/datadog/tracing/contrib/concurrent_ruby/context_composite_executor_service.rb +53 -0
  355. data/lib/datadog/tracing/contrib/concurrent_ruby/ext.rb +16 -0
  356. data/lib/datadog/tracing/contrib/concurrent_ruby/future_patch.rb +27 -0
  357. data/lib/datadog/tracing/contrib/concurrent_ruby/integration.rb +43 -0
  358. data/lib/datadog/tracing/contrib/concurrent_ruby/patcher.rb +33 -0
  359. data/lib/datadog/tracing/contrib/configurable.rb +102 -0
  360. data/lib/datadog/tracing/contrib/configuration/resolver.rb +85 -0
  361. data/lib/datadog/tracing/contrib/configuration/resolvers/pattern_resolver.rb +43 -0
  362. data/lib/datadog/tracing/contrib/configuration/settings.rb +43 -0
  363. data/lib/datadog/tracing/contrib/dalli/configuration/settings.rb +38 -0
  364. data/lib/datadog/tracing/contrib/dalli/ext.rb +26 -0
  365. data/lib/datadog/tracing/contrib/dalli/instrumentation.rb +61 -0
  366. data/lib/datadog/tracing/contrib/dalli/integration.rb +52 -0
  367. data/lib/datadog/tracing/contrib/dalli/patcher.rb +28 -0
  368. data/lib/datadog/tracing/contrib/dalli/quantize.rb +26 -0
  369. data/lib/datadog/tracing/contrib/delayed_job/configuration/settings.rb +38 -0
  370. data/lib/datadog/tracing/contrib/delayed_job/ext.rb +28 -0
  371. data/lib/datadog/tracing/contrib/delayed_job/integration.rb +43 -0
  372. data/lib/datadog/tracing/contrib/delayed_job/patcher.rb +37 -0
  373. data/lib/datadog/tracing/contrib/delayed_job/plugin.rb +104 -0
  374. data/lib/datadog/tracing/contrib/delayed_job/server_internal_tracer/worker.rb +32 -0
  375. data/lib/datadog/tracing/contrib/elasticsearch/configuration/settings.rb +40 -0
  376. data/lib/datadog/tracing/contrib/elasticsearch/ext.rb +29 -0
  377. data/lib/datadog/tracing/contrib/elasticsearch/integration.rb +50 -0
  378. data/lib/datadog/tracing/contrib/elasticsearch/patcher.rb +153 -0
  379. data/lib/datadog/tracing/contrib/elasticsearch/quantize.rb +89 -0
  380. data/lib/datadog/tracing/contrib/ethon/configuration/settings.rb +42 -0
  381. data/lib/datadog/tracing/contrib/ethon/easy_patch.rb +176 -0
  382. data/lib/datadog/tracing/contrib/ethon/ext.rb +25 -0
  383. data/lib/datadog/tracing/contrib/ethon/integration.rb +48 -0
  384. data/lib/datadog/tracing/contrib/ethon/multi_patch.rb +97 -0
  385. data/lib/datadog/tracing/contrib/ethon/patcher.rb +31 -0
  386. data/lib/datadog/tracing/contrib/excon/configuration/settings.rb +42 -0
  387. data/lib/datadog/tracing/contrib/excon/ext.rb +22 -0
  388. data/lib/datadog/tracing/contrib/excon/integration.rb +48 -0
  389. data/lib/datadog/tracing/contrib/excon/middleware.rb +171 -0
  390. data/lib/datadog/tracing/contrib/excon/patcher.rb +31 -0
  391. data/lib/datadog/tracing/contrib/ext.rb +25 -0
  392. data/lib/datadog/tracing/contrib/extensions.rb +199 -0
  393. data/lib/datadog/tracing/contrib/faraday/configuration/settings.rb +46 -0
  394. data/lib/datadog/tracing/contrib/faraday/connection.rb +22 -0
  395. data/lib/datadog/tracing/contrib/faraday/ext.rb +22 -0
  396. data/lib/datadog/tracing/contrib/faraday/integration.rb +48 -0
  397. data/lib/datadog/tracing/contrib/faraday/middleware.rb +93 -0
  398. data/lib/datadog/tracing/contrib/faraday/patcher.rb +56 -0
  399. data/lib/datadog/tracing/contrib/faraday/rack_builder.rb +22 -0
  400. data/lib/datadog/tracing/contrib/grape/configuration/settings.rb +42 -0
  401. data/lib/datadog/tracing/contrib/grape/endpoint.rb +250 -0
  402. data/lib/datadog/tracing/contrib/grape/ext.rb +28 -0
  403. data/lib/datadog/tracing/contrib/grape/instrumentation.rb +37 -0
  404. data/lib/datadog/tracing/contrib/grape/integration.rb +44 -0
  405. data/lib/datadog/tracing/contrib/grape/patcher.rb +33 -0
  406. data/lib/datadog/tracing/contrib/graphql/configuration/settings.rb +36 -0
  407. data/lib/datadog/tracing/contrib/graphql/ext.rb +19 -0
  408. data/lib/datadog/tracing/contrib/graphql/integration.rb +44 -0
  409. data/lib/datadog/tracing/contrib/graphql/patcher.rb +90 -0
  410. data/lib/datadog/tracing/contrib/grpc/configuration/settings.rb +43 -0
  411. data/lib/datadog/tracing/contrib/grpc/datadog_interceptor/client.rb +99 -0
  412. data/lib/datadog/tracing/contrib/grpc/datadog_interceptor/server.rb +90 -0
  413. data/lib/datadog/tracing/contrib/grpc/datadog_interceptor.rb +107 -0
  414. data/lib/datadog/tracing/contrib/grpc/distributed/fetcher.rb +27 -0
  415. data/lib/datadog/tracing/contrib/grpc/distributed/propagation.rb +43 -0
  416. data/lib/datadog/tracing/contrib/grpc/ext.rb +27 -0
  417. data/lib/datadog/tracing/contrib/grpc/integration.rb +43 -0
  418. data/lib/datadog/tracing/contrib/grpc/intercept_with_datadog.rb +53 -0
  419. data/lib/datadog/tracing/contrib/grpc/patcher.rb +35 -0
  420. data/lib/datadog/tracing/contrib/hanami/action_tracer.rb +47 -0
  421. data/lib/datadog/tracing/contrib/hanami/configuration/settings.rb +22 -0
  422. data/lib/datadog/tracing/contrib/hanami/ext.rb +24 -0
  423. data/lib/datadog/tracing/contrib/hanami/integration.rb +44 -0
  424. data/lib/datadog/tracing/contrib/hanami/patcher.rb +33 -0
  425. data/lib/datadog/tracing/contrib/hanami/plugin.rb +23 -0
  426. data/lib/datadog/tracing/contrib/hanami/renderer_policy_tracing.rb +41 -0
  427. data/lib/datadog/tracing/contrib/hanami/router_tracing.rb +44 -0
  428. data/lib/datadog/tracing/contrib/http/circuit_breaker.rb +43 -0
  429. data/lib/datadog/tracing/contrib/http/configuration/settings.rb +42 -0
  430. data/lib/datadog/tracing/contrib/http/distributed/fetcher.rb +32 -0
  431. data/lib/datadog/tracing/contrib/http/distributed/propagation.rb +38 -0
  432. data/lib/datadog/tracing/contrib/http/ext.rb +22 -0
  433. data/lib/datadog/tracing/contrib/http/instrumentation.rb +140 -0
  434. data/lib/datadog/tracing/contrib/http/integration.rb +49 -0
  435. data/lib/datadog/tracing/contrib/http/patcher.rb +30 -0
  436. data/lib/datadog/tracing/contrib/http_annotation_helper.rb +17 -0
  437. data/lib/datadog/tracing/contrib/httpclient/configuration/settings.rb +42 -0
  438. data/lib/datadog/tracing/contrib/httpclient/ext.rb +22 -0
  439. data/lib/datadog/tracing/contrib/httpclient/instrumentation.rb +118 -0
  440. data/lib/datadog/tracing/contrib/httpclient/integration.rb +48 -0
  441. data/lib/datadog/tracing/contrib/httpclient/patcher.rb +42 -0
  442. data/lib/datadog/tracing/contrib/httprb/configuration/settings.rb +42 -0
  443. data/lib/datadog/tracing/contrib/httprb/ext.rb +22 -0
  444. data/lib/datadog/tracing/contrib/httprb/instrumentation.rb +129 -0
  445. data/lib/datadog/tracing/contrib/httprb/integration.rb +48 -0
  446. data/lib/datadog/tracing/contrib/httprb/patcher.rb +42 -0
  447. data/lib/datadog/tracing/contrib/integration.rb +78 -0
  448. data/lib/datadog/tracing/contrib/kafka/configuration/settings.rb +35 -0
  449. data/lib/datadog/tracing/contrib/kafka/consumer_event.rb +19 -0
  450. data/lib/datadog/tracing/contrib/kafka/consumer_group_event.rb +18 -0
  451. data/lib/datadog/tracing/contrib/kafka/event.rb +52 -0
  452. data/lib/datadog/tracing/contrib/kafka/events/connection/request.rb +42 -0
  453. data/lib/datadog/tracing/contrib/kafka/events/consumer/process_batch.rb +49 -0
  454. data/lib/datadog/tracing/contrib/kafka/events/consumer/process_message.rb +47 -0
  455. data/lib/datadog/tracing/contrib/kafka/events/consumer_group/heartbeat.rb +47 -0
  456. data/lib/datadog/tracing/contrib/kafka/events/consumer_group/join_group.rb +37 -0
  457. data/lib/datadog/tracing/contrib/kafka/events/consumer_group/leave_group.rb +37 -0
  458. data/lib/datadog/tracing/contrib/kafka/events/consumer_group/sync_group.rb +37 -0
  459. data/lib/datadog/tracing/contrib/kafka/events/produce_operation/send_messages.rb +41 -0
  460. data/lib/datadog/tracing/contrib/kafka/events/producer/deliver_messages.rb +44 -0
  461. data/lib/datadog/tracing/contrib/kafka/events.rb +48 -0
  462. data/lib/datadog/tracing/contrib/kafka/ext.rb +52 -0
  463. data/lib/datadog/tracing/contrib/kafka/integration.rb +44 -0
  464. data/lib/datadog/tracing/contrib/kafka/patcher.rb +29 -0
  465. data/lib/datadog/tracing/contrib/lograge/configuration/settings.rb +23 -0
  466. data/lib/datadog/tracing/contrib/lograge/ext.rb +15 -0
  467. data/lib/datadog/tracing/contrib/lograge/instrumentation.rb +46 -0
  468. data/lib/datadog/tracing/contrib/lograge/integration.rb +50 -0
  469. data/lib/datadog/tracing/contrib/lograge/patcher.rb +29 -0
  470. data/lib/datadog/tracing/contrib/mongodb/configuration/settings.rb +42 -0
  471. data/lib/datadog/tracing/contrib/mongodb/ext.rb +35 -0
  472. data/lib/datadog/tracing/contrib/mongodb/instrumentation.rb +47 -0
  473. data/lib/datadog/tracing/contrib/mongodb/integration.rb +48 -0
  474. data/lib/datadog/tracing/contrib/mongodb/parsers.rb +49 -0
  475. data/lib/datadog/tracing/contrib/mongodb/patcher.rb +34 -0
  476. data/lib/datadog/tracing/contrib/mongodb/subscribers.rb +127 -0
  477. data/lib/datadog/tracing/contrib/mysql2/configuration/settings.rb +50 -0
  478. data/lib/datadog/tracing/contrib/mysql2/ext.rb +24 -0
  479. data/lib/datadog/tracing/contrib/mysql2/instrumentation.rb +77 -0
  480. data/lib/datadog/tracing/contrib/mysql2/integration.rb +43 -0
  481. data/lib/datadog/tracing/contrib/mysql2/patcher.rb +31 -0
  482. data/lib/datadog/tracing/contrib/patchable.rb +109 -0
  483. data/lib/datadog/tracing/contrib/patcher.rb +86 -0
  484. data/lib/datadog/tracing/contrib/pg/configuration/settings.rb +50 -0
  485. data/lib/datadog/tracing/contrib/pg/ext.rb +33 -0
  486. data/lib/datadog/tracing/contrib/pg/instrumentation.rb +155 -0
  487. data/lib/datadog/tracing/contrib/pg/integration.rb +43 -0
  488. data/lib/datadog/tracing/contrib/pg/patcher.rb +31 -0
  489. data/lib/datadog/tracing/contrib/presto/configuration/settings.rb +38 -0
  490. data/lib/datadog/tracing/contrib/presto/ext.rb +33 -0
  491. data/lib/datadog/tracing/contrib/presto/instrumentation.rb +124 -0
  492. data/lib/datadog/tracing/contrib/presto/integration.rb +43 -0
  493. data/lib/datadog/tracing/contrib/presto/patcher.rb +37 -0
  494. data/lib/datadog/tracing/contrib/propagation/sql_comment/comment.rb +43 -0
  495. data/lib/datadog/tracing/contrib/propagation/sql_comment/ext.rb +33 -0
  496. data/lib/datadog/tracing/contrib/propagation/sql_comment/mode.rb +28 -0
  497. data/lib/datadog/tracing/contrib/propagation/sql_comment.rb +47 -0
  498. data/lib/datadog/tracing/contrib/qless/configuration/settings.rb +40 -0
  499. data/lib/datadog/tracing/contrib/qless/ext.rb +26 -0
  500. data/lib/datadog/tracing/contrib/qless/integration.rb +43 -0
  501. data/lib/datadog/tracing/contrib/qless/patcher.rb +37 -0
  502. data/lib/datadog/tracing/contrib/qless/qless_job.rb +74 -0
  503. data/lib/datadog/tracing/contrib/qless/tracer_cleaner.rb +30 -0
  504. data/lib/datadog/tracing/contrib/que/configuration/settings.rb +49 -0
  505. data/lib/datadog/tracing/contrib/que/ext.rb +34 -0
  506. data/lib/datadog/tracing/contrib/que/integration.rb +46 -0
  507. data/lib/datadog/tracing/contrib/que/patcher.rb +28 -0
  508. data/lib/datadog/tracing/contrib/que/tracer.rb +63 -0
  509. data/lib/datadog/tracing/contrib/racecar/configuration/settings.rb +35 -0
  510. data/lib/datadog/tracing/contrib/racecar/event.rb +78 -0
  511. data/lib/datadog/tracing/contrib/racecar/events/batch.rb +38 -0
  512. data/lib/datadog/tracing/contrib/racecar/events/consume.rb +35 -0
  513. data/lib/datadog/tracing/contrib/racecar/events/message.rb +38 -0
  514. data/lib/datadog/tracing/contrib/racecar/events.rb +36 -0
  515. data/lib/datadog/tracing/contrib/racecar/ext.rb +31 -0
  516. data/lib/datadog/tracing/contrib/racecar/integration.rb +44 -0
  517. data/lib/datadog/tracing/contrib/racecar/patcher.rb +29 -0
  518. data/lib/datadog/tracing/contrib/rack/configuration/settings.rb +51 -0
  519. data/lib/datadog/tracing/contrib/rack/ext.rb +25 -0
  520. data/lib/datadog/tracing/contrib/rack/header_collection.rb +35 -0
  521. data/lib/datadog/tracing/contrib/rack/integration.rb +50 -0
  522. data/lib/datadog/tracing/contrib/rack/middlewares.rb +323 -0
  523. data/lib/datadog/tracing/contrib/rack/patcher.rb +119 -0
  524. data/lib/datadog/tracing/contrib/rack/request_queue.rb +48 -0
  525. data/lib/datadog/tracing/contrib/rails/auto_instrument_railtie.rb +12 -0
  526. data/lib/datadog/tracing/contrib/rails/configuration/settings.rb +74 -0
  527. data/lib/datadog/tracing/contrib/rails/ext.rb +19 -0
  528. data/lib/datadog/tracing/contrib/rails/framework.rb +148 -0
  529. data/lib/datadog/tracing/contrib/rails/integration.rb +49 -0
  530. data/lib/datadog/tracing/contrib/rails/log_injection.rb +32 -0
  531. data/lib/datadog/tracing/contrib/rails/middlewares.rb +46 -0
  532. data/lib/datadog/tracing/contrib/rails/patcher.rb +120 -0
  533. data/lib/datadog/tracing/contrib/rails/railtie.rb +19 -0
  534. data/lib/datadog/tracing/contrib/rails/utils.rb +28 -0
  535. data/lib/datadog/tracing/contrib/rake/configuration/settings.rb +51 -0
  536. data/lib/datadog/tracing/contrib/rake/ext.rb +26 -0
  537. data/lib/datadog/tracing/contrib/rake/instrumentation.rb +103 -0
  538. data/lib/datadog/tracing/contrib/rake/integration.rb +43 -0
  539. data/lib/datadog/tracing/contrib/rake/patcher.rb +33 -0
  540. data/lib/datadog/tracing/contrib/redis/configuration/resolver.rb +49 -0
  541. data/lib/datadog/tracing/contrib/redis/configuration/settings.rb +43 -0
  542. data/lib/datadog/tracing/contrib/redis/ext.rb +29 -0
  543. data/lib/datadog/tracing/contrib/redis/instrumentation.rb +88 -0
  544. data/lib/datadog/tracing/contrib/redis/integration.rb +80 -0
  545. data/lib/datadog/tracing/contrib/redis/patcher.rb +79 -0
  546. data/lib/datadog/tracing/contrib/redis/quantize.rb +82 -0
  547. data/lib/datadog/tracing/contrib/redis/tags.rb +56 -0
  548. data/lib/datadog/tracing/contrib/redis/trace_middleware.rb +72 -0
  549. data/lib/datadog/tracing/contrib/redis/vendor/resolver.rb +162 -0
  550. data/lib/datadog/tracing/contrib/registerable.rb +50 -0
  551. data/lib/datadog/tracing/contrib/registry.rb +52 -0
  552. data/lib/datadog/tracing/contrib/resque/configuration/settings.rb +37 -0
  553. data/lib/datadog/tracing/contrib/resque/ext.rb +21 -0
  554. data/lib/datadog/tracing/contrib/resque/integration.rb +48 -0
  555. data/lib/datadog/tracing/contrib/resque/patcher.rb +29 -0
  556. data/lib/datadog/tracing/contrib/resque/resque_job.rb +104 -0
  557. data/lib/datadog/tracing/contrib/rest_client/configuration/settings.rb +42 -0
  558. data/lib/datadog/tracing/contrib/rest_client/ext.rb +22 -0
  559. data/lib/datadog/tracing/contrib/rest_client/integration.rb +43 -0
  560. data/lib/datadog/tracing/contrib/rest_client/patcher.rb +29 -0
  561. data/lib/datadog/tracing/contrib/rest_client/request_patch.rb +106 -0
  562. data/lib/datadog/tracing/contrib/semantic_logger/configuration/settings.rb +23 -0
  563. data/lib/datadog/tracing/contrib/semantic_logger/ext.rb +15 -0
  564. data/lib/datadog/tracing/contrib/semantic_logger/instrumentation.rb +50 -0
  565. data/lib/datadog/tracing/contrib/semantic_logger/integration.rb +52 -0
  566. data/lib/datadog/tracing/contrib/semantic_logger/patcher.rb +29 -0
  567. data/lib/datadog/tracing/contrib/sequel/configuration/settings.rb +33 -0
  568. data/lib/datadog/tracing/contrib/sequel/database.rb +59 -0
  569. data/lib/datadog/tracing/contrib/sequel/dataset.rb +64 -0
  570. data/lib/datadog/tracing/contrib/sequel/ext.rb +22 -0
  571. data/lib/datadog/tracing/contrib/sequel/integration.rb +43 -0
  572. data/lib/datadog/tracing/contrib/sequel/patcher.rb +37 -0
  573. data/lib/datadog/tracing/contrib/sequel/utils.rb +87 -0
  574. data/lib/datadog/tracing/contrib/shoryuken/configuration/settings.rb +38 -0
  575. data/lib/datadog/tracing/contrib/shoryuken/ext.rb +25 -0
  576. data/lib/datadog/tracing/contrib/shoryuken/integration.rb +44 -0
  577. data/lib/datadog/tracing/contrib/shoryuken/patcher.rb +28 -0
  578. data/lib/datadog/tracing/contrib/shoryuken/tracer.rb +63 -0
  579. data/lib/datadog/tracing/contrib/sidekiq/client_tracer.rb +57 -0
  580. data/lib/datadog/tracing/contrib/sidekiq/configuration/settings.rb +44 -0
  581. data/lib/datadog/tracing/contrib/sidekiq/ext.rb +44 -0
  582. data/lib/datadog/tracing/contrib/sidekiq/integration.rb +53 -0
  583. data/lib/datadog/tracing/contrib/sidekiq/patcher.rb +78 -0
  584. data/lib/datadog/tracing/contrib/sidekiq/server_internal_tracer/heartbeat.rb +52 -0
  585. data/lib/datadog/tracing/contrib/sidekiq/server_internal_tracer/job_fetch.rb +34 -0
  586. data/lib/datadog/tracing/contrib/sidekiq/server_internal_tracer/redis_info.rb +32 -0
  587. data/lib/datadog/tracing/contrib/sidekiq/server_internal_tracer/scheduled_poller.rb +53 -0
  588. data/lib/datadog/tracing/contrib/sidekiq/server_tracer.rb +102 -0
  589. data/lib/datadog/tracing/contrib/sidekiq/tracing.rb +44 -0
  590. data/lib/datadog/tracing/contrib/sinatra/configuration/settings.rb +43 -0
  591. data/lib/datadog/tracing/contrib/sinatra/env.rb +55 -0
  592. data/lib/datadog/tracing/contrib/sinatra/ext.rb +36 -0
  593. data/lib/datadog/tracing/contrib/sinatra/framework.rb +116 -0
  594. data/lib/datadog/tracing/contrib/sinatra/headers.rb +35 -0
  595. data/lib/datadog/tracing/contrib/sinatra/integration.rb +43 -0
  596. data/lib/datadog/tracing/contrib/sinatra/patcher.rb +76 -0
  597. data/lib/datadog/tracing/contrib/sinatra/tracer.rb +86 -0
  598. data/lib/datadog/tracing/contrib/sinatra/tracer_middleware.rb +127 -0
  599. data/lib/datadog/tracing/contrib/sneakers/configuration/settings.rb +38 -0
  600. data/lib/datadog/tracing/contrib/sneakers/ext.rb +26 -0
  601. data/lib/datadog/tracing/contrib/sneakers/integration.rb +46 -0
  602. data/lib/datadog/tracing/contrib/sneakers/patcher.rb +29 -0
  603. data/lib/datadog/tracing/contrib/sneakers/tracer.rb +59 -0
  604. data/lib/datadog/tracing/contrib/status_code_matcher.rb +75 -0
  605. data/lib/datadog/tracing/contrib/sucker_punch/configuration/settings.rb +35 -0
  606. data/lib/datadog/tracing/contrib/sucker_punch/exception_handler.rb +28 -0
  607. data/lib/datadog/tracing/contrib/sucker_punch/ext.rb +27 -0
  608. data/lib/datadog/tracing/contrib/sucker_punch/instrumentation.rb +104 -0
  609. data/lib/datadog/tracing/contrib/sucker_punch/integration.rb +43 -0
  610. data/lib/datadog/tracing/contrib/sucker_punch/patcher.rb +36 -0
  611. data/lib/datadog/tracing/contrib/utils/database.rb +31 -0
  612. data/lib/datadog/tracing/contrib/utils/quantization/hash.rb +111 -0
  613. data/lib/datadog/tracing/contrib/utils/quantization/http.rb +181 -0
  614. data/lib/datadog/tracing/contrib.rb +78 -0
  615. data/lib/datadog/tracing/correlation.rb +100 -0
  616. data/lib/datadog/tracing/diagnostics/ext.rb +36 -0
  617. data/lib/datadog/tracing/diagnostics/health.rb +40 -0
  618. data/lib/datadog/tracing/distributed/b3_multi.rb +66 -0
  619. data/lib/datadog/tracing/distributed/b3_single.rb +66 -0
  620. data/lib/datadog/tracing/distributed/datadog.rb +153 -0
  621. data/lib/datadog/tracing/distributed/datadog_tags_codec.rb +85 -0
  622. data/lib/datadog/tracing/distributed/fetcher.rb +30 -0
  623. data/lib/datadog/tracing/distributed/headers/ext.rb +35 -0
  624. data/lib/datadog/tracing/distributed/helpers.rb +80 -0
  625. data/lib/datadog/tracing/distributed/none.rb +19 -0
  626. data/lib/datadog/tracing/distributed/propagation.rb +127 -0
  627. data/lib/datadog/tracing/distributed/trace_context.rb +369 -0
  628. data/lib/datadog/tracing/event.rb +78 -0
  629. data/lib/datadog/tracing/flush.rb +96 -0
  630. data/lib/datadog/tracing/metadata/analytics.rb +26 -0
  631. data/lib/datadog/tracing/metadata/errors.rb +24 -0
  632. data/lib/datadog/tracing/metadata/ext.rb +178 -0
  633. data/lib/datadog/tracing/metadata/tagging.rb +125 -0
  634. data/lib/datadog/tracing/metadata.rb +20 -0
  635. data/lib/datadog/tracing/pipeline/span_filter.rb +46 -0
  636. data/lib/datadog/tracing/pipeline/span_processor.rb +39 -0
  637. data/lib/datadog/tracing/pipeline.rb +65 -0
  638. data/lib/datadog/tracing/propagation/http.rb +14 -0
  639. data/lib/datadog/tracing/runtime/metrics.rb +19 -0
  640. data/lib/datadog/tracing/sampling/all_sampler.rb +25 -0
  641. data/lib/datadog/tracing/sampling/ext.rb +58 -0
  642. data/lib/datadog/tracing/sampling/matcher.rb +68 -0
  643. data/lib/datadog/tracing/sampling/priority_sampler.rb +165 -0
  644. data/lib/datadog/tracing/sampling/rate_by_key_sampler.rb +96 -0
  645. data/lib/datadog/tracing/sampling/rate_by_service_sampler.rb +65 -0
  646. data/lib/datadog/tracing/sampling/rate_limiter.rb +188 -0
  647. data/lib/datadog/tracing/sampling/rate_sampler.rb +72 -0
  648. data/lib/datadog/tracing/sampling/rule.rb +76 -0
  649. data/lib/datadog/tracing/sampling/rule_sampler.rb +132 -0
  650. data/lib/datadog/tracing/sampling/sampler.rb +44 -0
  651. data/lib/datadog/tracing/sampling/span/ext.rb +25 -0
  652. data/lib/datadog/tracing/sampling/span/matcher.rb +89 -0
  653. data/lib/datadog/tracing/sampling/span/rule.rb +82 -0
  654. data/lib/datadog/tracing/sampling/span/rule_parser.rb +104 -0
  655. data/lib/datadog/tracing/sampling/span/sampler.rb +75 -0
  656. data/lib/datadog/tracing/span.rb +216 -0
  657. data/lib/datadog/tracing/span_operation.rb +520 -0
  658. data/lib/datadog/tracing/sync_writer.rb +69 -0
  659. data/lib/datadog/tracing/trace_digest.rb +136 -0
  660. data/lib/datadog/tracing/trace_operation.rb +468 -0
  661. data/lib/datadog/tracing/trace_segment.rb +212 -0
  662. data/lib/datadog/tracing/tracer.rb +533 -0
  663. data/lib/datadog/tracing/utils.rb +50 -0
  664. data/lib/datadog/tracing/workers/trace_writer.rb +195 -0
  665. data/lib/datadog/tracing/workers.rb +125 -0
  666. data/lib/datadog/tracing/writer.rb +187 -0
  667. data/lib/datadog/tracing.rb +142 -0
  668. data/lib/ddtrace/auto_instrument.rb +14 -3
  669. data/lib/ddtrace/auto_instrument_base.rb +1 -0
  670. data/lib/ddtrace/profiling/preload.rb +2 -2
  671. data/lib/ddtrace/transport/ext.rb +41 -0
  672. data/lib/ddtrace/transport/http/adapters/net.rb +18 -6
  673. data/lib/ddtrace/transport/http/adapters/registry.rb +1 -0
  674. data/lib/ddtrace/transport/http/adapters/test.rb +6 -3
  675. data/lib/ddtrace/transport/http/adapters/unix_socket.rb +25 -13
  676. data/lib/ddtrace/transport/http/api/endpoint.rb +1 -0
  677. data/lib/ddtrace/transport/http/api/fallbacks.rb +1 -0
  678. data/lib/ddtrace/transport/http/api/instance.rb +1 -0
  679. data/lib/ddtrace/transport/http/api/map.rb +2 -1
  680. data/lib/ddtrace/transport/http/api/spec.rb +1 -0
  681. data/lib/ddtrace/transport/http/api.rb +8 -14
  682. data/lib/ddtrace/transport/http/builder.rb +18 -10
  683. data/lib/ddtrace/transport/http/client.rb +5 -3
  684. data/lib/ddtrace/transport/http/env.rb +1 -0
  685. data/lib/ddtrace/transport/http/response.rb +36 -5
  686. data/lib/ddtrace/transport/http/statistics.rb +2 -1
  687. data/lib/ddtrace/transport/http/traces.rb +6 -3
  688. data/lib/ddtrace/transport/http.rb +40 -38
  689. data/lib/ddtrace/transport/io/client.rb +6 -3
  690. data/lib/ddtrace/transport/io/response.rb +2 -1
  691. data/lib/ddtrace/transport/io/traces.rb +5 -4
  692. data/lib/ddtrace/transport/io.rb +5 -4
  693. data/lib/ddtrace/transport/parcel.rb +2 -0
  694. data/lib/ddtrace/transport/request.rb +1 -0
  695. data/lib/ddtrace/transport/response.rb +1 -0
  696. data/lib/ddtrace/transport/serializable_trace.rb +118 -0
  697. data/lib/ddtrace/transport/statistics.rb +6 -4
  698. data/lib/ddtrace/transport/trace_formatter.rb +191 -0
  699. data/lib/ddtrace/transport/traces.rb +20 -8
  700. data/lib/ddtrace/version.rb +14 -12
  701. data/lib/ddtrace.rb +9 -48
  702. metadata +681 -475
  703. data/.editorconfig +0 -22
  704. data/.gitignore +0 -67
  705. data/.yardopts +0 -5
  706. data/CONTRIBUTING.md +0 -81
  707. data/ddtrace.gemspec +0 -53
  708. data/docs/DevelopmentGuide.md +0 -264
  709. data/docs/GettingStarted.md +0 -2535
  710. data/docs/ProfilingDevelopment.md +0 -107
  711. data/lib/datadog/ci/context_flush.rb +0 -29
  712. data/lib/datadog/contrib.rb +0 -69
  713. data/lib/ddtrace/analytics.rb +0 -39
  714. data/lib/ddtrace/buffer.rb +0 -328
  715. data/lib/ddtrace/chunker.rb +0 -35
  716. data/lib/ddtrace/configuration/agent_settings_resolver.rb +0 -231
  717. data/lib/ddtrace/configuration/base.rb +0 -82
  718. data/lib/ddtrace/configuration/components.rb +0 -292
  719. data/lib/ddtrace/configuration/dependency_resolver.rb +0 -25
  720. data/lib/ddtrace/configuration/option.rb +0 -65
  721. data/lib/ddtrace/configuration/option_definition.rb +0 -122
  722. data/lib/ddtrace/configuration/option_definition_set.rb +0 -19
  723. data/lib/ddtrace/configuration/option_set.rb +0 -7
  724. data/lib/ddtrace/configuration/options.rb +0 -112
  725. data/lib/ddtrace/configuration/pin_setup.rb +0 -32
  726. data/lib/ddtrace/configuration/settings.rb +0 -403
  727. data/lib/ddtrace/configuration.rb +0 -195
  728. data/lib/ddtrace/context.rb +0 -326
  729. data/lib/ddtrace/context_flush.rb +0 -82
  730. data/lib/ddtrace/context_provider.rb +0 -62
  731. data/lib/ddtrace/contrib/action_cable/configuration/settings.rb +0 -31
  732. data/lib/ddtrace/contrib/action_cable/event.rb +0 -67
  733. data/lib/ddtrace/contrib/action_cable/events/broadcast.rb +0 -50
  734. data/lib/ddtrace/contrib/action_cable/events/perform_action.rb +0 -56
  735. data/lib/ddtrace/contrib/action_cable/events/transmit.rb +0 -51
  736. data/lib/ddtrace/contrib/action_cable/events.rb +0 -34
  737. data/lib/ddtrace/contrib/action_cable/ext.rb +0 -27
  738. data/lib/ddtrace/contrib/action_cable/instrumentation.rb +0 -32
  739. data/lib/ddtrace/contrib/action_cable/integration.rb +0 -46
  740. data/lib/ddtrace/contrib/action_cable/patcher.rb +0 -28
  741. data/lib/ddtrace/contrib/action_pack/action_controller/instrumentation.rb +0 -157
  742. data/lib/ddtrace/contrib/action_pack/action_controller/patcher.rb +0 -26
  743. data/lib/ddtrace/contrib/action_pack/configuration/settings.rb +0 -33
  744. data/lib/ddtrace/contrib/action_pack/ext.rb +0 -20
  745. data/lib/ddtrace/contrib/action_pack/integration.rb +0 -46
  746. data/lib/ddtrace/contrib/action_pack/patcher.rb +0 -24
  747. data/lib/ddtrace/contrib/action_pack/utils.rb +0 -37
  748. data/lib/ddtrace/contrib/action_view/configuration/settings.rb +0 -32
  749. data/lib/ddtrace/contrib/action_view/event.rb +0 -36
  750. data/lib/ddtrace/contrib/action_view/events/render_partial.rb +0 -47
  751. data/lib/ddtrace/contrib/action_view/events/render_template.rb +0 -50
  752. data/lib/ddtrace/contrib/action_view/events.rb +0 -31
  753. data/lib/ddtrace/contrib/action_view/ext.rb +0 -21
  754. data/lib/ddtrace/contrib/action_view/instrumentation/partial_renderer.rb +0 -75
  755. data/lib/ddtrace/contrib/action_view/instrumentation/template_renderer.rb +0 -168
  756. data/lib/ddtrace/contrib/action_view/integration.rb +0 -53
  757. data/lib/ddtrace/contrib/action_view/patcher.rb +0 -48
  758. data/lib/ddtrace/contrib/action_view/utils.rb +0 -33
  759. data/lib/ddtrace/contrib/active_model_serializers/configuration/settings.rb +0 -31
  760. data/lib/ddtrace/contrib/active_model_serializers/event.rb +0 -69
  761. data/lib/ddtrace/contrib/active_model_serializers/events/render.rb +0 -33
  762. data/lib/ddtrace/contrib/active_model_serializers/events/serialize.rb +0 -36
  763. data/lib/ddtrace/contrib/active_model_serializers/events.rb +0 -31
  764. data/lib/ddtrace/contrib/active_model_serializers/ext.rb +0 -21
  765. data/lib/ddtrace/contrib/active_model_serializers/integration.rb +0 -41
  766. data/lib/ddtrace/contrib/active_model_serializers/patcher.rb +0 -30
  767. data/lib/ddtrace/contrib/active_record/configuration/makara_resolver.rb +0 -31
  768. data/lib/ddtrace/contrib/active_record/configuration/resolver.rb +0 -135
  769. data/lib/ddtrace/contrib/active_record/configuration/settings.rb +0 -36
  770. data/lib/ddtrace/contrib/active_record/event.rb +0 -31
  771. data/lib/ddtrace/contrib/active_record/events/instantiation.rb +0 -61
  772. data/lib/ddtrace/contrib/active_record/events/sql.rb +0 -69
  773. data/lib/ddtrace/contrib/active_record/events.rb +0 -31
  774. data/lib/ddtrace/contrib/active_record/ext.rb +0 -25
  775. data/lib/ddtrace/contrib/active_record/integration.rb +0 -54
  776. data/lib/ddtrace/contrib/active_record/patcher.rb +0 -24
  777. data/lib/ddtrace/contrib/active_record/utils.rb +0 -124
  778. data/lib/ddtrace/contrib/active_support/cache/instrumentation.rb +0 -259
  779. data/lib/ddtrace/contrib/active_support/cache/patcher.rb +0 -70
  780. data/lib/ddtrace/contrib/active_support/cache/redis.rb +0 -44
  781. data/lib/ddtrace/contrib/active_support/configuration/settings.rb +0 -31
  782. data/lib/ddtrace/contrib/active_support/ext.rb +0 -28
  783. data/lib/ddtrace/contrib/active_support/integration.rb +0 -47
  784. data/lib/ddtrace/contrib/active_support/notifications/event.rb +0 -76
  785. data/lib/ddtrace/contrib/active_support/notifications/subscriber.rb +0 -68
  786. data/lib/ddtrace/contrib/active_support/notifications/subscription.rb +0 -164
  787. data/lib/ddtrace/contrib/active_support/patcher.rb +0 -24
  788. data/lib/ddtrace/contrib/analytics.rb +0 -25
  789. data/lib/ddtrace/contrib/auto_instrument.rb +0 -49
  790. data/lib/ddtrace/contrib/aws/configuration/settings.rb +0 -31
  791. data/lib/ddtrace/contrib/aws/ext.rb +0 -24
  792. data/lib/ddtrace/contrib/aws/instrumentation.rb +0 -91
  793. data/lib/ddtrace/contrib/aws/integration.rb +0 -43
  794. data/lib/ddtrace/contrib/aws/parsed_context.rb +0 -57
  795. data/lib/ddtrace/contrib/aws/patcher.rb +0 -54
  796. data/lib/ddtrace/contrib/aws/services.rb +0 -119
  797. data/lib/ddtrace/contrib/concurrent_ruby/configuration/settings.rb +0 -21
  798. data/lib/ddtrace/contrib/concurrent_ruby/context_composite_executor_service.rb +0 -42
  799. data/lib/ddtrace/contrib/concurrent_ruby/ext.rb +0 -13
  800. data/lib/ddtrace/contrib/concurrent_ruby/future_patch.rb +0 -24
  801. data/lib/ddtrace/contrib/concurrent_ruby/integration.rb +0 -39
  802. data/lib/ddtrace/contrib/concurrent_ruby/patcher.rb +0 -30
  803. data/lib/ddtrace/contrib/configurable.rb +0 -103
  804. data/lib/ddtrace/contrib/configuration/resolver.rb +0 -82
  805. data/lib/ddtrace/contrib/configuration/resolvers/pattern_resolver.rb +0 -40
  806. data/lib/ddtrace/contrib/configuration/settings.rb +0 -56
  807. data/lib/ddtrace/contrib/dalli/configuration/settings.rb +0 -31
  808. data/lib/ddtrace/contrib/dalli/ext.rb +0 -21
  809. data/lib/ddtrace/contrib/dalli/instrumentation.rb +0 -55
  810. data/lib/ddtrace/contrib/dalli/integration.rb +0 -39
  811. data/lib/ddtrace/contrib/dalli/patcher.rb +0 -26
  812. data/lib/ddtrace/contrib/dalli/quantize.rb +0 -23
  813. data/lib/ddtrace/contrib/delayed_job/configuration/settings.rb +0 -33
  814. data/lib/ddtrace/contrib/delayed_job/ext.rb +0 -24
  815. data/lib/ddtrace/contrib/delayed_job/integration.rb +0 -39
  816. data/lib/ddtrace/contrib/delayed_job/patcher.rb +0 -29
  817. data/lib/ddtrace/contrib/delayed_job/plugin.rb +0 -85
  818. data/lib/ddtrace/contrib/elasticsearch/configuration/settings.rb +0 -32
  819. data/lib/ddtrace/contrib/elasticsearch/ext.rb +0 -23
  820. data/lib/ddtrace/contrib/elasticsearch/integration.rb +0 -40
  821. data/lib/ddtrace/contrib/elasticsearch/patcher.rb +0 -123
  822. data/lib/ddtrace/contrib/elasticsearch/quantize.rb +0 -84
  823. data/lib/ddtrace/contrib/ethon/configuration/settings.rb +0 -33
  824. data/lib/ddtrace/contrib/ethon/easy_patch.rb +0 -152
  825. data/lib/ddtrace/contrib/ethon/ext.rb +0 -20
  826. data/lib/ddtrace/contrib/ethon/integration.rb +0 -44
  827. data/lib/ddtrace/contrib/ethon/multi_patch.rb +0 -85
  828. data/lib/ddtrace/contrib/ethon/patcher.rb +0 -27
  829. data/lib/ddtrace/contrib/excon/configuration/settings.rb +0 -34
  830. data/lib/ddtrace/contrib/excon/ext.rb +0 -18
  831. data/lib/ddtrace/contrib/excon/integration.rb +0 -44
  832. data/lib/ddtrace/contrib/excon/middleware.rb +0 -164
  833. data/lib/ddtrace/contrib/excon/patcher.rb +0 -28
  834. data/lib/ddtrace/contrib/extensions.rb +0 -169
  835. data/lib/ddtrace/contrib/faraday/configuration/settings.rb +0 -39
  836. data/lib/ddtrace/contrib/faraday/connection.rb +0 -19
  837. data/lib/ddtrace/contrib/faraday/ext.rb +0 -18
  838. data/lib/ddtrace/contrib/faraday/integration.rb +0 -44
  839. data/lib/ddtrace/contrib/faraday/middleware.rb +0 -86
  840. data/lib/ddtrace/contrib/faraday/patcher.rb +0 -54
  841. data/lib/ddtrace/contrib/faraday/rack_builder.rb +0 -19
  842. data/lib/ddtrace/contrib/grape/configuration/settings.rb +0 -39
  843. data/lib/ddtrace/contrib/grape/endpoint.rb +0 -246
  844. data/lib/ddtrace/contrib/grape/ext.rb +0 -24
  845. data/lib/ddtrace/contrib/grape/instrumentation.rb +0 -34
  846. data/lib/ddtrace/contrib/grape/integration.rb +0 -40
  847. data/lib/ddtrace/contrib/grape/patcher.rb +0 -32
  848. data/lib/ddtrace/contrib/graphql/configuration/settings.rb +0 -33
  849. data/lib/ddtrace/contrib/graphql/ext.rb +0 -17
  850. data/lib/ddtrace/contrib/graphql/integration.rb +0 -40
  851. data/lib/ddtrace/contrib/graphql/patcher.rb +0 -61
  852. data/lib/ddtrace/contrib/grpc/configuration/settings.rb +0 -32
  853. data/lib/ddtrace/contrib/grpc/datadog_interceptor/client.rb +0 -59
  854. data/lib/ddtrace/contrib/grpc/datadog_interceptor/server.rb +0 -80
  855. data/lib/ddtrace/contrib/grpc/datadog_interceptor.rb +0 -79
  856. data/lib/ddtrace/contrib/grpc/ext.rb +0 -19
  857. data/lib/ddtrace/contrib/grpc/integration.rb +0 -39
  858. data/lib/ddtrace/contrib/grpc/intercept_with_datadog.rb +0 -50
  859. data/lib/ddtrace/contrib/grpc/patcher.rb +0 -34
  860. data/lib/ddtrace/contrib/http/circuit_breaker.rb +0 -38
  861. data/lib/ddtrace/contrib/http/configuration/settings.rb +0 -33
  862. data/lib/ddtrace/contrib/http/ext.rb +0 -18
  863. data/lib/ddtrace/contrib/http/instrumentation.rb +0 -180
  864. data/lib/ddtrace/contrib/http/integration.rb +0 -46
  865. data/lib/ddtrace/contrib/http/patcher.rb +0 -27
  866. data/lib/ddtrace/contrib/http_annotation_helper.rb +0 -11
  867. data/lib/ddtrace/contrib/httpclient/configuration/settings.rb +0 -33
  868. data/lib/ddtrace/contrib/httpclient/ext.rb +0 -18
  869. data/lib/ddtrace/contrib/httpclient/instrumentation.rb +0 -148
  870. data/lib/ddtrace/contrib/httpclient/integration.rb +0 -44
  871. data/lib/ddtrace/contrib/httpclient/patcher.rb +0 -39
  872. data/lib/ddtrace/contrib/httprb/configuration/settings.rb +0 -33
  873. data/lib/ddtrace/contrib/httprb/ext.rb +0 -18
  874. data/lib/ddtrace/contrib/httprb/instrumentation.rb +0 -158
  875. data/lib/ddtrace/contrib/httprb/integration.rb +0 -44
  876. data/lib/ddtrace/contrib/httprb/patcher.rb +0 -39
  877. data/lib/ddtrace/contrib/integration.rb +0 -17
  878. data/lib/ddtrace/contrib/kafka/configuration/settings.rb +0 -31
  879. data/lib/ddtrace/contrib/kafka/consumer_event.rb +0 -15
  880. data/lib/ddtrace/contrib/kafka/consumer_group_event.rb +0 -15
  881. data/lib/ddtrace/contrib/kafka/event.rb +0 -52
  882. data/lib/ddtrace/contrib/kafka/events/connection/request.rb +0 -35
  883. data/lib/ddtrace/contrib/kafka/events/consumer/process_batch.rb +0 -42
  884. data/lib/ddtrace/contrib/kafka/events/consumer/process_message.rb +0 -40
  885. data/lib/ddtrace/contrib/kafka/events/consumer_group/heartbeat.rb +0 -40
  886. data/lib/ddtrace/contrib/kafka/events/consumer_group/join_group.rb +0 -30
  887. data/lib/ddtrace/contrib/kafka/events/consumer_group/leave_group.rb +0 -30
  888. data/lib/ddtrace/contrib/kafka/events/consumer_group/sync_group.rb +0 -30
  889. data/lib/ddtrace/contrib/kafka/events/produce_operation/send_messages.rb +0 -33
  890. data/lib/ddtrace/contrib/kafka/events/producer/deliver_messages.rb +0 -36
  891. data/lib/ddtrace/contrib/kafka/events.rb +0 -45
  892. data/lib/ddtrace/contrib/kafka/ext.rb +0 -42
  893. data/lib/ddtrace/contrib/kafka/integration.rb +0 -40
  894. data/lib/ddtrace/contrib/kafka/patcher.rb +0 -27
  895. data/lib/ddtrace/contrib/lograge/configuration/settings.rb +0 -19
  896. data/lib/ddtrace/contrib/lograge/ext.rb +0 -11
  897. data/lib/ddtrace/contrib/lograge/instrumentation.rb +0 -39
  898. data/lib/ddtrace/contrib/lograge/integration.rb +0 -46
  899. data/lib/ddtrace/contrib/lograge/patcher.rb +0 -26
  900. data/lib/ddtrace/contrib/mongodb/configuration/settings.rb +0 -34
  901. data/lib/ddtrace/contrib/mongodb/ext.rb +0 -24
  902. data/lib/ddtrace/contrib/mongodb/instrumentation.rb +0 -70
  903. data/lib/ddtrace/contrib/mongodb/integration.rb +0 -39
  904. data/lib/ddtrace/contrib/mongodb/parsers.rb +0 -69
  905. data/lib/ddtrace/contrib/mongodb/patcher.rb +0 -32
  906. data/lib/ddtrace/contrib/mongodb/subscribers.rb +0 -112
  907. data/lib/ddtrace/contrib/mysql2/configuration/settings.rb +0 -31
  908. data/lib/ddtrace/contrib/mysql2/ext.rb +0 -19
  909. data/lib/ddtrace/contrib/mysql2/instrumentation.rb +0 -65
  910. data/lib/ddtrace/contrib/mysql2/integration.rb +0 -39
  911. data/lib/ddtrace/contrib/mysql2/patcher.rb +0 -28
  912. data/lib/ddtrace/contrib/patchable.rb +0 -71
  913. data/lib/ddtrace/contrib/patcher.rb +0 -66
  914. data/lib/ddtrace/contrib/presto/configuration/settings.rb +0 -31
  915. data/lib/ddtrace/contrib/presto/ext.rb +0 -29
  916. data/lib/ddtrace/contrib/presto/instrumentation.rb +0 -111
  917. data/lib/ddtrace/contrib/presto/integration.rb +0 -39
  918. data/lib/ddtrace/contrib/presto/patcher.rb +0 -34
  919. data/lib/ddtrace/contrib/qless/configuration/settings.rb +0 -36
  920. data/lib/ddtrace/contrib/qless/ext.rb +0 -21
  921. data/lib/ddtrace/contrib/qless/integration.rb +0 -39
  922. data/lib/ddtrace/contrib/qless/patcher.rb +0 -35
  923. data/lib/ddtrace/contrib/qless/qless_job.rb +0 -74
  924. data/lib/ddtrace/contrib/qless/tracer_cleaner.rb +0 -34
  925. data/lib/ddtrace/contrib/que/configuration/settings.rb +0 -44
  926. data/lib/ddtrace/contrib/que/ext.rb +0 -31
  927. data/lib/ddtrace/contrib/que/integration.rb +0 -43
  928. data/lib/ddtrace/contrib/que/patcher.rb +0 -25
  929. data/lib/ddtrace/contrib/que/tracer.rb +0 -58
  930. data/lib/ddtrace/contrib/racecar/configuration/settings.rb +0 -31
  931. data/lib/ddtrace/contrib/racecar/event.rb +0 -77
  932. data/lib/ddtrace/contrib/racecar/events/batch.rb +0 -28
  933. data/lib/ddtrace/contrib/racecar/events/consume.rb +0 -28
  934. data/lib/ddtrace/contrib/racecar/events/message.rb +0 -28
  935. data/lib/ddtrace/contrib/racecar/events.rb +0 -33
  936. data/lib/ddtrace/contrib/racecar/ext.rb +0 -26
  937. data/lib/ddtrace/contrib/racecar/integration.rb +0 -40
  938. data/lib/ddtrace/contrib/racecar/patcher.rb +0 -27
  939. data/lib/ddtrace/contrib/rack/configuration/settings.rb +0 -47
  940. data/lib/ddtrace/contrib/rack/ext.rb +0 -22
  941. data/lib/ddtrace/contrib/rack/integration.rb +0 -46
  942. data/lib/ddtrace/contrib/rack/middlewares.rb +0 -288
  943. data/lib/ddtrace/contrib/rack/patcher.rb +0 -106
  944. data/lib/ddtrace/contrib/rack/request_queue.rb +0 -45
  945. data/lib/ddtrace/contrib/rails/auto_instrument_railtie.rb +0 -11
  946. data/lib/ddtrace/contrib/rails/configuration/settings.rb +0 -94
  947. data/lib/ddtrace/contrib/rails/ext.rb +0 -18
  948. data/lib/ddtrace/contrib/rails/framework.rb +0 -149
  949. data/lib/ddtrace/contrib/rails/integration.rb +0 -45
  950. data/lib/ddtrace/contrib/rails/log_injection.rb +0 -42
  951. data/lib/ddtrace/contrib/rails/middlewares.rb +0 -44
  952. data/lib/ddtrace/contrib/rails/patcher.rb +0 -110
  953. data/lib/ddtrace/contrib/rails/railtie.rb +0 -18
  954. data/lib/ddtrace/contrib/rails/utils.rb +0 -25
  955. data/lib/ddtrace/contrib/rake/configuration/settings.rb +0 -32
  956. data/lib/ddtrace/contrib/rake/ext.rb +0 -22
  957. data/lib/ddtrace/contrib/rake/instrumentation.rb +0 -91
  958. data/lib/ddtrace/contrib/rake/integration.rb +0 -39
  959. data/lib/ddtrace/contrib/rake/patcher.rb +0 -31
  960. data/lib/ddtrace/contrib/redis/configuration/resolver.rb +0 -46
  961. data/lib/ddtrace/contrib/redis/configuration/settings.rb +0 -36
  962. data/lib/ddtrace/contrib/redis/ext.rb +0 -23
  963. data/lib/ddtrace/contrib/redis/integration.rb +0 -43
  964. data/lib/ddtrace/contrib/redis/patcher.rb +0 -115
  965. data/lib/ddtrace/contrib/redis/quantize.rb +0 -76
  966. data/lib/ddtrace/contrib/redis/tags.rb +0 -47
  967. data/lib/ddtrace/contrib/redis/vendor/resolver.rb +0 -159
  968. data/lib/ddtrace/contrib/registerable.rb +0 -34
  969. data/lib/ddtrace/contrib/registry.rb +0 -43
  970. data/lib/ddtrace/contrib/resque/configuration/settings.rb +0 -49
  971. data/lib/ddtrace/contrib/resque/ext.rb +0 -18
  972. data/lib/ddtrace/contrib/resque/integration.rb +0 -48
  973. data/lib/ddtrace/contrib/resque/patcher.rb +0 -30
  974. data/lib/ddtrace/contrib/resque/resque_job.rb +0 -104
  975. data/lib/ddtrace/contrib/rest_client/configuration/settings.rb +0 -32
  976. data/lib/ddtrace/contrib/rest_client/ext.rb +0 -18
  977. data/lib/ddtrace/contrib/rest_client/integration.rb +0 -39
  978. data/lib/ddtrace/contrib/rest_client/patcher.rb +0 -25
  979. data/lib/ddtrace/contrib/rest_client/request_patch.rb +0 -92
  980. data/lib/ddtrace/contrib/semantic_logger/configuration/settings.rb +0 -19
  981. data/lib/ddtrace/contrib/semantic_logger/ext.rb +0 -11
  982. data/lib/ddtrace/contrib/semantic_logger/instrumentation.rb +0 -43
  983. data/lib/ddtrace/contrib/semantic_logger/integration.rb +0 -48
  984. data/lib/ddtrace/contrib/semantic_logger/patcher.rb +0 -26
  985. data/lib/ddtrace/contrib/sequel/configuration/settings.rb +0 -29
  986. data/lib/ddtrace/contrib/sequel/database.rb +0 -64
  987. data/lib/ddtrace/contrib/sequel/dataset.rb +0 -64
  988. data/lib/ddtrace/contrib/sequel/ext.rb +0 -20
  989. data/lib/ddtrace/contrib/sequel/integration.rb +0 -39
  990. data/lib/ddtrace/contrib/sequel/patcher.rb +0 -34
  991. data/lib/ddtrace/contrib/sequel/utils.rb +0 -75
  992. data/lib/ddtrace/contrib/shoryuken/configuration/settings.rb +0 -32
  993. data/lib/ddtrace/contrib/shoryuken/ext.rb +0 -22
  994. data/lib/ddtrace/contrib/shoryuken/integration.rb +0 -40
  995. data/lib/ddtrace/contrib/shoryuken/patcher.rb +0 -25
  996. data/lib/ddtrace/contrib/shoryuken/tracer.rb +0 -56
  997. data/lib/ddtrace/contrib/sidekiq/client_tracer.rb +0 -44
  998. data/lib/ddtrace/contrib/sidekiq/configuration/settings.rb +0 -38
  999. data/lib/ddtrace/contrib/sidekiq/ext.rb +0 -28
  1000. data/lib/ddtrace/contrib/sidekiq/integration.rb +0 -39
  1001. data/lib/ddtrace/contrib/sidekiq/patcher.rb +0 -42
  1002. data/lib/ddtrace/contrib/sidekiq/server_tracer.rb +0 -66
  1003. data/lib/ddtrace/contrib/sidekiq/tracing.rb +0 -45
  1004. data/lib/ddtrace/contrib/sinatra/configuration/settings.rb +0 -40
  1005. data/lib/ddtrace/contrib/sinatra/env.rb +0 -58
  1006. data/lib/ddtrace/contrib/sinatra/ext.rb +0 -28
  1007. data/lib/ddtrace/contrib/sinatra/headers.rb +0 -30
  1008. data/lib/ddtrace/contrib/sinatra/integration.rb +0 -39
  1009. data/lib/ddtrace/contrib/sinatra/patcher.rb +0 -30
  1010. data/lib/ddtrace/contrib/sinatra/tracer.rb +0 -137
  1011. data/lib/ddtrace/contrib/sinatra/tracer_middleware.rb +0 -112
  1012. data/lib/ddtrace/contrib/sneakers/configuration/settings.rb +0 -34
  1013. data/lib/ddtrace/contrib/sneakers/ext.rb +0 -23
  1014. data/lib/ddtrace/contrib/sneakers/integration.rb +0 -42
  1015. data/lib/ddtrace/contrib/sneakers/patcher.rb +0 -25
  1016. data/lib/ddtrace/contrib/sneakers/tracer.rb +0 -54
  1017. data/lib/ddtrace/contrib/status_code_matcher.rb +0 -70
  1018. data/lib/ddtrace/contrib/sucker_punch/configuration/settings.rb +0 -31
  1019. data/lib/ddtrace/contrib/sucker_punch/exception_handler.rb +0 -25
  1020. data/lib/ddtrace/contrib/sucker_punch/ext.rb +0 -22
  1021. data/lib/ddtrace/contrib/sucker_punch/instrumentation.rb +0 -89
  1022. data/lib/ddtrace/contrib/sucker_punch/integration.rb +0 -39
  1023. data/lib/ddtrace/contrib/sucker_punch/patcher.rb +0 -44
  1024. data/lib/ddtrace/correlation.rb +0 -40
  1025. data/lib/ddtrace/diagnostics/environment_logger.rb +0 -280
  1026. data/lib/ddtrace/diagnostics/health.rb +0 -34
  1027. data/lib/ddtrace/distributed_tracing/headers/b3.rb +0 -45
  1028. data/lib/ddtrace/distributed_tracing/headers/b3_single.rb +0 -57
  1029. data/lib/ddtrace/distributed_tracing/headers/datadog.rb +0 -43
  1030. data/lib/ddtrace/distributed_tracing/headers/headers.rb +0 -72
  1031. data/lib/ddtrace/distributed_tracing/headers/helpers.rb +0 -44
  1032. data/lib/ddtrace/encoding.rb +0 -72
  1033. data/lib/ddtrace/error.rb +0 -97
  1034. data/lib/ddtrace/event.rb +0 -53
  1035. data/lib/ddtrace/ext/analytics.rb +0 -13
  1036. data/lib/ddtrace/ext/app_types.rb +0 -12
  1037. data/lib/ddtrace/ext/correlation.rb +0 -12
  1038. data/lib/ddtrace/ext/diagnostics.rb +0 -37
  1039. data/lib/ddtrace/ext/distributed.rb +0 -40
  1040. data/lib/ddtrace/ext/environment.rb +0 -24
  1041. data/lib/ddtrace/ext/errors.rb +0 -11
  1042. data/lib/ddtrace/ext/forced_tracing.rb +0 -26
  1043. data/lib/ddtrace/ext/git.rb +0 -20
  1044. data/lib/ddtrace/ext/http.rb +0 -47
  1045. data/lib/ddtrace/ext/integration.rb +0 -9
  1046. data/lib/ddtrace/ext/manual_tracing.rb +0 -10
  1047. data/lib/ddtrace/ext/metrics.rb +0 -16
  1048. data/lib/ddtrace/ext/net.rb +0 -11
  1049. data/lib/ddtrace/ext/priority.rb +0 -17
  1050. data/lib/ddtrace/ext/profiling.rb +0 -56
  1051. data/lib/ddtrace/ext/runtime.rb +0 -22
  1052. data/lib/ddtrace/ext/sampling.rb +0 -17
  1053. data/lib/ddtrace/ext/sql.rb +0 -9
  1054. data/lib/ddtrace/ext/test.rb +0 -9
  1055. data/lib/ddtrace/ext/transport.rb +0 -21
  1056. data/lib/ddtrace/forced_tracing.rb +0 -39
  1057. data/lib/ddtrace/logger.rb +0 -41
  1058. data/lib/ddtrace/metrics.rb +0 -282
  1059. data/lib/ddtrace/opentelemetry/extensions.rb +0 -14
  1060. data/lib/ddtrace/opentelemetry/span.rb +0 -34
  1061. data/lib/ddtrace/opentracer/binary_propagator.rb +0 -25
  1062. data/lib/ddtrace/opentracer/carrier.rb +0 -7
  1063. data/lib/ddtrace/opentracer/distributed_headers.rb +0 -56
  1064. data/lib/ddtrace/opentracer/global_tracer.rb +0 -16
  1065. data/lib/ddtrace/opentracer/propagator.rb +0 -23
  1066. data/lib/ddtrace/opentracer/rack_propagator.rb +0 -61
  1067. data/lib/ddtrace/opentracer/scope.rb +0 -16
  1068. data/lib/ddtrace/opentracer/scope_manager.rb +0 -7
  1069. data/lib/ddtrace/opentracer/span.rb +0 -95
  1070. data/lib/ddtrace/opentracer/span_context.rb +0 -15
  1071. data/lib/ddtrace/opentracer/span_context_factory.rb +0 -24
  1072. data/lib/ddtrace/opentracer/text_map_propagator.rb +0 -76
  1073. data/lib/ddtrace/opentracer/thread_local_scope.rb +0 -32
  1074. data/lib/ddtrace/opentracer/thread_local_scope_manager.rb +0 -41
  1075. data/lib/ddtrace/opentracer/tracer.rb +0 -209
  1076. data/lib/ddtrace/opentracer.rb +0 -22
  1077. data/lib/ddtrace/patcher.rb +0 -69
  1078. data/lib/ddtrace/pin.rb +0 -86
  1079. data/lib/ddtrace/pipeline/span_filter.rb +0 -39
  1080. data/lib/ddtrace/pipeline/span_processor.rb +0 -21
  1081. data/lib/ddtrace/pipeline.rb +0 -47
  1082. data/lib/ddtrace/profiling/backtrace_location.rb +0 -33
  1083. data/lib/ddtrace/profiling/buffer.rb +0 -42
  1084. data/lib/ddtrace/profiling/collectors/stack.rb +0 -257
  1085. data/lib/ddtrace/profiling/encoding/profile.rb +0 -38
  1086. data/lib/ddtrace/profiling/event.rb +0 -14
  1087. data/lib/ddtrace/profiling/events/stack.rb +0 -81
  1088. data/lib/ddtrace/profiling/exporter.rb +0 -24
  1089. data/lib/ddtrace/profiling/ext/cpu.rb +0 -67
  1090. data/lib/ddtrace/profiling/ext/cthread.rb +0 -156
  1091. data/lib/ddtrace/profiling/ext/forking.rb +0 -98
  1092. data/lib/ddtrace/profiling/flush.rb +0 -44
  1093. data/lib/ddtrace/profiling/native_extension.rb +0 -18
  1094. data/lib/ddtrace/profiling/pprof/builder.rb +0 -120
  1095. data/lib/ddtrace/profiling/pprof/converter.rb +0 -90
  1096. data/lib/ddtrace/profiling/pprof/message_set.rb +0 -15
  1097. data/lib/ddtrace/profiling/pprof/payload.rb +0 -19
  1098. data/lib/ddtrace/profiling/pprof/pprof_pb.rb +0 -82
  1099. data/lib/ddtrace/profiling/pprof/stack_sample.rb +0 -117
  1100. data/lib/ddtrace/profiling/pprof/string_table.rb +0 -11
  1101. data/lib/ddtrace/profiling/pprof/template.rb +0 -119
  1102. data/lib/ddtrace/profiling/profiler.rb +0 -31
  1103. data/lib/ddtrace/profiling/recorder.rb +0 -96
  1104. data/lib/ddtrace/profiling/scheduler.rb +0 -134
  1105. data/lib/ddtrace/profiling/tasks/setup.rb +0 -82
  1106. data/lib/ddtrace/profiling/trace_identifiers/ddtrace.rb +0 -41
  1107. data/lib/ddtrace/profiling/trace_identifiers/helper.rb +0 -46
  1108. data/lib/ddtrace/profiling/transport/client.rb +0 -15
  1109. data/lib/ddtrace/profiling/transport/http/api/endpoint.rb +0 -101
  1110. data/lib/ddtrace/profiling/transport/http/api/instance.rb +0 -37
  1111. data/lib/ddtrace/profiling/transport/http/api/spec.rb +0 -41
  1112. data/lib/ddtrace/profiling/transport/http/api.rb +0 -44
  1113. data/lib/ddtrace/profiling/transport/http/builder.rb +0 -29
  1114. data/lib/ddtrace/profiling/transport/http/client.rb +0 -34
  1115. data/lib/ddtrace/profiling/transport/http/response.rb +0 -22
  1116. data/lib/ddtrace/profiling/transport/http.rb +0 -120
  1117. data/lib/ddtrace/profiling/transport/io/client.rb +0 -28
  1118. data/lib/ddtrace/profiling/transport/io/response.rb +0 -17
  1119. data/lib/ddtrace/profiling/transport/io.rb +0 -31
  1120. data/lib/ddtrace/profiling/transport/parcel.rb +0 -18
  1121. data/lib/ddtrace/profiling/transport/request.rb +0 -16
  1122. data/lib/ddtrace/profiling/transport/response.rb +0 -9
  1123. data/lib/ddtrace/profiling.rb +0 -151
  1124. data/lib/ddtrace/propagation/grpc_propagator.rb +0 -75
  1125. data/lib/ddtrace/propagation/http_propagator.rb +0 -91
  1126. data/lib/ddtrace/quantization/hash.rb +0 -104
  1127. data/lib/ddtrace/quantization/http.rb +0 -90
  1128. data/lib/ddtrace/runtime/metrics.rb +0 -121
  1129. data/lib/ddtrace/sampler.rb +0 -293
  1130. data/lib/ddtrace/sampling/matcher.rb +0 -58
  1131. data/lib/ddtrace/sampling/rate_limiter.rb +0 -177
  1132. data/lib/ddtrace/sampling/rule.rb +0 -62
  1133. data/lib/ddtrace/sampling/rule_sampler.rb +0 -121
  1134. data/lib/ddtrace/sampling.rb +0 -3
  1135. data/lib/ddtrace/span.rb +0 -457
  1136. data/lib/ddtrace/sync_writer.rb +0 -69
  1137. data/lib/ddtrace/tasks/exec.rb +0 -47
  1138. data/lib/ddtrace/tasks/help.rb +0 -15
  1139. data/lib/ddtrace/tracer.rb +0 -449
  1140. data/lib/ddtrace/utils/compression.rb +0 -28
  1141. data/lib/ddtrace/utils/database.rb +0 -26
  1142. data/lib/ddtrace/utils/forking.rb +0 -53
  1143. data/lib/ddtrace/utils/object_set.rb +0 -40
  1144. data/lib/ddtrace/utils/only_once.rb +0 -41
  1145. data/lib/ddtrace/utils/sequence.rb +0 -18
  1146. data/lib/ddtrace/utils/string_table.rb +0 -46
  1147. data/lib/ddtrace/utils/time.rb +0 -46
  1148. data/lib/ddtrace/utils.rb +0 -80
  1149. data/lib/ddtrace/vendor/active_record/connection_specification.rb +0 -302
  1150. data/lib/ddtrace/vendor/multipart-post/multipart/post/composite_read_io.rb +0 -117
  1151. data/lib/ddtrace/vendor/multipart-post/multipart/post/multipartable.rb +0 -58
  1152. data/lib/ddtrace/vendor/multipart-post/multipart/post/parts.rb +0 -136
  1153. data/lib/ddtrace/vendor/multipart-post/multipart/post/version.rb +0 -10
  1154. data/lib/ddtrace/vendor/multipart-post/multipart/post.rb +0 -9
  1155. data/lib/ddtrace/vendor/multipart-post/multipart.rb +0 -13
  1156. data/lib/ddtrace/vendor/multipart-post/net/http/post/multipart.rb +0 -33
  1157. data/lib/ddtrace/worker.rb +0 -21
  1158. data/lib/ddtrace/workers/async.rb +0 -175
  1159. data/lib/ddtrace/workers/loop.rb +0 -132
  1160. data/lib/ddtrace/workers/polling.rb +0 -56
  1161. data/lib/ddtrace/workers/queue.rb +0 -41
  1162. data/lib/ddtrace/workers/runtime_metrics.rb +0 -65
  1163. data/lib/ddtrace/workers/trace_writer.rb +0 -200
  1164. data/lib/ddtrace/workers.rb +0 -123
  1165. data/lib/ddtrace/writer.rb +0 -200
  1166. /data/lib/{ddtrace → datadog/core}/vendor/multipart-post/LICENSE +0 -0
  1167. /data/lib/{ddtrace → datadog}/profiling/pprof/pprof.proto +0 -0
  1168. /data/lib/{ddtrace/vendor/active_record → datadog/tracing/contrib/active_record/vendor}/MIT-LICENSE +0 -0
  1169. /data/lib/{ddtrace → datadog/tracing}/contrib/redis/vendor/LICENSE +0 -0
@@ -1,119 +0,0 @@
1
- # typed: false
2
- require 'ddtrace/profiling/pprof/payload'
3
- require 'ddtrace/profiling/pprof/message_set'
4
- require 'ddtrace/profiling/pprof/builder'
5
-
6
- require 'ddtrace/profiling/events/stack'
7
- require 'ddtrace/profiling/pprof/stack_sample'
8
-
9
- module Datadog
10
- module Profiling
11
- module Pprof
12
- # Converts a collection of profiling events into a Perftools::Profiles::Profile
13
- class Template
14
- DEFAULT_MAPPINGS = {
15
- Events::StackSample => Pprof::StackSample
16
- }.freeze
17
-
18
- attr_reader \
19
- :builder,
20
- :converters,
21
- :sample_type_mappings
22
-
23
- def self.for_event_classes(event_classes)
24
- # Build a map of event class --> converter class
25
- mappings = event_classes.each_with_object({}) do |event_class, m|
26
- converter_class = DEFAULT_MAPPINGS[event_class]
27
- raise NoProfilingEventConversionError, event_class unless converter_class
28
-
29
- m[event_class] = converter_class
30
- end
31
-
32
- new(mappings)
33
- end
34
-
35
- def initialize(mappings)
36
- @builder = Builder.new
37
- @converters = Hash.new { |_h, event_class| raise NoProfilingEventConversionError, event_class }
38
- @sample_type_mappings = Hash.new { |_h, type| raise UnknownSampleTypeMappingError, type }
39
-
40
- # Add default mapping
41
- builder.mappings.fetch($PROGRAM_NAME, &builder.method(:build_mapping))
42
-
43
- # Combine all sample types from each converter class
44
- types = mappings.values.each_with_object({}) do |converter_class, t|
45
- t.merge!(converter_class.sample_value_types)
46
- end
47
-
48
- # Build the sample types into sample type objects
49
- types.each do |type_name, type_args|
50
- index = nil
51
-
52
- sample_type = builder.sample_types.fetch(*type_args) do |id, type, unit|
53
- index = id
54
- builder.build_value_type(type, unit)
55
- end
56
-
57
- # Create mapping between the type and index to which its assigned.
58
- # Do this for faster lookup while building profile sample values.
59
- sample_type_mappings[type_name] = index || builder.sample_types.messages.index(sample_type)
60
- end
61
-
62
- # Freeze them so they can't be modified.
63
- # We don't want the number of sample types to vary between samples within the same profile.
64
- builder.sample_types.freeze
65
- sample_type_mappings.freeze
66
-
67
- # Add converters
68
- mappings.each do |event_class, converter_class|
69
- converters[event_class] = converter_class.new(builder, sample_type_mappings)
70
- end
71
-
72
- converters.freeze
73
- end
74
-
75
- def add_events!(event_class, events)
76
- converters[event_class].add_events!(events)
77
- end
78
-
79
- def debug_statistics
80
- converters.values.map(&:debug_statistics).join(', ')
81
- end
82
-
83
- def to_pprof
84
- profile = builder.build_profile
85
- data = builder.encode_profile(profile)
86
- types = sample_type_mappings.keys
87
-
88
- Payload.new(data, types)
89
- end
90
-
91
- # Error when an unknown event type is given to be converted
92
- class NoProfilingEventConversionError < ArgumentError
93
- attr_reader :type
94
-
95
- def initialize(type)
96
- @type = type
97
- end
98
-
99
- def message
100
- "Profiling event type '#{type}' cannot be converted to pprof."
101
- end
102
- end
103
-
104
- # Error when the mapping of a sample type to value index is unknown
105
- class UnknownSampleTypeMappingError < ArgumentError
106
- attr_reader :type
107
-
108
- def initialize(type)
109
- @type = type
110
- end
111
-
112
- def message
113
- "Mapping for sample value type '#{type}' is unknown."
114
- end
115
- end
116
- end
117
- end
118
- end
119
- end
@@ -1,31 +0,0 @@
1
- # typed: true
2
- module Datadog
3
- # Profiling entry point, which coordinates collectors and a scheduler
4
- class Profiler
5
- attr_reader \
6
- :collectors,
7
- :scheduler
8
-
9
- def initialize(collectors, scheduler)
10
- @collectors = collectors
11
- @scheduler = scheduler
12
- end
13
-
14
- def start
15
- collectors.each(&:start)
16
- scheduler.start
17
- end
18
-
19
- def shutdown!
20
- Datadog.logger.debug('Shutting down profiler')
21
-
22
- collectors.each do |collector|
23
- collector.enabled = false
24
- collector.stop(true)
25
- end
26
-
27
- scheduler.enabled = false
28
- scheduler.stop(true)
29
- end
30
- end
31
- end
@@ -1,96 +0,0 @@
1
- # typed: true
2
- require 'ddtrace/profiling/buffer'
3
- require 'ddtrace/profiling/flush'
4
-
5
- module Datadog
6
- module Profiling
7
- # Stores profiling events gathered by `Collector`s
8
- class Recorder
9
- attr_reader :max_size
10
-
11
- def initialize(event_classes, max_size, last_flush_time: Time.now.utc)
12
- @buffers = {}
13
- @last_flush_time = last_flush_time
14
- @max_size = max_size
15
-
16
- # Add a buffer for each class
17
- event_classes.each do |event_class|
18
- @buffers[event_class] = Profiling::Buffer.new(max_size)
19
- end
20
-
21
- # Event classes can only be added ahead of time
22
- @buffers.freeze
23
- end
24
-
25
- def [](event_class)
26
- @buffers[event_class]
27
- end
28
-
29
- def push(events)
30
- if events.is_a?(Array)
31
- # Push multiple events
32
- event_class = events.first.class
33
- raise UnknownEventError, event_class unless @buffers.key?(event_class)
34
-
35
- @buffers[event_class].concat(events)
36
- else
37
- # Push single event
38
- event_class = events.class
39
- raise UnknownEventError, event_class unless @buffers.key?(event_class)
40
-
41
- @buffers[event_class].push(events)
42
- end
43
- end
44
-
45
- def flush
46
- event_count = 0
47
-
48
- event_groups, start, finish = update_time do
49
- @buffers.collect do |event_class, buffer|
50
- events = buffer.pop
51
- next if events.empty?
52
-
53
- event_count += events.length
54
- EventGroup.new(event_class, events)
55
- end.compact
56
- end
57
-
58
- Flush.new(
59
- start,
60
- finish,
61
- event_groups,
62
- event_count
63
- )
64
- end
65
-
66
- # NOTE: Remember that if the recorder is being accessed by multiple threads, this is an inherently racy operation.
67
- def empty?
68
- @buffers.values.all?(&:empty?)
69
- end
70
-
71
- # Error when event of an unknown type is used with the Recorder
72
- class UnknownEventError < StandardError
73
- attr_reader :event_class
74
-
75
- def initialize(event_class)
76
- @event_class = event_class
77
- end
78
-
79
- def message
80
- @message ||= "Unknown event class '#{event_class}' for profiling recorder."
81
- end
82
- end
83
-
84
- private
85
-
86
- def update_time
87
- start = @last_flush_time
88
- result = yield
89
- @last_flush_time = Time.now.utc
90
-
91
- # Return event groups, start time, finish time
92
- [result, start, @last_flush_time]
93
- end
94
- end
95
- end
96
- end
@@ -1,134 +0,0 @@
1
- # typed: true
2
- require 'ddtrace/utils/time'
3
-
4
- require 'ddtrace/worker'
5
- require 'ddtrace/workers/polling'
6
-
7
- module Datadog
8
- module Profiling
9
- # Periodically (every DEFAULT_INTERVAL_SECONDS) takes data from the `Recorder` and pushes them to all configured
10
- # `Exporter`s. Runs on its own background thread.
11
- class Scheduler < Worker
12
- include Workers::Polling
13
-
14
- DEFAULT_INTERVAL_SECONDS = 60
15
- MINIMUM_INTERVAL_SECONDS = 0
16
-
17
- # Profiles with duration less than this will not be reported
18
- PROFILE_DURATION_THRESHOLD_SECONDS = 1
19
-
20
- private_constant :DEFAULT_INTERVAL_SECONDS, :MINIMUM_INTERVAL_SECONDS, :PROFILE_DURATION_THRESHOLD_SECONDS
21
-
22
- attr_reader \
23
- :exporters,
24
- :recorder
25
-
26
- def initialize(
27
- recorder,
28
- exporters,
29
- fork_policy: Workers::Async::Thread::FORK_POLICY_RESTART, # Restart in forks by default
30
- interval: DEFAULT_INTERVAL_SECONDS,
31
- enabled: true
32
- )
33
- @recorder = recorder
34
- @exporters = [exporters].flatten
35
-
36
- # Workers::Async::Thread settings
37
- self.fork_policy = fork_policy
38
-
39
- # Workers::IntervalLoop settings
40
- self.loop_base_interval = interval
41
-
42
- # Workers::Polling settings
43
- self.enabled = enabled
44
- end
45
-
46
- def start
47
- perform
48
- end
49
-
50
- def perform
51
- # A profiling flush may be called while the VM is shutting down, to report the last profile. When we do so,
52
- # we impose a strict timeout. This means this last profile may or may not be sent, depending on if the flush can
53
- # successfully finish in the strict timeout.
54
- # This can be somewhat confusing (why did it not get reported?), so let's at least log what happened.
55
- interrupted = true
56
-
57
- begin
58
- flush_and_wait
59
- interrupted = false
60
- ensure
61
- Datadog.logger.debug('#flush was interrupted or failed before it could complete') if interrupted
62
- end
63
- end
64
-
65
- def loop_back_off?
66
- false
67
- end
68
-
69
- def after_fork
70
- # Clear recorder's buffers by flushing events.
71
- # Objects from parent process will copy-on-write,
72
- # and we don't want to send events for the wrong process.
73
- recorder.flush
74
- end
75
-
76
- # Configure Workers::IntervalLoop to not report immediately when scheduler starts
77
- #
78
- # When a scheduler gets created (or reset), we don't want it to immediately try to flush; we want it to wait for
79
- # the loop wait time first. This avoids an issue where the scheduler reported a mostly-empty profile if the
80
- # application just started but this thread took a bit longer so there's already samples in the recorder.
81
- def loop_wait_before_first_iteration?
82
- true
83
- end
84
-
85
- def work_pending?
86
- !recorder.empty?
87
- end
88
-
89
- private
90
-
91
- def flush_and_wait
92
- run_time = Datadog::Utils::Time.measure do
93
- flush_events
94
- end
95
-
96
- # Update wait time to try to wake consistently on time.
97
- # Don't drop below the minimum interval.
98
- self.loop_wait_time = [loop_base_interval - run_time, MINIMUM_INTERVAL_SECONDS].max
99
- end
100
-
101
- def flush_events
102
- # Get events from recorder
103
- flush = recorder.flush
104
-
105
- if duration_below_threshold?(flush)
106
- Datadog.logger.debug do
107
- "Skipped exporting profiling events as profile duration is below minimum (#{flush.event_count} events skipped)"
108
- end
109
-
110
- return flush
111
- end
112
-
113
- # Send events to each exporter
114
- if flush.event_count > 0
115
- exporters.each do |exporter|
116
- begin
117
- exporter.export(flush)
118
- rescue StandardError => e
119
- Datadog.logger.error(
120
- "Unable to export #{flush.event_count} profiling events. Cause: #{e} Location: #{Array(e.backtrace).first}"
121
- )
122
- end
123
- end
124
- end
125
-
126
- flush
127
- end
128
-
129
- def duration_below_threshold?(flush)
130
- (flush.finish - flush.start) < PROFILE_DURATION_THRESHOLD_SECONDS
131
- end
132
- end
133
- end
134
- end
@@ -1,82 +0,0 @@
1
- # typed: false
2
- require 'ddtrace'
3
- require 'ddtrace/utils/only_once'
4
- require 'ddtrace/profiling'
5
- require 'ddtrace/profiling/ext/cpu'
6
- require 'ddtrace/profiling/ext/forking'
7
-
8
- module Datadog
9
- module Profiling
10
- module Tasks
11
- # Takes care of loading our extensions/monkey patches to handle fork() and CPU profiling.
12
- class Setup
13
- ACTIVATE_EXTENSIONS_ONLY_ONCE = Datadog::Utils::OnlyOnce.new
14
-
15
- def run
16
- ACTIVATE_EXTENSIONS_ONLY_ONCE.run do
17
- begin
18
- activate_forking_extensions
19
- activate_cpu_extensions
20
- setup_at_fork_hooks
21
- rescue StandardError, ScriptError => e
22
- Datadog.logger.warn do
23
- "Profiler extensions unavailable. Cause: #{e.message} Location: #{Array(e.backtrace).first}"
24
- end
25
- end
26
- end
27
- end
28
-
29
- private
30
-
31
- def activate_forking_extensions
32
- if Ext::Forking.supported?
33
- Ext::Forking.apply!
34
- elsif Datadog.configuration.profiling.enabled
35
- Datadog.logger.debug('Profiler forking extensions skipped; forking not supported.')
36
- end
37
- rescue StandardError, ScriptError => e
38
- Datadog.logger.warn do
39
- "Profiler forking extensions unavailable. Cause: #{e.message} Location: #{Array(e.backtrace).first}"
40
- end
41
- end
42
-
43
- def activate_cpu_extensions
44
- if Ext::CPU.supported?
45
- Ext::CPU.apply!
46
- elsif Datadog.configuration.profiling.enabled
47
- Datadog.logger.info do
48
- 'CPU time profiling skipped because native CPU time is not supported: ' \
49
- "#{Ext::CPU.unsupported_reason}. Profiles containing Wall time will still be reported."
50
- end
51
- end
52
- rescue StandardError, ScriptError => e
53
- Datadog.logger.warn do
54
- "Profiler CPU profiling extensions unavailable. Cause: #{e.message} Location: #{Array(e.backtrace).first}"
55
- end
56
- end
57
-
58
- def setup_at_fork_hooks
59
- if Process.respond_to?(:at_fork)
60
- Process.at_fork(:child) do
61
- begin
62
- # When Ruby forks, clock IDs for each of the threads
63
- # will change. We can only update these IDs from the
64
- # execution context of the thread that owns it.
65
- # This hook will update the IDs for the main thread
66
- # after a fork occurs.
67
- Thread.current.send(:update_native_ids) if Thread.current.respond_to?(:update_native_ids, true)
68
-
69
- # Restart profiler, if enabled
70
- Datadog.profiler.start if Datadog.profiler
71
- rescue StandardError => e
72
- Datadog.logger.warn do
73
- "Error during post-fork hooks. Cause: #{e.message} Location: #{Array(e.backtrace).first}"
74
- end
75
- end
76
- end
77
- end
78
- end
79
- end
80
- end
81
- end
82
- end
@@ -1,41 +0,0 @@
1
- # typed: true
2
- # frozen_string_literal: true
3
-
4
- require 'ddtrace/ext/http'
5
-
6
- module Datadog
7
- module Profiling
8
- module TraceIdentifiers
9
- # Used by Datadog::Profiling::TraceIdentifiers::Helper to get the trace identifiers (trace id and span id) for a
10
- # given thread, if there is an active trace for that thread in Datadog.tracer.
11
- class Ddtrace
12
- def initialize(tracer: nil)
13
- @tracer = (tracer if tracer.respond_to?(:call_context))
14
- end
15
-
16
- def trace_identifiers_for(thread)
17
- return unless @tracer
18
-
19
- context = @tracer.call_context(thread)
20
- return unless context
21
-
22
- trace_id = context.trace_id || 0
23
- span_id = context.span_id || 0
24
-
25
- [trace_id, span_id, maybe_extract_resource(context.current_root_span)] if trace_id != 0 && span_id != 0
26
- end
27
-
28
- private
29
-
30
- # NOTE: Currently we're only interested in HTTP service endpoints. Over time, this list may be expanded.
31
- # Resources MUST NOT include personal identifiable information (PII); this should not be the case with
32
- # ddtrace integrations, but worth mentioning just in case :)
33
- def maybe_extract_resource(root_span)
34
- return unless root_span
35
-
36
- root_span.resource_container if root_span.span_type == Datadog::Ext::HTTP::TYPE_INBOUND
37
- end
38
- end
39
- end
40
- end
41
- end
@@ -1,46 +0,0 @@
1
- # typed: true
2
- # frozen_string_literal: true
3
-
4
- require 'ddtrace/profiling/trace_identifiers/ddtrace'
5
-
6
- module Datadog
7
- module Profiling
8
- module TraceIdentifiers
9
- # Helper used to retrieve the trace identifiers (trace id and span id) for a given thread,
10
- # if there is an active trace for that thread for the supported tracing APIs.
11
- #
12
- # This data is used to connect profiles to the traces -- samples in a profile will be tagged with this data and
13
- # the profile can be filtered down to look at only the samples for a given trace.
14
- class Helper
15
- DEFAULT_SUPPORTED_APIS = [
16
- ::Datadog::Profiling::TraceIdentifiers::Ddtrace
17
- ].freeze
18
- private_constant :DEFAULT_SUPPORTED_APIS
19
-
20
- def initialize(
21
- tracer:,
22
- # If this is disabled, the helper will strip the optional trace_resource_container even if provided by the api
23
- extract_trace_resource:,
24
- supported_apis: DEFAULT_SUPPORTED_APIS.map { |api| api.new(tracer: tracer) }
25
- )
26
- @extract_trace_resource = extract_trace_resource
27
- @supported_apis = supported_apis
28
- end
29
-
30
- # Expected output of the #trace_identifiers_for
31
- # duck type is [trace_id, span_id, (optional trace_resource_container)]
32
- def trace_identifiers_for(thread)
33
- @supported_apis.each do |api|
34
- trace_identifiers = api.trace_identifiers_for(thread)
35
-
36
- if trace_identifiers
37
- return @extract_trace_resource ? trace_identifiers : trace_identifiers[0..1]
38
- end
39
- end
40
-
41
- nil
42
- end
43
- end
44
- end
45
- end
46
- end
@@ -1,15 +0,0 @@
1
- # typed: true
2
- module Datadog
3
- module Profiling
4
- module Transport
5
- # Generic interface for profiling transports
6
- module Client
7
- include Kernel # Ensure that kernel methods are always available (https://sorbet.org/docs/error-reference#7003)
8
-
9
- def send_profiling_flush(flush)
10
- raise NotImplementedError
11
- end
12
- end
13
- end
14
- end
15
- end
@@ -1,101 +0,0 @@
1
- # typed: true
2
- require 'ddtrace/ext/profiling'
3
- require 'ddtrace/utils/compression'
4
- require 'ddtrace/vendor/multipart-post/multipart/post/composite_read_io'
5
-
6
- require 'ddtrace/transport/http/api/endpoint'
7
- require 'ddtrace/profiling/transport/http/response'
8
-
9
- module Datadog
10
- module Profiling
11
- module Transport
12
- module HTTP
13
- module API
14
- # Datadog API endpoint for profiling
15
- class Endpoint < Datadog::Transport::HTTP::API::Endpoint
16
- include Datadog::Ext::Profiling::Transport::HTTP
17
-
18
- # These tags are read from the flush object (see below) directly and so we ignore any extra copies that
19
- # may come in the tags hash to avoid duplicates.
20
- TAGS_TO_IGNORE_IN_TAGS_HASH = %w[service env version].freeze
21
- private_constant :TAGS_TO_IGNORE_IN_TAGS_HASH
22
-
23
- attr_reader \
24
- :encoder
25
-
26
- def initialize(path, encoder)
27
- super(:post, path)
28
- @encoder = encoder
29
- end
30
-
31
- def call(env, &block)
32
- # Build request
33
- env.form = build_form(env)
34
-
35
- # Send request
36
- http_response = super(env, &block)
37
-
38
- # Build response
39
- Profiling::Transport::HTTP::Response.new(http_response)
40
- end
41
-
42
- def build_form(env)
43
- flush = env.request.parcel.data
44
- pprof_file, types = build_pprof(flush)
45
-
46
- form = {
47
- # NOTE: Redundant w/ 'runtime-id' tag below; may want to remove this later.
48
- FORM_FIELD_RUNTIME_ID => flush.runtime_id,
49
- FORM_FIELD_RECORDING_START => flush.start.utc.iso8601,
50
- FORM_FIELD_RECORDING_END => flush.finish.utc.iso8601,
51
- FORM_FIELD_TAGS => [
52
- "#{FORM_FIELD_TAG_RUNTIME}:#{flush.language}",
53
- "#{FORM_FIELD_TAG_RUNTIME_ID}:#{flush.runtime_id}",
54
- "#{FORM_FIELD_TAG_RUNTIME_ENGINE}:#{flush.runtime_engine}",
55
- "#{FORM_FIELD_TAG_RUNTIME_PLATFORM}:#{flush.runtime_platform}",
56
- "#{FORM_FIELD_TAG_RUNTIME_VERSION}:#{flush.runtime_version}",
57
- "#{FORM_FIELD_TAG_PID}:#{Process.pid}",
58
- "#{FORM_FIELD_TAG_PROFILER_VERSION}:#{flush.profiler_version}",
59
- # NOTE: Redundant w/ 'runtime'; may want to remove this later.
60
- "#{FORM_FIELD_TAG_LANGUAGE}:#{flush.language}",
61
- "#{FORM_FIELD_TAG_HOST}:#{flush.host}",
62
- *flush
63
- .tags
64
- .reject { |tag_key| TAGS_TO_IGNORE_IN_TAGS_HASH.include?(tag_key) }
65
- .map { |tag_key, tag_value| "#{tag_key}:#{tag_value}" }
66
- ],
67
- FORM_FIELD_DATA => pprof_file,
68
- FORM_FIELD_RUNTIME => flush.language,
69
- FORM_FIELD_FORMAT => FORM_FIELD_FORMAT_PPROF
70
- }
71
-
72
- # Add types
73
- form[FORM_FIELD_TYPES] = types.join(',')
74
-
75
- # Optional fields
76
- form[FORM_FIELD_TAGS] << "#{FORM_FIELD_TAG_SERVICE}:#{flush.service}" unless flush.service.nil?
77
- form[FORM_FIELD_TAGS] << "#{FORM_FIELD_TAG_ENV}:#{flush.env}" unless flush.env.nil?
78
- form[FORM_FIELD_TAGS] << "#{FORM_FIELD_TAG_VERSION}:#{flush.version}" unless flush.version.nil?
79
-
80
- form
81
- end
82
-
83
- def build_pprof(flush)
84
- pprof = encoder.encode(flush)
85
-
86
- # Wrap pprof as a gzipped file
87
- gzipped_data = Datadog::Utils::Compression.gzip(pprof.data)
88
- pprof_file = Datadog::Vendor::Multipart::Post::UploadIO.new(
89
- StringIO.new(gzipped_data),
90
- HEADER_CONTENT_TYPE_OCTET_STREAM,
91
- PPROF_DEFAULT_FILENAME
92
- )
93
-
94
- [pprof_file, [FORM_FIELD_TYPES_AUTO]]
95
- end
96
- end
97
- end
98
- end
99
- end
100
- end
101
- end