ddtrace 0.34.1 → 1.23.1

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 (1171) hide show
  1. checksums.yaml +5 -5
  2. data/CHANGELOG.md +3321 -277
  3. data/LICENSE-3rdparty.csv +8 -0
  4. data/README.md +17 -9
  5. data/bin/ddprofrb +15 -0
  6. data/bin/ddtracerb +17 -0
  7. data/ext/datadog_profiling_loader/datadog_profiling_loader.c +134 -0
  8. data/ext/datadog_profiling_loader/extconf.rb +72 -0
  9. data/ext/datadog_profiling_native_extension/NativeExtensionDesign.md +156 -0
  10. data/ext/datadog_profiling_native_extension/clock_id.h +22 -0
  11. data/ext/datadog_profiling_native_extension/clock_id_from_pthread.c +56 -0
  12. data/ext/datadog_profiling_native_extension/clock_id_noop.c +22 -0
  13. data/ext/datadog_profiling_native_extension/collectors_cpu_and_wall_time_worker.c +1161 -0
  14. data/ext/datadog_profiling_native_extension/collectors_discrete_dynamic_sampler.c +422 -0
  15. data/ext/datadog_profiling_native_extension/collectors_discrete_dynamic_sampler.h +101 -0
  16. data/ext/datadog_profiling_native_extension/collectors_dynamic_sampling_rate.c +150 -0
  17. data/ext/datadog_profiling_native_extension/collectors_dynamic_sampling_rate.h +18 -0
  18. data/ext/datadog_profiling_native_extension/collectors_gc_profiling_helper.c +156 -0
  19. data/ext/datadog_profiling_native_extension/collectors_gc_profiling_helper.h +5 -0
  20. data/ext/datadog_profiling_native_extension/collectors_idle_sampling_helper.c +244 -0
  21. data/ext/datadog_profiling_native_extension/collectors_idle_sampling_helper.h +3 -0
  22. data/ext/datadog_profiling_native_extension/collectors_stack.c +372 -0
  23. data/ext/datadog_profiling_native_extension/collectors_stack.h +27 -0
  24. data/ext/datadog_profiling_native_extension/collectors_thread_context.c +1402 -0
  25. data/ext/datadog_profiling_native_extension/collectors_thread_context.h +15 -0
  26. data/ext/datadog_profiling_native_extension/extconf.rb +302 -0
  27. data/ext/datadog_profiling_native_extension/heap_recorder.c +1047 -0
  28. data/ext/datadog_profiling_native_extension/heap_recorder.h +166 -0
  29. data/ext/datadog_profiling_native_extension/helpers.h +23 -0
  30. data/ext/datadog_profiling_native_extension/http_transport.c +375 -0
  31. data/ext/datadog_profiling_native_extension/libdatadog_helpers.c +62 -0
  32. data/ext/datadog_profiling_native_extension/libdatadog_helpers.h +42 -0
  33. data/ext/datadog_profiling_native_extension/native_extension_helpers.rb +319 -0
  34. data/ext/datadog_profiling_native_extension/private_vm_api_access.c +892 -0
  35. data/ext/datadog_profiling_native_extension/private_vm_api_access.h +61 -0
  36. data/ext/datadog_profiling_native_extension/profiling.c +267 -0
  37. data/ext/datadog_profiling_native_extension/ruby_helpers.c +267 -0
  38. data/ext/datadog_profiling_native_extension/ruby_helpers.h +122 -0
  39. data/ext/datadog_profiling_native_extension/setup_signal_handler.c +115 -0
  40. data/ext/datadog_profiling_native_extension/setup_signal_handler.h +11 -0
  41. data/ext/datadog_profiling_native_extension/stack_recorder.c +1040 -0
  42. data/ext/datadog_profiling_native_extension/stack_recorder.h +27 -0
  43. data/ext/datadog_profiling_native_extension/time_helpers.c +53 -0
  44. data/ext/datadog_profiling_native_extension/time_helpers.h +26 -0
  45. data/lib/datadog/appsec/assets/blocked.html +99 -0
  46. data/lib/datadog/appsec/assets/blocked.json +1 -0
  47. data/lib/datadog/appsec/assets/blocked.text +5 -0
  48. data/lib/datadog/appsec/assets/waf_rules/README.md +7 -0
  49. data/lib/datadog/appsec/assets/waf_rules/processors.json +92 -0
  50. data/lib/datadog/appsec/assets/waf_rules/recommended.json +7703 -0
  51. data/lib/datadog/appsec/assets/waf_rules/scanners.json +114 -0
  52. data/lib/datadog/appsec/assets/waf_rules/strict.json +1635 -0
  53. data/lib/datadog/appsec/assets.rb +44 -0
  54. data/lib/datadog/appsec/autoload.rb +11 -0
  55. data/lib/datadog/appsec/component.rb +94 -0
  56. data/lib/datadog/appsec/configuration/settings.rb +202 -0
  57. data/lib/datadog/appsec/configuration.rb +11 -0
  58. data/lib/datadog/appsec/contrib/auto_instrument.rb +25 -0
  59. data/lib/datadog/appsec/contrib/devise/event.rb +57 -0
  60. data/lib/datadog/appsec/contrib/devise/ext.rb +13 -0
  61. data/lib/datadog/appsec/contrib/devise/integration.rb +42 -0
  62. data/lib/datadog/appsec/contrib/devise/patcher/authenticatable_patch.rb +76 -0
  63. data/lib/datadog/appsec/contrib/devise/patcher/registration_controller_patch.rb +54 -0
  64. data/lib/datadog/appsec/contrib/devise/patcher.rb +45 -0
  65. data/lib/datadog/appsec/contrib/devise/resource.rb +35 -0
  66. data/lib/datadog/appsec/contrib/devise/tracking.rb +57 -0
  67. data/lib/datadog/appsec/contrib/integration.rb +37 -0
  68. data/lib/datadog/appsec/contrib/patcher.rb +12 -0
  69. data/lib/datadog/appsec/contrib/rack/ext.rb +13 -0
  70. data/lib/datadog/appsec/contrib/rack/gateway/request.rb +104 -0
  71. data/lib/datadog/appsec/contrib/rack/gateway/response.rb +30 -0
  72. data/lib/datadog/appsec/contrib/rack/gateway/watcher.rb +160 -0
  73. data/lib/datadog/appsec/contrib/rack/integration.rb +42 -0
  74. data/lib/datadog/appsec/contrib/rack/patcher.rb +34 -0
  75. data/lib/datadog/appsec/contrib/rack/reactive/request.rb +81 -0
  76. data/lib/datadog/appsec/contrib/rack/reactive/request_body.rb +60 -0
  77. data/lib/datadog/appsec/contrib/rack/reactive/response.rb +66 -0
  78. data/lib/datadog/appsec/contrib/rack/request_body_middleware.rb +44 -0
  79. data/lib/datadog/appsec/contrib/rack/request_middleware.rb +224 -0
  80. data/lib/datadog/appsec/contrib/rails/ext.rb +13 -0
  81. data/lib/datadog/appsec/contrib/rails/framework.rb +16 -0
  82. data/lib/datadog/appsec/contrib/rails/gateway/request.rb +67 -0
  83. data/lib/datadog/appsec/contrib/rails/gateway/watcher.rb +69 -0
  84. data/lib/datadog/appsec/contrib/rails/integration.rb +41 -0
  85. data/lib/datadog/appsec/contrib/rails/patcher.rb +165 -0
  86. data/lib/datadog/appsec/contrib/rails/reactive/action.rb +66 -0
  87. data/lib/datadog/appsec/contrib/rails/request.rb +36 -0
  88. data/lib/datadog/appsec/contrib/rails/request_middleware.rb +20 -0
  89. data/lib/datadog/appsec/contrib/sinatra/ext.rb +14 -0
  90. data/lib/datadog/appsec/contrib/sinatra/framework.rb +20 -0
  91. data/lib/datadog/appsec/contrib/sinatra/gateway/request.rb +17 -0
  92. data/lib/datadog/appsec/contrib/sinatra/gateway/route_params.rb +23 -0
  93. data/lib/datadog/appsec/contrib/sinatra/gateway/watcher.rb +115 -0
  94. data/lib/datadog/appsec/contrib/sinatra/integration.rb +41 -0
  95. data/lib/datadog/appsec/contrib/sinatra/patcher.rb +166 -0
  96. data/lib/datadog/appsec/contrib/sinatra/reactive/routed.rb +61 -0
  97. data/lib/datadog/appsec/contrib/sinatra/request_middleware.rb +20 -0
  98. data/lib/datadog/appsec/event.rb +169 -0
  99. data/lib/datadog/appsec/ext.rb +10 -0
  100. data/lib/datadog/appsec/extensions.rb +15 -0
  101. data/lib/datadog/appsec/instrumentation/gateway/argument.rb +22 -0
  102. data/lib/datadog/appsec/instrumentation/gateway.rb +64 -0
  103. data/lib/datadog/appsec/instrumentation.rb +9 -0
  104. data/lib/datadog/appsec/monitor/gateway/watcher.rb +67 -0
  105. data/lib/datadog/appsec/monitor/reactive/set_user.rb +58 -0
  106. data/lib/datadog/appsec/monitor.rb +11 -0
  107. data/lib/datadog/appsec/processor/actions.rb +49 -0
  108. data/lib/datadog/appsec/processor/rule_loader.rb +123 -0
  109. data/lib/datadog/appsec/processor/rule_merger.rb +152 -0
  110. data/lib/datadog/appsec/processor.rb +171 -0
  111. data/lib/datadog/appsec/rate_limiter.rb +58 -0
  112. data/lib/datadog/appsec/reactive/address_hash.rb +22 -0
  113. data/lib/datadog/appsec/reactive/engine.rb +47 -0
  114. data/lib/datadog/appsec/reactive/operation.rb +68 -0
  115. data/lib/datadog/appsec/reactive/subscriber.rb +19 -0
  116. data/lib/datadog/appsec/remote.rb +129 -0
  117. data/lib/datadog/appsec/response.rb +151 -0
  118. data/lib/datadog/appsec/sample_rate.rb +21 -0
  119. data/lib/datadog/appsec/scope.rb +61 -0
  120. data/lib/datadog/appsec/utils/http/media_range.rb +199 -0
  121. data/lib/datadog/appsec/utils/http/media_type.rb +85 -0
  122. data/lib/datadog/appsec/utils/http.rb +11 -0
  123. data/lib/datadog/appsec/utils.rb +9 -0
  124. data/lib/datadog/appsec.rb +60 -0
  125. data/lib/datadog/auto_instrument.rb +3 -0
  126. data/lib/datadog/core/backport.rb +51 -0
  127. data/lib/datadog/core/buffer/cruby.rb +55 -0
  128. data/lib/datadog/core/buffer/random.rb +134 -0
  129. data/lib/datadog/core/buffer/thread_safe.rb +58 -0
  130. data/lib/datadog/core/chunker.rb +35 -0
  131. data/lib/datadog/core/configuration/agent_settings_resolver.rb +405 -0
  132. data/lib/datadog/core/configuration/base.rb +89 -0
  133. data/lib/datadog/core/configuration/components.rb +174 -0
  134. data/lib/datadog/core/configuration/ext.rb +47 -0
  135. data/lib/datadog/core/configuration/option.rb +319 -0
  136. data/lib/datadog/core/configuration/option_definition.rb +176 -0
  137. data/lib/datadog/core/configuration/options.rb +128 -0
  138. data/lib/datadog/core/configuration/settings.rb +848 -0
  139. data/lib/datadog/core/configuration.rb +309 -0
  140. data/lib/datadog/core/diagnostics/environment_logger.rb +183 -0
  141. data/lib/datadog/core/diagnostics/health.rb +19 -0
  142. data/lib/datadog/core/encoding.rb +72 -0
  143. data/lib/datadog/core/environment/cgroup.rb +51 -0
  144. data/lib/datadog/core/environment/class_count.rb +21 -0
  145. data/lib/datadog/core/environment/container.rb +89 -0
  146. data/lib/datadog/core/environment/execution.rb +103 -0
  147. data/lib/datadog/core/environment/ext.rb +46 -0
  148. data/lib/datadog/core/environment/gc.rb +20 -0
  149. data/lib/datadog/core/environment/git.rb +25 -0
  150. data/lib/datadog/core/environment/identity.rb +84 -0
  151. data/lib/datadog/core/environment/platform.rb +44 -0
  152. data/lib/datadog/core/environment/socket.rb +24 -0
  153. data/lib/datadog/core/environment/thread_count.rb +20 -0
  154. data/lib/datadog/core/environment/variable_helpers.rb +53 -0
  155. data/lib/datadog/core/environment/vm_cache.rb +64 -0
  156. data/lib/datadog/core/environment/yjit.rb +58 -0
  157. data/lib/datadog/core/error.rb +100 -0
  158. data/lib/datadog/core/extensions.rb +16 -0
  159. data/lib/datadog/core/git/ext.rb +16 -0
  160. data/lib/datadog/core/header_collection.rb +43 -0
  161. data/lib/datadog/core/logger.rb +44 -0
  162. data/lib/datadog/core/logging/ext.rb +13 -0
  163. data/lib/datadog/core/metrics/client.rb +197 -0
  164. data/lib/datadog/core/metrics/ext.rb +18 -0
  165. data/lib/datadog/core/metrics/helpers.rb +25 -0
  166. data/lib/datadog/core/metrics/logging.rb +42 -0
  167. data/lib/datadog/core/metrics/metric.rb +14 -0
  168. data/lib/datadog/core/metrics/options.rb +48 -0
  169. data/lib/datadog/core/pin.rb +73 -0
  170. data/lib/datadog/core/remote/client/capabilities.rb +62 -0
  171. data/lib/datadog/core/remote/client.rb +232 -0
  172. data/lib/datadog/core/remote/component.rb +162 -0
  173. data/lib/datadog/core/remote/configuration/content.rb +111 -0
  174. data/lib/datadog/core/remote/configuration/digest.rb +62 -0
  175. data/lib/datadog/core/remote/configuration/path.rb +90 -0
  176. data/lib/datadog/core/remote/configuration/repository.rb +294 -0
  177. data/lib/datadog/core/remote/configuration/target.rb +74 -0
  178. data/lib/datadog/core/remote/configuration.rb +18 -0
  179. data/lib/datadog/core/remote/dispatcher.rb +59 -0
  180. data/lib/datadog/core/remote/ext.rb +13 -0
  181. data/lib/datadog/core/remote/negotiation.rb +70 -0
  182. data/lib/datadog/core/remote/tie/tracing.rb +39 -0
  183. data/lib/datadog/core/remote/tie.rb +27 -0
  184. data/lib/datadog/core/remote/transport/config.rb +60 -0
  185. data/lib/datadog/core/remote/transport/http/api/instance.rb +39 -0
  186. data/lib/datadog/core/remote/transport/http/api/spec.rb +21 -0
  187. data/lib/datadog/core/remote/transport/http/api.rb +58 -0
  188. data/lib/datadog/core/remote/transport/http/builder.rb +219 -0
  189. data/lib/datadog/core/remote/transport/http/client.rb +48 -0
  190. data/lib/datadog/core/remote/transport/http/config.rb +280 -0
  191. data/lib/datadog/core/remote/transport/http/negotiation.rb +146 -0
  192. data/lib/datadog/core/remote/transport/http.rb +179 -0
  193. data/lib/datadog/core/remote/transport/negotiation.rb +62 -0
  194. data/lib/datadog/core/remote/worker.rb +102 -0
  195. data/lib/datadog/core/remote.rb +24 -0
  196. data/lib/datadog/core/runtime/ext.rb +38 -0
  197. data/lib/datadog/core/runtime/metrics.rb +183 -0
  198. data/lib/datadog/core/telemetry/client.rb +95 -0
  199. data/lib/datadog/core/telemetry/emitter.rb +44 -0
  200. data/lib/datadog/core/telemetry/event.rb +273 -0
  201. data/lib/datadog/core/telemetry/ext.rb +16 -0
  202. data/lib/datadog/core/telemetry/heartbeat.rb +33 -0
  203. data/lib/datadog/core/telemetry/http/adapters/net.rb +111 -0
  204. data/lib/datadog/core/telemetry/http/env.rb +20 -0
  205. data/lib/datadog/core/telemetry/http/ext.rb +25 -0
  206. data/lib/datadog/core/telemetry/http/response.rb +68 -0
  207. data/lib/datadog/core/telemetry/http/transport.rb +61 -0
  208. data/lib/datadog/core/telemetry/request.rb +59 -0
  209. data/lib/datadog/core/transport/ext.rb +49 -0
  210. data/lib/datadog/core/transport/http/adapters/net.rb +168 -0
  211. data/lib/datadog/core/transport/http/adapters/registry.rb +29 -0
  212. data/lib/datadog/core/transport/http/adapters/test.rb +89 -0
  213. data/lib/datadog/core/transport/http/adapters/unix_socket.rb +83 -0
  214. data/lib/datadog/core/transport/http/api/endpoint.rb +31 -0
  215. data/lib/datadog/core/transport/http/api/fallbacks.rb +26 -0
  216. data/lib/datadog/core/transport/http/api/map.rb +18 -0
  217. data/lib/datadog/core/transport/http/env.rb +62 -0
  218. data/lib/datadog/core/transport/http/response.rb +60 -0
  219. data/lib/datadog/core/transport/parcel.rb +22 -0
  220. data/lib/datadog/core/transport/request.rb +17 -0
  221. data/lib/datadog/core/transport/response.rb +64 -0
  222. data/lib/datadog/core/utils/compression.rb +36 -0
  223. data/lib/datadog/core/utils/duration.rb +52 -0
  224. data/lib/datadog/core/utils/forking.rb +61 -0
  225. data/lib/datadog/core/utils/hash.rb +79 -0
  226. data/lib/datadog/core/utils/network.rb +140 -0
  227. data/lib/datadog/core/utils/only_once.rb +42 -0
  228. data/lib/datadog/core/utils/safe_dup.rb +50 -0
  229. data/lib/datadog/core/utils/sequence.rb +26 -0
  230. data/lib/datadog/core/utils/time.rb +52 -0
  231. data/lib/datadog/core/utils/url.rb +25 -0
  232. data/lib/datadog/core/utils.rb +92 -0
  233. data/lib/datadog/core/vendor/ipaddr.rb +78 -0
  234. data/lib/datadog/core/vendor/multipart-post/LICENSE +11 -0
  235. data/lib/datadog/core/vendor/multipart-post/multipart/post/composite_read_io.rb +118 -0
  236. data/lib/datadog/core/vendor/multipart-post/multipart/post/multipartable.rb +59 -0
  237. data/lib/datadog/core/vendor/multipart-post/multipart/post/parts.rb +137 -0
  238. data/lib/datadog/core/vendor/multipart-post/multipart/post/version.rb +11 -0
  239. data/lib/datadog/core/vendor/multipart-post/multipart/post.rb +10 -0
  240. data/lib/datadog/core/vendor/multipart-post/multipart.rb +14 -0
  241. data/lib/datadog/core/vendor/multipart-post/net/http/post/multipart.rb +34 -0
  242. data/lib/datadog/core/worker.rb +24 -0
  243. data/lib/datadog/core/workers/async.rb +183 -0
  244. data/lib/datadog/core/workers/interval_loop.rb +123 -0
  245. data/lib/datadog/core/workers/polling.rb +57 -0
  246. data/lib/datadog/core/workers/queue.rb +44 -0
  247. data/lib/datadog/core/workers/runtime_metrics.rb +62 -0
  248. data/lib/datadog/core.rb +45 -0
  249. data/lib/datadog/kit/appsec/events.rb +169 -0
  250. data/lib/datadog/kit/enable_core_dumps.rb +49 -0
  251. data/lib/datadog/kit/identity.rb +104 -0
  252. data/lib/datadog/kit.rb +11 -0
  253. data/lib/datadog/opentelemetry/api/context.rb +193 -0
  254. data/lib/datadog/opentelemetry/api/trace/span.rb +14 -0
  255. data/lib/datadog/opentelemetry/sdk/configurator.rb +37 -0
  256. data/lib/datadog/opentelemetry/sdk/id_generator.rb +26 -0
  257. data/lib/datadog/opentelemetry/sdk/propagator.rb +92 -0
  258. data/lib/datadog/opentelemetry/sdk/span_processor.rb +134 -0
  259. data/lib/datadog/opentelemetry/sdk/trace/span.rb +167 -0
  260. data/lib/datadog/opentelemetry/trace.rb +58 -0
  261. data/lib/datadog/opentelemetry.rb +51 -0
  262. data/lib/datadog/opentracer/binary_propagator.rb +26 -0
  263. data/lib/datadog/opentracer/carrier.rb +9 -0
  264. data/lib/datadog/opentracer/distributed_headers.rb +54 -0
  265. data/lib/datadog/opentracer/global_tracer.rb +17 -0
  266. data/lib/datadog/opentracer/propagator.rb +26 -0
  267. data/lib/datadog/opentracer/rack_propagator.rb +71 -0
  268. data/lib/datadog/opentracer/scope.rb +18 -0
  269. data/lib/datadog/opentracer/scope_manager.rb +9 -0
  270. data/lib/datadog/opentracer/span.rb +99 -0
  271. data/lib/datadog/opentracer/span_context.rb +19 -0
  272. data/lib/datadog/opentracer/span_context_factory.rb +27 -0
  273. data/lib/datadog/opentracer/text_map_propagator.rb +87 -0
  274. data/lib/datadog/opentracer/thread_local_scope.rb +34 -0
  275. data/lib/datadog/opentracer/thread_local_scope_manager.rb +64 -0
  276. data/lib/datadog/opentracer/tracer.rb +212 -0
  277. data/lib/datadog/opentracer.rb +33 -0
  278. data/lib/datadog/profiling/collectors/code_provenance.rb +119 -0
  279. data/lib/datadog/profiling/collectors/cpu_and_wall_time_worker.rb +137 -0
  280. data/lib/datadog/profiling/collectors/dynamic_sampling_rate.rb +14 -0
  281. data/lib/datadog/profiling/collectors/idle_sampling_helper.rb +68 -0
  282. data/lib/datadog/profiling/collectors/info.rb +101 -0
  283. data/lib/datadog/profiling/collectors/stack.rb +13 -0
  284. data/lib/datadog/profiling/collectors/thread_context.rb +61 -0
  285. data/lib/datadog/profiling/component.rb +426 -0
  286. data/lib/datadog/profiling/exporter.rb +104 -0
  287. data/lib/datadog/profiling/ext/forking.rb +96 -0
  288. data/lib/datadog/profiling/ext.rb +35 -0
  289. data/lib/datadog/profiling/flush.rb +43 -0
  290. data/lib/datadog/profiling/http_transport.rb +147 -0
  291. data/lib/datadog/profiling/load_native_extension.rb +39 -0
  292. data/lib/datadog/profiling/native_extension.rb +20 -0
  293. data/lib/datadog/profiling/preload.rb +5 -0
  294. data/lib/datadog/profiling/profiler.rb +62 -0
  295. data/lib/datadog/profiling/scheduler.rb +135 -0
  296. data/lib/datadog/profiling/stack_recorder.rb +71 -0
  297. data/lib/datadog/profiling/tag_builder.rb +58 -0
  298. data/lib/datadog/profiling/tasks/exec.rb +48 -0
  299. data/lib/datadog/profiling/tasks/help.rb +16 -0
  300. data/lib/datadog/profiling/tasks/setup.rb +58 -0
  301. data/lib/datadog/profiling.rb +161 -0
  302. data/lib/datadog/tracing/analytics.rb +25 -0
  303. data/lib/datadog/tracing/buffer.rb +127 -0
  304. data/lib/datadog/tracing/client_ip.rb +61 -0
  305. data/lib/datadog/tracing/component.rb +235 -0
  306. data/lib/datadog/tracing/configuration/agent_settings_resolver.rb +13 -0
  307. data/lib/datadog/tracing/configuration/dynamic/option.rb +71 -0
  308. data/lib/datadog/tracing/configuration/dynamic.rb +64 -0
  309. data/lib/datadog/tracing/configuration/ext.rb +108 -0
  310. data/lib/datadog/tracing/configuration/http.rb +74 -0
  311. data/lib/datadog/tracing/configuration/settings.rb +502 -0
  312. data/lib/datadog/tracing/context.rb +68 -0
  313. data/lib/datadog/tracing/context_provider.rb +80 -0
  314. data/lib/datadog/tracing/contrib/action_cable/configuration/settings.rb +39 -0
  315. data/lib/datadog/tracing/contrib/action_cable/event.rb +71 -0
  316. data/lib/datadog/tracing/contrib/action_cable/events/broadcast.rb +56 -0
  317. data/lib/datadog/tracing/contrib/action_cable/events/perform_action.rb +61 -0
  318. data/lib/datadog/tracing/contrib/action_cable/events/transmit.rb +57 -0
  319. data/lib/datadog/tracing/contrib/action_cable/events.rb +37 -0
  320. data/lib/datadog/tracing/contrib/action_cable/ext.rb +33 -0
  321. data/lib/datadog/tracing/contrib/action_cable/instrumentation.rb +88 -0
  322. data/lib/datadog/tracing/contrib/action_cable/integration.rb +48 -0
  323. data/lib/datadog/tracing/contrib/action_cable/patcher.rb +31 -0
  324. data/lib/datadog/tracing/contrib/action_mailer/configuration/settings.rb +40 -0
  325. data/lib/datadog/tracing/contrib/action_mailer/event.rb +52 -0
  326. data/lib/datadog/tracing/contrib/action_mailer/events/deliver.rb +58 -0
  327. data/lib/datadog/tracing/contrib/action_mailer/events/process.rb +45 -0
  328. data/lib/datadog/tracing/contrib/action_mailer/events.rb +34 -0
  329. data/lib/datadog/tracing/contrib/action_mailer/ext.rb +34 -0
  330. data/lib/datadog/tracing/contrib/action_mailer/integration.rb +48 -0
  331. data/lib/datadog/tracing/contrib/action_mailer/patcher.rb +29 -0
  332. data/lib/datadog/tracing/contrib/action_pack/action_controller/instrumentation.rb +136 -0
  333. data/lib/datadog/tracing/contrib/action_pack/action_controller/patcher.rb +29 -0
  334. data/lib/datadog/tracing/contrib/action_pack/configuration/settings.rb +50 -0
  335. data/lib/datadog/tracing/contrib/action_pack/ext.rb +23 -0
  336. data/lib/datadog/tracing/contrib/action_pack/integration.rb +48 -0
  337. data/lib/datadog/tracing/contrib/action_pack/patcher.rb +27 -0
  338. data/lib/datadog/tracing/contrib/action_pack/utils.rb +38 -0
  339. data/lib/datadog/tracing/contrib/action_view/configuration/settings.rb +38 -0
  340. data/lib/datadog/tracing/contrib/action_view/event.rb +35 -0
  341. data/lib/datadog/tracing/contrib/action_view/events/render_partial.rb +52 -0
  342. data/lib/datadog/tracing/contrib/action_view/events/render_template.rb +55 -0
  343. data/lib/datadog/tracing/contrib/action_view/events.rb +34 -0
  344. data/lib/datadog/tracing/contrib/action_view/ext.rb +25 -0
  345. data/lib/datadog/tracing/contrib/action_view/instrumentation/partial_renderer.rb +76 -0
  346. data/lib/datadog/tracing/contrib/action_view/instrumentation/template_renderer.rb +89 -0
  347. data/lib/datadog/tracing/contrib/action_view/integration.rb +55 -0
  348. data/lib/datadog/tracing/contrib/action_view/patcher.rb +45 -0
  349. data/lib/datadog/tracing/contrib/action_view/utils.rb +34 -0
  350. data/lib/datadog/tracing/contrib/active_job/configuration/settings.rb +44 -0
  351. data/lib/datadog/tracing/contrib/active_job/event.rb +58 -0
  352. data/lib/datadog/tracing/contrib/active_job/events/discard.rb +48 -0
  353. data/lib/datadog/tracing/contrib/active_job/events/enqueue.rb +47 -0
  354. data/lib/datadog/tracing/contrib/active_job/events/enqueue_at.rb +47 -0
  355. data/lib/datadog/tracing/contrib/active_job/events/enqueue_retry.rb +49 -0
  356. data/lib/datadog/tracing/contrib/active_job/events/perform.rb +47 -0
  357. data/lib/datadog/tracing/contrib/active_job/events/retry_stopped.rb +48 -0
  358. data/lib/datadog/tracing/contrib/active_job/events.rb +42 -0
  359. data/lib/datadog/tracing/contrib/active_job/ext.rb +40 -0
  360. data/lib/datadog/tracing/contrib/active_job/integration.rb +48 -0
  361. data/lib/datadog/tracing/contrib/active_job/log_injection.rb +24 -0
  362. data/lib/datadog/tracing/contrib/active_job/patcher.rb +36 -0
  363. data/lib/datadog/tracing/contrib/active_model_serializers/configuration/settings.rb +37 -0
  364. data/lib/datadog/tracing/contrib/active_model_serializers/event.rb +68 -0
  365. data/lib/datadog/tracing/contrib/active_model_serializers/events/render.rb +43 -0
  366. data/lib/datadog/tracing/contrib/active_model_serializers/events/serialize.rb +45 -0
  367. data/lib/datadog/tracing/contrib/active_model_serializers/events.rb +34 -0
  368. data/lib/datadog/tracing/contrib/active_model_serializers/ext.rb +25 -0
  369. data/lib/datadog/tracing/contrib/active_model_serializers/integration.rb +43 -0
  370. data/lib/datadog/tracing/contrib/active_model_serializers/patcher.rb +32 -0
  371. data/lib/datadog/tracing/contrib/active_record/configuration/makara_resolver.rb +34 -0
  372. data/lib/datadog/tracing/contrib/active_record/configuration/resolver.rb +150 -0
  373. data/lib/datadog/tracing/contrib/active_record/configuration/settings.rb +47 -0
  374. data/lib/datadog/tracing/contrib/active_record/event.rb +30 -0
  375. data/lib/datadog/tracing/contrib/active_record/events/instantiation.rb +56 -0
  376. data/lib/datadog/tracing/contrib/active_record/events/sql.rb +75 -0
  377. data/lib/datadog/tracing/contrib/active_record/events.rb +34 -0
  378. data/lib/datadog/tracing/contrib/active_record/ext.rb +30 -0
  379. data/lib/datadog/tracing/contrib/active_record/integration.rb +54 -0
  380. data/lib/datadog/tracing/contrib/active_record/patcher.rb +27 -0
  381. data/lib/datadog/tracing/contrib/active_record/utils.rb +126 -0
  382. data/lib/datadog/tracing/contrib/active_record/vendor/MIT-LICENSE +20 -0
  383. data/lib/datadog/tracing/contrib/active_record/vendor/connection_specification.rb +305 -0
  384. data/lib/datadog/tracing/contrib/active_support/cache/instrumentation.rb +186 -0
  385. data/lib/datadog/tracing/contrib/active_support/cache/patcher.rb +76 -0
  386. data/lib/datadog/tracing/contrib/active_support/cache/redis.rb +47 -0
  387. data/lib/datadog/tracing/contrib/active_support/configuration/settings.rb +46 -0
  388. data/lib/datadog/tracing/contrib/active_support/ext.rb +32 -0
  389. data/lib/datadog/tracing/contrib/active_support/integration.rb +49 -0
  390. data/lib/datadog/tracing/contrib/active_support/notifications/event.rb +71 -0
  391. data/lib/datadog/tracing/contrib/active_support/notifications/subscriber.rb +71 -0
  392. data/lib/datadog/tracing/contrib/active_support/notifications/subscription.rb +162 -0
  393. data/lib/datadog/tracing/contrib/active_support/patcher.rb +27 -0
  394. data/lib/datadog/tracing/contrib/analytics.rb +28 -0
  395. data/lib/datadog/tracing/contrib/auto_instrument.rb +53 -0
  396. data/lib/datadog/tracing/contrib/aws/configuration/settings.rb +52 -0
  397. data/lib/datadog/tracing/contrib/aws/ext.rb +50 -0
  398. data/lib/datadog/tracing/contrib/aws/instrumentation.rb +119 -0
  399. data/lib/datadog/tracing/contrib/aws/integration.rb +45 -0
  400. data/lib/datadog/tracing/contrib/aws/parsed_context.rb +62 -0
  401. data/lib/datadog/tracing/contrib/aws/patcher.rb +57 -0
  402. data/lib/datadog/tracing/contrib/aws/service/base.rb +16 -0
  403. data/lib/datadog/tracing/contrib/aws/service/dynamodb.rb +22 -0
  404. data/lib/datadog/tracing/contrib/aws/service/eventbridge.rb +22 -0
  405. data/lib/datadog/tracing/contrib/aws/service/kinesis.rb +32 -0
  406. data/lib/datadog/tracing/contrib/aws/service/s3.rb +22 -0
  407. data/lib/datadog/tracing/contrib/aws/service/sns.rb +30 -0
  408. data/lib/datadog/tracing/contrib/aws/service/sqs.rb +27 -0
  409. data/lib/datadog/tracing/contrib/aws/service/states.rb +40 -0
  410. data/lib/datadog/tracing/contrib/aws/services.rb +137 -0
  411. data/lib/datadog/tracing/contrib/concurrent_ruby/async_patch.rb +20 -0
  412. data/lib/datadog/tracing/contrib/concurrent_ruby/configuration/settings.rb +24 -0
  413. data/lib/datadog/tracing/contrib/concurrent_ruby/context_composite_executor_service.rb +53 -0
  414. data/lib/datadog/tracing/contrib/concurrent_ruby/ext.rb +16 -0
  415. data/lib/datadog/tracing/contrib/concurrent_ruby/future_patch.rb +20 -0
  416. data/lib/datadog/tracing/contrib/concurrent_ruby/integration.rb +42 -0
  417. data/lib/datadog/tracing/contrib/concurrent_ruby/patcher.rb +49 -0
  418. data/lib/datadog/tracing/contrib/concurrent_ruby/promises_future_patch.rb +22 -0
  419. data/lib/datadog/tracing/contrib/configurable.rb +102 -0
  420. data/lib/datadog/tracing/contrib/configuration/resolver.rb +85 -0
  421. data/lib/datadog/tracing/contrib/configuration/resolvers/pattern_resolver.rb +43 -0
  422. data/lib/datadog/tracing/contrib/configuration/settings.rb +39 -0
  423. data/lib/datadog/tracing/contrib/dalli/configuration/settings.rb +57 -0
  424. data/lib/datadog/tracing/contrib/dalli/ext.rb +40 -0
  425. data/lib/datadog/tracing/contrib/dalli/instrumentation.rb +73 -0
  426. data/lib/datadog/tracing/contrib/dalli/integration.rb +50 -0
  427. data/lib/datadog/tracing/contrib/dalli/patcher.rb +28 -0
  428. data/lib/datadog/tracing/contrib/dalli/quantize.rb +24 -0
  429. data/lib/datadog/tracing/contrib/delayed_job/configuration/settings.rb +45 -0
  430. data/lib/datadog/tracing/contrib/delayed_job/ext.rb +29 -0
  431. data/lib/datadog/tracing/contrib/delayed_job/integration.rb +41 -0
  432. data/lib/datadog/tracing/contrib/delayed_job/patcher.rb +37 -0
  433. data/lib/datadog/tracing/contrib/delayed_job/plugin.rb +108 -0
  434. data/lib/datadog/tracing/contrib/delayed_job/server_internal_tracer/worker.rb +34 -0
  435. data/lib/datadog/tracing/contrib/elasticsearch/configuration/settings.rb +53 -0
  436. data/lib/datadog/tracing/contrib/elasticsearch/ext.rb +34 -0
  437. data/lib/datadog/tracing/contrib/elasticsearch/integration.rb +48 -0
  438. data/lib/datadog/tracing/contrib/elasticsearch/patcher.rb +160 -0
  439. data/lib/datadog/tracing/contrib/elasticsearch/quantize.rb +85 -0
  440. data/lib/datadog/tracing/contrib/ethon/configuration/settings.rb +55 -0
  441. data/lib/datadog/tracing/contrib/ethon/easy_patch.rb +221 -0
  442. data/lib/datadog/tracing/contrib/ethon/ext.rb +32 -0
  443. data/lib/datadog/tracing/contrib/ethon/integration.rb +46 -0
  444. data/lib/datadog/tracing/contrib/ethon/multi_patch.rb +102 -0
  445. data/lib/datadog/tracing/contrib/ethon/patcher.rb +30 -0
  446. data/lib/datadog/tracing/contrib/excon/configuration/settings.rb +57 -0
  447. data/lib/datadog/tracing/contrib/excon/ext.rb +29 -0
  448. data/lib/datadog/tracing/contrib/excon/integration.rb +46 -0
  449. data/lib/datadog/tracing/contrib/excon/middleware.rb +192 -0
  450. data/lib/datadog/tracing/contrib/excon/patcher.rb +31 -0
  451. data/lib/datadog/tracing/contrib/ext.rb +55 -0
  452. data/lib/datadog/tracing/contrib/extensions.rb +233 -0
  453. data/lib/datadog/tracing/contrib/faraday/configuration/settings.rb +68 -0
  454. data/lib/datadog/tracing/contrib/faraday/connection.rb +22 -0
  455. data/lib/datadog/tracing/contrib/faraday/ext.rb +29 -0
  456. data/lib/datadog/tracing/contrib/faraday/integration.rb +46 -0
  457. data/lib/datadog/tracing/contrib/faraday/middleware.rb +110 -0
  458. data/lib/datadog/tracing/contrib/faraday/patcher.rb +54 -0
  459. data/lib/datadog/tracing/contrib/faraday/rack_builder.rb +22 -0
  460. data/lib/datadog/tracing/contrib/grape/configuration/settings.rb +45 -0
  461. data/lib/datadog/tracing/contrib/grape/endpoint.rb +248 -0
  462. data/lib/datadog/tracing/contrib/grape/ext.rb +29 -0
  463. data/lib/datadog/tracing/contrib/grape/instrumentation.rb +35 -0
  464. data/lib/datadog/tracing/contrib/grape/integration.rb +42 -0
  465. data/lib/datadog/tracing/contrib/grape/patcher.rb +33 -0
  466. data/lib/datadog/tracing/contrib/graphql/configuration/settings.rb +39 -0
  467. data/lib/datadog/tracing/contrib/graphql/ext.rb +20 -0
  468. data/lib/datadog/tracing/contrib/graphql/integration.rb +42 -0
  469. data/lib/datadog/tracing/contrib/graphql/patcher.rb +88 -0
  470. data/lib/datadog/tracing/contrib/grpc/configuration/settings.rb +79 -0
  471. data/lib/datadog/tracing/contrib/grpc/datadog_interceptor/client.rb +119 -0
  472. data/lib/datadog/tracing/contrib/grpc/datadog_interceptor/server.rb +107 -0
  473. data/lib/datadog/tracing/contrib/grpc/datadog_interceptor.rb +101 -0
  474. data/lib/datadog/tracing/contrib/grpc/distributed/fetcher.rb +26 -0
  475. data/lib/datadog/tracing/contrib/grpc/distributed/propagation.rb +42 -0
  476. data/lib/datadog/tracing/contrib/grpc/ext.rb +29 -0
  477. data/lib/datadog/tracing/contrib/grpc/formatting.rb +127 -0
  478. data/lib/datadog/tracing/contrib/grpc/integration.rb +48 -0
  479. data/lib/datadog/tracing/contrib/grpc/intercept_with_datadog.rb +53 -0
  480. data/lib/datadog/tracing/contrib/grpc/patcher.rb +34 -0
  481. data/lib/datadog/tracing/contrib/hanami/action_tracer.rb +47 -0
  482. data/lib/datadog/tracing/contrib/hanami/configuration/settings.rb +23 -0
  483. data/lib/datadog/tracing/contrib/hanami/ext.rb +24 -0
  484. data/lib/datadog/tracing/contrib/hanami/integration.rb +42 -0
  485. data/lib/datadog/tracing/contrib/hanami/patcher.rb +33 -0
  486. data/lib/datadog/tracing/contrib/hanami/plugin.rb +23 -0
  487. data/lib/datadog/tracing/contrib/hanami/renderer_policy_tracing.rb +41 -0
  488. data/lib/datadog/tracing/contrib/hanami/router_tracing.rb +44 -0
  489. data/lib/datadog/tracing/contrib/http/circuit_breaker.rb +40 -0
  490. data/lib/datadog/tracing/contrib/http/configuration/settings.rb +75 -0
  491. data/lib/datadog/tracing/contrib/http/distributed/fetcher.rb +38 -0
  492. data/lib/datadog/tracing/contrib/http/distributed/propagation.rb +37 -0
  493. data/lib/datadog/tracing/contrib/http/ext.rb +29 -0
  494. data/lib/datadog/tracing/contrib/http/instrumentation.rb +158 -0
  495. data/lib/datadog/tracing/contrib/http/integration.rb +49 -0
  496. data/lib/datadog/tracing/contrib/http/patcher.rb +30 -0
  497. data/lib/datadog/tracing/contrib/http_annotation_helper.rb +17 -0
  498. data/lib/datadog/tracing/contrib/httpclient/configuration/settings.rb +75 -0
  499. data/lib/datadog/tracing/contrib/httpclient/ext.rb +30 -0
  500. data/lib/datadog/tracing/contrib/httpclient/instrumentation.rb +135 -0
  501. data/lib/datadog/tracing/contrib/httpclient/integration.rb +46 -0
  502. data/lib/datadog/tracing/contrib/httpclient/patcher.rb +40 -0
  503. data/lib/datadog/tracing/contrib/httprb/configuration/settings.rb +75 -0
  504. data/lib/datadog/tracing/contrib/httprb/ext.rb +29 -0
  505. data/lib/datadog/tracing/contrib/httprb/instrumentation.rb +145 -0
  506. data/lib/datadog/tracing/contrib/httprb/integration.rb +46 -0
  507. data/lib/datadog/tracing/contrib/httprb/patcher.rb +40 -0
  508. data/lib/datadog/tracing/contrib/integration.rb +78 -0
  509. data/lib/datadog/tracing/contrib/kafka/configuration/settings.rb +39 -0
  510. data/lib/datadog/tracing/contrib/kafka/consumer_event.rb +19 -0
  511. data/lib/datadog/tracing/contrib/kafka/consumer_group_event.rb +18 -0
  512. data/lib/datadog/tracing/contrib/kafka/event.rb +53 -0
  513. data/lib/datadog/tracing/contrib/kafka/events/connection/request.rb +40 -0
  514. data/lib/datadog/tracing/contrib/kafka/events/consumer/process_batch.rb +47 -0
  515. data/lib/datadog/tracing/contrib/kafka/events/consumer/process_message.rb +45 -0
  516. data/lib/datadog/tracing/contrib/kafka/events/consumer_group/heartbeat.rb +45 -0
  517. data/lib/datadog/tracing/contrib/kafka/events/consumer_group/join_group.rb +35 -0
  518. data/lib/datadog/tracing/contrib/kafka/events/consumer_group/leave_group.rb +35 -0
  519. data/lib/datadog/tracing/contrib/kafka/events/consumer_group/sync_group.rb +35 -0
  520. data/lib/datadog/tracing/contrib/kafka/events/produce_operation/send_messages.rb +39 -0
  521. data/lib/datadog/tracing/contrib/kafka/events/producer/deliver_messages.rb +42 -0
  522. data/lib/datadog/tracing/contrib/kafka/events.rb +48 -0
  523. data/lib/datadog/tracing/contrib/kafka/ext.rb +55 -0
  524. data/lib/datadog/tracing/contrib/kafka/integration.rb +42 -0
  525. data/lib/datadog/tracing/contrib/kafka/patcher.rb +29 -0
  526. data/lib/datadog/tracing/contrib/lograge/configuration/settings.rb +24 -0
  527. data/lib/datadog/tracing/contrib/lograge/ext.rb +15 -0
  528. data/lib/datadog/tracing/contrib/lograge/instrumentation.rb +31 -0
  529. data/lib/datadog/tracing/contrib/lograge/integration.rb +48 -0
  530. data/lib/datadog/tracing/contrib/lograge/patcher.rb +29 -0
  531. data/lib/datadog/tracing/contrib/mongodb/configuration/settings.rb +55 -0
  532. data/lib/datadog/tracing/contrib/mongodb/ext.rb +38 -0
  533. data/lib/datadog/tracing/contrib/mongodb/instrumentation.rb +47 -0
  534. data/lib/datadog/tracing/contrib/mongodb/integration.rb +46 -0
  535. data/lib/datadog/tracing/contrib/mongodb/parsers.rb +47 -0
  536. data/lib/datadog/tracing/contrib/mongodb/patcher.rb +34 -0
  537. data/lib/datadog/tracing/contrib/mongodb/subscribers.rb +139 -0
  538. data/lib/datadog/tracing/contrib/mysql2/configuration/settings.rb +63 -0
  539. data/lib/datadog/tracing/contrib/mysql2/ext.rb +28 -0
  540. data/lib/datadog/tracing/contrib/mysql2/instrumentation.rb +95 -0
  541. data/lib/datadog/tracing/contrib/mysql2/integration.rb +41 -0
  542. data/lib/datadog/tracing/contrib/mysql2/patcher.rb +31 -0
  543. data/lib/datadog/tracing/contrib/opensearch/configuration/settings.rb +53 -0
  544. data/lib/datadog/tracing/contrib/opensearch/ext.rb +38 -0
  545. data/lib/datadog/tracing/contrib/opensearch/integration.rb +44 -0
  546. data/lib/datadog/tracing/contrib/opensearch/patcher.rb +135 -0
  547. data/lib/datadog/tracing/contrib/opensearch/quantize.rb +81 -0
  548. data/lib/datadog/tracing/contrib/patchable.rb +109 -0
  549. data/lib/datadog/tracing/contrib/patcher.rb +83 -0
  550. data/lib/datadog/tracing/contrib/pg/configuration/settings.rb +64 -0
  551. data/lib/datadog/tracing/contrib/pg/ext.rb +35 -0
  552. data/lib/datadog/tracing/contrib/pg/instrumentation.rb +211 -0
  553. data/lib/datadog/tracing/contrib/pg/integration.rb +41 -0
  554. data/lib/datadog/tracing/contrib/pg/patcher.rb +31 -0
  555. data/lib/datadog/tracing/contrib/presto/configuration/settings.rb +51 -0
  556. data/lib/datadog/tracing/contrib/presto/ext.rb +38 -0
  557. data/lib/datadog/tracing/contrib/presto/instrumentation.rb +136 -0
  558. data/lib/datadog/tracing/contrib/presto/integration.rb +41 -0
  559. data/lib/datadog/tracing/contrib/presto/patcher.rb +35 -0
  560. data/lib/datadog/tracing/contrib/propagation/sql_comment/comment.rb +41 -0
  561. data/lib/datadog/tracing/contrib/propagation/sql_comment/ext.rb +33 -0
  562. data/lib/datadog/tracing/contrib/propagation/sql_comment/mode.rb +28 -0
  563. data/lib/datadog/tracing/contrib/propagation/sql_comment.rb +53 -0
  564. data/lib/datadog/tracing/contrib/qless/configuration/settings.rb +45 -0
  565. data/lib/datadog/tracing/contrib/qless/ext.rb +27 -0
  566. data/lib/datadog/tracing/contrib/qless/integration.rb +41 -0
  567. data/lib/datadog/tracing/contrib/qless/patcher.rb +36 -0
  568. data/lib/datadog/tracing/contrib/qless/qless_job.rb +75 -0
  569. data/lib/datadog/tracing/contrib/qless/tracer_cleaner.rb +30 -0
  570. data/lib/datadog/tracing/contrib/que/configuration/settings.rb +57 -0
  571. data/lib/datadog/tracing/contrib/que/ext.rb +33 -0
  572. data/lib/datadog/tracing/contrib/que/integration.rb +44 -0
  573. data/lib/datadog/tracing/contrib/que/patcher.rb +26 -0
  574. data/lib/datadog/tracing/contrib/que/tracer.rb +63 -0
  575. data/lib/datadog/tracing/contrib/racecar/configuration/settings.rb +46 -0
  576. data/lib/datadog/tracing/contrib/racecar/event.rb +81 -0
  577. data/lib/datadog/tracing/contrib/racecar/events/batch.rb +36 -0
  578. data/lib/datadog/tracing/contrib/racecar/events/consume.rb +33 -0
  579. data/lib/datadog/tracing/contrib/racecar/events/message.rb +36 -0
  580. data/lib/datadog/tracing/contrib/racecar/events.rb +36 -0
  581. data/lib/datadog/tracing/contrib/racecar/ext.rb +33 -0
  582. data/lib/datadog/tracing/contrib/racecar/integration.rb +42 -0
  583. data/lib/datadog/tracing/contrib/racecar/patcher.rb +29 -0
  584. data/lib/datadog/tracing/contrib/rack/configuration/settings.rb +54 -0
  585. data/lib/datadog/tracing/contrib/rack/ext.rb +31 -0
  586. data/lib/datadog/tracing/contrib/rack/header_collection.rb +38 -0
  587. data/lib/datadog/tracing/contrib/rack/header_tagging.rb +63 -0
  588. data/lib/datadog/tracing/contrib/rack/integration.rb +48 -0
  589. data/lib/datadog/tracing/contrib/rack/middlewares.rb +315 -0
  590. data/lib/datadog/tracing/contrib/rack/patcher.rb +117 -0
  591. data/lib/datadog/tracing/contrib/rack/request_queue.rb +46 -0
  592. data/lib/datadog/tracing/contrib/rails/auto_instrument_railtie.rb +8 -0
  593. data/lib/datadog/tracing/contrib/rails/configuration/settings.rb +84 -0
  594. data/lib/datadog/tracing/contrib/rails/ext.rb +20 -0
  595. data/lib/datadog/tracing/contrib/rails/framework.rb +148 -0
  596. data/lib/datadog/tracing/contrib/rails/integration.rb +47 -0
  597. data/lib/datadog/tracing/contrib/rails/log_injection.rb +27 -0
  598. data/lib/datadog/tracing/contrib/rails/middlewares.rb +46 -0
  599. data/lib/datadog/tracing/contrib/rails/patcher.rb +87 -0
  600. data/lib/datadog/tracing/contrib/rails/railtie.rb +17 -0
  601. data/lib/datadog/tracing/contrib/rails/utils.rb +28 -0
  602. data/lib/datadog/tracing/contrib/rake/configuration/settings.rb +55 -0
  603. data/lib/datadog/tracing/contrib/rake/ext.rb +27 -0
  604. data/lib/datadog/tracing/contrib/rake/instrumentation.rb +101 -0
  605. data/lib/datadog/tracing/contrib/rake/integration.rb +41 -0
  606. data/lib/datadog/tracing/contrib/rake/patcher.rb +33 -0
  607. data/lib/datadog/tracing/contrib/redis/configuration/resolver.rb +47 -0
  608. data/lib/datadog/tracing/contrib/redis/configuration/settings.rb +57 -0
  609. data/lib/datadog/tracing/contrib/redis/ext.rb +35 -0
  610. data/lib/datadog/tracing/contrib/redis/instrumentation.rb +51 -0
  611. data/lib/datadog/tracing/contrib/redis/integration.rb +78 -0
  612. data/lib/datadog/tracing/contrib/redis/patcher.rb +90 -0
  613. data/lib/datadog/tracing/contrib/redis/quantize.rb +80 -0
  614. data/lib/datadog/tracing/contrib/redis/tags.rb +68 -0
  615. data/lib/datadog/tracing/contrib/redis/trace_middleware.rb +83 -0
  616. data/lib/datadog/tracing/contrib/redis/vendor/LICENSE +20 -0
  617. data/lib/datadog/tracing/contrib/redis/vendor/resolver.rb +160 -0
  618. data/lib/datadog/tracing/contrib/registerable.rb +50 -0
  619. data/lib/datadog/tracing/contrib/registry.rb +52 -0
  620. data/lib/datadog/tracing/contrib/resque/configuration/settings.rb +44 -0
  621. data/lib/datadog/tracing/contrib/resque/ext.rb +22 -0
  622. data/lib/datadog/tracing/contrib/resque/integration.rb +46 -0
  623. data/lib/datadog/tracing/contrib/resque/patcher.rb +29 -0
  624. data/lib/datadog/tracing/contrib/resque/resque_job.rb +106 -0
  625. data/lib/datadog/tracing/contrib/rest_client/configuration/settings.rb +55 -0
  626. data/lib/datadog/tracing/contrib/rest_client/ext.rb +28 -0
  627. data/lib/datadog/tracing/contrib/rest_client/integration.rb +41 -0
  628. data/lib/datadog/tracing/contrib/rest_client/patcher.rb +28 -0
  629. data/lib/datadog/tracing/contrib/rest_client/request_patch.rb +129 -0
  630. data/lib/datadog/tracing/contrib/roda/configuration/settings.rb +38 -0
  631. data/lib/datadog/tracing/contrib/roda/ext.rb +19 -0
  632. data/lib/datadog/tracing/contrib/roda/instrumentation.rb +76 -0
  633. data/lib/datadog/tracing/contrib/roda/integration.rb +45 -0
  634. data/lib/datadog/tracing/contrib/roda/patcher.rb +30 -0
  635. data/lib/datadog/tracing/contrib/semantic_logger/configuration/settings.rb +24 -0
  636. data/lib/datadog/tracing/contrib/semantic_logger/ext.rb +15 -0
  637. data/lib/datadog/tracing/contrib/semantic_logger/instrumentation.rb +35 -0
  638. data/lib/datadog/tracing/contrib/semantic_logger/integration.rb +50 -0
  639. data/lib/datadog/tracing/contrib/semantic_logger/patcher.rb +29 -0
  640. data/lib/datadog/tracing/contrib/sequel/configuration/settings.rb +37 -0
  641. data/lib/datadog/tracing/contrib/sequel/database.rb +60 -0
  642. data/lib/datadog/tracing/contrib/sequel/dataset.rb +67 -0
  643. data/lib/datadog/tracing/contrib/sequel/ext.rb +23 -0
  644. data/lib/datadog/tracing/contrib/sequel/integration.rb +41 -0
  645. data/lib/datadog/tracing/contrib/sequel/patcher.rb +37 -0
  646. data/lib/datadog/tracing/contrib/sequel/utils.rb +88 -0
  647. data/lib/datadog/tracing/contrib/shoryuken/configuration/settings.rb +45 -0
  648. data/lib/datadog/tracing/contrib/shoryuken/ext.rb +27 -0
  649. data/lib/datadog/tracing/contrib/shoryuken/integration.rb +42 -0
  650. data/lib/datadog/tracing/contrib/shoryuken/patcher.rb +28 -0
  651. data/lib/datadog/tracing/contrib/shoryuken/tracer.rb +65 -0
  652. data/lib/datadog/tracing/contrib/sidekiq/client_tracer.rb +66 -0
  653. data/lib/datadog/tracing/contrib/sidekiq/configuration/settings.rb +53 -0
  654. data/lib/datadog/tracing/contrib/sidekiq/distributed/propagation.rb +38 -0
  655. data/lib/datadog/tracing/contrib/sidekiq/ext.rb +45 -0
  656. data/lib/datadog/tracing/contrib/sidekiq/integration.rb +59 -0
  657. data/lib/datadog/tracing/contrib/sidekiq/patcher.rb +90 -0
  658. data/lib/datadog/tracing/contrib/sidekiq/server_internal_tracer/heartbeat.rb +61 -0
  659. data/lib/datadog/tracing/contrib/sidekiq/server_internal_tracer/job_fetch.rb +36 -0
  660. data/lib/datadog/tracing/contrib/sidekiq/server_internal_tracer/redis_info.rb +34 -0
  661. data/lib/datadog/tracing/contrib/sidekiq/server_internal_tracer/scheduled_poller.rb +57 -0
  662. data/lib/datadog/tracing/contrib/sidekiq/server_internal_tracer/stop.rb +34 -0
  663. data/lib/datadog/tracing/contrib/sidekiq/server_tracer.rb +118 -0
  664. data/lib/datadog/tracing/contrib/sidekiq/utils.rb +44 -0
  665. data/lib/datadog/tracing/contrib/sinatra/configuration/settings.rb +44 -0
  666. data/lib/datadog/tracing/contrib/sinatra/env.rb +36 -0
  667. data/lib/datadog/tracing/contrib/sinatra/ext.rb +37 -0
  668. data/lib/datadog/tracing/contrib/sinatra/framework.rb +114 -0
  669. data/lib/datadog/tracing/contrib/sinatra/integration.rb +41 -0
  670. data/lib/datadog/tracing/contrib/sinatra/patcher.rb +75 -0
  671. data/lib/datadog/tracing/contrib/sinatra/tracer.rb +84 -0
  672. data/lib/datadog/tracing/contrib/sinatra/tracer_middleware.rb +116 -0
  673. data/lib/datadog/tracing/contrib/sneakers/configuration/settings.rb +43 -0
  674. data/lib/datadog/tracing/contrib/sneakers/ext.rb +27 -0
  675. data/lib/datadog/tracing/contrib/sneakers/integration.rb +44 -0
  676. data/lib/datadog/tracing/contrib/sneakers/patcher.rb +27 -0
  677. data/lib/datadog/tracing/contrib/sneakers/tracer.rb +60 -0
  678. data/lib/datadog/tracing/contrib/span_attribute_schema.rb +92 -0
  679. data/lib/datadog/tracing/contrib/status_code_matcher.rb +72 -0
  680. data/lib/datadog/tracing/contrib/stripe/configuration/settings.rb +37 -0
  681. data/lib/datadog/tracing/contrib/stripe/ext.rb +27 -0
  682. data/lib/datadog/tracing/contrib/stripe/integration.rb +43 -0
  683. data/lib/datadog/tracing/contrib/stripe/patcher.rb +28 -0
  684. data/lib/datadog/tracing/contrib/stripe/request.rb +67 -0
  685. data/lib/datadog/tracing/contrib/sucker_punch/configuration/settings.rb +39 -0
  686. data/lib/datadog/tracing/contrib/sucker_punch/exception_handler.rb +28 -0
  687. data/lib/datadog/tracing/contrib/sucker_punch/ext.rb +28 -0
  688. data/lib/datadog/tracing/contrib/sucker_punch/instrumentation.rb +102 -0
  689. data/lib/datadog/tracing/contrib/sucker_punch/integration.rb +41 -0
  690. data/lib/datadog/tracing/contrib/sucker_punch/patcher.rb +35 -0
  691. data/lib/datadog/tracing/contrib/trilogy/configuration/settings.rb +58 -0
  692. data/lib/datadog/tracing/contrib/trilogy/ext.rb +27 -0
  693. data/lib/datadog/tracing/contrib/trilogy/instrumentation.rb +94 -0
  694. data/lib/datadog/tracing/contrib/trilogy/integration.rb +43 -0
  695. data/lib/datadog/tracing/contrib/trilogy/patcher.rb +31 -0
  696. data/lib/datadog/tracing/contrib/utils/database.rb +31 -0
  697. data/lib/datadog/tracing/contrib/utils/quantization/hash.rb +109 -0
  698. data/lib/datadog/tracing/contrib/utils/quantization/http.rb +177 -0
  699. data/lib/datadog/tracing/contrib.rb +82 -0
  700. data/lib/datadog/tracing/correlation.rb +128 -0
  701. data/lib/datadog/tracing/diagnostics/environment_logger.rb +165 -0
  702. data/lib/datadog/tracing/diagnostics/ext.rb +36 -0
  703. data/lib/datadog/tracing/diagnostics/health.rb +40 -0
  704. data/lib/datadog/tracing/distributed/b3_multi.rb +72 -0
  705. data/lib/datadog/tracing/distributed/b3_single.rb +68 -0
  706. data/lib/datadog/tracing/distributed/datadog.rb +199 -0
  707. data/lib/datadog/tracing/distributed/datadog_tags_codec.rb +84 -0
  708. data/lib/datadog/tracing/distributed/fetcher.rb +21 -0
  709. data/lib/datadog/tracing/distributed/headers/ext.rb +34 -0
  710. data/lib/datadog/tracing/distributed/helpers.rb +65 -0
  711. data/lib/datadog/tracing/distributed/none.rb +18 -0
  712. data/lib/datadog/tracing/distributed/propagation.rb +127 -0
  713. data/lib/datadog/tracing/distributed/trace_context.rb +415 -0
  714. data/lib/datadog/tracing/event.rb +74 -0
  715. data/lib/datadog/tracing/flush.rb +96 -0
  716. data/lib/datadog/tracing/metadata/analytics.rb +26 -0
  717. data/lib/datadog/tracing/metadata/errors.rb +24 -0
  718. data/lib/datadog/tracing/metadata/ext.rb +191 -0
  719. data/lib/datadog/tracing/metadata/tagging.rb +129 -0
  720. data/lib/datadog/tracing/metadata.rb +20 -0
  721. data/lib/datadog/tracing/pipeline/span_filter.rb +46 -0
  722. data/lib/datadog/tracing/pipeline/span_processor.rb +39 -0
  723. data/lib/datadog/tracing/pipeline.rb +61 -0
  724. data/lib/datadog/tracing/propagation/http.rb +14 -0
  725. data/lib/datadog/tracing/remote.rb +78 -0
  726. data/lib/datadog/tracing/runtime/metrics.rb +17 -0
  727. data/lib/datadog/tracing/sampling/all_sampler.rb +25 -0
  728. data/lib/datadog/tracing/sampling/ext.rb +56 -0
  729. data/lib/datadog/tracing/sampling/matcher.rb +88 -0
  730. data/lib/datadog/tracing/sampling/priority_sampler.rb +165 -0
  731. data/lib/datadog/tracing/sampling/rate_by_key_sampler.rb +94 -0
  732. data/lib/datadog/tracing/sampling/rate_by_service_sampler.rb +62 -0
  733. data/lib/datadog/tracing/sampling/rate_limiter.rb +186 -0
  734. data/lib/datadog/tracing/sampling/rate_sampler.rb +68 -0
  735. data/lib/datadog/tracing/sampling/rule.rb +77 -0
  736. data/lib/datadog/tracing/sampling/rule_sampler.rb +159 -0
  737. data/lib/datadog/tracing/sampling/sampler.rb +42 -0
  738. data/lib/datadog/tracing/sampling/span/ext.rb +25 -0
  739. data/lib/datadog/tracing/sampling/span/matcher.rb +89 -0
  740. data/lib/datadog/tracing/sampling/span/rule.rb +82 -0
  741. data/lib/datadog/tracing/sampling/span/rule_parser.rb +104 -0
  742. data/lib/datadog/tracing/sampling/span/sampler.rb +77 -0
  743. data/lib/datadog/tracing/span.rb +214 -0
  744. data/lib/datadog/tracing/span_operation.rb +505 -0
  745. data/lib/datadog/tracing/sync_writer.rb +67 -0
  746. data/lib/datadog/tracing/trace_digest.rb +177 -0
  747. data/lib/datadog/tracing/trace_operation.rb +485 -0
  748. data/lib/datadog/tracing/trace_segment.rb +220 -0
  749. data/lib/datadog/tracing/tracer.rb +541 -0
  750. data/lib/datadog/tracing/transport/http/api/instance.rb +37 -0
  751. data/lib/datadog/tracing/transport/http/api/spec.rb +19 -0
  752. data/lib/datadog/tracing/transport/http/api.rb +43 -0
  753. data/lib/datadog/tracing/transport/http/builder.rb +162 -0
  754. data/lib/datadog/tracing/transport/http/client.rb +57 -0
  755. data/lib/datadog/tracing/transport/http/statistics.rb +47 -0
  756. data/lib/datadog/tracing/transport/http/traces.rb +152 -0
  757. data/lib/datadog/tracing/transport/http.rb +125 -0
  758. data/lib/datadog/tracing/transport/io/client.rb +89 -0
  759. data/lib/datadog/tracing/transport/io/response.rb +27 -0
  760. data/lib/datadog/tracing/transport/io/traces.rb +101 -0
  761. data/lib/datadog/tracing/transport/io.rb +30 -0
  762. data/lib/datadog/tracing/transport/serializable_trace.rb +126 -0
  763. data/lib/datadog/tracing/transport/statistics.rb +77 -0
  764. data/lib/datadog/tracing/transport/trace_formatter.rb +240 -0
  765. data/lib/datadog/tracing/transport/traces.rb +224 -0
  766. data/lib/datadog/tracing/utils.rb +83 -0
  767. data/lib/datadog/tracing/workers/trace_writer.rb +194 -0
  768. data/lib/datadog/tracing/workers.rb +123 -0
  769. data/lib/datadog/tracing/writer.rb +186 -0
  770. data/lib/datadog/tracing.rb +148 -0
  771. data/lib/ddtrace/auto_instrument.rb +16 -0
  772. data/lib/ddtrace/auto_instrument_base.rb +8 -0
  773. data/lib/ddtrace/profiling/preload.rb +2 -0
  774. data/lib/ddtrace/transport/ext.rb +47 -0
  775. data/lib/ddtrace/version.rb +19 -5
  776. data/lib/ddtrace.rb +9 -72
  777. metadata +808 -632
  778. data/.circleci/config.yml +0 -441
  779. data/.circleci/images/primary/Dockerfile-2.0.0 +0 -73
  780. data/.circleci/images/primary/Dockerfile-2.1.10 +0 -73
  781. data/.circleci/images/primary/Dockerfile-2.2.10 +0 -73
  782. data/.circleci/images/primary/Dockerfile-2.3.8 +0 -75
  783. data/.circleci/images/primary/Dockerfile-2.4.6 +0 -73
  784. data/.circleci/images/primary/Dockerfile-2.5.6 +0 -73
  785. data/.circleci/images/primary/Dockerfile-2.6.4 +0 -73
  786. data/.circleci/images/primary/Dockerfile-2.7.0 +0 -73
  787. data/.dockerignore +0 -1
  788. data/.env +0 -26
  789. data/.github/CODEOWNERS +0 -1
  790. data/.gitignore +0 -59
  791. data/.rspec +0 -1
  792. data/.rubocop.yml +0 -81
  793. data/.yardopts +0 -5
  794. data/Appraisals +0 -944
  795. data/CONTRIBUTING.md +0 -85
  796. data/Gemfile +0 -7
  797. data/Rakefile +0 -722
  798. data/benchmarks/postgres_database.yml +0 -9
  799. data/benchmarks/sidekiq_test.rb +0 -154
  800. data/ddtrace.gemspec +0 -64
  801. data/docker-compose.yml +0 -335
  802. data/docs/DevelopmentGuide.md +0 -195
  803. data/docs/GettingStarted.md +0 -2142
  804. data/lib/ddtrace/analytics.rb +0 -36
  805. data/lib/ddtrace/augmentation/method_wrapper.rb +0 -20
  806. data/lib/ddtrace/augmentation/method_wrapping.rb +0 -38
  807. data/lib/ddtrace/augmentation/shim.rb +0 -102
  808. data/lib/ddtrace/augmentation.rb +0 -13
  809. data/lib/ddtrace/buffer.rb +0 -119
  810. data/lib/ddtrace/configuration/base.rb +0 -84
  811. data/lib/ddtrace/configuration/dependency_resolver.rb +0 -24
  812. data/lib/ddtrace/configuration/option.rb +0 -64
  813. data/lib/ddtrace/configuration/option_definition.rb +0 -123
  814. data/lib/ddtrace/configuration/option_definition_set.rb +0 -18
  815. data/lib/ddtrace/configuration/option_set.rb +0 -6
  816. data/lib/ddtrace/configuration/options.rb +0 -112
  817. data/lib/ddtrace/configuration/pin_setup.rb +0 -30
  818. data/lib/ddtrace/configuration/settings.rb +0 -187
  819. data/lib/ddtrace/configuration.rb +0 -30
  820. data/lib/ddtrace/context.rb +0 -305
  821. data/lib/ddtrace/context_flush.rb +0 -69
  822. data/lib/ddtrace/context_provider.rb +0 -50
  823. data/lib/ddtrace/contrib/action_cable/configuration/settings.rb +0 -25
  824. data/lib/ddtrace/contrib/action_cable/event.rb +0 -65
  825. data/lib/ddtrace/contrib/action_cable/events/broadcast.rb +0 -49
  826. data/lib/ddtrace/contrib/action_cable/events/perform_action.rb +0 -55
  827. data/lib/ddtrace/contrib/action_cable/events/transmit.rb +0 -50
  828. data/lib/ddtrace/contrib/action_cable/events.rb +0 -33
  829. data/lib/ddtrace/contrib/action_cable/ext.rb +0 -23
  830. data/lib/ddtrace/contrib/action_cable/instrumentation.rb +0 -31
  831. data/lib/ddtrace/contrib/action_cable/integration.rb +0 -38
  832. data/lib/ddtrace/contrib/action_cable/patcher.rb +0 -27
  833. data/lib/ddtrace/contrib/action_pack/action_controller/instrumentation.rb +0 -148
  834. data/lib/ddtrace/contrib/action_pack/action_controller/patcher.rb +0 -25
  835. data/lib/ddtrace/contrib/action_pack/configuration/settings.rb +0 -27
  836. data/lib/ddtrace/contrib/action_pack/ext.rb +0 -16
  837. data/lib/ddtrace/contrib/action_pack/integration.rb +0 -38
  838. data/lib/ddtrace/contrib/action_pack/patcher.rb +0 -23
  839. data/lib/ddtrace/contrib/action_pack/utils.rb +0 -36
  840. data/lib/ddtrace/contrib/action_view/configuration/settings.rb +0 -26
  841. data/lib/ddtrace/contrib/action_view/event.rb +0 -39
  842. data/lib/ddtrace/contrib/action_view/events/render_partial.rb +0 -45
  843. data/lib/ddtrace/contrib/action_view/events/render_template.rb +0 -48
  844. data/lib/ddtrace/contrib/action_view/events.rb +0 -30
  845. data/lib/ddtrace/contrib/action_view/ext.rb +0 -17
  846. data/lib/ddtrace/contrib/action_view/instrumentation/partial_renderer.rb +0 -74
  847. data/lib/ddtrace/contrib/action_view/instrumentation/template_renderer.rb +0 -167
  848. data/lib/ddtrace/contrib/action_view/integration.rb +0 -45
  849. data/lib/ddtrace/contrib/action_view/patcher.rb +0 -47
  850. data/lib/ddtrace/contrib/action_view/utils.rb +0 -32
  851. data/lib/ddtrace/contrib/active_model_serializers/configuration/settings.rb +0 -25
  852. data/lib/ddtrace/contrib/active_model_serializers/event.rb +0 -68
  853. data/lib/ddtrace/contrib/active_model_serializers/events/render.rb +0 -32
  854. data/lib/ddtrace/contrib/active_model_serializers/events/serialize.rb +0 -35
  855. data/lib/ddtrace/contrib/active_model_serializers/events.rb +0 -30
  856. data/lib/ddtrace/contrib/active_model_serializers/ext.rb +0 -17
  857. data/lib/ddtrace/contrib/active_model_serializers/integration.rb +0 -40
  858. data/lib/ddtrace/contrib/active_model_serializers/patcher.rb +0 -29
  859. data/lib/ddtrace/contrib/active_record/configuration/resolver.rb +0 -45
  860. data/lib/ddtrace/contrib/active_record/configuration/settings.rb +0 -30
  861. data/lib/ddtrace/contrib/active_record/event.rb +0 -30
  862. data/lib/ddtrace/contrib/active_record/events/instantiation.rb +0 -60
  863. data/lib/ddtrace/contrib/active_record/events/sql.rb +0 -64
  864. data/lib/ddtrace/contrib/active_record/events.rb +0 -30
  865. data/lib/ddtrace/contrib/active_record/ext.rb +0 -21
  866. data/lib/ddtrace/contrib/active_record/integration.rb +0 -46
  867. data/lib/ddtrace/contrib/active_record/patcher.rb +0 -23
  868. data/lib/ddtrace/contrib/active_record/utils.rb +0 -76
  869. data/lib/ddtrace/contrib/active_support/cache/instrumentation.rb +0 -157
  870. data/lib/ddtrace/contrib/active_support/cache/patcher.rb +0 -48
  871. data/lib/ddtrace/contrib/active_support/cache/redis.rb +0 -47
  872. data/lib/ddtrace/contrib/active_support/configuration/settings.rb +0 -25
  873. data/lib/ddtrace/contrib/active_support/ext.rb +0 -21
  874. data/lib/ddtrace/contrib/active_support/integration.rb +0 -40
  875. data/lib/ddtrace/contrib/active_support/notifications/event.rb +0 -62
  876. data/lib/ddtrace/contrib/active_support/notifications/subscriber.rb +0 -66
  877. data/lib/ddtrace/contrib/active_support/notifications/subscription.rb +0 -159
  878. data/lib/ddtrace/contrib/active_support/patcher.rb +0 -23
  879. data/lib/ddtrace/contrib/analytics.rb +0 -24
  880. data/lib/ddtrace/contrib/aws/configuration/settings.rb +0 -25
  881. data/lib/ddtrace/contrib/aws/ext.rb +0 -20
  882. data/lib/ddtrace/contrib/aws/instrumentation.rb +0 -56
  883. data/lib/ddtrace/contrib/aws/integration.rb +0 -42
  884. data/lib/ddtrace/contrib/aws/parsed_context.rb +0 -56
  885. data/lib/ddtrace/contrib/aws/patcher.rb +0 -49
  886. data/lib/ddtrace/contrib/aws/services.rb +0 -115
  887. data/lib/ddtrace/contrib/concurrent_ruby/configuration/settings.rb +0 -15
  888. data/lib/ddtrace/contrib/concurrent_ruby/context_composite_executor_service.rb +0 -35
  889. data/lib/ddtrace/contrib/concurrent_ruby/ext.rb +0 -11
  890. data/lib/ddtrace/contrib/concurrent_ruby/future_patch.rb +0 -23
  891. data/lib/ddtrace/contrib/concurrent_ruby/integration.rb +0 -38
  892. data/lib/ddtrace/contrib/concurrent_ruby/patcher.rb +0 -28
  893. data/lib/ddtrace/contrib/configurable.rb +0 -76
  894. data/lib/ddtrace/contrib/configuration/resolver.rb +0 -16
  895. data/lib/ddtrace/contrib/configuration/resolvers/pattern_resolver.rb +0 -39
  896. data/lib/ddtrace/contrib/configuration/settings.rb +0 -35
  897. data/lib/ddtrace/contrib/dalli/configuration/settings.rb +0 -25
  898. data/lib/ddtrace/contrib/dalli/ext.rb +0 -17
  899. data/lib/ddtrace/contrib/dalli/instrumentation.rb +0 -50
  900. data/lib/ddtrace/contrib/dalli/integration.rb +0 -38
  901. data/lib/ddtrace/contrib/dalli/patcher.rb +0 -67
  902. data/lib/ddtrace/contrib/dalli/quantize.rb +0 -22
  903. data/lib/ddtrace/contrib/delayed_job/configuration/settings.rb +0 -25
  904. data/lib/ddtrace/contrib/delayed_job/ext.rb +0 -18
  905. data/lib/ddtrace/contrib/delayed_job/integration.rb +0 -38
  906. data/lib/ddtrace/contrib/delayed_job/patcher.rb +0 -28
  907. data/lib/ddtrace/contrib/delayed_job/plugin.rb +0 -61
  908. data/lib/ddtrace/contrib/elasticsearch/configuration/settings.rb +0 -26
  909. data/lib/ddtrace/contrib/elasticsearch/ext.rb +0 -19
  910. data/lib/ddtrace/contrib/elasticsearch/integration.rb +0 -39
  911. data/lib/ddtrace/contrib/elasticsearch/patcher.rb +0 -118
  912. data/lib/ddtrace/contrib/elasticsearch/quantize.rb +0 -80
  913. data/lib/ddtrace/contrib/ethon/configuration/settings.rb +0 -27
  914. data/lib/ddtrace/contrib/ethon/easy_patch.rb +0 -148
  915. data/lib/ddtrace/contrib/ethon/ext.rb +0 -15
  916. data/lib/ddtrace/contrib/ethon/integration.rb +0 -43
  917. data/lib/ddtrace/contrib/ethon/multi_patch.rb +0 -80
  918. data/lib/ddtrace/contrib/ethon/patcher.rb +0 -25
  919. data/lib/ddtrace/contrib/excon/configuration/settings.rb +0 -28
  920. data/lib/ddtrace/contrib/excon/ext.rb +0 -14
  921. data/lib/ddtrace/contrib/excon/integration.rb +0 -43
  922. data/lib/ddtrace/contrib/excon/middleware.rb +0 -157
  923. data/lib/ddtrace/contrib/excon/patcher.rb +0 -27
  924. data/lib/ddtrace/contrib/extensions.rb +0 -59
  925. data/lib/ddtrace/contrib/faraday/configuration/settings.rb +0 -33
  926. data/lib/ddtrace/contrib/faraday/connection.rb +0 -18
  927. data/lib/ddtrace/contrib/faraday/ext.rb +0 -14
  928. data/lib/ddtrace/contrib/faraday/integration.rb +0 -43
  929. data/lib/ddtrace/contrib/faraday/middleware.rb +0 -81
  930. data/lib/ddtrace/contrib/faraday/patcher.rb +0 -81
  931. data/lib/ddtrace/contrib/faraday/rack_builder.rb +0 -18
  932. data/lib/ddtrace/contrib/grape/configuration/settings.rb +0 -27
  933. data/lib/ddtrace/contrib/grape/endpoint.rb +0 -208
  934. data/lib/ddtrace/contrib/grape/ext.rb +0 -19
  935. data/lib/ddtrace/contrib/grape/instrumentation.rb +0 -33
  936. data/lib/ddtrace/contrib/grape/integration.rb +0 -39
  937. data/lib/ddtrace/contrib/grape/patcher.rb +0 -73
  938. data/lib/ddtrace/contrib/graphql/configuration/settings.rb +0 -27
  939. data/lib/ddtrace/contrib/graphql/ext.rb +0 -13
  940. data/lib/ddtrace/contrib/graphql/integration.rb +0 -39
  941. data/lib/ddtrace/contrib/graphql/patcher.rb +0 -57
  942. data/lib/ddtrace/contrib/grpc/configuration/settings.rb +0 -25
  943. data/lib/ddtrace/contrib/grpc/datadog_interceptor/client.rb +0 -56
  944. data/lib/ddtrace/contrib/grpc/datadog_interceptor/server.rb +0 -76
  945. data/lib/ddtrace/contrib/grpc/datadog_interceptor.rb +0 -74
  946. data/lib/ddtrace/contrib/grpc/ext.rb +0 -15
  947. data/lib/ddtrace/contrib/grpc/integration.rb +0 -38
  948. data/lib/ddtrace/contrib/grpc/intercept_with_datadog.rb +0 -49
  949. data/lib/ddtrace/contrib/grpc/patcher.rb +0 -72
  950. data/lib/ddtrace/contrib/http/circuit_breaker.rb +0 -63
  951. data/lib/ddtrace/contrib/http/configuration/settings.rb +0 -27
  952. data/lib/ddtrace/contrib/http/ext.rb +0 -14
  953. data/lib/ddtrace/contrib/http/instrumentation.rb +0 -170
  954. data/lib/ddtrace/contrib/http/integration.rb +0 -45
  955. data/lib/ddtrace/contrib/http/patcher.rb +0 -26
  956. data/lib/ddtrace/contrib/http_annotation_helper.rb +0 -10
  957. data/lib/ddtrace/contrib/integration.rb +0 -16
  958. data/lib/ddtrace/contrib/mongodb/configuration/settings.rb +0 -28
  959. data/lib/ddtrace/contrib/mongodb/ext.rb +0 -20
  960. data/lib/ddtrace/contrib/mongodb/instrumentation.rb +0 -68
  961. data/lib/ddtrace/contrib/mongodb/integration.rb +0 -38
  962. data/lib/ddtrace/contrib/mongodb/parsers.rb +0 -68
  963. data/lib/ddtrace/contrib/mongodb/patcher.rb +0 -31
  964. data/lib/ddtrace/contrib/mongodb/subscribers.rb +0 -108
  965. data/lib/ddtrace/contrib/mysql2/configuration/settings.rb +0 -25
  966. data/lib/ddtrace/contrib/mysql2/ext.rb +0 -15
  967. data/lib/ddtrace/contrib/mysql2/instrumentation.rb +0 -60
  968. data/lib/ddtrace/contrib/mysql2/integration.rb +0 -38
  969. data/lib/ddtrace/contrib/mysql2/patcher.rb +0 -27
  970. data/lib/ddtrace/contrib/patchable.rb +0 -59
  971. data/lib/ddtrace/contrib/patcher.rb +0 -56
  972. data/lib/ddtrace/contrib/presto/configuration/settings.rb +0 -25
  973. data/lib/ddtrace/contrib/presto/ext.rb +0 -25
  974. data/lib/ddtrace/contrib/presto/instrumentation.rb +0 -107
  975. data/lib/ddtrace/contrib/presto/integration.rb +0 -38
  976. data/lib/ddtrace/contrib/presto/patcher.rb +0 -30
  977. data/lib/ddtrace/contrib/racecar/configuration/settings.rb +0 -25
  978. data/lib/ddtrace/contrib/racecar/event.rb +0 -71
  979. data/lib/ddtrace/contrib/racecar/events/batch.rb +0 -27
  980. data/lib/ddtrace/contrib/racecar/events/message.rb +0 -27
  981. data/lib/ddtrace/contrib/racecar/events.rb +0 -30
  982. data/lib/ddtrace/contrib/racecar/ext.rb +0 -21
  983. data/lib/ddtrace/contrib/racecar/integration.rb +0 -39
  984. data/lib/ddtrace/contrib/racecar/patcher.rb +0 -26
  985. data/lib/ddtrace/contrib/rack/configuration/settings.rb +0 -41
  986. data/lib/ddtrace/contrib/rack/ext.rb +0 -18
  987. data/lib/ddtrace/contrib/rack/integration.rb +0 -38
  988. data/lib/ddtrace/contrib/rack/middlewares.rb +0 -287
  989. data/lib/ddtrace/contrib/rack/patcher.rb +0 -107
  990. data/lib/ddtrace/contrib/rack/request_queue.rb +0 -39
  991. data/lib/ddtrace/contrib/rails/configuration/settings.rb +0 -81
  992. data/lib/ddtrace/contrib/rails/ext.rb +0 -13
  993. data/lib/ddtrace/contrib/rails/framework.rb +0 -125
  994. data/lib/ddtrace/contrib/rails/integration.rb +0 -44
  995. data/lib/ddtrace/contrib/rails/middlewares.rb +0 -38
  996. data/lib/ddtrace/contrib/rails/patcher.rb +0 -74
  997. data/lib/ddtrace/contrib/rails/railtie.rb +0 -17
  998. data/lib/ddtrace/contrib/rails/utils.rb +0 -20
  999. data/lib/ddtrace/contrib/rake/configuration/settings.rb +0 -27
  1000. data/lib/ddtrace/contrib/rake/ext.rb +0 -18
  1001. data/lib/ddtrace/contrib/rake/instrumentation.rb +0 -88
  1002. data/lib/ddtrace/contrib/rake/integration.rb +0 -38
  1003. data/lib/ddtrace/contrib/rake/patcher.rb +0 -30
  1004. data/lib/ddtrace/contrib/redis/configuration/resolver.rb +0 -36
  1005. data/lib/ddtrace/contrib/redis/configuration/settings.rb +0 -25
  1006. data/lib/ddtrace/contrib/redis/ext.rb +0 -18
  1007. data/lib/ddtrace/contrib/redis/integration.rb +0 -42
  1008. data/lib/ddtrace/contrib/redis/patcher.rb +0 -97
  1009. data/lib/ddtrace/contrib/redis/quantize.rb +0 -47
  1010. data/lib/ddtrace/contrib/redis/tags.rb +0 -38
  1011. data/lib/ddtrace/contrib/redis/vendor/resolver.rb +0 -159
  1012. data/lib/ddtrace/contrib/registerable.rb +0 -33
  1013. data/lib/ddtrace/contrib/registry.rb +0 -42
  1014. data/lib/ddtrace/contrib/resque/configuration/settings.rb +0 -26
  1015. data/lib/ddtrace/contrib/resque/ext.rb +0 -14
  1016. data/lib/ddtrace/contrib/resque/integration.rb +0 -47
  1017. data/lib/ddtrace/contrib/resque/patcher.rb +0 -29
  1018. data/lib/ddtrace/contrib/resque/resque_job.rb +0 -80
  1019. data/lib/ddtrace/contrib/rest_client/configuration/settings.rb +0 -26
  1020. data/lib/ddtrace/contrib/rest_client/ext.rb +0 -14
  1021. data/lib/ddtrace/contrib/rest_client/integration.rb +0 -38
  1022. data/lib/ddtrace/contrib/rest_client/patcher.rb +0 -23
  1023. data/lib/ddtrace/contrib/rest_client/request_patch.rb +0 -89
  1024. data/lib/ddtrace/contrib/sequel/configuration/settings.rb +0 -23
  1025. data/lib/ddtrace/contrib/sequel/database.rb +0 -61
  1026. data/lib/ddtrace/contrib/sequel/dataset.rb +0 -62
  1027. data/lib/ddtrace/contrib/sequel/ext.rb +0 -15
  1028. data/lib/ddtrace/contrib/sequel/integration.rb +0 -38
  1029. data/lib/ddtrace/contrib/sequel/patcher.rb +0 -33
  1030. data/lib/ddtrace/contrib/sequel/utils.rb +0 -46
  1031. data/lib/ddtrace/contrib/shoryuken/configuration/settings.rb +0 -24
  1032. data/lib/ddtrace/contrib/shoryuken/ext.rb +0 -18
  1033. data/lib/ddtrace/contrib/shoryuken/integration.rb +0 -39
  1034. data/lib/ddtrace/contrib/shoryuken/patcher.rb +0 -24
  1035. data/lib/ddtrace/contrib/shoryuken/tracer.rb +0 -49
  1036. data/lib/ddtrace/contrib/sidekiq/client_tracer.rb +0 -43
  1037. data/lib/ddtrace/contrib/sidekiq/configuration/settings.rb +0 -31
  1038. data/lib/ddtrace/contrib/sidekiq/ext.rb +0 -23
  1039. data/lib/ddtrace/contrib/sidekiq/integration.rb +0 -38
  1040. data/lib/ddtrace/contrib/sidekiq/patcher.rb +0 -34
  1041. data/lib/ddtrace/contrib/sidekiq/server_tracer.rb +0 -66
  1042. data/lib/ddtrace/contrib/sidekiq/tracing.rb +0 -45
  1043. data/lib/ddtrace/contrib/sinatra/configuration/settings.rb +0 -34
  1044. data/lib/ddtrace/contrib/sinatra/env.rb +0 -38
  1045. data/lib/ddtrace/contrib/sinatra/ext.rb +0 -18
  1046. data/lib/ddtrace/contrib/sinatra/headers.rb +0 -31
  1047. data/lib/ddtrace/contrib/sinatra/integration.rb +0 -38
  1048. data/lib/ddtrace/contrib/sinatra/patcher.rb +0 -27
  1049. data/lib/ddtrace/contrib/sinatra/tracer.rb +0 -87
  1050. data/lib/ddtrace/contrib/sinatra/tracer_middleware.rb +0 -75
  1051. data/lib/ddtrace/contrib/sucker_punch/configuration/settings.rb +0 -25
  1052. data/lib/ddtrace/contrib/sucker_punch/exception_handler.rb +0 -26
  1053. data/lib/ddtrace/contrib/sucker_punch/ext.rb +0 -18
  1054. data/lib/ddtrace/contrib/sucker_punch/instrumentation.rb +0 -84
  1055. data/lib/ddtrace/contrib/sucker_punch/integration.rb +0 -38
  1056. data/lib/ddtrace/contrib/sucker_punch/patcher.rb +0 -42
  1057. data/lib/ddtrace/correlation.rb +0 -35
  1058. data/lib/ddtrace/diagnostics/health.rb +0 -37
  1059. data/lib/ddtrace/distributed_tracing/headers/b3.rb +0 -44
  1060. data/lib/ddtrace/distributed_tracing/headers/b3_single.rb +0 -56
  1061. data/lib/ddtrace/distributed_tracing/headers/datadog.rb +0 -42
  1062. data/lib/ddtrace/distributed_tracing/headers/headers.rb +0 -70
  1063. data/lib/ddtrace/distributed_tracing/headers/helpers.rb +0 -45
  1064. data/lib/ddtrace/encoding.rb +0 -95
  1065. data/lib/ddtrace/environment.rb +0 -27
  1066. data/lib/ddtrace/error.rb +0 -27
  1067. data/lib/ddtrace/event.rb +0 -52
  1068. data/lib/ddtrace/ext/analytics.rb +0 -12
  1069. data/lib/ddtrace/ext/app_types.rb +0 -11
  1070. data/lib/ddtrace/ext/correlation.rb +0 -10
  1071. data/lib/ddtrace/ext/diagnostics.rb +0 -31
  1072. data/lib/ddtrace/ext/distributed.rb +0 -33
  1073. data/lib/ddtrace/ext/environment.rb +0 -13
  1074. data/lib/ddtrace/ext/errors.rb +0 -10
  1075. data/lib/ddtrace/ext/forced_tracing.rb +0 -25
  1076. data/lib/ddtrace/ext/http.rb +0 -46
  1077. data/lib/ddtrace/ext/manual_tracing.rb +0 -9
  1078. data/lib/ddtrace/ext/metrics.rb +0 -15
  1079. data/lib/ddtrace/ext/net.rb +0 -10
  1080. data/lib/ddtrace/ext/priority.rb +0 -16
  1081. data/lib/ddtrace/ext/runtime.rb +0 -26
  1082. data/lib/ddtrace/ext/sampling.rb +0 -16
  1083. data/lib/ddtrace/ext/sql.rb +0 -8
  1084. data/lib/ddtrace/ext/transport.rb +0 -17
  1085. data/lib/ddtrace/forced_tracing.rb +0 -36
  1086. data/lib/ddtrace/logger.rb +0 -81
  1087. data/lib/ddtrace/metrics.rb +0 -222
  1088. data/lib/ddtrace/monkey.rb +0 -58
  1089. data/lib/ddtrace/opentelemetry/extensions.rb +0 -13
  1090. data/lib/ddtrace/opentelemetry/span.rb +0 -33
  1091. data/lib/ddtrace/opentracer/binary_propagator.rb +0 -24
  1092. data/lib/ddtrace/opentracer/carrier.rb +0 -6
  1093. data/lib/ddtrace/opentracer/distributed_headers.rb +0 -52
  1094. data/lib/ddtrace/opentracer/global_tracer.rb +0 -15
  1095. data/lib/ddtrace/opentracer/propagator.rb +0 -22
  1096. data/lib/ddtrace/opentracer/rack_propagator.rb +0 -60
  1097. data/lib/ddtrace/opentracer/scope.rb +0 -15
  1098. data/lib/ddtrace/opentracer/scope_manager.rb +0 -6
  1099. data/lib/ddtrace/opentracer/span.rb +0 -98
  1100. data/lib/ddtrace/opentracer/span_context.rb +0 -14
  1101. data/lib/ddtrace/opentracer/span_context_factory.rb +0 -23
  1102. data/lib/ddtrace/opentracer/text_map_propagator.rb +0 -75
  1103. data/lib/ddtrace/opentracer/thread_local_scope.rb +0 -30
  1104. data/lib/ddtrace/opentracer/thread_local_scope_manager.rb +0 -40
  1105. data/lib/ddtrace/opentracer/tracer.rb +0 -208
  1106. data/lib/ddtrace/opentracer.rb +0 -40
  1107. data/lib/ddtrace/patcher.rb +0 -47
  1108. data/lib/ddtrace/pin.rb +0 -114
  1109. data/lib/ddtrace/pipeline/span_filter.rb +0 -38
  1110. data/lib/ddtrace/pipeline/span_processor.rb +0 -20
  1111. data/lib/ddtrace/pipeline.rb +0 -46
  1112. data/lib/ddtrace/propagation/grpc_propagator.rb +0 -61
  1113. data/lib/ddtrace/propagation/http_propagator.rb +0 -75
  1114. data/lib/ddtrace/quantization/hash.rb +0 -103
  1115. data/lib/ddtrace/quantization/http.rb +0 -86
  1116. data/lib/ddtrace/runtime/cgroup.rb +0 -44
  1117. data/lib/ddtrace/runtime/class_count.rb +0 -17
  1118. data/lib/ddtrace/runtime/container.rb +0 -73
  1119. data/lib/ddtrace/runtime/gc.rb +0 -16
  1120. data/lib/ddtrace/runtime/identity.rb +0 -41
  1121. data/lib/ddtrace/runtime/metrics.rb +0 -93
  1122. data/lib/ddtrace/runtime/object_space.rb +0 -19
  1123. data/lib/ddtrace/runtime/socket.rb +0 -14
  1124. data/lib/ddtrace/runtime/thread_count.rb +0 -16
  1125. data/lib/ddtrace/sampler.rb +0 -290
  1126. data/lib/ddtrace/sampling/matcher.rb +0 -57
  1127. data/lib/ddtrace/sampling/rate_limiter.rb +0 -127
  1128. data/lib/ddtrace/sampling/rule.rb +0 -61
  1129. data/lib/ddtrace/sampling/rule_sampler.rb +0 -125
  1130. data/lib/ddtrace/sampling.rb +0 -2
  1131. data/lib/ddtrace/span.rb +0 -297
  1132. data/lib/ddtrace/sync_writer.rb +0 -72
  1133. data/lib/ddtrace/tracer.rb +0 -437
  1134. data/lib/ddtrace/transport/http/adapters/net.rb +0 -112
  1135. data/lib/ddtrace/transport/http/adapters/registry.rb +0 -24
  1136. data/lib/ddtrace/transport/http/adapters/test.rb +0 -77
  1137. data/lib/ddtrace/transport/http/adapters/unix_socket.rb +0 -64
  1138. data/lib/ddtrace/transport/http/api/endpoint.rb +0 -27
  1139. data/lib/ddtrace/transport/http/api/fallbacks.rb +0 -22
  1140. data/lib/ddtrace/transport/http/api/instance.rb +0 -29
  1141. data/lib/ddtrace/transport/http/api/map.rb +0 -14
  1142. data/lib/ddtrace/transport/http/api/spec.rb +0 -15
  1143. data/lib/ddtrace/transport/http/api.rb +0 -46
  1144. data/lib/ddtrace/transport/http/builder.rb +0 -165
  1145. data/lib/ddtrace/transport/http/client.rb +0 -107
  1146. data/lib/ddtrace/transport/http/env.rb +0 -48
  1147. data/lib/ddtrace/transport/http/response.rb +0 -26
  1148. data/lib/ddtrace/transport/http/statistics.rb +0 -30
  1149. data/lib/ddtrace/transport/http/traces.rb +0 -140
  1150. data/lib/ddtrace/transport/http.rb +0 -91
  1151. data/lib/ddtrace/transport/io/client.rb +0 -76
  1152. data/lib/ddtrace/transport/io/response.rb +0 -23
  1153. data/lib/ddtrace/transport/io/traces.rb +0 -44
  1154. data/lib/ddtrace/transport/io.rb +0 -26
  1155. data/lib/ddtrace/transport/parcel.rb +0 -17
  1156. data/lib/ddtrace/transport/request.rb +0 -13
  1157. data/lib/ddtrace/transport/response.rb +0 -49
  1158. data/lib/ddtrace/transport/statistics.rb +0 -72
  1159. data/lib/ddtrace/transport/traces.rb +0 -33
  1160. data/lib/ddtrace/utils/database.rb +0 -25
  1161. data/lib/ddtrace/utils/time.rb +0 -14
  1162. data/lib/ddtrace/utils.rb +0 -65
  1163. data/lib/ddtrace/vendor/active_record/connection_specification.rb +0 -301
  1164. data/lib/ddtrace/worker.rb +0 -20
  1165. data/lib/ddtrace/workers/async.rb +0 -165
  1166. data/lib/ddtrace/workers/loop.rb +0 -105
  1167. data/lib/ddtrace/workers/polling.rb +0 -48
  1168. data/lib/ddtrace/workers/queue.rb +0 -39
  1169. data/lib/ddtrace/workers.rb +0 -125
  1170. data/lib/ddtrace/writer.rb +0 -161
  1171. data/tasks/release_gem.rake +0 -28
@@ -1,437 +0,0 @@
1
- require 'pp'
2
- require 'thread'
3
- require 'logger'
4
- require 'pathname'
5
-
6
- require 'ddtrace/environment'
7
- require 'ddtrace/span'
8
- require 'ddtrace/context'
9
- require 'ddtrace/logger'
10
- require 'ddtrace/writer'
11
- require 'ddtrace/sampler'
12
- require 'ddtrace/sampling'
13
- require 'ddtrace/correlation'
14
-
15
- # \Datadog global namespace that includes all tracing functionality for Tracer and Span classes.
16
- module Datadog
17
- # A \Tracer keeps track of the time spent by an application processing a single operation. For
18
- # example, a trace can be used to track the entire time spent processing a complicated web request.
19
- # Even though the request may require multiple resources and machines to handle the request, all
20
- # of these function calls and sub-requests would be encapsulated within a single trace.
21
- # rubocop:disable Metrics/ClassLength
22
- class Tracer
23
- attr_reader :sampler, :tags, :provider, :context_flush
24
- attr_accessor :enabled, :writer
25
- attr_writer :default_service
26
-
27
- ALLOWED_SPAN_OPTIONS = [:service, :resource, :span_type].freeze
28
- DEFAULT_ON_ERROR = proc { |span, error| span.set_error(error) unless span.nil? }
29
-
30
- def services
31
- # Only log each deprecation warning once (safeguard against log spam)
32
- Datadog::Patcher.do_once('Tracer#set_service_info') do
33
- Datadog::Logger.log.warn('services: Usage of Tracer.services has been deprecated')
34
- end
35
-
36
- {}
37
- end
38
-
39
- # Shorthand that calls the `shutdown!` method of a registered worker.
40
- # It's useful to ensure that the Trace Buffer is properly flushed before
41
- # shutting down the application.
42
- #
43
- # For instance:
44
- #
45
- # tracer.trace('operation_name', service='rake_tasks') do |span|
46
- # span.set_tag('task.name', 'script')
47
- # end
48
- #
49
- # tracer.shutdown!
50
- #
51
- def shutdown!
52
- return unless @enabled
53
-
54
- @writer.stop unless @writer.nil?
55
- end
56
-
57
- # Return the current active \Context for this traced execution. This method is
58
- # automatically called when calling Tracer.trace or Tracer.start_span,
59
- # but it can be used in the application code during manual instrumentation.
60
- #
61
- # This method makes use of a \ContextProvider that is automatically set during the tracer
62
- # initialization, or while using a library instrumentation.
63
- def call_context
64
- @provider.context
65
- end
66
-
67
- # Initialize a new \Tracer used to create, sample and submit spans that measure the
68
- # time of sections of code. Available +options+ are:
69
- #
70
- # * +enabled+: set if the tracer submits or not spans to the local agent. It's enabled
71
- # by default.
72
- def initialize(options = {})
73
- @enabled = options.fetch(:enabled, true)
74
- @writer = options.fetch(:writer, Datadog::Writer.new)
75
- @sampler = options.fetch(:sampler, Datadog::AllSampler.new)
76
-
77
- @provider = options.fetch(:context_provider, Datadog::DefaultContextProvider.new)
78
- @provider ||= Datadog::DefaultContextProvider.new # @provider should never be nil
79
-
80
- @context_flush = if options[:partial_flush]
81
- Datadog::ContextFlush::Partial.new(options)
82
- else
83
- Datadog::ContextFlush::Finished.new
84
- end
85
-
86
- @mutex = Mutex.new
87
- @tags = options.fetch(:tags, Datadog.configuration.tags)
88
- @default_service = options.fetch(:default_service, Datadog.configuration.service)
89
-
90
- # Enable priority sampling by default
91
- activate_priority_sampling!(@sampler)
92
- end
93
-
94
- # Updates the current \Tracer instance, so that the tracer can be configured after the
95
- # initialization. Available +options+ are:
96
- #
97
- # * +enabled+: set if the tracer submits or not spans to the trace agent
98
- # * +hostname+: change the location of the trace agent
99
- # * +port+: change the port of the trace agent
100
- # * +partial_flush+: enable partial trace flushing
101
- #
102
- # For instance, if the trace agent runs in a different location, just:
103
- #
104
- # tracer.configure(hostname: 'agent.service.consul', port: '8777')
105
- #
106
- def configure(options = {})
107
- enabled = options.fetch(:enabled, nil)
108
-
109
- # Those are rare "power-user" options.
110
- sampler = options.fetch(:sampler, nil)
111
-
112
- @enabled = enabled unless enabled.nil?
113
- @sampler = sampler unless sampler.nil?
114
-
115
- configure_writer(options)
116
-
117
- @context_flush = if options[:partial_flush]
118
- Datadog::ContextFlush::Partial.new(options)
119
- else
120
- Datadog::ContextFlush::Finished.new
121
- end
122
- end
123
-
124
- # Set the information about the given service. A valid example is:
125
- #
126
- # tracer.set_service_info('web-application', 'rails', 'web')
127
- #
128
- # set_service_info is deprecated, no service information needs to be tracked
129
- def set_service_info(service, app, app_type)
130
- # Only log each deprecation warning once (safeguard against log spam)
131
- Datadog::Patcher.do_once('Tracer#set_service_info') do
132
- Datadog::Logger.log.warn(%(
133
- set_service_info: Usage of set_service_info has been deprecated,
134
- service information no longer needs to be reported to the trace agent.
135
- ))
136
- end
137
- end
138
-
139
- # A default value for service. One should really override this one
140
- # for non-root spans which have a parent. However, root spans without
141
- # a service would be invalid and rejected.
142
- def default_service
143
- return @default_service if instance_variable_defined?(:@default_service) && @default_service
144
- begin
145
- @default_service = File.basename($PROGRAM_NAME, '.*')
146
- rescue StandardError => e
147
- Datadog::Logger.log.error("unable to guess default service: #{e}")
148
- @default_service = 'ruby'.freeze
149
- end
150
- @default_service
151
- end
152
-
153
- # Set the given key / value tag pair at the tracer level. These tags will be
154
- # appended to each span created by the tracer. Keys and values must be strings.
155
- # A valid example is:
156
- #
157
- # tracer.set_tags('env' => 'prod', 'component' => 'core')
158
- def set_tags(tags)
159
- string_tags = Hash[tags.collect { |k, v| [k.to_s, v] }]
160
- @tags = @tags.merge(string_tags)
161
- end
162
-
163
- # Guess context and parent from child_of entry.
164
- def guess_context_and_parent(child_of)
165
- # call_context should not be in this code path, as start_span
166
- # should never try and pick an existing context, but only get
167
- # it from the parameters passed to it (child_of)
168
- return [Datadog::Context.new, nil] unless child_of
169
-
170
- return [child_of, child_of.current_span] if child_of.is_a?(Context)
171
-
172
- [child_of.context, child_of]
173
- end
174
-
175
- # Return a span that will trace an operation called \name. This method allows
176
- # parenting passing \child_of as an option. If it's missing, the newly created span is a
177
- # root span. Available options are:
178
- #
179
- # * +service+: the service name for this span
180
- # * +resource+: the resource this span refers, or \name if it's missing
181
- # * +span_type+: the type of the span (such as \http, \db and so on)
182
- # * +child_of+: a \Span or a \Context instance representing the parent for this span.
183
- # * +start_time+: when the span actually starts (defaults to \now)
184
- # * +tags+: extra tags which should be added to the span.
185
- def start_span(name, options = {})
186
- start_time = options.fetch(:start_time, Time.now.utc)
187
-
188
- tags = options.fetch(:tags, {})
189
-
190
- span_options = options.select do |k, _v|
191
- # Filter options, we want no side effects with unexpected args.
192
- ALLOWED_SPAN_OPTIONS.include?(k)
193
- end
194
-
195
- ctx, parent = guess_context_and_parent(options[:child_of])
196
- span_options[:context] = ctx unless ctx.nil?
197
-
198
- span = Span.new(self, name, span_options)
199
- if parent.nil?
200
- # root span
201
- @sampler.sample!(span)
202
- span.set_tag('system.pid', Process.pid)
203
-
204
- if ctx && ctx.trace_id
205
- span.trace_id = ctx.trace_id
206
- span.parent_id = ctx.span_id unless ctx.span_id.nil?
207
- end
208
- else
209
- # child span
210
- span.parent = parent # sets service, trace_id, parent_id, sampled
211
- end
212
- @tags.each { |k, v| span.set_tag(k, v) } unless @tags.empty?
213
- tags.each { |k, v| span.set_tag(k, v) } unless tags.empty?
214
- span.start_time = start_time
215
-
216
- # this could at some point be optional (start_active_span vs start_manual_span)
217
- ctx.add_span(span) unless ctx.nil?
218
-
219
- span
220
- end
221
-
222
- # Return a +span+ that will trace an operation called +name+. You could trace your code
223
- # using a <tt>do-block</tt> like:
224
- #
225
- # tracer.trace('web.request') do |span|
226
- # span.service = 'my-web-site'
227
- # span.resource = '/'
228
- # span.set_tag('http.method', request.request_method)
229
- # do_something()
230
- # end
231
- #
232
- # The <tt>tracer.trace()</tt> method can also be used without a block in this way:
233
- #
234
- # span = tracer.trace('web.request', service: 'my-web-site')
235
- # do_something()
236
- # span.finish()
237
- #
238
- # Remember that in this case, calling <tt>span.finish()</tt> is mandatory.
239
- #
240
- # When a Trace is started, <tt>trace()</tt> will store the created span; subsequent spans will
241
- # become it's children and will inherit some properties:
242
- #
243
- # parent = tracer.trace('parent') # has no parent span
244
- # child = tracer.trace('child') # is a child of 'parent'
245
- # child.finish()
246
- # parent.finish()
247
- # parent2 = tracer.trace('parent2') # has no parent span
248
- # parent2.finish()
249
- #
250
- # Available options are:
251
- #
252
- # * +service+: the service name for this span
253
- # * +resource+: the resource this span refers, or \name if it's missing
254
- # * +span_type+: the type of the span (such as \http, \db and so on)
255
- # * +tags+: extra tags which should be added to the span.
256
- def trace(name, options = {})
257
- options[:child_of] = call_context
258
-
259
- # call the finish only if a block is given; this ensures
260
- # that a call to tracer.trace() without a block, returns
261
- # a span that should be manually finished.
262
- if block_given?
263
- span = nil
264
- return_value = nil
265
-
266
- begin
267
- begin
268
- span = start_span(name, options)
269
- # rubocop:disable Lint/UselessAssignment
270
- rescue StandardError => e
271
- Datadog::Logger.log.debug('Failed to start span: #{e}')
272
- ensure
273
- return_value = yield(span)
274
- end
275
- # rubocop:disable Lint/RescueException
276
- # Here we really want to catch *any* exception, not only StandardError,
277
- # as we really have no clue of what is in the block,
278
- # and it is user code which should be executed no matter what.
279
- # It's not a problem since we re-raise it afterwards so for example a
280
- # SignalException::Interrupt would still bubble up.
281
- rescue Exception => e
282
- (options[:on_error] || DEFAULT_ON_ERROR).call(span, e)
283
- raise e
284
- ensure
285
- span.finish unless span.nil?
286
- end
287
-
288
- return_value
289
- else
290
- start_span(name, options)
291
- end
292
- end
293
-
294
- # Record the given +context+. For compatibility with previous versions,
295
- # +context+ can also be a span. It is similar to the +child_of+ argument,
296
- # method will figure out what to do, submitting a +span+ for recording
297
- # is like trying to record its +context+.
298
- def record(context)
299
- context = context.context if context.is_a?(Datadog::Span)
300
- return if context.nil?
301
-
302
- record_context(context)
303
- end
304
-
305
- # Consume trace from +context+, according to +@context_flush+
306
- # criteria.
307
- #
308
- # \ContextFlush#consume! can return nil or an empty list if the
309
- # trace is not available to flush or if the trace has not been
310
- # chosen to be sampled.
311
- def record_context(context)
312
- trace = @context_flush.consume!(context)
313
-
314
- write(trace) if trace && !trace.empty?
315
- end
316
-
317
- # Return the current active span or +nil+.
318
- def active_span
319
- call_context.current_span
320
- end
321
-
322
- # Return the current active root span or +nil+.
323
- def active_root_span
324
- call_context.current_root_span
325
- end
326
-
327
- # Return a CorrelationIdentifier for active span
328
- def active_correlation
329
- Datadog::Correlation.identifier_from_context(call_context)
330
- end
331
-
332
- # Send the trace to the writer to enqueue the spans list in the agent
333
- # sending queue.
334
- def write(trace)
335
- return if @writer.nil? || !@enabled
336
-
337
- if Datadog::Logger.debug_logging
338
- Datadog::Logger.log.debug("Writing #{trace.length} spans (enabled: #{@enabled})")
339
- str = String.new('')
340
- PP.pp(trace, str)
341
- Datadog::Logger.log.debug(str)
342
- end
343
-
344
- @writer.write(trace)
345
- end
346
-
347
- # TODO: Move this kind of configuration building out of the tracer.
348
- # Tracer should not have this kind of knowledge of writer.
349
- # rubocop:disable Metrics/PerceivedComplexity
350
- # rubocop:disable Metrics/CyclomaticComplexity
351
- # rubocop:disable Metrics/MethodLength
352
- def configure_writer(options = {})
353
- hostname = options.fetch(:hostname, nil)
354
- port = options.fetch(:port, nil)
355
- sampler = options.fetch(:sampler, nil)
356
- priority_sampling = options.fetch(:priority_sampling, nil)
357
- writer = options.fetch(:writer, nil)
358
- transport_options = options.fetch(:transport_options, {})
359
-
360
- # Compile writer options
361
- writer_options = options.fetch(:writer_options, {})
362
- rebuild_writer = !writer_options.empty?
363
-
364
- # Re-build the sampler and writer if priority sampling is enabled,
365
- # but neither are configured. Verify the sampler isn't already a
366
- # priority sampler too, so we don't wrap one with another.
367
- if options.key?(:writer)
368
- if writer.priority_sampler.nil?
369
- deactivate_priority_sampling!(sampler)
370
- else
371
- activate_priority_sampling!(writer.priority_sampler)
372
- end
373
- elsif priority_sampling != false && !@sampler.is_a?(PrioritySampler)
374
- writer_options[:priority_sampler] = activate_priority_sampling!(@sampler)
375
- rebuild_writer = true
376
- elsif priority_sampling == false
377
- deactivate_priority_sampling!(sampler)
378
- rebuild_writer = true
379
- elsif @sampler.is_a?(PrioritySampler)
380
- # Make sure to add sampler to options if transport is rebuilt.
381
- writer_options[:priority_sampler] = @sampler
382
- end
383
-
384
- # Apply options to transport
385
- if transport_options.is_a?(Proc)
386
- transport_options = { on_build: transport_options }
387
- rebuild_writer = true
388
- end
389
-
390
- if hostname || port
391
- transport_options[:hostname] = hostname unless hostname.nil?
392
- transport_options[:port] = port unless port.nil?
393
- rebuild_writer = true
394
- end
395
-
396
- writer_options[:transport_options] = transport_options
397
-
398
- # ensure any configuration to runtime_metrics statsd client is
399
- # passed on when writer gets rebuilt
400
- unless writer_options.key?(:runtime_metrics)
401
- if @writer && !@writer.runtime_metrics.nil?
402
- writer_options[:runtime_metrics] = @writer.runtime_metrics
403
- end
404
- end
405
-
406
- if rebuild_writer || writer
407
- # Make sure old writer is shut down before throwing away.
408
- # Don't want additional threads running...
409
- @writer.stop unless writer.nil?
410
- @writer = writer || Writer.new(writer_options)
411
- end
412
- end
413
-
414
- def activate_priority_sampling!(base_sampler = nil)
415
- @sampler = if base_sampler.is_a?(PrioritySampler)
416
- base_sampler
417
- else
418
- PrioritySampler.new(
419
- base_sampler: base_sampler,
420
- post_sampler: Sampling::RuleSampler.new
421
- )
422
- end
423
- end
424
-
425
- def deactivate_priority_sampling!(base_sampler = nil)
426
- @sampler = base_sampler || Datadog::AllSampler.new if @sampler.is_a?(PrioritySampler)
427
- end
428
-
429
- private \
430
- :activate_priority_sampling!,
431
- :configure_writer,
432
- :deactivate_priority_sampling!,
433
- :guess_context_and_parent,
434
- :record_context,
435
- :write
436
- end
437
- end
@@ -1,112 +0,0 @@
1
- require 'ddtrace/transport/response'
2
-
3
- module Datadog
4
- module Transport
5
- module HTTP
6
- module Adapters
7
- # Adapter for Net::HTTP
8
- class Net
9
- attr_reader \
10
- :hostname,
11
- :port,
12
- :timeout
13
-
14
- DEFAULT_TIMEOUT = 1
15
-
16
- def initialize(hostname, port, options = {})
17
- @hostname = hostname
18
- @port = port
19
- @timeout = options[:timeout] || DEFAULT_TIMEOUT
20
- end
21
-
22
- def open
23
- # Open connection
24
- ::Net::HTTP.start(hostname, port, open_timeout: timeout, read_timeout: timeout) do |http|
25
- yield(http)
26
- end
27
- end
28
-
29
- def call(env)
30
- if respond_to?(env.verb)
31
- send(env.verb, env)
32
- else
33
- raise UnknownHTTPMethod, env
34
- end
35
- end
36
-
37
- def post(env)
38
- post = ::Net::HTTP::Post.new(env.path, env.headers)
39
- post.body = env.body
40
-
41
- # Connect and send the request
42
- http_response = open do |http|
43
- http.request(post)
44
- end
45
-
46
- # Build and return response
47
- Response.new(http_response)
48
- end
49
-
50
- # Raised when called with an unknown HTTP method
51
- class UnknownHTTPMethod < StandardError
52
- attr_reader :verb
53
-
54
- def initialize(verb)
55
- @verb = verb
56
- end
57
-
58
- def message
59
- "No matching Net::HTTP function for '#{verb}'!"
60
- end
61
- end
62
-
63
- # A wrapped Net::HTTP response that implements the Transport::Response interface
64
- class Response
65
- include Datadog::Transport::Response
66
-
67
- attr_reader :http_response
68
-
69
- def initialize(http_response)
70
- @http_response = http_response
71
- end
72
-
73
- def payload
74
- return super if http_response.nil?
75
- http_response.body
76
- end
77
-
78
- def code
79
- return super if http_response.nil?
80
- http_response.code.to_i
81
- end
82
-
83
- def ok?
84
- return super if http_response.nil?
85
- code.between?(200, 299)
86
- end
87
-
88
- def unsupported?
89
- return super if http_response.nil?
90
- code == 415
91
- end
92
-
93
- def not_found?
94
- return super if http_response.nil?
95
- code == 404
96
- end
97
-
98
- def client_error?
99
- return super if http_response.nil?
100
- code.between?(400, 499)
101
- end
102
-
103
- def server_error?
104
- return super if http_response.nil?
105
- code.between?(500, 599)
106
- end
107
- end
108
- end
109
- end
110
- end
111
- end
112
- end
@@ -1,24 +0,0 @@
1
- module Datadog
2
- module Transport
3
- module HTTP
4
- module Adapters
5
- # List of available adapters
6
- class Registry
7
- def initialize
8
- @adapters = {}
9
- end
10
-
11
- def get(name)
12
- @adapters[name]
13
- end
14
-
15
- def set(klass, name = nil)
16
- name ||= klass.to_s
17
- return if name.nil?
18
- @adapters[name] = klass
19
- end
20
- end
21
- end
22
- end
23
- end
24
- end
@@ -1,77 +0,0 @@
1
- require 'ddtrace/transport/response'
2
-
3
- module Datadog
4
- module Transport
5
- module HTTP
6
- module Adapters
7
- # Adapter for testing
8
- class Test
9
- attr_reader \
10
- :buffer,
11
- :status
12
-
13
- def initialize(buffer = nil)
14
- @buffer = buffer
15
- @mutex = Mutex.new
16
- @status = 200
17
- end
18
-
19
- def call(env)
20
- add_request(env)
21
- Response.new(status)
22
- end
23
-
24
- def buffer?
25
- !@buffer.nil?
26
- end
27
-
28
- def add_request(env)
29
- @mutex.synchronize { buffer << env } if buffer?
30
- end
31
-
32
- def set_status!(status)
33
- @status = status
34
- end
35
-
36
- # Response for test adapter
37
- class Response
38
- include Datadog::Transport::Response
39
-
40
- attr_reader \
41
- :body,
42
- :code
43
-
44
- def initialize(code, body = nil)
45
- @code = code
46
- @body = body
47
- end
48
-
49
- def payload
50
- @body
51
- end
52
-
53
- def ok?
54
- code.between?(200, 299)
55
- end
56
-
57
- def unsupported?
58
- code == 415
59
- end
60
-
61
- def not_found?
62
- code == 404
63
- end
64
-
65
- def client_error?
66
- code.between?(400, 499)
67
- end
68
-
69
- def server_error?
70
- code.between?(500, 599)
71
- end
72
- end
73
- end
74
- end
75
- end
76
- end
77
- end