ddtrace 0.54.2 → 1.18.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1304) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +1239 -1
  3. data/LICENSE-3rdparty.csv +7 -1
  4. data/README.md +16 -9
  5. data/bin/ddtracerb +5 -5
  6. data/ext/ddtrace_profiling_loader/ddtrace_profiling_loader.c +134 -0
  7. data/ext/ddtrace_profiling_loader/extconf.rb +72 -0
  8. data/ext/ddtrace_profiling_native_extension/NativeExtensionDesign.md +85 -15
  9. data/ext/ddtrace_profiling_native_extension/clock_id.h +20 -2
  10. data/ext/ddtrace_profiling_native_extension/clock_id_from_pthread.c +24 -20
  11. data/ext/ddtrace_profiling_native_extension/clock_id_noop.c +10 -2
  12. data/ext/ddtrace_profiling_native_extension/collectors_cpu_and_wall_time_worker.c +966 -0
  13. data/ext/ddtrace_profiling_native_extension/collectors_dynamic_sampling_rate.c +142 -0
  14. data/ext/ddtrace_profiling_native_extension/collectors_dynamic_sampling_rate.h +14 -0
  15. data/ext/ddtrace_profiling_native_extension/collectors_idle_sampling_helper.c +244 -0
  16. data/ext/ddtrace_profiling_native_extension/collectors_idle_sampling_helper.h +3 -0
  17. data/ext/ddtrace_profiling_native_extension/collectors_stack.c +431 -0
  18. data/ext/ddtrace_profiling_native_extension/collectors_stack.h +20 -0
  19. data/ext/ddtrace_profiling_native_extension/collectors_thread_context.c +1266 -0
  20. data/ext/ddtrace_profiling_native_extension/collectors_thread_context.h +14 -0
  21. data/ext/ddtrace_profiling_native_extension/extconf.rb +201 -115
  22. data/ext/ddtrace_profiling_native_extension/helpers.h +17 -0
  23. data/ext/ddtrace_profiling_native_extension/http_transport.c +379 -0
  24. data/ext/ddtrace_profiling_native_extension/libdatadog_helpers.c +42 -0
  25. data/ext/ddtrace_profiling_native_extension/libdatadog_helpers.h +31 -0
  26. data/ext/ddtrace_profiling_native_extension/native_extension_helpers.rb +319 -0
  27. data/ext/ddtrace_profiling_native_extension/pid_controller.c +57 -0
  28. data/ext/ddtrace_profiling_native_extension/pid_controller.h +45 -0
  29. data/ext/ddtrace_profiling_native_extension/private_vm_api_access.c +847 -9
  30. data/ext/ddtrace_profiling_native_extension/private_vm_api_access.h +54 -0
  31. data/ext/ddtrace_profiling_native_extension/profiling.c +231 -3
  32. data/ext/ddtrace_profiling_native_extension/ruby_helpers.c +110 -0
  33. data/ext/ddtrace_profiling_native_extension/ruby_helpers.h +89 -0
  34. data/ext/ddtrace_profiling_native_extension/setup_signal_handler.c +115 -0
  35. data/ext/ddtrace_profiling_native_extension/setup_signal_handler.h +11 -0
  36. data/ext/ddtrace_profiling_native_extension/stack_recorder.c +622 -0
  37. data/ext/ddtrace_profiling_native_extension/stack_recorder.h +24 -0
  38. data/ext/ddtrace_profiling_native_extension/time_helpers.c +53 -0
  39. data/ext/ddtrace_profiling_native_extension/time_helpers.h +24 -0
  40. data/lib/datadog/appsec/assets/blocked.html +99 -0
  41. data/lib/datadog/appsec/assets/blocked.json +1 -0
  42. data/lib/datadog/appsec/assets/blocked.text +5 -0
  43. data/lib/datadog/appsec/assets/waf_rules/README.md +7 -0
  44. data/lib/datadog/appsec/assets/waf_rules/processors.json +92 -0
  45. data/lib/datadog/appsec/assets/waf_rules/recommended.json +7703 -0
  46. data/lib/datadog/appsec/assets/waf_rules/scanners.json +114 -0
  47. data/lib/datadog/appsec/assets/waf_rules/strict.json +1635 -0
  48. data/lib/datadog/appsec/assets.rb +44 -0
  49. data/lib/datadog/appsec/autoload.rb +11 -0
  50. data/lib/datadog/appsec/component.rb +94 -0
  51. data/lib/datadog/appsec/configuration/settings.rb +202 -0
  52. data/lib/datadog/appsec/configuration.rb +11 -0
  53. data/lib/datadog/appsec/contrib/auto_instrument.rb +25 -0
  54. data/lib/datadog/appsec/contrib/devise/event.rb +57 -0
  55. data/lib/datadog/appsec/contrib/devise/ext.rb +13 -0
  56. data/lib/datadog/appsec/contrib/devise/integration.rb +42 -0
  57. data/lib/datadog/appsec/contrib/devise/patcher/authenticatable_patch.rb +76 -0
  58. data/lib/datadog/appsec/contrib/devise/patcher/registration_controller_patch.rb +54 -0
  59. data/lib/datadog/appsec/contrib/devise/patcher.rb +45 -0
  60. data/lib/datadog/appsec/contrib/devise/resource.rb +35 -0
  61. data/lib/datadog/appsec/contrib/devise/tracking.rb +49 -0
  62. data/lib/datadog/appsec/contrib/integration.rb +37 -0
  63. data/lib/datadog/appsec/contrib/patcher.rb +12 -0
  64. data/lib/datadog/appsec/contrib/rack/ext.rb +13 -0
  65. data/lib/datadog/appsec/contrib/rack/gateway/request.rb +104 -0
  66. data/lib/datadog/appsec/contrib/rack/gateway/response.rb +30 -0
  67. data/lib/datadog/appsec/contrib/rack/gateway/watcher.rb +160 -0
  68. data/lib/datadog/appsec/contrib/rack/integration.rb +42 -0
  69. data/lib/datadog/appsec/contrib/rack/patcher.rb +34 -0
  70. data/lib/datadog/appsec/contrib/rack/reactive/request.rb +81 -0
  71. data/lib/datadog/appsec/contrib/rack/reactive/request_body.rb +60 -0
  72. data/lib/datadog/appsec/contrib/rack/reactive/response.rb +66 -0
  73. data/lib/datadog/appsec/contrib/rack/request_body_middleware.rb +44 -0
  74. data/lib/datadog/appsec/contrib/rack/request_middleware.rb +193 -0
  75. data/lib/datadog/appsec/contrib/rails/ext.rb +13 -0
  76. data/lib/datadog/appsec/contrib/rails/framework.rb +16 -0
  77. data/lib/datadog/appsec/contrib/rails/gateway/request.rb +67 -0
  78. data/lib/datadog/appsec/contrib/rails/gateway/watcher.rb +69 -0
  79. data/lib/datadog/appsec/contrib/rails/integration.rb +41 -0
  80. data/lib/datadog/appsec/contrib/rails/patcher.rb +165 -0
  81. data/lib/datadog/appsec/contrib/rails/reactive/action.rb +66 -0
  82. data/lib/datadog/appsec/contrib/rails/request.rb +36 -0
  83. data/lib/datadog/appsec/contrib/rails/request_middleware.rb +20 -0
  84. data/lib/datadog/appsec/contrib/sinatra/ext.rb +14 -0
  85. data/lib/datadog/appsec/contrib/sinatra/framework.rb +20 -0
  86. data/lib/datadog/appsec/contrib/sinatra/gateway/request.rb +17 -0
  87. data/lib/datadog/appsec/contrib/sinatra/gateway/route_params.rb +23 -0
  88. data/lib/datadog/appsec/contrib/sinatra/gateway/watcher.rb +115 -0
  89. data/lib/datadog/appsec/contrib/sinatra/integration.rb +41 -0
  90. data/lib/datadog/appsec/contrib/sinatra/patcher.rb +166 -0
  91. data/lib/datadog/appsec/contrib/sinatra/reactive/routed.rb +61 -0
  92. data/lib/datadog/appsec/contrib/sinatra/request_middleware.rb +20 -0
  93. data/lib/datadog/appsec/event.rb +169 -0
  94. data/lib/datadog/appsec/ext.rb +10 -0
  95. data/lib/datadog/appsec/extensions.rb +15 -0
  96. data/lib/datadog/appsec/instrumentation/gateway/argument.rb +22 -0
  97. data/lib/datadog/appsec/instrumentation/gateway.rb +64 -0
  98. data/lib/datadog/appsec/instrumentation.rb +9 -0
  99. data/lib/datadog/appsec/monitor/gateway/watcher.rb +67 -0
  100. data/lib/datadog/appsec/monitor/reactive/set_user.rb +58 -0
  101. data/lib/datadog/appsec/monitor.rb +11 -0
  102. data/lib/datadog/appsec/processor/actions.rb +49 -0
  103. data/lib/datadog/appsec/processor/rule_loader.rb +123 -0
  104. data/lib/datadog/appsec/processor/rule_merger.rb +152 -0
  105. data/lib/datadog/appsec/processor.rb +171 -0
  106. data/lib/datadog/appsec/rate_limiter.rb +58 -0
  107. data/lib/datadog/appsec/reactive/address_hash.rb +22 -0
  108. data/lib/datadog/appsec/reactive/engine.rb +47 -0
  109. data/lib/datadog/appsec/reactive/operation.rb +68 -0
  110. data/lib/datadog/appsec/reactive/subscriber.rb +19 -0
  111. data/lib/datadog/appsec/remote.rb +129 -0
  112. data/lib/datadog/appsec/response.rb +151 -0
  113. data/lib/datadog/appsec/sample_rate.rb +21 -0
  114. data/lib/datadog/appsec/scope.rb +61 -0
  115. data/lib/datadog/appsec/utils/http/media_range.rb +199 -0
  116. data/lib/datadog/appsec/utils/http/media_type.rb +85 -0
  117. data/lib/datadog/appsec/utils/http.rb +11 -0
  118. data/lib/datadog/appsec/utils.rb +9 -0
  119. data/lib/datadog/appsec.rb +60 -0
  120. data/lib/datadog/core/backport.rb +51 -0
  121. data/lib/datadog/core/buffer/cruby.rb +55 -0
  122. data/lib/datadog/core/buffer/random.rb +134 -0
  123. data/lib/datadog/core/buffer/thread_safe.rb +58 -0
  124. data/lib/datadog/core/chunker.rb +35 -0
  125. data/lib/datadog/core/configuration/agent_settings_resolver.rb +405 -0
  126. data/lib/datadog/core/configuration/base.rb +89 -0
  127. data/lib/datadog/core/configuration/components.rb +173 -0
  128. data/lib/datadog/core/configuration/ext.rb +47 -0
  129. data/lib/datadog/core/configuration/option.rb +317 -0
  130. data/lib/datadog/core/configuration/option_definition.rb +176 -0
  131. data/lib/datadog/core/configuration/options.rb +128 -0
  132. data/lib/datadog/core/configuration/settings.rb +649 -0
  133. data/lib/datadog/core/configuration.rb +293 -0
  134. data/lib/datadog/core/diagnostics/environment_logger.rb +182 -0
  135. data/lib/datadog/core/diagnostics/health.rb +19 -0
  136. data/lib/datadog/core/encoding.rb +72 -0
  137. data/lib/datadog/core/environment/cgroup.rb +4 -5
  138. data/lib/datadog/core/environment/class_count.rb +2 -1
  139. data/lib/datadog/core/environment/container.rb +3 -5
  140. data/lib/datadog/core/environment/execution.rb +103 -0
  141. data/lib/datadog/core/environment/ext.rb +30 -11
  142. data/lib/datadog/core/environment/gc.rb +2 -1
  143. data/lib/datadog/core/environment/identity.rb +69 -6
  144. data/lib/datadog/core/environment/platform.rb +38 -0
  145. data/lib/datadog/core/environment/socket.rb +9 -2
  146. data/lib/datadog/core/environment/thread_count.rb +2 -1
  147. data/lib/datadog/core/environment/variable_helpers.rb +32 -21
  148. data/lib/datadog/core/environment/vm_cache.rb +19 -1
  149. data/lib/datadog/core/environment/yjit.rb +58 -0
  150. data/lib/datadog/core/error.rb +100 -0
  151. data/lib/datadog/core/extensions.rb +16 -0
  152. data/lib/datadog/core/git/ext.rb +37 -0
  153. data/lib/datadog/core/header_collection.rb +43 -0
  154. data/lib/datadog/core/logger.rb +44 -0
  155. data/lib/datadog/core/logging/ext.rb +13 -0
  156. data/lib/datadog/core/metrics/client.rb +197 -0
  157. data/lib/datadog/core/metrics/ext.rb +18 -0
  158. data/lib/datadog/core/metrics/helpers.rb +25 -0
  159. data/lib/datadog/core/metrics/logging.rb +42 -0
  160. data/lib/datadog/core/metrics/metric.rb +14 -0
  161. data/lib/datadog/core/metrics/options.rb +48 -0
  162. data/lib/datadog/core/pin.rb +73 -0
  163. data/lib/datadog/core/remote/client/capabilities.rb +62 -0
  164. data/lib/datadog/core/remote/client.rb +232 -0
  165. data/lib/datadog/core/remote/component.rb +149 -0
  166. data/lib/datadog/core/remote/configuration/content.rb +111 -0
  167. data/lib/datadog/core/remote/configuration/digest.rb +62 -0
  168. data/lib/datadog/core/remote/configuration/path.rb +90 -0
  169. data/lib/datadog/core/remote/configuration/repository.rb +294 -0
  170. data/lib/datadog/core/remote/configuration/target.rb +74 -0
  171. data/lib/datadog/core/remote/configuration.rb +18 -0
  172. data/lib/datadog/core/remote/dispatcher.rb +59 -0
  173. data/lib/datadog/core/remote/ext.rb +12 -0
  174. data/lib/datadog/core/remote/negotiation.rb +70 -0
  175. data/lib/datadog/core/remote/transport/config.rb +60 -0
  176. data/lib/datadog/core/remote/transport/http/api/instance.rb +39 -0
  177. data/lib/datadog/core/remote/transport/http/api/spec.rb +21 -0
  178. data/lib/datadog/core/remote/transport/http/api.rb +58 -0
  179. data/lib/datadog/core/remote/transport/http/builder.rb +219 -0
  180. data/lib/datadog/core/remote/transport/http/client.rb +48 -0
  181. data/lib/datadog/core/remote/transport/http/config.rb +280 -0
  182. data/lib/datadog/core/remote/transport/http/negotiation.rb +146 -0
  183. data/lib/datadog/core/remote/transport/http.rb +179 -0
  184. data/lib/datadog/core/remote/transport/negotiation.rb +62 -0
  185. data/lib/datadog/core/remote/worker.rb +99 -0
  186. data/lib/datadog/core/remote.rb +24 -0
  187. data/lib/datadog/core/runtime/ext.rb +38 -0
  188. data/lib/datadog/core/runtime/metrics.rb +183 -0
  189. data/lib/datadog/core/telemetry/client.rb +87 -0
  190. data/lib/datadog/core/telemetry/collector.rb +240 -0
  191. data/lib/datadog/core/telemetry/emitter.rb +48 -0
  192. data/lib/datadog/core/telemetry/event.rb +82 -0
  193. data/lib/datadog/core/telemetry/ext.rb +12 -0
  194. data/lib/datadog/core/telemetry/heartbeat.rb +35 -0
  195. data/lib/datadog/core/telemetry/http/adapters/net.rb +111 -0
  196. data/lib/datadog/core/telemetry/http/env.rb +20 -0
  197. data/lib/datadog/core/telemetry/http/ext.rb +22 -0
  198. data/lib/datadog/core/telemetry/http/response.rb +64 -0
  199. data/lib/datadog/core/telemetry/http/transport.rb +56 -0
  200. data/lib/datadog/core/telemetry/v1/app_event.rb +52 -0
  201. data/lib/datadog/core/telemetry/v1/application.rb +92 -0
  202. data/lib/datadog/core/telemetry/v1/configuration.rb +25 -0
  203. data/lib/datadog/core/telemetry/v1/dependency.rb +43 -0
  204. data/lib/datadog/core/telemetry/v1/host.rb +59 -0
  205. data/lib/datadog/core/telemetry/v1/integration.rb +64 -0
  206. data/lib/datadog/core/telemetry/v1/product.rb +36 -0
  207. data/lib/datadog/core/telemetry/v1/telemetry_request.rb +106 -0
  208. data/lib/datadog/core/telemetry/v2/app_client_configuration_change.rb +41 -0
  209. data/lib/datadog/core/telemetry/v2/request.rb +29 -0
  210. data/lib/datadog/core/transport/ext.rb +47 -0
  211. data/lib/datadog/core/transport/http/adapters/net.rb +168 -0
  212. data/lib/datadog/core/transport/http/adapters/registry.rb +29 -0
  213. data/lib/datadog/core/transport/http/adapters/test.rb +89 -0
  214. data/lib/datadog/core/transport/http/adapters/unix_socket.rb +83 -0
  215. data/lib/datadog/core/transport/http/api/endpoint.rb +31 -0
  216. data/lib/datadog/core/transport/http/api/fallbacks.rb +26 -0
  217. data/lib/datadog/core/transport/http/api/map.rb +18 -0
  218. data/lib/datadog/core/transport/http/env.rb +62 -0
  219. data/lib/datadog/core/transport/http/response.rb +60 -0
  220. data/lib/datadog/core/transport/parcel.rb +22 -0
  221. data/lib/datadog/core/transport/request.rb +17 -0
  222. data/lib/datadog/core/transport/response.rb +64 -0
  223. data/lib/datadog/core/utils/compression.rb +36 -0
  224. data/lib/datadog/core/utils/duration.rb +52 -0
  225. data/lib/datadog/core/utils/forking.rb +61 -0
  226. data/lib/datadog/core/utils/hash.rb +79 -0
  227. data/lib/datadog/core/utils/network.rb +140 -0
  228. data/lib/datadog/core/utils/only_once.rb +42 -0
  229. data/lib/datadog/core/utils/safe_dup.rb +50 -0
  230. data/lib/datadog/core/utils/sequence.rb +26 -0
  231. data/lib/datadog/core/utils/time.rb +52 -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/multipart/post/composite_read_io.rb +118 -0
  235. data/lib/datadog/core/vendor/multipart-post/multipart/post/multipartable.rb +59 -0
  236. data/lib/datadog/core/vendor/multipart-post/multipart/post/parts.rb +137 -0
  237. data/lib/datadog/core/vendor/multipart-post/multipart/post/version.rb +11 -0
  238. data/lib/datadog/core/vendor/multipart-post/multipart/post.rb +10 -0
  239. data/lib/datadog/core/vendor/multipart-post/multipart.rb +14 -0
  240. data/lib/datadog/core/vendor/multipart-post/net/http/post/multipart.rb +34 -0
  241. data/lib/datadog/core/worker.rb +24 -0
  242. data/lib/datadog/core/workers/async.rb +183 -0
  243. data/lib/datadog/core/workers/interval_loop.rb +123 -0
  244. data/lib/datadog/core/workers/polling.rb +57 -0
  245. data/lib/datadog/core/workers/queue.rb +44 -0
  246. data/lib/datadog/core/workers/runtime_metrics.rb +62 -0
  247. data/lib/datadog/core.rb +45 -0
  248. data/lib/datadog/kit/appsec/events.rb +169 -0
  249. data/lib/datadog/kit/enable_core_dumps.rb +49 -0
  250. data/lib/datadog/kit/identity.rb +104 -0
  251. data/lib/datadog/kit.rb +11 -0
  252. data/lib/datadog/opentelemetry/api/context.rb +193 -0
  253. data/lib/datadog/opentelemetry/api/trace/span.rb +14 -0
  254. data/lib/datadog/opentelemetry/sdk/configurator.rb +37 -0
  255. data/lib/datadog/opentelemetry/sdk/id_generator.rb +26 -0
  256. data/lib/datadog/opentelemetry/sdk/propagator.rb +91 -0
  257. data/lib/datadog/opentelemetry/sdk/span_processor.rb +134 -0
  258. data/lib/datadog/opentelemetry/sdk/trace/span.rb +167 -0
  259. data/lib/datadog/opentelemetry/trace.rb +58 -0
  260. data/lib/datadog/opentelemetry.rb +48 -0
  261. data/lib/datadog/opentracer/binary_propagator.rb +26 -0
  262. data/lib/datadog/opentracer/carrier.rb +9 -0
  263. data/lib/datadog/opentracer/distributed_headers.rb +54 -0
  264. data/lib/datadog/opentracer/global_tracer.rb +17 -0
  265. data/lib/datadog/opentracer/propagator.rb +26 -0
  266. data/lib/datadog/opentracer/rack_propagator.rb +71 -0
  267. data/lib/datadog/opentracer/scope.rb +18 -0
  268. data/lib/datadog/opentracer/scope_manager.rb +9 -0
  269. data/lib/datadog/opentracer/span.rb +99 -0
  270. data/lib/datadog/opentracer/span_context.rb +19 -0
  271. data/lib/datadog/opentracer/span_context_factory.rb +27 -0
  272. data/lib/datadog/opentracer/text_map_propagator.rb +87 -0
  273. data/lib/datadog/opentracer/thread_local_scope.rb +34 -0
  274. data/lib/datadog/opentracer/thread_local_scope_manager.rb +64 -0
  275. data/lib/datadog/opentracer/tracer.rb +212 -0
  276. data/lib/datadog/opentracer.rb +33 -0
  277. data/lib/datadog/profiling/collectors/code_provenance.rb +113 -0
  278. data/lib/datadog/profiling/collectors/cpu_and_wall_time_worker.rb +113 -0
  279. data/lib/datadog/profiling/collectors/dynamic_sampling_rate.rb +14 -0
  280. data/lib/datadog/profiling/collectors/idle_sampling_helper.rb +68 -0
  281. data/lib/datadog/profiling/collectors/stack.rb +13 -0
  282. data/lib/datadog/profiling/collectors/thread_context.rb +61 -0
  283. data/lib/datadog/profiling/component.rb +250 -0
  284. data/lib/datadog/profiling/diagnostics/environment_logger.rb +39 -0
  285. data/lib/datadog/profiling/exporter.rb +87 -0
  286. data/lib/datadog/profiling/ext/forking.rb +96 -0
  287. data/lib/datadog/profiling/ext.rb +33 -0
  288. data/lib/datadog/profiling/flush.rb +40 -0
  289. data/lib/datadog/profiling/http_transport.rb +143 -0
  290. data/lib/datadog/profiling/load_native_extension.rb +26 -0
  291. data/lib/datadog/profiling/native_extension.rb +20 -0
  292. data/lib/datadog/profiling/preload.rb +5 -0
  293. data/lib/datadog/profiling/profiler.rb +62 -0
  294. data/lib/datadog/profiling/scheduler.rb +137 -0
  295. data/lib/datadog/profiling/stack_recorder.rb +56 -0
  296. data/lib/datadog/profiling/tag_builder.rb +53 -0
  297. data/lib/datadog/profiling/tasks/exec.rb +48 -0
  298. data/lib/datadog/profiling/tasks/help.rb +16 -0
  299. data/lib/datadog/profiling/tasks/setup.rb +58 -0
  300. data/lib/datadog/profiling.rb +150 -0
  301. data/lib/datadog/tracing/analytics.rb +25 -0
  302. data/lib/datadog/tracing/buffer.rb +127 -0
  303. data/lib/datadog/tracing/client_ip.rb +61 -0
  304. data/lib/datadog/tracing/component.rb +235 -0
  305. data/lib/datadog/tracing/configuration/agent_settings_resolver.rb +13 -0
  306. data/lib/datadog/tracing/configuration/dynamic/option.rb +71 -0
  307. data/lib/datadog/tracing/configuration/dynamic.rb +64 -0
  308. data/lib/datadog/tracing/configuration/ext.rb +109 -0
  309. data/lib/datadog/tracing/configuration/http.rb +74 -0
  310. data/lib/datadog/tracing/configuration/settings.rb +501 -0
  311. data/lib/datadog/tracing/context.rb +68 -0
  312. data/lib/datadog/tracing/context_provider.rb +80 -0
  313. data/lib/datadog/tracing/contrib/action_cable/configuration/settings.rb +38 -0
  314. data/lib/datadog/tracing/contrib/action_cable/event.rb +71 -0
  315. data/lib/datadog/tracing/contrib/action_cable/events/broadcast.rb +56 -0
  316. data/lib/datadog/tracing/contrib/action_cable/events/perform_action.rb +61 -0
  317. data/lib/datadog/tracing/contrib/action_cable/events/transmit.rb +57 -0
  318. data/lib/datadog/tracing/contrib/action_cable/events.rb +37 -0
  319. data/lib/datadog/tracing/contrib/action_cable/ext.rb +32 -0
  320. data/lib/datadog/tracing/contrib/action_cable/instrumentation.rb +88 -0
  321. data/lib/datadog/tracing/contrib/action_cable/integration.rb +48 -0
  322. data/lib/datadog/tracing/contrib/action_cable/patcher.rb +31 -0
  323. data/lib/datadog/tracing/contrib/action_mailer/configuration/settings.rb +39 -0
  324. data/lib/datadog/tracing/contrib/action_mailer/event.rb +52 -0
  325. data/lib/datadog/tracing/contrib/action_mailer/events/deliver.rb +58 -0
  326. data/lib/datadog/tracing/contrib/action_mailer/events/process.rb +45 -0
  327. data/lib/datadog/tracing/contrib/action_mailer/events.rb +34 -0
  328. data/lib/datadog/tracing/contrib/action_mailer/ext.rb +33 -0
  329. data/lib/datadog/tracing/contrib/action_mailer/integration.rb +48 -0
  330. data/lib/datadog/tracing/contrib/action_mailer/patcher.rb +29 -0
  331. data/lib/datadog/tracing/contrib/action_pack/action_controller/instrumentation.rb +136 -0
  332. data/lib/datadog/tracing/contrib/action_pack/action_controller/patcher.rb +29 -0
  333. data/lib/datadog/tracing/contrib/action_pack/configuration/settings.rb +49 -0
  334. data/lib/datadog/tracing/contrib/action_pack/ext.rb +22 -0
  335. data/lib/datadog/tracing/contrib/action_pack/integration.rb +48 -0
  336. data/lib/datadog/tracing/contrib/action_pack/patcher.rb +27 -0
  337. data/lib/datadog/tracing/contrib/action_pack/utils.rb +38 -0
  338. data/lib/datadog/tracing/contrib/action_view/configuration/settings.rb +37 -0
  339. data/lib/datadog/tracing/contrib/action_view/event.rb +35 -0
  340. data/lib/datadog/tracing/contrib/action_view/events/render_partial.rb +52 -0
  341. data/lib/datadog/tracing/contrib/action_view/events/render_template.rb +55 -0
  342. data/lib/datadog/tracing/contrib/action_view/events.rb +34 -0
  343. data/lib/datadog/tracing/contrib/action_view/ext.rb +24 -0
  344. data/lib/datadog/tracing/contrib/action_view/instrumentation/partial_renderer.rb +76 -0
  345. data/lib/datadog/tracing/contrib/action_view/instrumentation/template_renderer.rb +89 -0
  346. data/lib/datadog/tracing/contrib/action_view/integration.rb +55 -0
  347. data/lib/datadog/tracing/contrib/action_view/patcher.rb +45 -0
  348. data/lib/datadog/tracing/contrib/action_view/utils.rb +34 -0
  349. data/lib/datadog/tracing/contrib/active_job/configuration/settings.rb +43 -0
  350. data/lib/datadog/tracing/contrib/active_job/event.rb +58 -0
  351. data/lib/datadog/tracing/contrib/active_job/events/discard.rb +48 -0
  352. data/lib/datadog/tracing/contrib/active_job/events/enqueue.rb +47 -0
  353. data/lib/datadog/tracing/contrib/active_job/events/enqueue_at.rb +47 -0
  354. data/lib/datadog/tracing/contrib/active_job/events/enqueue_retry.rb +49 -0
  355. data/lib/datadog/tracing/contrib/active_job/events/perform.rb +47 -0
  356. data/lib/datadog/tracing/contrib/active_job/events/retry_stopped.rb +48 -0
  357. data/lib/datadog/tracing/contrib/active_job/events.rb +42 -0
  358. data/lib/datadog/tracing/contrib/active_job/ext.rb +39 -0
  359. data/lib/datadog/tracing/contrib/active_job/integration.rb +48 -0
  360. data/lib/datadog/tracing/contrib/active_job/log_injection.rb +24 -0
  361. data/lib/datadog/tracing/contrib/active_job/patcher.rb +36 -0
  362. data/lib/datadog/tracing/contrib/active_model_serializers/configuration/settings.rb +36 -0
  363. data/lib/datadog/tracing/contrib/active_model_serializers/event.rb +68 -0
  364. data/lib/datadog/tracing/contrib/active_model_serializers/events/render.rb +43 -0
  365. data/lib/datadog/tracing/contrib/active_model_serializers/events/serialize.rb +45 -0
  366. data/lib/datadog/tracing/contrib/active_model_serializers/events.rb +34 -0
  367. data/lib/datadog/tracing/contrib/active_model_serializers/ext.rb +24 -0
  368. data/lib/datadog/tracing/contrib/active_model_serializers/integration.rb +43 -0
  369. data/lib/datadog/tracing/contrib/active_model_serializers/patcher.rb +32 -0
  370. data/lib/datadog/tracing/contrib/active_record/configuration/makara_resolver.rb +34 -0
  371. data/lib/datadog/tracing/contrib/active_record/configuration/resolver.rb +143 -0
  372. data/lib/datadog/tracing/contrib/active_record/configuration/settings.rb +46 -0
  373. data/lib/datadog/tracing/contrib/active_record/event.rb +30 -0
  374. data/lib/datadog/tracing/contrib/active_record/events/instantiation.rb +56 -0
  375. data/lib/datadog/tracing/contrib/active_record/events/sql.rb +75 -0
  376. data/lib/datadog/tracing/contrib/active_record/events.rb +34 -0
  377. data/lib/datadog/tracing/contrib/active_record/ext.rb +29 -0
  378. data/lib/datadog/tracing/contrib/active_record/integration.rb +54 -0
  379. data/lib/datadog/tracing/contrib/active_record/patcher.rb +27 -0
  380. data/lib/datadog/tracing/contrib/active_record/utils.rb +126 -0
  381. data/lib/datadog/tracing/contrib/active_record/vendor/connection_specification.rb +305 -0
  382. data/lib/datadog/tracing/contrib/active_support/cache/instrumentation.rb +186 -0
  383. data/lib/datadog/tracing/contrib/active_support/cache/patcher.rb +76 -0
  384. data/lib/datadog/tracing/contrib/active_support/cache/redis.rb +47 -0
  385. data/lib/datadog/tracing/contrib/active_support/configuration/settings.rb +45 -0
  386. data/lib/datadog/tracing/contrib/active_support/ext.rb +31 -0
  387. data/lib/datadog/tracing/contrib/active_support/integration.rb +49 -0
  388. data/lib/datadog/tracing/contrib/active_support/notifications/event.rb +71 -0
  389. data/lib/datadog/tracing/contrib/active_support/notifications/subscriber.rb +71 -0
  390. data/lib/datadog/tracing/contrib/active_support/notifications/subscription.rb +162 -0
  391. data/lib/datadog/tracing/contrib/active_support/patcher.rb +27 -0
  392. data/lib/datadog/tracing/contrib/analytics.rb +29 -0
  393. data/lib/datadog/tracing/contrib/auto_instrument.rb +53 -0
  394. data/lib/datadog/tracing/contrib/aws/configuration/settings.rb +51 -0
  395. data/lib/datadog/tracing/contrib/aws/ext.rb +49 -0
  396. data/lib/datadog/tracing/contrib/aws/instrumentation.rb +119 -0
  397. data/lib/datadog/tracing/contrib/aws/integration.rb +45 -0
  398. data/lib/datadog/tracing/contrib/aws/parsed_context.rb +62 -0
  399. data/lib/datadog/tracing/contrib/aws/patcher.rb +57 -0
  400. data/lib/datadog/tracing/contrib/aws/service/base.rb +16 -0
  401. data/lib/datadog/tracing/contrib/aws/service/dynamodb.rb +22 -0
  402. data/lib/datadog/tracing/contrib/aws/service/eventbridge.rb +22 -0
  403. data/lib/datadog/tracing/contrib/aws/service/kinesis.rb +32 -0
  404. data/lib/datadog/tracing/contrib/aws/service/s3.rb +22 -0
  405. data/lib/datadog/tracing/contrib/aws/service/sns.rb +30 -0
  406. data/lib/datadog/tracing/contrib/aws/service/sqs.rb +27 -0
  407. data/lib/datadog/tracing/contrib/aws/service/states.rb +40 -0
  408. data/lib/datadog/tracing/contrib/aws/services.rb +137 -0
  409. data/lib/datadog/tracing/contrib/concurrent_ruby/configuration/settings.rb +24 -0
  410. data/lib/datadog/tracing/contrib/concurrent_ruby/context_composite_executor_service.rb +53 -0
  411. data/lib/datadog/tracing/contrib/concurrent_ruby/ext.rb +16 -0
  412. data/lib/datadog/tracing/contrib/concurrent_ruby/future_patch.rb +20 -0
  413. data/lib/datadog/tracing/contrib/concurrent_ruby/integration.rb +42 -0
  414. data/lib/datadog/tracing/contrib/concurrent_ruby/patcher.rb +39 -0
  415. data/lib/datadog/tracing/contrib/concurrent_ruby/promises_future_patch.rb +22 -0
  416. data/lib/datadog/tracing/contrib/configurable.rb +102 -0
  417. data/lib/datadog/tracing/contrib/configuration/resolver.rb +85 -0
  418. data/lib/datadog/tracing/contrib/configuration/resolvers/pattern_resolver.rb +43 -0
  419. data/lib/datadog/tracing/contrib/configuration/settings.rb +39 -0
  420. data/lib/datadog/tracing/contrib/dalli/configuration/settings.rb +56 -0
  421. data/lib/datadog/tracing/contrib/dalli/ext.rb +39 -0
  422. data/lib/datadog/tracing/contrib/dalli/instrumentation.rb +73 -0
  423. data/lib/datadog/tracing/contrib/dalli/integration.rb +50 -0
  424. data/lib/datadog/tracing/contrib/dalli/patcher.rb +28 -0
  425. data/lib/datadog/tracing/contrib/dalli/quantize.rb +24 -0
  426. data/lib/datadog/tracing/contrib/delayed_job/configuration/settings.rb +44 -0
  427. data/lib/datadog/tracing/contrib/delayed_job/ext.rb +28 -0
  428. data/lib/datadog/tracing/contrib/delayed_job/integration.rb +41 -0
  429. data/lib/datadog/tracing/contrib/delayed_job/patcher.rb +37 -0
  430. data/lib/datadog/tracing/contrib/delayed_job/plugin.rb +108 -0
  431. data/lib/datadog/tracing/contrib/delayed_job/server_internal_tracer/worker.rb +34 -0
  432. data/lib/datadog/tracing/contrib/elasticsearch/configuration/settings.rb +52 -0
  433. data/lib/datadog/tracing/contrib/elasticsearch/ext.rb +33 -0
  434. data/lib/datadog/tracing/contrib/elasticsearch/integration.rb +48 -0
  435. data/lib/datadog/tracing/contrib/elasticsearch/patcher.rb +160 -0
  436. data/lib/datadog/tracing/contrib/elasticsearch/quantize.rb +85 -0
  437. data/lib/datadog/tracing/contrib/ethon/configuration/settings.rb +54 -0
  438. data/lib/datadog/tracing/contrib/ethon/easy_patch.rb +221 -0
  439. data/lib/datadog/tracing/contrib/ethon/ext.rb +31 -0
  440. data/lib/datadog/tracing/contrib/ethon/integration.rb +46 -0
  441. data/lib/datadog/tracing/contrib/ethon/multi_patch.rb +102 -0
  442. data/lib/datadog/tracing/contrib/ethon/patcher.rb +30 -0
  443. data/lib/datadog/tracing/contrib/excon/configuration/settings.rb +56 -0
  444. data/lib/datadog/tracing/contrib/excon/ext.rb +28 -0
  445. data/lib/datadog/tracing/contrib/excon/integration.rb +46 -0
  446. data/lib/datadog/tracing/contrib/excon/middleware.rb +192 -0
  447. data/lib/datadog/tracing/contrib/excon/patcher.rb +31 -0
  448. data/lib/datadog/tracing/contrib/ext.rb +55 -0
  449. data/lib/datadog/tracing/contrib/extensions.rb +229 -0
  450. data/lib/datadog/tracing/contrib/faraday/configuration/settings.rb +61 -0
  451. data/lib/datadog/tracing/contrib/faraday/connection.rb +22 -0
  452. data/lib/datadog/tracing/contrib/faraday/ext.rb +28 -0
  453. data/lib/datadog/tracing/contrib/faraday/integration.rb +46 -0
  454. data/lib/datadog/tracing/contrib/faraday/middleware.rb +110 -0
  455. data/lib/datadog/tracing/contrib/faraday/patcher.rb +54 -0
  456. data/lib/datadog/tracing/contrib/faraday/rack_builder.rb +22 -0
  457. data/lib/datadog/tracing/contrib/grape/configuration/settings.rb +44 -0
  458. data/lib/datadog/tracing/contrib/grape/endpoint.rb +248 -0
  459. data/lib/datadog/tracing/contrib/grape/ext.rb +28 -0
  460. data/lib/datadog/tracing/contrib/grape/instrumentation.rb +35 -0
  461. data/lib/datadog/tracing/contrib/grape/integration.rb +42 -0
  462. data/lib/datadog/tracing/contrib/grape/patcher.rb +33 -0
  463. data/lib/datadog/tracing/contrib/graphql/configuration/settings.rb +38 -0
  464. data/lib/datadog/tracing/contrib/graphql/ext.rb +19 -0
  465. data/lib/datadog/tracing/contrib/graphql/integration.rb +42 -0
  466. data/lib/datadog/tracing/contrib/graphql/patcher.rb +88 -0
  467. data/lib/datadog/tracing/contrib/grpc/configuration/settings.rb +78 -0
  468. data/lib/datadog/tracing/contrib/grpc/datadog_interceptor/client.rb +119 -0
  469. data/lib/datadog/tracing/contrib/grpc/datadog_interceptor/server.rb +107 -0
  470. data/lib/datadog/tracing/contrib/grpc/datadog_interceptor.rb +101 -0
  471. data/lib/datadog/tracing/contrib/grpc/distributed/fetcher.rb +26 -0
  472. data/lib/datadog/tracing/contrib/grpc/distributed/propagation.rb +42 -0
  473. data/lib/datadog/tracing/contrib/grpc/ext.rb +28 -0
  474. data/lib/datadog/tracing/contrib/grpc/formatting.rb +127 -0
  475. data/lib/datadog/tracing/contrib/grpc/integration.rb +48 -0
  476. data/lib/datadog/tracing/contrib/grpc/intercept_with_datadog.rb +53 -0
  477. data/lib/datadog/tracing/contrib/grpc/patcher.rb +34 -0
  478. data/lib/datadog/tracing/contrib/hanami/action_tracer.rb +47 -0
  479. data/lib/datadog/tracing/contrib/hanami/configuration/settings.rb +23 -0
  480. data/lib/datadog/tracing/contrib/hanami/ext.rb +24 -0
  481. data/lib/datadog/tracing/contrib/hanami/integration.rb +42 -0
  482. data/lib/datadog/tracing/contrib/hanami/patcher.rb +33 -0
  483. data/lib/datadog/tracing/contrib/hanami/plugin.rb +23 -0
  484. data/lib/datadog/tracing/contrib/hanami/renderer_policy_tracing.rb +41 -0
  485. data/lib/datadog/tracing/contrib/hanami/router_tracing.rb +44 -0
  486. data/lib/datadog/tracing/contrib/http/circuit_breaker.rb +40 -0
  487. data/lib/datadog/tracing/contrib/http/configuration/settings.rb +74 -0
  488. data/lib/datadog/tracing/contrib/http/distributed/fetcher.rb +38 -0
  489. data/lib/datadog/tracing/contrib/http/distributed/propagation.rb +37 -0
  490. data/lib/datadog/tracing/contrib/http/ext.rb +28 -0
  491. data/lib/datadog/tracing/contrib/http/instrumentation.rb +158 -0
  492. data/lib/datadog/tracing/contrib/http/integration.rb +49 -0
  493. data/lib/datadog/tracing/contrib/http/patcher.rb +30 -0
  494. data/lib/datadog/tracing/contrib/http_annotation_helper.rb +17 -0
  495. data/lib/datadog/tracing/contrib/httpclient/configuration/settings.rb +74 -0
  496. data/lib/datadog/tracing/contrib/httpclient/ext.rb +29 -0
  497. data/lib/datadog/tracing/contrib/httpclient/instrumentation.rb +135 -0
  498. data/lib/datadog/tracing/contrib/httpclient/integration.rb +46 -0
  499. data/lib/datadog/tracing/contrib/httpclient/patcher.rb +40 -0
  500. data/lib/datadog/tracing/contrib/httprb/configuration/settings.rb +74 -0
  501. data/lib/datadog/tracing/contrib/httprb/ext.rb +28 -0
  502. data/lib/datadog/tracing/contrib/httprb/instrumentation.rb +145 -0
  503. data/lib/datadog/tracing/contrib/httprb/integration.rb +46 -0
  504. data/lib/datadog/tracing/contrib/httprb/patcher.rb +40 -0
  505. data/lib/datadog/tracing/contrib/integration.rb +78 -0
  506. data/lib/datadog/tracing/contrib/kafka/configuration/settings.rb +38 -0
  507. data/lib/datadog/tracing/contrib/kafka/consumer_event.rb +19 -0
  508. data/lib/datadog/tracing/contrib/kafka/consumer_group_event.rb +18 -0
  509. data/lib/datadog/tracing/contrib/kafka/event.rb +53 -0
  510. data/lib/datadog/tracing/contrib/kafka/events/connection/request.rb +40 -0
  511. data/lib/datadog/tracing/contrib/kafka/events/consumer/process_batch.rb +47 -0
  512. data/lib/datadog/tracing/contrib/kafka/events/consumer/process_message.rb +45 -0
  513. data/lib/datadog/tracing/contrib/kafka/events/consumer_group/heartbeat.rb +45 -0
  514. data/lib/datadog/tracing/contrib/kafka/events/consumer_group/join_group.rb +35 -0
  515. data/lib/datadog/tracing/contrib/kafka/events/consumer_group/leave_group.rb +35 -0
  516. data/lib/datadog/tracing/contrib/kafka/events/consumer_group/sync_group.rb +35 -0
  517. data/lib/datadog/tracing/contrib/kafka/events/produce_operation/send_messages.rb +39 -0
  518. data/lib/datadog/tracing/contrib/kafka/events/producer/deliver_messages.rb +42 -0
  519. data/lib/datadog/tracing/contrib/kafka/events.rb +48 -0
  520. data/lib/datadog/tracing/contrib/kafka/ext.rb +54 -0
  521. data/lib/datadog/tracing/contrib/kafka/integration.rb +42 -0
  522. data/lib/datadog/tracing/contrib/kafka/patcher.rb +29 -0
  523. data/lib/datadog/tracing/contrib/lograge/configuration/settings.rb +24 -0
  524. data/lib/datadog/tracing/contrib/lograge/ext.rb +15 -0
  525. data/lib/datadog/tracing/contrib/lograge/instrumentation.rb +31 -0
  526. data/lib/datadog/tracing/contrib/lograge/integration.rb +48 -0
  527. data/lib/datadog/tracing/contrib/lograge/patcher.rb +29 -0
  528. data/lib/datadog/tracing/contrib/mongodb/configuration/settings.rb +54 -0
  529. data/lib/datadog/tracing/contrib/mongodb/ext.rb +37 -0
  530. data/lib/datadog/tracing/contrib/mongodb/instrumentation.rb +47 -0
  531. data/lib/datadog/tracing/contrib/mongodb/integration.rb +46 -0
  532. data/lib/datadog/tracing/contrib/mongodb/parsers.rb +47 -0
  533. data/lib/datadog/tracing/contrib/mongodb/patcher.rb +34 -0
  534. data/lib/datadog/tracing/contrib/mongodb/subscribers.rb +139 -0
  535. data/lib/datadog/tracing/contrib/mysql2/configuration/settings.rb +58 -0
  536. data/lib/datadog/tracing/contrib/mysql2/ext.rb +27 -0
  537. data/lib/datadog/tracing/contrib/mysql2/instrumentation.rb +94 -0
  538. data/lib/datadog/tracing/contrib/mysql2/integration.rb +41 -0
  539. data/lib/datadog/tracing/contrib/mysql2/patcher.rb +31 -0
  540. data/lib/datadog/tracing/contrib/opensearch/configuration/settings.rb +52 -0
  541. data/lib/datadog/tracing/contrib/opensearch/ext.rb +37 -0
  542. data/lib/datadog/tracing/contrib/opensearch/integration.rb +44 -0
  543. data/lib/datadog/tracing/contrib/opensearch/patcher.rb +135 -0
  544. data/lib/datadog/tracing/contrib/opensearch/quantize.rb +81 -0
  545. data/lib/datadog/tracing/contrib/patchable.rb +109 -0
  546. data/lib/datadog/tracing/contrib/patcher.rb +83 -0
  547. data/lib/datadog/tracing/contrib/pg/configuration/settings.rb +63 -0
  548. data/lib/datadog/tracing/contrib/pg/ext.rb +34 -0
  549. data/lib/datadog/tracing/contrib/pg/instrumentation.rb +204 -0
  550. data/lib/datadog/tracing/contrib/pg/integration.rb +41 -0
  551. data/lib/datadog/tracing/contrib/pg/patcher.rb +31 -0
  552. data/lib/datadog/tracing/contrib/presto/configuration/settings.rb +50 -0
  553. data/lib/datadog/tracing/contrib/presto/ext.rb +37 -0
  554. data/lib/datadog/tracing/contrib/presto/instrumentation.rb +136 -0
  555. data/lib/datadog/tracing/contrib/presto/integration.rb +41 -0
  556. data/lib/datadog/tracing/contrib/presto/patcher.rb +35 -0
  557. data/lib/datadog/tracing/contrib/propagation/sql_comment/comment.rb +41 -0
  558. data/lib/datadog/tracing/contrib/propagation/sql_comment/ext.rb +33 -0
  559. data/lib/datadog/tracing/contrib/propagation/sql_comment/mode.rb +28 -0
  560. data/lib/datadog/tracing/contrib/propagation/sql_comment.rb +53 -0
  561. data/lib/datadog/tracing/contrib/qless/configuration/settings.rb +44 -0
  562. data/lib/datadog/tracing/contrib/qless/ext.rb +26 -0
  563. data/lib/datadog/tracing/contrib/qless/integration.rb +41 -0
  564. data/lib/datadog/tracing/contrib/qless/patcher.rb +36 -0
  565. data/lib/datadog/tracing/contrib/qless/qless_job.rb +75 -0
  566. data/lib/datadog/tracing/contrib/qless/tracer_cleaner.rb +30 -0
  567. data/lib/datadog/tracing/contrib/que/configuration/settings.rb +56 -0
  568. data/lib/datadog/tracing/contrib/que/ext.rb +32 -0
  569. data/lib/datadog/tracing/contrib/que/integration.rb +44 -0
  570. data/lib/datadog/tracing/contrib/que/patcher.rb +26 -0
  571. data/lib/datadog/tracing/contrib/que/tracer.rb +63 -0
  572. data/lib/datadog/tracing/contrib/racecar/configuration/settings.rb +45 -0
  573. data/lib/datadog/tracing/contrib/racecar/event.rb +81 -0
  574. data/lib/datadog/tracing/contrib/racecar/events/batch.rb +36 -0
  575. data/lib/datadog/tracing/contrib/racecar/events/consume.rb +33 -0
  576. data/lib/datadog/tracing/contrib/racecar/events/message.rb +36 -0
  577. data/lib/datadog/tracing/contrib/racecar/events.rb +36 -0
  578. data/lib/datadog/tracing/contrib/racecar/ext.rb +32 -0
  579. data/lib/datadog/tracing/contrib/racecar/integration.rb +42 -0
  580. data/lib/datadog/tracing/contrib/racecar/patcher.rb +29 -0
  581. data/lib/datadog/tracing/contrib/rack/configuration/settings.rb +53 -0
  582. data/lib/datadog/tracing/contrib/rack/ext.rb +30 -0
  583. data/lib/datadog/tracing/contrib/rack/header_collection.rb +38 -0
  584. data/lib/datadog/tracing/contrib/rack/header_tagging.rb +63 -0
  585. data/lib/datadog/tracing/contrib/rack/integration.rb +48 -0
  586. data/lib/datadog/tracing/contrib/rack/middlewares.rb +308 -0
  587. data/lib/datadog/tracing/contrib/rack/patcher.rb +117 -0
  588. data/lib/datadog/tracing/contrib/rack/request_queue.rb +46 -0
  589. data/lib/datadog/tracing/contrib/rails/auto_instrument_railtie.rb +10 -0
  590. data/lib/datadog/tracing/contrib/rails/configuration/settings.rb +83 -0
  591. data/lib/datadog/tracing/contrib/rails/ext.rb +19 -0
  592. data/lib/datadog/tracing/contrib/rails/framework.rb +148 -0
  593. data/lib/datadog/tracing/contrib/rails/integration.rb +47 -0
  594. data/lib/datadog/tracing/contrib/rails/log_injection.rb +27 -0
  595. data/lib/datadog/tracing/contrib/rails/middlewares.rb +46 -0
  596. data/lib/datadog/tracing/contrib/rails/patcher.rb +87 -0
  597. data/lib/datadog/tracing/contrib/rails/railtie.rb +17 -0
  598. data/lib/datadog/tracing/contrib/rails/utils.rb +28 -0
  599. data/lib/datadog/tracing/contrib/rake/configuration/settings.rb +54 -0
  600. data/lib/datadog/tracing/contrib/rake/ext.rb +26 -0
  601. data/lib/datadog/tracing/contrib/rake/instrumentation.rb +101 -0
  602. data/lib/datadog/tracing/contrib/rake/integration.rb +41 -0
  603. data/lib/datadog/tracing/contrib/rake/patcher.rb +33 -0
  604. data/lib/datadog/tracing/contrib/redis/configuration/resolver.rb +47 -0
  605. data/lib/datadog/tracing/contrib/redis/configuration/settings.rb +56 -0
  606. data/lib/datadog/tracing/contrib/redis/ext.rb +34 -0
  607. data/lib/datadog/tracing/contrib/redis/instrumentation.rb +51 -0
  608. data/lib/datadog/tracing/contrib/redis/integration.rb +78 -0
  609. data/lib/datadog/tracing/contrib/redis/patcher.rb +77 -0
  610. data/lib/datadog/tracing/contrib/redis/quantize.rb +80 -0
  611. data/lib/datadog/tracing/contrib/redis/tags.rb +68 -0
  612. data/lib/datadog/tracing/contrib/redis/trace_middleware.rb +83 -0
  613. data/lib/datadog/tracing/contrib/redis/vendor/resolver.rb +160 -0
  614. data/lib/datadog/tracing/contrib/registerable.rb +50 -0
  615. data/lib/datadog/tracing/contrib/registry.rb +52 -0
  616. data/lib/datadog/tracing/contrib/resque/configuration/settings.rb +43 -0
  617. data/lib/datadog/tracing/contrib/resque/ext.rb +21 -0
  618. data/lib/datadog/tracing/contrib/resque/integration.rb +46 -0
  619. data/lib/datadog/tracing/contrib/resque/patcher.rb +29 -0
  620. data/lib/datadog/tracing/contrib/resque/resque_job.rb +106 -0
  621. data/lib/datadog/tracing/contrib/rest_client/configuration/settings.rb +54 -0
  622. data/lib/datadog/tracing/contrib/rest_client/ext.rb +27 -0
  623. data/lib/datadog/tracing/contrib/rest_client/integration.rb +41 -0
  624. data/lib/datadog/tracing/contrib/rest_client/patcher.rb +28 -0
  625. data/lib/datadog/tracing/contrib/rest_client/request_patch.rb +129 -0
  626. data/lib/datadog/tracing/contrib/roda/configuration/settings.rb +37 -0
  627. data/lib/datadog/tracing/contrib/roda/ext.rb +18 -0
  628. data/lib/datadog/tracing/contrib/roda/instrumentation.rb +76 -0
  629. data/lib/datadog/tracing/contrib/roda/integration.rb +45 -0
  630. data/lib/datadog/tracing/contrib/roda/patcher.rb +30 -0
  631. data/lib/datadog/tracing/contrib/semantic_logger/configuration/settings.rb +24 -0
  632. data/lib/datadog/tracing/contrib/semantic_logger/ext.rb +15 -0
  633. data/lib/datadog/tracing/contrib/semantic_logger/instrumentation.rb +35 -0
  634. data/lib/datadog/tracing/contrib/semantic_logger/integration.rb +50 -0
  635. data/lib/datadog/tracing/contrib/semantic_logger/patcher.rb +29 -0
  636. data/lib/datadog/tracing/contrib/sequel/configuration/settings.rb +36 -0
  637. data/lib/datadog/tracing/contrib/sequel/database.rb +60 -0
  638. data/lib/datadog/tracing/contrib/sequel/dataset.rb +67 -0
  639. data/lib/datadog/tracing/contrib/sequel/ext.rb +22 -0
  640. data/lib/datadog/tracing/contrib/sequel/integration.rb +41 -0
  641. data/lib/datadog/tracing/contrib/sequel/patcher.rb +37 -0
  642. data/lib/datadog/tracing/contrib/sequel/utils.rb +88 -0
  643. data/lib/datadog/tracing/contrib/shoryuken/configuration/settings.rb +44 -0
  644. data/lib/datadog/tracing/contrib/shoryuken/ext.rb +26 -0
  645. data/lib/datadog/tracing/contrib/shoryuken/integration.rb +42 -0
  646. data/lib/datadog/tracing/contrib/shoryuken/patcher.rb +28 -0
  647. data/lib/datadog/tracing/contrib/shoryuken/tracer.rb +65 -0
  648. data/lib/datadog/tracing/contrib/sidekiq/client_tracer.rb +66 -0
  649. data/lib/datadog/tracing/contrib/sidekiq/configuration/settings.rb +52 -0
  650. data/lib/datadog/tracing/contrib/sidekiq/distributed/propagation.rb +38 -0
  651. data/lib/datadog/tracing/contrib/sidekiq/ext.rb +44 -0
  652. data/lib/datadog/tracing/contrib/sidekiq/integration.rb +59 -0
  653. data/lib/datadog/tracing/contrib/sidekiq/patcher.rb +90 -0
  654. data/lib/datadog/tracing/contrib/sidekiq/server_internal_tracer/heartbeat.rb +61 -0
  655. data/lib/datadog/tracing/contrib/sidekiq/server_internal_tracer/job_fetch.rb +36 -0
  656. data/lib/datadog/tracing/contrib/sidekiq/server_internal_tracer/redis_info.rb +34 -0
  657. data/lib/datadog/tracing/contrib/sidekiq/server_internal_tracer/scheduled_poller.rb +57 -0
  658. data/lib/datadog/tracing/contrib/sidekiq/server_internal_tracer/stop.rb +34 -0
  659. data/lib/datadog/tracing/contrib/sidekiq/server_tracer.rb +118 -0
  660. data/lib/datadog/tracing/contrib/sidekiq/utils.rb +44 -0
  661. data/lib/datadog/tracing/contrib/sinatra/configuration/settings.rb +43 -0
  662. data/lib/datadog/tracing/contrib/sinatra/env.rb +36 -0
  663. data/lib/datadog/tracing/contrib/sinatra/ext.rb +36 -0
  664. data/lib/datadog/tracing/contrib/sinatra/framework.rb +114 -0
  665. data/lib/datadog/tracing/contrib/sinatra/integration.rb +41 -0
  666. data/lib/datadog/tracing/contrib/sinatra/patcher.rb +75 -0
  667. data/lib/datadog/tracing/contrib/sinatra/tracer.rb +84 -0
  668. data/lib/datadog/tracing/contrib/sinatra/tracer_middleware.rb +116 -0
  669. data/lib/datadog/tracing/contrib/sneakers/configuration/settings.rb +42 -0
  670. data/lib/datadog/tracing/contrib/sneakers/ext.rb +26 -0
  671. data/lib/datadog/tracing/contrib/sneakers/integration.rb +44 -0
  672. data/lib/datadog/tracing/contrib/sneakers/patcher.rb +27 -0
  673. data/lib/datadog/tracing/contrib/sneakers/tracer.rb +60 -0
  674. data/lib/datadog/tracing/contrib/span_attribute_schema.rb +92 -0
  675. data/lib/datadog/tracing/contrib/status_code_matcher.rb +72 -0
  676. data/lib/datadog/tracing/contrib/stripe/configuration/settings.rb +36 -0
  677. data/lib/datadog/tracing/contrib/stripe/ext.rb +26 -0
  678. data/lib/datadog/tracing/contrib/stripe/integration.rb +43 -0
  679. data/lib/datadog/tracing/contrib/stripe/patcher.rb +28 -0
  680. data/lib/datadog/tracing/contrib/stripe/request.rb +67 -0
  681. data/lib/datadog/tracing/contrib/sucker_punch/configuration/settings.rb +38 -0
  682. data/lib/datadog/tracing/contrib/sucker_punch/exception_handler.rb +28 -0
  683. data/lib/datadog/tracing/contrib/sucker_punch/ext.rb +27 -0
  684. data/lib/datadog/tracing/contrib/sucker_punch/instrumentation.rb +102 -0
  685. data/lib/datadog/tracing/contrib/sucker_punch/integration.rb +41 -0
  686. data/lib/datadog/tracing/contrib/sucker_punch/patcher.rb +35 -0
  687. data/lib/datadog/tracing/contrib/utils/database.rb +31 -0
  688. data/lib/datadog/tracing/contrib/utils/quantization/hash.rb +109 -0
  689. data/lib/datadog/tracing/contrib/utils/quantization/http.rb +177 -0
  690. data/lib/datadog/tracing/contrib.rb +81 -0
  691. data/lib/datadog/tracing/correlation.rb +128 -0
  692. data/lib/datadog/tracing/diagnostics/environment_logger.rb +165 -0
  693. data/lib/datadog/tracing/diagnostics/ext.rb +36 -0
  694. data/lib/datadog/tracing/diagnostics/health.rb +40 -0
  695. data/lib/datadog/tracing/distributed/b3_multi.rb +72 -0
  696. data/lib/datadog/tracing/distributed/b3_single.rb +68 -0
  697. data/lib/datadog/tracing/distributed/datadog.rb +199 -0
  698. data/lib/datadog/tracing/distributed/datadog_tags_codec.rb +84 -0
  699. data/lib/datadog/tracing/distributed/fetcher.rb +21 -0
  700. data/lib/datadog/tracing/distributed/headers/ext.rb +34 -0
  701. data/lib/datadog/tracing/distributed/helpers.rb +65 -0
  702. data/lib/datadog/tracing/distributed/none.rb +18 -0
  703. data/lib/datadog/tracing/distributed/propagation.rb +127 -0
  704. data/lib/datadog/tracing/distributed/trace_context.rb +415 -0
  705. data/lib/datadog/tracing/event.rb +74 -0
  706. data/lib/datadog/tracing/flush.rb +96 -0
  707. data/lib/datadog/tracing/metadata/analytics.rb +26 -0
  708. data/lib/datadog/tracing/metadata/errors.rb +24 -0
  709. data/lib/datadog/tracing/metadata/ext.rb +191 -0
  710. data/lib/datadog/tracing/metadata/tagging.rb +129 -0
  711. data/lib/datadog/tracing/metadata.rb +20 -0
  712. data/lib/datadog/tracing/pipeline/span_filter.rb +46 -0
  713. data/lib/datadog/tracing/pipeline/span_processor.rb +39 -0
  714. data/lib/datadog/tracing/pipeline.rb +61 -0
  715. data/lib/datadog/tracing/propagation/http.rb +14 -0
  716. data/lib/datadog/tracing/remote.rb +78 -0
  717. data/lib/datadog/tracing/runtime/metrics.rb +17 -0
  718. data/lib/datadog/tracing/sampling/all_sampler.rb +25 -0
  719. data/lib/datadog/tracing/sampling/ext.rb +56 -0
  720. data/lib/datadog/tracing/sampling/matcher.rb +68 -0
  721. data/lib/datadog/tracing/sampling/priority_sampler.rb +165 -0
  722. data/lib/datadog/tracing/sampling/rate_by_key_sampler.rb +94 -0
  723. data/lib/datadog/tracing/sampling/rate_by_service_sampler.rb +62 -0
  724. data/lib/datadog/tracing/sampling/rate_limiter.rb +186 -0
  725. data/lib/datadog/tracing/sampling/rate_sampler.rb +68 -0
  726. data/lib/datadog/tracing/sampling/rule.rb +72 -0
  727. data/lib/datadog/tracing/sampling/rule_sampler.rb +157 -0
  728. data/lib/datadog/tracing/sampling/sampler.rb +42 -0
  729. data/lib/datadog/tracing/sampling/span/ext.rb +25 -0
  730. data/lib/datadog/tracing/sampling/span/matcher.rb +89 -0
  731. data/lib/datadog/tracing/sampling/span/rule.rb +82 -0
  732. data/lib/datadog/tracing/sampling/span/rule_parser.rb +104 -0
  733. data/lib/datadog/tracing/sampling/span/sampler.rb +77 -0
  734. data/lib/datadog/tracing/span.rb +214 -0
  735. data/lib/datadog/tracing/span_operation.rb +505 -0
  736. data/lib/datadog/tracing/sync_writer.rb +67 -0
  737. data/lib/datadog/tracing/trace_digest.rb +177 -0
  738. data/lib/datadog/tracing/trace_operation.rb +486 -0
  739. data/lib/datadog/tracing/trace_segment.rb +220 -0
  740. data/lib/datadog/tracing/tracer.rb +541 -0
  741. data/lib/datadog/tracing/transport/http/api/instance.rb +37 -0
  742. data/lib/datadog/tracing/transport/http/api/spec.rb +19 -0
  743. data/lib/datadog/tracing/transport/http/api.rb +43 -0
  744. data/lib/datadog/tracing/transport/http/builder.rb +162 -0
  745. data/lib/datadog/tracing/transport/http/client.rb +57 -0
  746. data/lib/datadog/tracing/transport/http/statistics.rb +47 -0
  747. data/lib/datadog/tracing/transport/http/traces.rb +152 -0
  748. data/lib/datadog/tracing/transport/http.rb +124 -0
  749. data/lib/datadog/tracing/transport/io/client.rb +89 -0
  750. data/lib/datadog/tracing/transport/io/response.rb +27 -0
  751. data/lib/datadog/tracing/transport/io/traces.rb +101 -0
  752. data/lib/datadog/tracing/transport/io.rb +30 -0
  753. data/lib/datadog/tracing/transport/serializable_trace.rb +126 -0
  754. data/lib/datadog/tracing/transport/statistics.rb +77 -0
  755. data/lib/datadog/tracing/transport/trace_formatter.rb +209 -0
  756. data/lib/datadog/tracing/transport/traces.rb +224 -0
  757. data/lib/datadog/tracing/utils.rb +83 -0
  758. data/lib/datadog/tracing/workers/trace_writer.rb +194 -0
  759. data/lib/datadog/tracing/workers.rb +123 -0
  760. data/lib/datadog/tracing/writer.rb +186 -0
  761. data/lib/datadog/tracing.rb +142 -0
  762. data/lib/ddtrace/auto_instrument.rb +15 -4
  763. data/lib/ddtrace/auto_instrument_base.rb +2 -1
  764. data/lib/ddtrace/profiling/preload.rb +2 -4
  765. data/lib/ddtrace/transport/ext.rb +47 -0
  766. data/lib/ddtrace/version.rb +17 -16
  767. data/lib/ddtrace.rb +9 -50
  768. metadata +795 -545
  769. data/.editorconfig +0 -22
  770. data/.gitignore +0 -67
  771. data/.yardopts +0 -5
  772. data/CONTRIBUTING.md +0 -81
  773. data/ddtrace.gemspec +0 -56
  774. data/docs/DevelopmentGuide.md +0 -259
  775. data/docs/GettingStarted.md +0 -2626
  776. data/docs/ProfilingDevelopment.md +0 -107
  777. data/lib/datadog/ci/configuration/components.rb +0 -31
  778. data/lib/datadog/ci/configuration/settings.rb +0 -37
  779. data/lib/datadog/ci/context_flush.rb +0 -29
  780. data/lib/datadog/ci/contrib/cucumber/configuration/settings.rb +0 -31
  781. data/lib/datadog/ci/contrib/cucumber/ext.rb +0 -20
  782. data/lib/datadog/ci/contrib/cucumber/formatter.rb +0 -99
  783. data/lib/datadog/ci/contrib/cucumber/instrumentation.rb +0 -27
  784. data/lib/datadog/ci/contrib/cucumber/integration.rb +0 -48
  785. data/lib/datadog/ci/contrib/cucumber/patcher.rb +0 -26
  786. data/lib/datadog/ci/contrib/rspec/configuration/settings.rb +0 -31
  787. data/lib/datadog/ci/contrib/rspec/example.rb +0 -75
  788. data/lib/datadog/ci/contrib/rspec/ext.rb +0 -19
  789. data/lib/datadog/ci/contrib/rspec/integration.rb +0 -49
  790. data/lib/datadog/ci/contrib/rspec/patcher.rb +0 -26
  791. data/lib/datadog/ci/ext/app_types.rb +0 -10
  792. data/lib/datadog/ci/ext/environment.rb +0 -485
  793. data/lib/datadog/ci/ext/settings.rb +0 -11
  794. data/lib/datadog/ci/ext/test.rb +0 -36
  795. data/lib/datadog/ci/extensions.rb +0 -18
  796. data/lib/datadog/ci/test.rb +0 -81
  797. data/lib/datadog/ci.rb +0 -17
  798. data/lib/datadog/contrib.rb +0 -71
  799. data/lib/ddtrace/analytics.rb +0 -39
  800. data/lib/ddtrace/buffer.rb +0 -340
  801. data/lib/ddtrace/chunker.rb +0 -35
  802. data/lib/ddtrace/configuration/agent_settings_resolver.rb +0 -309
  803. data/lib/ddtrace/configuration/base.rb +0 -82
  804. data/lib/ddtrace/configuration/components.rb +0 -292
  805. data/lib/ddtrace/configuration/dependency_resolver.rb +0 -25
  806. data/lib/ddtrace/configuration/option.rb +0 -65
  807. data/lib/ddtrace/configuration/option_definition.rb +0 -122
  808. data/lib/ddtrace/configuration/option_definition_set.rb +0 -19
  809. data/lib/ddtrace/configuration/option_set.rb +0 -7
  810. data/lib/ddtrace/configuration/options.rb +0 -112
  811. data/lib/ddtrace/configuration/pin_setup.rb +0 -32
  812. data/lib/ddtrace/configuration/settings.rb +0 -413
  813. data/lib/ddtrace/configuration.rb +0 -195
  814. data/lib/ddtrace/context.rb +0 -334
  815. data/lib/ddtrace/context_flush.rb +0 -82
  816. data/lib/ddtrace/context_provider.rb +0 -62
  817. data/lib/ddtrace/contrib/action_cable/configuration/settings.rb +0 -31
  818. data/lib/ddtrace/contrib/action_cable/event.rb +0 -67
  819. data/lib/ddtrace/contrib/action_cable/events/broadcast.rb +0 -50
  820. data/lib/ddtrace/contrib/action_cable/events/perform_action.rb +0 -56
  821. data/lib/ddtrace/contrib/action_cable/events/transmit.rb +0 -51
  822. data/lib/ddtrace/contrib/action_cable/events.rb +0 -34
  823. data/lib/ddtrace/contrib/action_cable/ext.rb +0 -27
  824. data/lib/ddtrace/contrib/action_cable/instrumentation.rb +0 -78
  825. data/lib/ddtrace/contrib/action_cable/integration.rb +0 -46
  826. data/lib/ddtrace/contrib/action_cable/patcher.rb +0 -29
  827. data/lib/ddtrace/contrib/action_mailer/configuration/settings.rb +0 -32
  828. data/lib/ddtrace/contrib/action_mailer/event.rb +0 -50
  829. data/lib/ddtrace/contrib/action_mailer/events/deliver.rb +0 -54
  830. data/lib/ddtrace/contrib/action_mailer/events/process.rb +0 -41
  831. data/lib/ddtrace/contrib/action_mailer/events.rb +0 -31
  832. data/lib/ddtrace/contrib/action_mailer/ext.rb +0 -32
  833. data/lib/ddtrace/contrib/action_mailer/integration.rb +0 -45
  834. data/lib/ddtrace/contrib/action_mailer/patcher.rb +0 -27
  835. data/lib/ddtrace/contrib/action_pack/action_controller/instrumentation.rb +0 -157
  836. data/lib/ddtrace/contrib/action_pack/action_controller/patcher.rb +0 -26
  837. data/lib/ddtrace/contrib/action_pack/configuration/settings.rb +0 -33
  838. data/lib/ddtrace/contrib/action_pack/ext.rb +0 -20
  839. data/lib/ddtrace/contrib/action_pack/integration.rb +0 -46
  840. data/lib/ddtrace/contrib/action_pack/patcher.rb +0 -24
  841. data/lib/ddtrace/contrib/action_pack/utils.rb +0 -37
  842. data/lib/ddtrace/contrib/action_view/configuration/settings.rb +0 -32
  843. data/lib/ddtrace/contrib/action_view/event.rb +0 -36
  844. data/lib/ddtrace/contrib/action_view/events/render_partial.rb +0 -47
  845. data/lib/ddtrace/contrib/action_view/events/render_template.rb +0 -50
  846. data/lib/ddtrace/contrib/action_view/events.rb +0 -31
  847. data/lib/ddtrace/contrib/action_view/ext.rb +0 -21
  848. data/lib/ddtrace/contrib/action_view/instrumentation/partial_renderer.rb +0 -75
  849. data/lib/ddtrace/contrib/action_view/instrumentation/template_renderer.rb +0 -168
  850. data/lib/ddtrace/contrib/action_view/integration.rb +0 -53
  851. data/lib/ddtrace/contrib/action_view/patcher.rb +0 -48
  852. data/lib/ddtrace/contrib/action_view/utils.rb +0 -33
  853. data/lib/ddtrace/contrib/active_job/configuration/settings.rb +0 -33
  854. data/lib/ddtrace/contrib/active_job/event.rb +0 -54
  855. data/lib/ddtrace/contrib/active_job/events/discard.rb +0 -46
  856. data/lib/ddtrace/contrib/active_job/events/enqueue.rb +0 -45
  857. data/lib/ddtrace/contrib/active_job/events/enqueue_at.rb +0 -45
  858. data/lib/ddtrace/contrib/active_job/events/enqueue_retry.rb +0 -47
  859. data/lib/ddtrace/contrib/active_job/events/perform.rb +0 -45
  860. data/lib/ddtrace/contrib/active_job/events/retry_stopped.rb +0 -46
  861. data/lib/ddtrace/contrib/active_job/events.rb +0 -39
  862. data/lib/ddtrace/contrib/active_job/ext.rb +0 -32
  863. data/lib/ddtrace/contrib/active_job/integration.rb +0 -46
  864. data/lib/ddtrace/contrib/active_job/log_injection.rb +0 -21
  865. data/lib/ddtrace/contrib/active_job/patcher.rb +0 -33
  866. data/lib/ddtrace/contrib/active_model_serializers/configuration/settings.rb +0 -31
  867. data/lib/ddtrace/contrib/active_model_serializers/event.rb +0 -69
  868. data/lib/ddtrace/contrib/active_model_serializers/events/render.rb +0 -33
  869. data/lib/ddtrace/contrib/active_model_serializers/events/serialize.rb +0 -36
  870. data/lib/ddtrace/contrib/active_model_serializers/events.rb +0 -31
  871. data/lib/ddtrace/contrib/active_model_serializers/ext.rb +0 -21
  872. data/lib/ddtrace/contrib/active_model_serializers/integration.rb +0 -41
  873. data/lib/ddtrace/contrib/active_model_serializers/patcher.rb +0 -30
  874. data/lib/ddtrace/contrib/active_record/configuration/makara_resolver.rb +0 -31
  875. data/lib/ddtrace/contrib/active_record/configuration/resolver.rb +0 -135
  876. data/lib/ddtrace/contrib/active_record/configuration/settings.rb +0 -36
  877. data/lib/ddtrace/contrib/active_record/event.rb +0 -31
  878. data/lib/ddtrace/contrib/active_record/events/instantiation.rb +0 -61
  879. data/lib/ddtrace/contrib/active_record/events/sql.rb +0 -69
  880. data/lib/ddtrace/contrib/active_record/events.rb +0 -31
  881. data/lib/ddtrace/contrib/active_record/ext.rb +0 -25
  882. data/lib/ddtrace/contrib/active_record/integration.rb +0 -54
  883. data/lib/ddtrace/contrib/active_record/patcher.rb +0 -24
  884. data/lib/ddtrace/contrib/active_record/utils.rb +0 -124
  885. data/lib/ddtrace/contrib/active_support/cache/instrumentation.rb +0 -259
  886. data/lib/ddtrace/contrib/active_support/cache/patcher.rb +0 -70
  887. data/lib/ddtrace/contrib/active_support/cache/redis.rb +0 -44
  888. data/lib/ddtrace/contrib/active_support/configuration/settings.rb +0 -31
  889. data/lib/ddtrace/contrib/active_support/ext.rb +0 -28
  890. data/lib/ddtrace/contrib/active_support/integration.rb +0 -47
  891. data/lib/ddtrace/contrib/active_support/notifications/event.rb +0 -76
  892. data/lib/ddtrace/contrib/active_support/notifications/subscriber.rb +0 -68
  893. data/lib/ddtrace/contrib/active_support/notifications/subscription.rb +0 -164
  894. data/lib/ddtrace/contrib/active_support/patcher.rb +0 -24
  895. data/lib/ddtrace/contrib/analytics.rb +0 -25
  896. data/lib/ddtrace/contrib/auto_instrument.rb +0 -48
  897. data/lib/ddtrace/contrib/aws/configuration/settings.rb +0 -31
  898. data/lib/ddtrace/contrib/aws/ext.rb +0 -24
  899. data/lib/ddtrace/contrib/aws/instrumentation.rb +0 -91
  900. data/lib/ddtrace/contrib/aws/integration.rb +0 -43
  901. data/lib/ddtrace/contrib/aws/parsed_context.rb +0 -57
  902. data/lib/ddtrace/contrib/aws/patcher.rb +0 -54
  903. data/lib/ddtrace/contrib/aws/services.rb +0 -119
  904. data/lib/ddtrace/contrib/concurrent_ruby/configuration/settings.rb +0 -21
  905. data/lib/ddtrace/contrib/concurrent_ruby/context_composite_executor_service.rb +0 -42
  906. data/lib/ddtrace/contrib/concurrent_ruby/ext.rb +0 -13
  907. data/lib/ddtrace/contrib/concurrent_ruby/future_patch.rb +0 -24
  908. data/lib/ddtrace/contrib/concurrent_ruby/integration.rb +0 -39
  909. data/lib/ddtrace/contrib/concurrent_ruby/patcher.rb +0 -30
  910. data/lib/ddtrace/contrib/configurable.rb +0 -103
  911. data/lib/ddtrace/contrib/configuration/resolver.rb +0 -82
  912. data/lib/ddtrace/contrib/configuration/resolvers/pattern_resolver.rb +0 -40
  913. data/lib/ddtrace/contrib/configuration/settings.rb +0 -56
  914. data/lib/ddtrace/contrib/dalli/configuration/settings.rb +0 -31
  915. data/lib/ddtrace/contrib/dalli/ext.rb +0 -21
  916. data/lib/ddtrace/contrib/dalli/instrumentation.rb +0 -55
  917. data/lib/ddtrace/contrib/dalli/integration.rb +0 -39
  918. data/lib/ddtrace/contrib/dalli/patcher.rb +0 -26
  919. data/lib/ddtrace/contrib/dalli/quantize.rb +0 -23
  920. data/lib/ddtrace/contrib/delayed_job/configuration/settings.rb +0 -33
  921. data/lib/ddtrace/contrib/delayed_job/ext.rb +0 -24
  922. data/lib/ddtrace/contrib/delayed_job/integration.rb +0 -39
  923. data/lib/ddtrace/contrib/delayed_job/patcher.rb +0 -29
  924. data/lib/ddtrace/contrib/delayed_job/plugin.rb +0 -85
  925. data/lib/ddtrace/contrib/elasticsearch/configuration/settings.rb +0 -32
  926. data/lib/ddtrace/contrib/elasticsearch/ext.rb +0 -23
  927. data/lib/ddtrace/contrib/elasticsearch/integration.rb +0 -40
  928. data/lib/ddtrace/contrib/elasticsearch/patcher.rb +0 -123
  929. data/lib/ddtrace/contrib/elasticsearch/quantize.rb +0 -84
  930. data/lib/ddtrace/contrib/ethon/configuration/settings.rb +0 -33
  931. data/lib/ddtrace/contrib/ethon/easy_patch.rb +0 -152
  932. data/lib/ddtrace/contrib/ethon/ext.rb +0 -20
  933. data/lib/ddtrace/contrib/ethon/integration.rb +0 -44
  934. data/lib/ddtrace/contrib/ethon/multi_patch.rb +0 -85
  935. data/lib/ddtrace/contrib/ethon/patcher.rb +0 -27
  936. data/lib/ddtrace/contrib/excon/configuration/settings.rb +0 -34
  937. data/lib/ddtrace/contrib/excon/ext.rb +0 -18
  938. data/lib/ddtrace/contrib/excon/integration.rb +0 -44
  939. data/lib/ddtrace/contrib/excon/middleware.rb +0 -164
  940. data/lib/ddtrace/contrib/excon/patcher.rb +0 -28
  941. data/lib/ddtrace/contrib/extensions.rb +0 -169
  942. data/lib/ddtrace/contrib/faraday/configuration/settings.rb +0 -39
  943. data/lib/ddtrace/contrib/faraday/connection.rb +0 -19
  944. data/lib/ddtrace/contrib/faraday/ext.rb +0 -18
  945. data/lib/ddtrace/contrib/faraday/integration.rb +0 -44
  946. data/lib/ddtrace/contrib/faraday/middleware.rb +0 -86
  947. data/lib/ddtrace/contrib/faraday/patcher.rb +0 -54
  948. data/lib/ddtrace/contrib/faraday/rack_builder.rb +0 -19
  949. data/lib/ddtrace/contrib/grape/configuration/settings.rb +0 -39
  950. data/lib/ddtrace/contrib/grape/endpoint.rb +0 -246
  951. data/lib/ddtrace/contrib/grape/ext.rb +0 -24
  952. data/lib/ddtrace/contrib/grape/instrumentation.rb +0 -34
  953. data/lib/ddtrace/contrib/grape/integration.rb +0 -40
  954. data/lib/ddtrace/contrib/grape/patcher.rb +0 -32
  955. data/lib/ddtrace/contrib/graphql/configuration/settings.rb +0 -33
  956. data/lib/ddtrace/contrib/graphql/ext.rb +0 -17
  957. data/lib/ddtrace/contrib/graphql/integration.rb +0 -40
  958. data/lib/ddtrace/contrib/graphql/patcher.rb +0 -61
  959. data/lib/ddtrace/contrib/grpc/configuration/settings.rb +0 -32
  960. data/lib/ddtrace/contrib/grpc/datadog_interceptor/client.rb +0 -59
  961. data/lib/ddtrace/contrib/grpc/datadog_interceptor/server.rb +0 -80
  962. data/lib/ddtrace/contrib/grpc/datadog_interceptor.rb +0 -79
  963. data/lib/ddtrace/contrib/grpc/ext.rb +0 -19
  964. data/lib/ddtrace/contrib/grpc/integration.rb +0 -39
  965. data/lib/ddtrace/contrib/grpc/intercept_with_datadog.rb +0 -50
  966. data/lib/ddtrace/contrib/grpc/patcher.rb +0 -34
  967. data/lib/ddtrace/contrib/http/circuit_breaker.rb +0 -38
  968. data/lib/ddtrace/contrib/http/configuration/settings.rb +0 -33
  969. data/lib/ddtrace/contrib/http/ext.rb +0 -18
  970. data/lib/ddtrace/contrib/http/instrumentation.rb +0 -180
  971. data/lib/ddtrace/contrib/http/integration.rb +0 -46
  972. data/lib/ddtrace/contrib/http/patcher.rb +0 -27
  973. data/lib/ddtrace/contrib/http_annotation_helper.rb +0 -11
  974. data/lib/ddtrace/contrib/httpclient/configuration/settings.rb +0 -33
  975. data/lib/ddtrace/contrib/httpclient/ext.rb +0 -18
  976. data/lib/ddtrace/contrib/httpclient/instrumentation.rb +0 -148
  977. data/lib/ddtrace/contrib/httpclient/integration.rb +0 -44
  978. data/lib/ddtrace/contrib/httpclient/patcher.rb +0 -39
  979. data/lib/ddtrace/contrib/httprb/configuration/settings.rb +0 -33
  980. data/lib/ddtrace/contrib/httprb/ext.rb +0 -18
  981. data/lib/ddtrace/contrib/httprb/instrumentation.rb +0 -158
  982. data/lib/ddtrace/contrib/httprb/integration.rb +0 -44
  983. data/lib/ddtrace/contrib/httprb/patcher.rb +0 -39
  984. data/lib/ddtrace/contrib/integration.rb +0 -17
  985. data/lib/ddtrace/contrib/kafka/configuration/settings.rb +0 -31
  986. data/lib/ddtrace/contrib/kafka/consumer_event.rb +0 -15
  987. data/lib/ddtrace/contrib/kafka/consumer_group_event.rb +0 -15
  988. data/lib/ddtrace/contrib/kafka/event.rb +0 -52
  989. data/lib/ddtrace/contrib/kafka/events/connection/request.rb +0 -35
  990. data/lib/ddtrace/contrib/kafka/events/consumer/process_batch.rb +0 -42
  991. data/lib/ddtrace/contrib/kafka/events/consumer/process_message.rb +0 -40
  992. data/lib/ddtrace/contrib/kafka/events/consumer_group/heartbeat.rb +0 -40
  993. data/lib/ddtrace/contrib/kafka/events/consumer_group/join_group.rb +0 -30
  994. data/lib/ddtrace/contrib/kafka/events/consumer_group/leave_group.rb +0 -30
  995. data/lib/ddtrace/contrib/kafka/events/consumer_group/sync_group.rb +0 -30
  996. data/lib/ddtrace/contrib/kafka/events/produce_operation/send_messages.rb +0 -33
  997. data/lib/ddtrace/contrib/kafka/events/producer/deliver_messages.rb +0 -36
  998. data/lib/ddtrace/contrib/kafka/events.rb +0 -45
  999. data/lib/ddtrace/contrib/kafka/ext.rb +0 -42
  1000. data/lib/ddtrace/contrib/kafka/integration.rb +0 -40
  1001. data/lib/ddtrace/contrib/kafka/patcher.rb +0 -27
  1002. data/lib/ddtrace/contrib/lograge/configuration/settings.rb +0 -19
  1003. data/lib/ddtrace/contrib/lograge/ext.rb +0 -11
  1004. data/lib/ddtrace/contrib/lograge/instrumentation.rb +0 -39
  1005. data/lib/ddtrace/contrib/lograge/integration.rb +0 -46
  1006. data/lib/ddtrace/contrib/lograge/patcher.rb +0 -26
  1007. data/lib/ddtrace/contrib/mongodb/configuration/settings.rb +0 -34
  1008. data/lib/ddtrace/contrib/mongodb/ext.rb +0 -24
  1009. data/lib/ddtrace/contrib/mongodb/instrumentation.rb +0 -70
  1010. data/lib/ddtrace/contrib/mongodb/integration.rb +0 -44
  1011. data/lib/ddtrace/contrib/mongodb/parsers.rb +0 -69
  1012. data/lib/ddtrace/contrib/mongodb/patcher.rb +0 -32
  1013. data/lib/ddtrace/contrib/mongodb/subscribers.rb +0 -112
  1014. data/lib/ddtrace/contrib/mysql2/configuration/settings.rb +0 -31
  1015. data/lib/ddtrace/contrib/mysql2/ext.rb +0 -19
  1016. data/lib/ddtrace/contrib/mysql2/instrumentation.rb +0 -65
  1017. data/lib/ddtrace/contrib/mysql2/integration.rb +0 -39
  1018. data/lib/ddtrace/contrib/mysql2/patcher.rb +0 -28
  1019. data/lib/ddtrace/contrib/patchable.rb +0 -71
  1020. data/lib/ddtrace/contrib/patcher.rb +0 -66
  1021. data/lib/ddtrace/contrib/presto/configuration/settings.rb +0 -31
  1022. data/lib/ddtrace/contrib/presto/ext.rb +0 -29
  1023. data/lib/ddtrace/contrib/presto/instrumentation.rb +0 -111
  1024. data/lib/ddtrace/contrib/presto/integration.rb +0 -39
  1025. data/lib/ddtrace/contrib/presto/patcher.rb +0 -34
  1026. data/lib/ddtrace/contrib/qless/configuration/settings.rb +0 -36
  1027. data/lib/ddtrace/contrib/qless/ext.rb +0 -21
  1028. data/lib/ddtrace/contrib/qless/integration.rb +0 -39
  1029. data/lib/ddtrace/contrib/qless/patcher.rb +0 -35
  1030. data/lib/ddtrace/contrib/qless/qless_job.rb +0 -74
  1031. data/lib/ddtrace/contrib/qless/tracer_cleaner.rb +0 -34
  1032. data/lib/ddtrace/contrib/que/configuration/settings.rb +0 -44
  1033. data/lib/ddtrace/contrib/que/ext.rb +0 -31
  1034. data/lib/ddtrace/contrib/que/integration.rb +0 -43
  1035. data/lib/ddtrace/contrib/que/patcher.rb +0 -25
  1036. data/lib/ddtrace/contrib/que/tracer.rb +0 -58
  1037. data/lib/ddtrace/contrib/racecar/configuration/settings.rb +0 -31
  1038. data/lib/ddtrace/contrib/racecar/event.rb +0 -77
  1039. data/lib/ddtrace/contrib/racecar/events/batch.rb +0 -28
  1040. data/lib/ddtrace/contrib/racecar/events/consume.rb +0 -28
  1041. data/lib/ddtrace/contrib/racecar/events/message.rb +0 -28
  1042. data/lib/ddtrace/contrib/racecar/events.rb +0 -33
  1043. data/lib/ddtrace/contrib/racecar/ext.rb +0 -26
  1044. data/lib/ddtrace/contrib/racecar/integration.rb +0 -40
  1045. data/lib/ddtrace/contrib/racecar/patcher.rb +0 -27
  1046. data/lib/ddtrace/contrib/rack/configuration/settings.rb +0 -47
  1047. data/lib/ddtrace/contrib/rack/ext.rb +0 -22
  1048. data/lib/ddtrace/contrib/rack/integration.rb +0 -46
  1049. data/lib/ddtrace/contrib/rack/middlewares.rb +0 -288
  1050. data/lib/ddtrace/contrib/rack/patcher.rb +0 -106
  1051. data/lib/ddtrace/contrib/rack/request_queue.rb +0 -45
  1052. data/lib/ddtrace/contrib/rails/auto_instrument_railtie.rb +0 -10
  1053. data/lib/ddtrace/contrib/rails/configuration/settings.rb +0 -101
  1054. data/lib/ddtrace/contrib/rails/ext.rb +0 -18
  1055. data/lib/ddtrace/contrib/rails/framework.rb +0 -172
  1056. data/lib/ddtrace/contrib/rails/integration.rb +0 -45
  1057. data/lib/ddtrace/contrib/rails/log_injection.rb +0 -42
  1058. data/lib/ddtrace/contrib/rails/middlewares.rb +0 -44
  1059. data/lib/ddtrace/contrib/rails/patcher.rb +0 -119
  1060. data/lib/ddtrace/contrib/rails/railtie.rb +0 -18
  1061. data/lib/ddtrace/contrib/rails/utils.rb +0 -25
  1062. data/lib/ddtrace/contrib/rake/configuration/settings.rb +0 -32
  1063. data/lib/ddtrace/contrib/rake/ext.rb +0 -22
  1064. data/lib/ddtrace/contrib/rake/instrumentation.rb +0 -91
  1065. data/lib/ddtrace/contrib/rake/integration.rb +0 -39
  1066. data/lib/ddtrace/contrib/rake/patcher.rb +0 -31
  1067. data/lib/ddtrace/contrib/redis/configuration/resolver.rb +0 -46
  1068. data/lib/ddtrace/contrib/redis/configuration/settings.rb +0 -36
  1069. data/lib/ddtrace/contrib/redis/ext.rb +0 -23
  1070. data/lib/ddtrace/contrib/redis/instrumentation.rb +0 -90
  1071. data/lib/ddtrace/contrib/redis/integration.rb +0 -43
  1072. data/lib/ddtrace/contrib/redis/patcher.rb +0 -33
  1073. data/lib/ddtrace/contrib/redis/quantize.rb +0 -76
  1074. data/lib/ddtrace/contrib/redis/tags.rb +0 -47
  1075. data/lib/ddtrace/contrib/redis/vendor/resolver.rb +0 -159
  1076. data/lib/ddtrace/contrib/registerable.rb +0 -33
  1077. data/lib/ddtrace/contrib/registry.rb +0 -43
  1078. data/lib/ddtrace/contrib/resque/configuration/settings.rb +0 -49
  1079. data/lib/ddtrace/contrib/resque/ext.rb +0 -18
  1080. data/lib/ddtrace/contrib/resque/integration.rb +0 -44
  1081. data/lib/ddtrace/contrib/resque/patcher.rb +0 -30
  1082. data/lib/ddtrace/contrib/resque/resque_job.rb +0 -104
  1083. data/lib/ddtrace/contrib/rest_client/configuration/settings.rb +0 -32
  1084. data/lib/ddtrace/contrib/rest_client/ext.rb +0 -18
  1085. data/lib/ddtrace/contrib/rest_client/integration.rb +0 -39
  1086. data/lib/ddtrace/contrib/rest_client/patcher.rb +0 -25
  1087. data/lib/ddtrace/contrib/rest_client/request_patch.rb +0 -92
  1088. data/lib/ddtrace/contrib/semantic_logger/configuration/settings.rb +0 -19
  1089. data/lib/ddtrace/contrib/semantic_logger/ext.rb +0 -11
  1090. data/lib/ddtrace/contrib/semantic_logger/instrumentation.rb +0 -43
  1091. data/lib/ddtrace/contrib/semantic_logger/integration.rb +0 -48
  1092. data/lib/ddtrace/contrib/semantic_logger/patcher.rb +0 -26
  1093. data/lib/ddtrace/contrib/sequel/configuration/settings.rb +0 -29
  1094. data/lib/ddtrace/contrib/sequel/database.rb +0 -64
  1095. data/lib/ddtrace/contrib/sequel/dataset.rb +0 -64
  1096. data/lib/ddtrace/contrib/sequel/ext.rb +0 -20
  1097. data/lib/ddtrace/contrib/sequel/integration.rb +0 -39
  1098. data/lib/ddtrace/contrib/sequel/patcher.rb +0 -34
  1099. data/lib/ddtrace/contrib/sequel/utils.rb +0 -75
  1100. data/lib/ddtrace/contrib/shoryuken/configuration/settings.rb +0 -32
  1101. data/lib/ddtrace/contrib/shoryuken/ext.rb +0 -22
  1102. data/lib/ddtrace/contrib/shoryuken/integration.rb +0 -40
  1103. data/lib/ddtrace/contrib/shoryuken/patcher.rb +0 -25
  1104. data/lib/ddtrace/contrib/shoryuken/tracer.rb +0 -56
  1105. data/lib/ddtrace/contrib/sidekiq/client_tracer.rb +0 -44
  1106. data/lib/ddtrace/contrib/sidekiq/configuration/settings.rb +0 -38
  1107. data/lib/ddtrace/contrib/sidekiq/ext.rb +0 -31
  1108. data/lib/ddtrace/contrib/sidekiq/integration.rb +0 -49
  1109. data/lib/ddtrace/contrib/sidekiq/patcher.rb +0 -68
  1110. data/lib/ddtrace/contrib/sidekiq/server_internal_tracer/heartbeat.rb +0 -30
  1111. data/lib/ddtrace/contrib/sidekiq/server_internal_tracer/job_fetch.rb +0 -30
  1112. data/lib/ddtrace/contrib/sidekiq/server_internal_tracer/scheduled_push.rb +0 -29
  1113. data/lib/ddtrace/contrib/sidekiq/server_tracer.rb +0 -66
  1114. data/lib/ddtrace/contrib/sidekiq/tracing.rb +0 -45
  1115. data/lib/ddtrace/contrib/sinatra/configuration/settings.rb +0 -40
  1116. data/lib/ddtrace/contrib/sinatra/env.rb +0 -59
  1117. data/lib/ddtrace/contrib/sinatra/ext.rb +0 -28
  1118. data/lib/ddtrace/contrib/sinatra/headers.rb +0 -30
  1119. data/lib/ddtrace/contrib/sinatra/integration.rb +0 -39
  1120. data/lib/ddtrace/contrib/sinatra/patcher.rb +0 -30
  1121. data/lib/ddtrace/contrib/sinatra/tracer.rb +0 -150
  1122. data/lib/ddtrace/contrib/sinatra/tracer_middleware.rb +0 -112
  1123. data/lib/ddtrace/contrib/sneakers/configuration/settings.rb +0 -34
  1124. data/lib/ddtrace/contrib/sneakers/ext.rb +0 -23
  1125. data/lib/ddtrace/contrib/sneakers/integration.rb +0 -42
  1126. data/lib/ddtrace/contrib/sneakers/patcher.rb +0 -25
  1127. data/lib/ddtrace/contrib/sneakers/tracer.rb +0 -54
  1128. data/lib/ddtrace/contrib/status_code_matcher.rb +0 -70
  1129. data/lib/ddtrace/contrib/sucker_punch/configuration/settings.rb +0 -31
  1130. data/lib/ddtrace/contrib/sucker_punch/exception_handler.rb +0 -25
  1131. data/lib/ddtrace/contrib/sucker_punch/ext.rb +0 -22
  1132. data/lib/ddtrace/contrib/sucker_punch/instrumentation.rb +0 -89
  1133. data/lib/ddtrace/contrib/sucker_punch/integration.rb +0 -39
  1134. data/lib/ddtrace/contrib/sucker_punch/patcher.rb +0 -44
  1135. data/lib/ddtrace/correlation.rb +0 -40
  1136. data/lib/ddtrace/diagnostics/environment_logger.rb +0 -280
  1137. data/lib/ddtrace/diagnostics/health.rb +0 -34
  1138. data/lib/ddtrace/distributed_tracing/headers/b3.rb +0 -45
  1139. data/lib/ddtrace/distributed_tracing/headers/b3_single.rb +0 -57
  1140. data/lib/ddtrace/distributed_tracing/headers/datadog.rb +0 -43
  1141. data/lib/ddtrace/distributed_tracing/headers/headers.rb +0 -72
  1142. data/lib/ddtrace/distributed_tracing/headers/helpers.rb +0 -44
  1143. data/lib/ddtrace/encoding.rb +0 -72
  1144. data/lib/ddtrace/error.rb +0 -97
  1145. data/lib/ddtrace/event.rb +0 -53
  1146. data/lib/ddtrace/ext/analytics.rb +0 -13
  1147. data/lib/ddtrace/ext/app_types.rb +0 -12
  1148. data/lib/ddtrace/ext/correlation.rb +0 -12
  1149. data/lib/ddtrace/ext/diagnostics.rb +0 -37
  1150. data/lib/ddtrace/ext/distributed.rb +0 -40
  1151. data/lib/ddtrace/ext/environment.rb +0 -24
  1152. data/lib/ddtrace/ext/errors.rb +0 -11
  1153. data/lib/ddtrace/ext/forced_tracing.rb +0 -26
  1154. data/lib/ddtrace/ext/git.rb +0 -32
  1155. data/lib/ddtrace/ext/http.rb +0 -47
  1156. data/lib/ddtrace/ext/integration.rb +0 -9
  1157. data/lib/ddtrace/ext/manual_tracing.rb +0 -10
  1158. data/lib/ddtrace/ext/metrics.rb +0 -16
  1159. data/lib/ddtrace/ext/net.rb +0 -11
  1160. data/lib/ddtrace/ext/priority.rb +0 -19
  1161. data/lib/ddtrace/ext/profiling.rb +0 -53
  1162. data/lib/ddtrace/ext/runtime.rb +0 -25
  1163. data/lib/ddtrace/ext/sampling.rb +0 -17
  1164. data/lib/ddtrace/ext/sql.rb +0 -9
  1165. data/lib/ddtrace/ext/test.rb +0 -9
  1166. data/lib/ddtrace/ext/transport.rb +0 -32
  1167. data/lib/ddtrace/forced_tracing.rb +0 -39
  1168. data/lib/ddtrace/logger.rb +0 -41
  1169. data/lib/ddtrace/metrics.rb +0 -282
  1170. data/lib/ddtrace/opentelemetry/extensions.rb +0 -14
  1171. data/lib/ddtrace/opentelemetry/span.rb +0 -34
  1172. data/lib/ddtrace/opentracer/binary_propagator.rb +0 -25
  1173. data/lib/ddtrace/opentracer/carrier.rb +0 -7
  1174. data/lib/ddtrace/opentracer/distributed_headers.rb +0 -56
  1175. data/lib/ddtrace/opentracer/global_tracer.rb +0 -16
  1176. data/lib/ddtrace/opentracer/propagator.rb +0 -23
  1177. data/lib/ddtrace/opentracer/rack_propagator.rb +0 -61
  1178. data/lib/ddtrace/opentracer/scope.rb +0 -16
  1179. data/lib/ddtrace/opentracer/scope_manager.rb +0 -7
  1180. data/lib/ddtrace/opentracer/span.rb +0 -95
  1181. data/lib/ddtrace/opentracer/span_context.rb +0 -15
  1182. data/lib/ddtrace/opentracer/span_context_factory.rb +0 -24
  1183. data/lib/ddtrace/opentracer/text_map_propagator.rb +0 -76
  1184. data/lib/ddtrace/opentracer/thread_local_scope.rb +0 -32
  1185. data/lib/ddtrace/opentracer/thread_local_scope_manager.rb +0 -41
  1186. data/lib/ddtrace/opentracer/tracer.rb +0 -209
  1187. data/lib/ddtrace/opentracer.rb +0 -22
  1188. data/lib/ddtrace/patcher.rb +0 -69
  1189. data/lib/ddtrace/pin.rb +0 -86
  1190. data/lib/ddtrace/pipeline/span_filter.rb +0 -39
  1191. data/lib/ddtrace/pipeline/span_processor.rb +0 -21
  1192. data/lib/ddtrace/pipeline.rb +0 -47
  1193. data/lib/ddtrace/profiling/backtrace_location.rb +0 -33
  1194. data/lib/ddtrace/profiling/buffer.rb +0 -42
  1195. data/lib/ddtrace/profiling/collectors/stack.rb +0 -297
  1196. data/lib/ddtrace/profiling/encoding/profile.rb +0 -46
  1197. data/lib/ddtrace/profiling/event.rb +0 -14
  1198. data/lib/ddtrace/profiling/events/stack.rb +0 -81
  1199. data/lib/ddtrace/profiling/exporter.rb +0 -24
  1200. data/lib/ddtrace/profiling/ext/forking.rb +0 -98
  1201. data/lib/ddtrace/profiling/flush.rb +0 -44
  1202. data/lib/ddtrace/profiling/native_extension.rb +0 -40
  1203. data/lib/ddtrace/profiling/pprof/builder.rb +0 -126
  1204. data/lib/ddtrace/profiling/pprof/converter.rb +0 -103
  1205. data/lib/ddtrace/profiling/pprof/message_set.rb +0 -15
  1206. data/lib/ddtrace/profiling/pprof/payload.rb +0 -19
  1207. data/lib/ddtrace/profiling/pprof/pprof.proto +0 -212
  1208. data/lib/ddtrace/profiling/pprof/pprof_pb.rb +0 -82
  1209. data/lib/ddtrace/profiling/pprof/stack_sample.rb +0 -140
  1210. data/lib/ddtrace/profiling/pprof/string_table.rb +0 -11
  1211. data/lib/ddtrace/profiling/pprof/template.rb +0 -119
  1212. data/lib/ddtrace/profiling/profiler.rb +0 -31
  1213. data/lib/ddtrace/profiling/recorder.rb +0 -96
  1214. data/lib/ddtrace/profiling/scheduler.rb +0 -150
  1215. data/lib/ddtrace/profiling/tasks/setup.rb +0 -90
  1216. data/lib/ddtrace/profiling/trace_identifiers/ddtrace.rb +0 -42
  1217. data/lib/ddtrace/profiling/trace_identifiers/helper.rb +0 -46
  1218. data/lib/ddtrace/profiling/transport/client.rb +0 -15
  1219. data/lib/ddtrace/profiling/transport/http/api/endpoint.rb +0 -94
  1220. data/lib/ddtrace/profiling/transport/http/api/instance.rb +0 -37
  1221. data/lib/ddtrace/profiling/transport/http/api/spec.rb +0 -41
  1222. data/lib/ddtrace/profiling/transport/http/api.rb +0 -44
  1223. data/lib/ddtrace/profiling/transport/http/builder.rb +0 -29
  1224. data/lib/ddtrace/profiling/transport/http/client.rb +0 -34
  1225. data/lib/ddtrace/profiling/transport/http/response.rb +0 -22
  1226. data/lib/ddtrace/profiling/transport/http.rb +0 -111
  1227. data/lib/ddtrace/profiling/transport/io/client.rb +0 -28
  1228. data/lib/ddtrace/profiling/transport/io/response.rb +0 -17
  1229. data/lib/ddtrace/profiling/transport/io.rb +0 -31
  1230. data/lib/ddtrace/profiling/transport/parcel.rb +0 -18
  1231. data/lib/ddtrace/profiling/transport/request.rb +0 -16
  1232. data/lib/ddtrace/profiling/transport/response.rb +0 -9
  1233. data/lib/ddtrace/profiling.rb +0 -149
  1234. data/lib/ddtrace/propagation/grpc_propagator.rb +0 -75
  1235. data/lib/ddtrace/propagation/http_propagator.rb +0 -91
  1236. data/lib/ddtrace/quantization/hash.rb +0 -104
  1237. data/lib/ddtrace/quantization/http.rb +0 -90
  1238. data/lib/ddtrace/runtime/metrics.rb +0 -135
  1239. data/lib/ddtrace/sampler.rb +0 -303
  1240. data/lib/ddtrace/sampling/matcher.rb +0 -58
  1241. data/lib/ddtrace/sampling/rate_limiter.rb +0 -177
  1242. data/lib/ddtrace/sampling/rule.rb +0 -62
  1243. data/lib/ddtrace/sampling/rule_sampler.rb +0 -133
  1244. data/lib/ddtrace/sampling.rb +0 -3
  1245. data/lib/ddtrace/span.rb +0 -445
  1246. data/lib/ddtrace/sync_writer.rb +0 -69
  1247. data/lib/ddtrace/tasks/exec.rb +0 -47
  1248. data/lib/ddtrace/tasks/help.rb +0 -15
  1249. data/lib/ddtrace/tracer.rb +0 -449
  1250. data/lib/ddtrace/transport/http/adapters/net.rb +0 -156
  1251. data/lib/ddtrace/transport/http/adapters/registry.rb +0 -26
  1252. data/lib/ddtrace/transport/http/adapters/test.rb +0 -86
  1253. data/lib/ddtrace/transport/http/adapters/unix_socket.rb +0 -78
  1254. data/lib/ddtrace/transport/http/api/endpoint.rb +0 -28
  1255. data/lib/ddtrace/transport/http/api/fallbacks.rb +0 -23
  1256. data/lib/ddtrace/transport/http/api/instance.rb +0 -34
  1257. data/lib/ddtrace/transport/http/api/map.rb +0 -15
  1258. data/lib/ddtrace/transport/http/api/spec.rb +0 -16
  1259. data/lib/ddtrace/transport/http/api.rb +0 -47
  1260. data/lib/ddtrace/transport/http/builder.rb +0 -177
  1261. data/lib/ddtrace/transport/http/client.rb +0 -52
  1262. data/lib/ddtrace/transport/http/env.rb +0 -57
  1263. data/lib/ddtrace/transport/http/response.rb +0 -27
  1264. data/lib/ddtrace/transport/http/statistics.rb +0 -44
  1265. data/lib/ddtrace/transport/http/traces.rb +0 -143
  1266. data/lib/ddtrace/transport/http.rb +0 -113
  1267. data/lib/ddtrace/transport/io/client.rb +0 -84
  1268. data/lib/ddtrace/transport/io/response.rb +0 -24
  1269. data/lib/ddtrace/transport/io/traces.rb +0 -100
  1270. data/lib/ddtrace/transport/io.rb +0 -27
  1271. data/lib/ddtrace/transport/parcel.rb +0 -20
  1272. data/lib/ddtrace/transport/request.rb +0 -14
  1273. data/lib/ddtrace/transport/response.rb +0 -61
  1274. data/lib/ddtrace/transport/statistics.rb +0 -73
  1275. data/lib/ddtrace/transport/traces.rb +0 -206
  1276. data/lib/ddtrace/utils/compression.rb +0 -28
  1277. data/lib/ddtrace/utils/database.rb +0 -26
  1278. data/lib/ddtrace/utils/forking.rb +0 -53
  1279. data/lib/ddtrace/utils/object_set.rb +0 -40
  1280. data/lib/ddtrace/utils/only_once.rb +0 -41
  1281. data/lib/ddtrace/utils/sequence.rb +0 -18
  1282. data/lib/ddtrace/utils/string_table.rb +0 -46
  1283. data/lib/ddtrace/utils/time.rb +0 -51
  1284. data/lib/ddtrace/utils.rb +0 -80
  1285. data/lib/ddtrace/vendor/active_record/connection_specification.rb +0 -302
  1286. data/lib/ddtrace/vendor/multipart-post/multipart/post/composite_read_io.rb +0 -117
  1287. data/lib/ddtrace/vendor/multipart-post/multipart/post/multipartable.rb +0 -58
  1288. data/lib/ddtrace/vendor/multipart-post/multipart/post/parts.rb +0 -136
  1289. data/lib/ddtrace/vendor/multipart-post/multipart/post/version.rb +0 -10
  1290. data/lib/ddtrace/vendor/multipart-post/multipart/post.rb +0 -9
  1291. data/lib/ddtrace/vendor/multipart-post/multipart.rb +0 -13
  1292. data/lib/ddtrace/vendor/multipart-post/net/http/post/multipart.rb +0 -33
  1293. data/lib/ddtrace/worker.rb +0 -21
  1294. data/lib/ddtrace/workers/async.rb +0 -175
  1295. data/lib/ddtrace/workers/interval_loop.rb +0 -116
  1296. data/lib/ddtrace/workers/polling.rb +0 -56
  1297. data/lib/ddtrace/workers/queue.rb +0 -41
  1298. data/lib/ddtrace/workers/runtime_metrics.rb +0 -65
  1299. data/lib/ddtrace/workers/trace_writer.rb +0 -200
  1300. data/lib/ddtrace/workers.rb +0 -123
  1301. data/lib/ddtrace/writer.rb +0 -200
  1302. /data/lib/{ddtrace → datadog/core}/vendor/multipart-post/LICENSE +0 -0
  1303. /data/lib/{ddtrace/vendor/active_record → datadog/tracing/contrib/active_record/vendor}/MIT-LICENSE +0 -0
  1304. /data/lib/{ddtrace → datadog/tracing}/contrib/redis/vendor/LICENSE +0 -0
@@ -0,0 +1,74 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Datadog
4
+ module Tracing
5
+ module Configuration
6
+ module HTTP
7
+ # Datadog tracing supports capturing HTTP request and response headers as span tags.
8
+ #
9
+ # The provided configuration String for this feature has to be pre-processed to
10
+ # allow for ease of utilization by each HTTP integration.
11
+ #
12
+ # This class process configuration, stores the result, and provides methods to
13
+ # utilize this configuration.
14
+ class HeaderTags
15
+ # @param header_tags [Array<String>] The list of strings from DD_TRACE_HEADER_TAGS.
16
+ def initialize(header_tags)
17
+ @request_headers = {}
18
+ @response_headers = {}
19
+ @header_tags = header_tags
20
+
21
+ @header_tags.each do |header_tag|
22
+ header, tag = header_tag.split(':', 2)
23
+
24
+ next unless header # Empty string guard
25
+
26
+ if tag && !tag.empty?
27
+ # When a custom tag name is provided, use that name for both
28
+ # request and response tags.
29
+ normalized_tag = Tracing::Metadata::Ext::HTTP::Headers.to_tag(tag, allow_nested: true)
30
+ request = response = normalized_tag
31
+ else
32
+ # Otherwise, use our internal pattern of
33
+ # "http.{request|response}.headers.{header}" as tag name.
34
+ request = Tracing::Metadata::Ext::HTTP::RequestHeaders.to_tag(header)
35
+ response = Tracing::Metadata::Ext::HTTP::ResponseHeaders.to_tag(header)
36
+ end
37
+
38
+ @request_headers[header] = request
39
+ @response_headers[header] = response
40
+ end
41
+ end
42
+
43
+ # Receives a case insensitive hash with the request headers and returns
44
+ # a list of tag names and values that can be set in a span.
45
+ def request_tags(headers)
46
+ @request_headers.map do |header_name, span_tag|
47
+ # Case-insensitive search
48
+ header_value = headers[header_name]
49
+
50
+ [span_tag, header_value] if header_value
51
+ end.compact
52
+ end
53
+
54
+ # Receives a case insensitive hash with the response headers and returns
55
+ # a list of tag names and values that can be set in a span.
56
+ def response_tags(headers)
57
+ @response_headers.map do |header_name, span_tag|
58
+ # Case-insensitive search
59
+ header_value = headers[header_name]
60
+
61
+ [span_tag, header_value] if header_value
62
+ end.compact
63
+ end
64
+
65
+ # For easy configuration inspection,
66
+ # print the original configuration setting.
67
+ def to_s
68
+ @header_tags.join(',').to_s
69
+ end
70
+ end
71
+ end
72
+ end
73
+ end
74
+ end
@@ -0,0 +1,501 @@
1
+ require_relative '../../tracing/configuration/ext'
2
+ require_relative '../../core/environment/variable_helpers'
3
+ require_relative 'http'
4
+
5
+ module Datadog
6
+ module Tracing
7
+ module Configuration
8
+ # Configuration settings for tracing.
9
+ # @public_api
10
+ # rubocop:disable Metrics/AbcSize
11
+ # rubocop:disable Metrics/BlockLength
12
+ # rubocop:disable Metrics/CyclomaticComplexity
13
+ # rubocop:disable Metrics/MethodLength
14
+ # rubocop:disable Layout/LineLength
15
+ module Settings
16
+ def self.extended(base)
17
+ base.class_eval do
18
+ # Tracer specific configurations.
19
+ # @public_api
20
+ settings :tracing do
21
+ # Legacy [App Analytics](https://docs.datadoghq.com/tracing/legacy_app_analytics/) configuration.
22
+ #
23
+ # @configure_with {Datadog::Tracing}
24
+ # @deprecated Use [Trace Retention and Ingestion](https://docs.datadoghq.com/tracing/trace_retention_and_ingestion/)
25
+ # controls.
26
+ # @public_api
27
+ settings :analytics do
28
+ # @default `DD_TRACE_ANALYTICS_ENABLED` environment variable, otherwise `nil`
29
+ # @return [Boolean,nil]
30
+ option :enabled do |o|
31
+ o.type :bool, nilable: true
32
+ o.env Tracing::Configuration::Ext::Analytics::ENV_TRACE_ANALYTICS_ENABLED
33
+ end
34
+ end
35
+
36
+ # [Distributed Tracing](https://docs.datadoghq.com/tracing/setup_overview/setup/ruby/#distributed-tracing) propagation
37
+ # style configuration.
38
+ #
39
+ # The supported formats are:
40
+ # * `Datadog`: Datadog propagation format, described by [Distributed Tracing](https://docs.datadoghq.com/tracing/setup_overview/setup/ruby/#distributed-tracing).
41
+ # * `b3multi`: B3 Propagation using multiple headers, described by [openzipkin/b3-propagation](https://github.com/openzipkin/b3-propagation#multiple-headers).
42
+ # * `b3`: B3 Propagation using a single header, described by [openzipkin/b3-propagation](https://github.com/openzipkin/b3-propagation#single-header).
43
+ #
44
+ # @public_api
45
+ settings :distributed_tracing do
46
+ # An ordered list of what data propagation styles the tracer will use to extract distributed tracing propagation
47
+ # data from incoming requests and messages.
48
+ #
49
+ # The tracer will try to find distributed headers in the order they are present in the list provided to this option.
50
+ # The first format to have valid data present will be used.
51
+ #
52
+ # @default `DD_TRACE_PROPAGATION_STYLE_EXTRACT` environment variable (comma-separated list),
53
+ # otherwise `['Datadog','b3multi','b3']`.
54
+ # @return [Array<String>]
55
+ option :propagation_extract_style do |o|
56
+ o.type :array
57
+ o.deprecated_env Tracing::Configuration::Ext::Distributed::ENV_PROPAGATION_STYLE_EXTRACT_OLD
58
+ o.env Tracing::Configuration::Ext::Distributed::ENV_PROPAGATION_STYLE_EXTRACT
59
+ # DEV-2.0: Change default value to `tracecontext, Datadog`.
60
+ # Look for all headers by default
61
+ o.default(
62
+ [
63
+ Tracing::Configuration::Ext::Distributed::PROPAGATION_STYLE_DATADOG,
64
+ Tracing::Configuration::Ext::Distributed::PROPAGATION_STYLE_B3_MULTI_HEADER,
65
+ Tracing::Configuration::Ext::Distributed::PROPAGATION_STYLE_B3_SINGLE_HEADER,
66
+ Tracing::Configuration::Ext::Distributed::PROPAGATION_STYLE_TRACE_CONTEXT,
67
+ ]
68
+ )
69
+ o.after_set do |styles|
70
+ # Modernize B3 options
71
+ # DEV-2.0: Can be removed with the removal of deprecated B3 constants.
72
+ styles.map! do |style|
73
+ case style
74
+ when Tracing::Configuration::Ext::Distributed::PROPAGATION_STYLE_B3
75
+ Tracing::Configuration::Ext::Distributed::PROPAGATION_STYLE_B3_MULTI_HEADER
76
+ when Tracing::Configuration::Ext::Distributed::PROPAGATION_STYLE_B3_SINGLE_HEADER_OLD
77
+ Tracing::Configuration::Ext::Distributed::PROPAGATION_STYLE_B3_SINGLE_HEADER
78
+ else
79
+ style
80
+ end
81
+ end
82
+ end
83
+ end
84
+
85
+ # The data propagation styles the tracer will use to inject distributed tracing propagation
86
+ # data into outgoing requests and messages.
87
+ #
88
+ # The tracer will inject data from all styles specified in this option.
89
+ #
90
+ # @default `DD_TRACE_PROPAGATION_STYLE_INJECT` environment variable (comma-separated list), otherwise `['Datadog']`.
91
+ # @return [Array<String>]
92
+ option :propagation_inject_style do |o|
93
+ o.type :array
94
+ o.deprecated_env Tracing::Configuration::Ext::Distributed::ENV_PROPAGATION_STYLE_INJECT_OLD
95
+ o.env Tracing::Configuration::Ext::Distributed::ENV_PROPAGATION_STYLE_INJECT
96
+ # DEV-2.0: Change default value to `tracecontext, Datadog`.
97
+ o.default [
98
+ Tracing::Configuration::Ext::Distributed::PROPAGATION_STYLE_DATADOG,
99
+ Tracing::Configuration::Ext::Distributed::PROPAGATION_STYLE_TRACE_CONTEXT,
100
+ ]
101
+ o.after_set do |styles|
102
+ # Modernize B3 options
103
+ # DEV-2.0: Can be removed with the removal of deprecated B3 constants.
104
+ styles.map! do |style|
105
+ case style
106
+ when Tracing::Configuration::Ext::Distributed::PROPAGATION_STYLE_B3
107
+ Tracing::Configuration::Ext::Distributed::PROPAGATION_STYLE_B3_MULTI_HEADER
108
+ when Tracing::Configuration::Ext::Distributed::PROPAGATION_STYLE_B3_SINGLE_HEADER_OLD
109
+ Tracing::Configuration::Ext::Distributed::PROPAGATION_STYLE_B3_SINGLE_HEADER
110
+ else
111
+ style
112
+ end
113
+ end
114
+ end
115
+ end
116
+
117
+ # An ordered list of what data propagation styles the tracer will use to extract distributed tracing propagation
118
+ # data from incoming requests and inject into outgoing requests.
119
+ #
120
+ # This configuration is the equivalent of configuring both {propagation_extract_style}
121
+ # {propagation_inject_style} to value set to {propagation_style}.
122
+ #
123
+ # @default `DD_TRACE_PROPAGATION_STYLE` environment variable (comma-separated list).
124
+ # @return [Array<String>]
125
+ option :propagation_style do |o|
126
+ o.type :array
127
+ o.env Configuration::Ext::Distributed::ENV_PROPAGATION_STYLE
128
+ o.default []
129
+ o.after_set do |styles|
130
+ next if styles.empty?
131
+
132
+ # Modernize B3 options
133
+ # DEV-2.0: Can be removed with the removal of deprecated B3 constants.
134
+ styles.map! do |style|
135
+ case style
136
+ when Tracing::Configuration::Ext::Distributed::PROPAGATION_STYLE_B3
137
+ Tracing::Configuration::Ext::Distributed::PROPAGATION_STYLE_B3_MULTI_HEADER
138
+ when Tracing::Configuration::Ext::Distributed::PROPAGATION_STYLE_B3_SINGLE_HEADER_OLD
139
+ Tracing::Configuration::Ext::Distributed::PROPAGATION_STYLE_B3_SINGLE_HEADER
140
+ else
141
+ style
142
+ end
143
+ end
144
+
145
+ set_option(:propagation_extract_style, styles)
146
+ set_option(:propagation_inject_style, styles)
147
+ end
148
+ end
149
+
150
+ # Strictly stop at the first successfully serialized style.
151
+ # This prevents the tracer from enriching the extracted context with information from
152
+ # other valid propagations styles present in the request.
153
+ # @default `DD_TRACE_PROPAGATION_EXTRACT_FIRST` environment variable, otherwise `false`.
154
+ # @return [Boolean]
155
+ option :propagation_extract_first do |o|
156
+ o.env Tracing::Configuration::Ext::Distributed::EXTRACT_FIRST
157
+ o.default false
158
+ o.type :bool
159
+ end
160
+ end
161
+
162
+ # Enable trace collection and span generation.
163
+ #
164
+ # You can use this option to disable tracing without having to
165
+ # remove the library as a whole.
166
+ #
167
+ # @default `DD_TRACE_ENABLED` environment variable, otherwise `true`
168
+ # @return [Boolean]
169
+ option :enabled do |o|
170
+ o.env Tracing::Configuration::Ext::ENV_ENABLED
171
+ o.default true
172
+ o.type :bool
173
+ end
174
+
175
+ # Comma-separated, case-insensitive list of header names that are reported in incoming and outgoing HTTP requests.
176
+ #
177
+ # Each header in the list can either be:
178
+ # * A header name, which is mapped to the respective tags `http.request.headers.<header name>` and `http.response.headers.<header name>`.
179
+ # * A key value pair, "header name:tag name", which is mapped to the span tag `tag name`.
180
+ #
181
+ # You can mix the two types of header declaration in the same list.
182
+ # Tag names will be normalized based on the [Datadog tag normalization rules](https://docs.datadoghq.com/getting_started/tagging/#defining-tags).
183
+ #
184
+ # @default `DD_TRACE_HEADER_TAGS` environment variable, otherwise an empty set of tags
185
+ # @return [Array<String>]
186
+ option :header_tags do |o|
187
+ o.env Configuration::Ext::ENV_HEADER_TAGS
188
+ o.type :array
189
+ o.default []
190
+ o.setter { |header_tags, _| Configuration::HTTP::HeaderTags.new(header_tags) }
191
+ end
192
+
193
+ # Enable 128 bit trace id generation.
194
+ #
195
+ # @default `DD_TRACE_128_BIT_TRACEID_GENERATION_ENABLED` environment variable, otherwise `true`
196
+ # @return [Boolean]
197
+ option :trace_id_128_bit_generation_enabled do |o|
198
+ o.env Tracing::Configuration::Ext::ENV_TRACE_ID_128_BIT_GENERATION_ENABLED
199
+ o.default true
200
+ o.type :bool
201
+ end
202
+
203
+ # Enable 128 bit trace id injected for logging.
204
+ #
205
+ # @default `DD_TRACE_128_BIT_TRACEID_LOGGING_ENABLED` environment variable, otherwise `false`
206
+ # @return [Boolean]
207
+ #
208
+ # It is not supported by our backend yet. Do not enable it.
209
+ option :trace_id_128_bit_logging_enabled do |o|
210
+ o.env Tracing::Configuration::Ext::Correlation::ENV_TRACE_ID_128_BIT_LOGGING_ENABLED
211
+ o.default false
212
+ o.type :bool
213
+ end
214
+
215
+ # A custom tracer instance.
216
+ #
217
+ # It must respect the contract of {Datadog::Tracing::Tracer}.
218
+ # It's recommended to delegate methods to {Datadog::Tracing::Tracer} to ease the implementation
219
+ # of a custom tracer.
220
+ #
221
+ # This option will not return the live tracer instance: it only holds a custom tracing instance, if any.
222
+ #
223
+ # For internal use only.
224
+ #
225
+ # @default `nil`
226
+ # @return [Object,nil]
227
+ option :instance
228
+
229
+ # Automatic correlation between tracing and logging.
230
+ # @see https://docs.datadoghq.com/tracing/setup_overview/setup/ruby/#trace-correlation
231
+ # @return [Boolean]
232
+ option :log_injection do |o|
233
+ o.env Tracing::Configuration::Ext::Correlation::ENV_LOGS_INJECTION_ENABLED
234
+ o.default true
235
+ o.type :bool
236
+ end
237
+
238
+ # Configures an alternative trace transport behavior, where
239
+ # traces can be sent to the agent and backend before all spans
240
+ # have finished.
241
+ #
242
+ # This is useful for long-running jobs or very large traces.
243
+ #
244
+ # The trace flame graph will display the partial trace as it is received and constantly
245
+ # update with new spans as they are flushed.
246
+ # @public_api
247
+ settings :partial_flush do
248
+ # Enable partial trace flushing.
249
+ #
250
+ # @default `false`
251
+ # @return [Boolean]
252
+ option :enabled, default: false, type: :bool
253
+
254
+ # Minimum number of finished spans required in a single unfinished trace before
255
+ # the tracer will consider that trace for partial flushing.
256
+ #
257
+ # This option helps preserve a minimum amount of batching in the
258
+ # flushing process, reducing network overhead.
259
+ #
260
+ # This threshold only applies to unfinished traces. Traces that have finished
261
+ # are always flushed immediately.
262
+ #
263
+ # @default 500
264
+ # @return [Integer]
265
+ option :min_spans_threshold, default: 500, type: :int
266
+ end
267
+
268
+ # Enables {https://docs.datadoghq.com/tracing/trace_retention_and_ingestion/#datadog-intelligent-retention-filter
269
+ # Datadog intelligent retention filter}.
270
+ # @default `true`
271
+ # @return [Boolean,nil]
272
+ option :priority_sampling
273
+
274
+ option :report_hostname do |o|
275
+ o.env Tracing::Configuration::Ext::NET::ENV_REPORT_HOSTNAME
276
+ o.default false
277
+ o.type :bool
278
+ end
279
+
280
+ # A custom sampler instance.
281
+ # The object must respect the {Datadog::Tracing::Sampling::Sampler} interface.
282
+ # @default `nil`
283
+ # @return [Object,nil]
284
+ option :sampler
285
+
286
+ # Client-side sampling configuration.
287
+ # @see https://docs.datadoghq.com/tracing/trace_ingestion/mechanisms/
288
+ # @public_api
289
+ settings :sampling do
290
+ # Default sampling rate for the tracer.
291
+ #
292
+ # If `nil`, the trace uses an automatic sampling strategy that tries to ensure
293
+ # the collection of traces that are considered important (e.g. traces with an error, traces
294
+ # for resources not seen recently).
295
+ #
296
+ # @default `DD_TRACE_SAMPLE_RATE` environment variable, otherwise `nil`.
297
+ # @return [Float, nil]
298
+ option :default_rate do |o|
299
+ o.type :float, nilable: true
300
+ o.env Tracing::Configuration::Ext::Sampling::ENV_SAMPLE_RATE
301
+ end
302
+
303
+ # Rate limit for number of spans per second.
304
+ #
305
+ # Spans created above the limit will contribute to service metrics, but won't
306
+ # have their payload stored.
307
+ #
308
+ # @default `DD_TRACE_RATE_LIMIT` environment variable, otherwise 100.
309
+ # @return [Numeric,nil]
310
+ option :rate_limit do |o|
311
+ o.type :int, nilable: true
312
+ o.env Tracing::Configuration::Ext::Sampling::ENV_RATE_LIMIT
313
+ o.default 100
314
+ end
315
+
316
+ # Trace sampling rules.
317
+ # These rules control whether a trace is kept or dropped by the tracer.
318
+ #
319
+ # The `rules` format is a String with a JSON array of objects:
320
+ # Each object must have a `sample_rate`, and the `name` and `service` fields
321
+ # are optional. The `sample_rate` value must be between 0.0 and 1.0 (inclusive).
322
+ # `name` and `service` are Strings that allow the `sample_rate` to be applied only
323
+ # to traces matching the `name` and `service`.
324
+ #
325
+ # @default `DD_TRACE_SAMPLING_RULES` environment variable. Otherwise `nil`.
326
+ # @return [String,nil]
327
+ # @public_api
328
+ option :rules do |o|
329
+ o.default { ENV.fetch(Configuration::Ext::Sampling::ENV_RULES, nil) }
330
+ end
331
+
332
+ # Single span sampling rules.
333
+ # These rules allow a span to be kept when its encompassing trace is dropped.
334
+ #
335
+ # The syntax for single span sampling rules can be found here:
336
+ # TODO: <Single Span Sampling documentation URL here>
337
+ #
338
+ # @default `DD_SPAN_SAMPLING_RULES` environment variable.
339
+ # Otherwise, `ENV_SPAN_SAMPLING_RULES_FILE` environment variable.
340
+ # Otherwise `nil`.
341
+ # @return [String,nil]
342
+ # @public_api
343
+ option :span_rules do |o|
344
+ o.type :string, nilable: true
345
+ o.default do
346
+ rules = ENV[Tracing::Configuration::Ext::Sampling::Span::ENV_SPAN_SAMPLING_RULES]
347
+ rules_file = ENV[Tracing::Configuration::Ext::Sampling::Span::ENV_SPAN_SAMPLING_RULES_FILE]
348
+
349
+ if rules
350
+ if rules_file
351
+ Datadog.logger.warn(
352
+ 'Both DD_SPAN_SAMPLING_RULES and DD_SPAN_SAMPLING_RULES_FILE were provided: only ' \
353
+ 'DD_SPAN_SAMPLING_RULES will be used. Please do not provide DD_SPAN_SAMPLING_RULES_FILE when ' \
354
+ 'also providing DD_SPAN_SAMPLING_RULES as their configuration conflicts. ' \
355
+ "DD_SPAN_SAMPLING_RULES_FILE=#{rules_file} DD_SPAN_SAMPLING_RULES=#{rules}"
356
+ )
357
+ end
358
+ rules
359
+ elsif rules_file
360
+ begin
361
+ File.read(rules_file)
362
+ rescue => e
363
+ # `File#read` errors have clear and actionable messages, no need to add extra exception info.
364
+ Datadog.logger.warn(
365
+ "Cannot read span sampling rules file `#{rules_file}`: #{e.message}." \
366
+ 'No span sampling rules will be applied.'
367
+ )
368
+ nil
369
+ end
370
+ end
371
+ end
372
+ end
373
+ end
374
+
375
+ # [Continuous Integration Visibility](https://docs.datadoghq.com/continuous_integration/) configuration.
376
+ # @public_api
377
+ settings :test_mode do
378
+ # Enable test mode. This allows the tracer to collect spans from test runs.
379
+ #
380
+ # It also prevents the tracer from collecting spans in a production environment. Only use in a test environment.
381
+ #
382
+ # @default `DD_TRACE_TEST_MODE_ENABLED` environment variable, otherwise `false`
383
+ # @return [Boolean]
384
+ option :enabled do |o|
385
+ o.type :bool
386
+ o.default false
387
+ o.env Tracing::Configuration::Ext::Test::ENV_MODE_ENABLED
388
+ end
389
+
390
+ # Use async writer in test mode
391
+ option :async do |o|
392
+ o.type :bool
393
+ o.default false
394
+ end
395
+
396
+ option :trace_flush
397
+
398
+ option :writer_options do |o|
399
+ o.type :hash
400
+ o.default({})
401
+ end
402
+ end
403
+
404
+ # @see file:docs/GettingStarted.md#configuring-the-transport-layer Configuring the transport layer
405
+ #
406
+ # A {Proc} that configures a custom tracer transport.
407
+ # @yield Receives a {Datadog::Tracing::Transport::HTTP} that can be modified with custom adapters and settings.
408
+ # @yieldparam [Datadog::Tracing::Transport::HTTP] t transport to be configured.
409
+ # @default `nil`
410
+ # @return [Proc,nil]
411
+ option :transport_options do |o|
412
+ o.type :proc, nilable: true
413
+ o.default nil
414
+ end
415
+ # A custom writer instance.
416
+ # The object must respect the {Datadog::Tracing::Writer} interface.
417
+ #
418
+ # This option is recommended for internal use only.
419
+ #
420
+ # @default `nil`
421
+ # @return [Object,nil]
422
+ option :writer
423
+
424
+ # A custom {Hash} with keyword options to be passed to {Datadog::Tracing::Writer#initialize}.
425
+ #
426
+ # This option is recommended for internal use only.
427
+ #
428
+ # @default `{}`
429
+ # @return [Hash]
430
+ option :writer_options do |o|
431
+ o.type :hash
432
+ o.default({})
433
+ end
434
+
435
+ # Client IP configuration
436
+ # @public_api
437
+ settings :client_ip do
438
+ # Whether client IP collection is enabled. When enabled client IPs from HTTP requests will
439
+ # be reported in traces.
440
+ #
441
+ # Usage of the DD_TRACE_CLIENT_IP_HEADER_DISABLED environment variable is deprecated.
442
+ #
443
+ # @see https://docs.datadoghq.com/tracing/configure_data_security#configuring-a-client-ip-header
444
+ #
445
+ # @default `DD_TRACE_CLIENT_IP_ENABLED` environment variable, otherwise `false`.
446
+ # @return [Boolean]
447
+ option :enabled do |o|
448
+ o.type :bool
449
+ o.default do
450
+ disabled = Core::Environment::VariableHelpers.env_to_bool(Tracing::Configuration::Ext::ClientIp::ENV_DISABLED)
451
+
452
+ enabled = if disabled.nil?
453
+ false
454
+ else
455
+ Datadog::Core.log_deprecation do
456
+ "#{Tracing::Configuration::Ext::ClientIp::ENV_DISABLED} environment variable is deprecated, use #{Tracing::Configuration::Ext::ClientIp::ENV_ENABLED} instead."
457
+ end
458
+
459
+ !disabled
460
+ end
461
+
462
+ # ENABLED env var takes precedence over deprecated DISABLED
463
+ Core::Environment::VariableHelpers.env_to_bool(Tracing::Configuration::Ext::ClientIp::ENV_ENABLED, enabled)
464
+ end
465
+ end
466
+
467
+ # An optional name of a custom header to resolve the client IP from.
468
+ #
469
+ # @default `DD_TRACE_CLIENT_IP_HEADER` environment variable, otherwise `nil`.
470
+ # @return [String,nil]
471
+ option :header_name do |o|
472
+ o.type :string, nilable: true
473
+ o.env Tracing::Configuration::Ext::ClientIp::ENV_HEADER_NAME
474
+ end
475
+ end
476
+
477
+ # Maximum size for the `x-datadog-tags` distributed trace tags header.
478
+ #
479
+ # If the serialized size of distributed trace tags is larger than this value, it will
480
+ # not be parsed if incoming, nor exported if outgoing. An error message will be logged
481
+ # in this case.
482
+ #
483
+ # @default `DD_TRACE_X_DATADOG_TAGS_MAX_LENGTH` environment variable, otherwise `512`
484
+ # @return [Integer]
485
+ option :x_datadog_tags_max_length do |o|
486
+ o.type :int
487
+ o.env Tracing::Configuration::Ext::Distributed::ENV_X_DATADOG_TAGS_MAX_LENGTH
488
+ o.default 512
489
+ end
490
+ end
491
+ end
492
+ end
493
+ end
494
+ # rubocop:enable Metrics/AbcSize
495
+ # rubocop:enable Metrics/BlockLength
496
+ # rubocop:enable Metrics/CyclomaticComplexity
497
+ # rubocop:enable Metrics/MethodLength
498
+ # rubocop:enable Layout/LineLength
499
+ end
500
+ end
501
+ end
@@ -0,0 +1,68 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative '../core/utils/forking'
4
+
5
+ module Datadog
6
+ module Tracing
7
+ # {Datadog::Tracing::Context} is used to keep track of a the active trace for the current
8
+ # execution flow. During each logical execution, the same {Datadog::Tracing::Context} is
9
+ # used to represent a single logical trace, even if the trace is built
10
+ # asynchronously.
11
+ #
12
+ # A single code execution may use multiple {Datadog::Tracing::Context} if part of the execution
13
+ # must not be related to the current tracing. As example, a delayed job may
14
+ # compose a standalone trace instead of being related to the same trace that
15
+ # generates the job itself. On the other hand, if it's part of the same
16
+ # {Datadog::Tracing::Context}, it will be related to the original trace.
17
+ class Context
18
+ include Core::Utils::Forking
19
+
20
+ attr_reader \
21
+ :active_trace
22
+
23
+ def initialize(
24
+ trace: nil
25
+ )
26
+ activate!(trace)
27
+ end
28
+
29
+ # Handles trace activation.
30
+ #
31
+ # Permits nil, allowing traces to be deactivated.
32
+ #
33
+ # If given a block, it will reset to the original
34
+ # trace after the block completes.
35
+ #
36
+ # When restoring the original trace, if it is finished,
37
+ # it will deactivate it. This prevents the context from
38
+ # holding references to completed traces thereby releasing
39
+ # its memory.
40
+ def activate!(trace)
41
+ if block_given?
42
+ begin
43
+ original_trace = @active_trace
44
+ set_active_trace!(trace)
45
+ yield
46
+ ensure
47
+ set_active_trace!(original_trace)
48
+ end
49
+ else
50
+ set_active_trace!(trace)
51
+ end
52
+ end
53
+
54
+ # Creates a copy of the context, when forked.
55
+ def fork_clone
56
+ forked_trace = @active_trace && @active_trace.fork_clone
57
+ self.class.new(trace: forked_trace)
58
+ end
59
+
60
+ private
61
+
62
+ def set_active_trace!(trace)
63
+ # Don't retain finished traces
64
+ @active_trace = trace && !trace.finished? ? trace : nil
65
+ end
66
+ end
67
+ end
68
+ end