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,293 @@
1
+ require_relative 'configuration/components'
2
+ require_relative 'configuration/settings'
3
+ require_relative 'telemetry/emitter'
4
+ require_relative 'logger'
5
+ require_relative 'pin'
6
+
7
+ module Datadog
8
+ module Core
9
+ # Configuration provides a unique access point for configurations
10
+ module Configuration
11
+ # Used to ensure that @components initialization/reconfiguration is performed one-at-a-time, by a single thread.
12
+ #
13
+ # This is important because components can end up being accessed from multiple application threads (for instance on
14
+ # a threaded webserver), and we don't want their initialization to clash (for instance, starting two profilers...).
15
+ #
16
+ # Note that a Mutex **IS NOT** reentrant: the same thread cannot grab the same Mutex more than once.
17
+ # This means below we are careful not to nest calls to methods that would trigger initialization and grab the lock.
18
+ #
19
+ # Every method that directly or indirectly mutates @components should be holding the lock (through
20
+ # #safely_synchronize) while doing so.
21
+ COMPONENTS_WRITE_LOCK = Mutex.new
22
+ private_constant :COMPONENTS_WRITE_LOCK
23
+
24
+ # We use a separate lock when reading the @components, so that they continue to be accessible during reconfiguration.
25
+ # This was needed because we ran into several issues where we still needed to read the old
26
+ # components while the COMPONENTS_WRITE_LOCK was being held (see https://github.com/DataDog/dd-trace-rb/pull/1387
27
+ # and https://github.com/DataDog/dd-trace-rb/pull/1373#issuecomment-799593022 ).
28
+ #
29
+ # Technically on MRI we could get away without this lock, but on non-MRI Rubies, we may run into issues because
30
+ # we fall into the "UnsafeDCLFactory" case of https://shipilev.net/blog/2014/safe-public-construction/ .
31
+ # Specifically, on JRuby reads from the @components do NOT have volatile semantics, and on TruffleRuby they do
32
+ # BUT just as an implementation detail, see https://github.com/jruby/jruby/wiki/Concurrency-in-jruby#volatility and
33
+ # https://github.com/DataDog/dd-trace-rb/pull/1329#issuecomment-776750377 .
34
+ # Concurrency is hard.
35
+ COMPONENTS_READ_LOCK = Mutex.new
36
+ private_constant :COMPONENTS_READ_LOCK
37
+
38
+ attr_writer :configuration
39
+
40
+ # Current Datadog configuration.
41
+ #
42
+ # Access to non-global configuration will raise an error.
43
+ #
44
+ # To modify the configuration, use {.configure}.
45
+ #
46
+ # @return [Datadog::Core::Configuration::Settings]
47
+ # @!attribute [r] configuration
48
+ # @public_api
49
+ def configuration
50
+ @configuration ||= Settings.new
51
+ end
52
+
53
+ # Apply global configuration changes to `Datadog`. An example of a {.configure} call:
54
+ #
55
+ # ```
56
+ # Datadog.configure do |c|
57
+ # c.service = 'my-service'
58
+ # c.env = 'staging'
59
+ # # c.diagnostics.debug = true # Enables debug output
60
+ # end
61
+ # ```
62
+ #
63
+ # See {Datadog::Core::Configuration::Settings} for all available options, defaults, and
64
+ # available environment variables for configuration.
65
+ #
66
+ # Only permits access to global configuration settings; others will raise an error.
67
+ # If you wish to configure a setting for a specific Datadog component (e.g. Tracing),
68
+ # use the corresponding `Datadog::COMPONENT.configure` method instead.
69
+ #
70
+ # Because many configuration changes require restarting internal components,
71
+ # invoking {.configure} is the only safe way to change `Datadog` configuration.
72
+ #
73
+ # Successive calls to {.configure} maintain the previous configuration values:
74
+ # configuration is additive between {.configure} calls.
75
+ #
76
+ # The yielded configuration `c` comes pre-populated from environment variables, if
77
+ # any are applicable.
78
+ #
79
+ # @yieldparam [Datadog::Core::Configuration::Settings] c the mutable configuration object
80
+ def configure
81
+ configuration = self.configuration
82
+ yield(configuration)
83
+
84
+ safely_synchronize do |write_components|
85
+ write_components.call(
86
+ if components?
87
+ replace_components!(configuration, @components)
88
+ else
89
+ components = build_components(configuration)
90
+ components.telemetry.started!
91
+ components
92
+ end
93
+ )
94
+ end
95
+
96
+ configuration
97
+ end
98
+
99
+ # Apply configuration changes only to a specific Ruby object.
100
+ #
101
+ # Certain integrations or Datadog features may use these
102
+ # settings to customize behavior for this object.
103
+ #
104
+ # An example of a {.configure_onto} call:
105
+ #
106
+ # ```
107
+ # client = Net::HTTP.new(host, port)
108
+ # Datadog.configure_onto(client, service_name: 'api-requests', split_by_domain: true)
109
+ # ```
110
+ #
111
+ # In this example, it will configure the `client` object with custom options
112
+ # `service_name: 'api-requests', split_by_domain: true`. The `Net::HTTP` integration
113
+ # will then use these customized options when the `client` is used, whereas other
114
+ # clients will use the `service_name: 'http-requests'` configuration provided to the
115
+ # `Datadog.configure` call block.
116
+ #
117
+ # {.configure_onto} is used to separate cases where spans generated by certain objects
118
+ # require exceptional options.
119
+ #
120
+ # The configuration keyword arguments provided should match well known options defined
121
+ # in the integration or feature that would use them.
122
+ #
123
+ # For example, for `Datadog.configure_onto(redis_client, **opts)`, `opts` can be
124
+ # any of the options in the Redis {Datadog::Tracing::Contrib::Redis::Configuration::Settings} class.
125
+ #
126
+ # @param [Object] target the object to receive configuration options
127
+ # @param [Hash] opts keyword arguments respective to the integration this object belongs to
128
+ # @public_api
129
+ def configure_onto(target, **opts)
130
+ Pin.set_on(target, **opts)
131
+ end
132
+
133
+ # Get configuration changes applied only to a specific Ruby object, via {.configure_onto}.
134
+ # An example of an object with specific configuration:
135
+ #
136
+ # ```
137
+ # client = Net::HTTP.new(host, port)
138
+ # Datadog.configure_onto(client, service_name: 'api-requests', split_by_domain: true)
139
+ # config = Datadog.configuration_for(client)
140
+ # config[:service_name] # => 'api-requests'
141
+ # config[:split_by_domain] # => true
142
+ # ```
143
+ #
144
+ # @param [Object] target the object to receive configuration options
145
+ # @param [Object] option an option to retrieve from the object configuration
146
+ # @public_api
147
+ def configuration_for(target, option = nil)
148
+ pin = Pin.get_from(target)
149
+ return pin unless option
150
+
151
+ pin[option] if pin
152
+ end
153
+
154
+ # Internal {Datadog::Statsd} metrics collection.
155
+ #
156
+ # The list of metrics collected can be found in {Datadog::Core::Diagnostics::Ext::Health::Metrics}.
157
+ # @public_api
158
+ def health_metrics
159
+ components.health_metrics
160
+ end
161
+
162
+ def logger
163
+ # avoid initializing components if they didn't already exist
164
+ current_components = components(allow_initialization: false)
165
+
166
+ if current_components
167
+ @temp_logger = nil
168
+ current_components.logger
169
+ else
170
+ logger_without_components
171
+ end
172
+ end
173
+
174
+ # Gracefully shuts down all components.
175
+ #
176
+ # Components will still respond to method calls as usual,
177
+ # but might not internally perform their work after shutdown.
178
+ #
179
+ # This avoids errors being raised across the host application
180
+ # during shutdown, while allowing for graceful decommission of resources.
181
+ #
182
+ # Components won't be automatically reinitialized after a shutdown.
183
+ def shutdown!
184
+ safely_synchronize do
185
+ @components.shutdown! if components?
186
+ end
187
+ end
188
+
189
+ protected
190
+
191
+ def components(allow_initialization: true)
192
+ current_components = COMPONENTS_READ_LOCK.synchronize { defined?(@components) && @components }
193
+ return current_components if current_components || !allow_initialization
194
+
195
+ safely_synchronize do |write_components|
196
+ (defined?(@components) && @components) || write_components.call(build_components(configuration))
197
+ end
198
+ end
199
+
200
+ private
201
+
202
+ # Gracefully shuts down Datadog components and disposes of component references,
203
+ # allowing execution to start anew.
204
+ #
205
+ # In contrast with +#shutdown!+, components will be automatically
206
+ # reinitialized after a reset.
207
+ #
208
+ # Used internally to ensure a clean environment between test runs.
209
+ def reset!
210
+ safely_synchronize do |write_components|
211
+ if components?
212
+ @components.shutdown!
213
+ @temp_logger = nil # Reset to ensure instance and log level are reset for next run
214
+ end
215
+
216
+ write_components.call(nil)
217
+ configuration.reset!
218
+ end
219
+ end
220
+
221
+ def safely_synchronize
222
+ # Writes to @components should only happen through this proc. Because this proc is only accessible to callers of
223
+ # safely_synchronize, this forces all writers to go through this method.
224
+ write_components = proc do |new_value|
225
+ COMPONENTS_READ_LOCK.synchronize { @components = new_value }
226
+ end
227
+
228
+ COMPONENTS_WRITE_LOCK.synchronize do
229
+ begin
230
+ yield write_components
231
+ rescue ThreadError => e
232
+ logger_without_components.error(
233
+ 'Detected deadlock during ddtrace initialization. ' \
234
+ 'Please report this at https://github.com/DataDog/dd-trace-rb/blob/master/CONTRIBUTING.md#found-a-bug' \
235
+ "\n\tSource:\n\t#{Array(e.backtrace).join("\n\t")}"
236
+ )
237
+ nil
238
+ end
239
+ end
240
+ end
241
+
242
+ def components?
243
+ # This does not need to grab the COMPONENTS_READ_LOCK because it's not returning the components
244
+ (defined?(@components) && @components) != nil
245
+ end
246
+
247
+ def build_components(settings)
248
+ components = Components.new(settings)
249
+ components.startup!(settings)
250
+ components
251
+ end
252
+
253
+ def replace_components!(settings, old)
254
+ components = Components.new(settings)
255
+
256
+ old.shutdown!(components)
257
+ components.startup!(settings)
258
+ components
259
+ end
260
+
261
+ def logger_without_components
262
+ # Use default logger without initializing components.
263
+ # This enables logging during initialization, otherwise we'd run into deadlocks.
264
+ @temp_logger ||= begin
265
+ logger = configuration.logger.instance || Core::Logger.new($stdout)
266
+ logger.level = configuration.diagnostics.debug ? ::Logger::DEBUG : configuration.logger.level
267
+ logger
268
+ end
269
+ end
270
+
271
+ # Called from our at_exit hook whenever there was a pending Interrupt exception (e.g. typically due to ctrl+c)
272
+ # to print a nice message whenever we're taking a bit longer than usual to finish the process.
273
+ def handle_interrupt_shutdown!
274
+ logger = Datadog.logger
275
+ shutdown_thread = Thread.new { shutdown! }
276
+ unless Gem::Version.new(RUBY_VERSION) < Gem::Version.new('2.3')
277
+ shutdown_thread.name = Datadog::Core::Configuration.name
278
+ end
279
+
280
+ print_message_treshold_seconds = 0.2
281
+
282
+ slow_shutdown = shutdown_thread.join(print_message_treshold_seconds).nil?
283
+
284
+ if slow_shutdown
285
+ logger.info 'Reporting remaining data... Press ctrl+c to exit immediately.'
286
+ shutdown_thread.join
287
+ end
288
+
289
+ nil
290
+ end
291
+ end
292
+ end
293
+ end
@@ -0,0 +1,182 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'date'
4
+ require 'json'
5
+ require 'rbconfig'
6
+
7
+ module Datadog
8
+ module Core
9
+ module Diagnostics
10
+ # Base class for EnvironmentLoggers - should allow for easy reporting by users to Datadog support.
11
+ module EnvironmentLogging
12
+ def log_configuration!(prefix, data)
13
+ logger.info("DATADOG CONFIGURATION - #{prefix} - #{data}")
14
+ end
15
+
16
+ def log_error!(prefix, type, error)
17
+ logger.warn("DATADOG ERROR - #{prefix} - #{type}: #{error}")
18
+ end
19
+
20
+ protected
21
+
22
+ def logger
23
+ Datadog.logger
24
+ end
25
+
26
+ # If logger should log and hasn't logged already, then output environment configuration and possible errors.
27
+ def log_once!
28
+ # Check if already been executed
29
+ return false if (defined?(@executed) && @executed) || !log?
30
+
31
+ yield if block_given?
32
+
33
+ @executed = true
34
+ end
35
+
36
+ # Are we logging the environment data?
37
+ def log?
38
+ startup_logs_enabled = Datadog.configuration.diagnostics.startup_logs.enabled
39
+ if startup_logs_enabled.nil?
40
+ !repl? && !rspec? # Suppress logs if we are running in a REPL or rspec
41
+ else
42
+ startup_logs_enabled
43
+ end
44
+ end
45
+
46
+ REPL_PROGRAM_NAMES = %w[irb pry].freeze
47
+
48
+ def repl?
49
+ REPL_PROGRAM_NAMES.include?($PROGRAM_NAME)
50
+ end
51
+
52
+ def rspec?
53
+ $PROGRAM_NAME.end_with?('rspec')
54
+ end
55
+ end
56
+
57
+ # Collects and logs Core diagnostic information
58
+ module EnvironmentLogger
59
+ extend EnvironmentLogging
60
+
61
+ def self.collect_and_log!
62
+ log_once! do
63
+ data = EnvironmentCollector.collect_config!
64
+ log_configuration!('CORE', data.to_json)
65
+ end
66
+ rescue => e
67
+ logger.warn("Failed to collect core environment information: #{e} Location: #{Array(e.backtrace).first}")
68
+ end
69
+ end
70
+
71
+ # Collects environment information for Core diagnostic logging
72
+ module EnvironmentCollector
73
+ class << self
74
+ def collect_config!
75
+ {
76
+ date: date,
77
+ os_name: os_name,
78
+ version: version,
79
+ lang: lang,
80
+ lang_version: lang_version,
81
+ env: env,
82
+ service: service,
83
+ dd_version: dd_version,
84
+ debug: debug,
85
+ tags: tags,
86
+ runtime_metrics_enabled: runtime_metrics_enabled,
87
+ vm: vm,
88
+ health_metrics_enabled: health_metrics_enabled
89
+ }
90
+ end
91
+
92
+ # @return [String] current time in ISO8601 format
93
+ def date
94
+ DateTime.now.iso8601
95
+ end
96
+
97
+ # Best portable guess of OS information.
98
+ # @return [String] platform string
99
+ def os_name
100
+ RbConfig::CONFIG['host']
101
+ end
102
+
103
+ # @return [String] ddtrace version
104
+ def version
105
+ DDTrace::VERSION::STRING
106
+ end
107
+
108
+ # @return [String] "ruby"
109
+ def lang
110
+ Core::Environment::Ext::LANG
111
+ end
112
+
113
+ # Supported Ruby language version.
114
+ # Will be distinct from VM version for non-MRI environments.
115
+ # @return [String]
116
+ def lang_version
117
+ Core::Environment::Ext::LANG_VERSION
118
+ end
119
+
120
+ # @return [String] configured application environment
121
+ def env
122
+ Datadog.configuration.env
123
+ end
124
+
125
+ # @return [String] configured application service name
126
+ def service
127
+ Datadog.configuration.service
128
+ end
129
+
130
+ # @return [String] configured application version
131
+ def dd_version
132
+ Datadog.configuration.version
133
+ end
134
+
135
+ # @return [Boolean, nil] debug mode enabled in configuration
136
+ def debug
137
+ !!Datadog.configuration.diagnostics.debug
138
+ end
139
+
140
+ # @return [Hash, nil] concatenated list of global tracer tags configured
141
+ def tags
142
+ tags = Datadog.configuration.tags
143
+ return nil if tags.empty?
144
+
145
+ hash_serializer(tags)
146
+ end
147
+
148
+ # @return [Boolean, nil] runtime metrics enabled in configuration
149
+ def runtime_metrics_enabled
150
+ Datadog.configuration.runtime_metrics.enabled
151
+ end
152
+
153
+ # Ruby VM name and version.
154
+ # Examples: "ruby-2.7.1", "jruby-9.2.11.1", "truffleruby-20.1.0"
155
+ # @return [String, nil]
156
+ def vm
157
+ # RUBY_ENGINE_VERSION returns the VM version, which
158
+ # will differ from RUBY_VERSION for non-mri VMs.
159
+ if defined?(RUBY_ENGINE_VERSION)
160
+ "#{RUBY_ENGINE}-#{RUBY_ENGINE_VERSION}"
161
+ else
162
+ # Ruby < 2.3 doesn't support RUBY_ENGINE_VERSION
163
+ "#{RUBY_ENGINE}-#{RUBY_VERSION}"
164
+ end
165
+ end
166
+
167
+ # @return [Boolean, nil] health metrics enabled in configuration
168
+ def health_metrics_enabled
169
+ !!Datadog.configuration.diagnostics.health_metrics.enabled
170
+ end
171
+
172
+ private
173
+
174
+ # Outputs "k1:v1,k2:v2,..."
175
+ def hash_serializer(h)
176
+ h.map { |k, v| "#{k}:#{v}" }.join(',')
177
+ end
178
+ end
179
+ end
180
+ end
181
+ end
182
+ end
@@ -0,0 +1,19 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative '../metrics/client'
4
+ require_relative '../../tracing/diagnostics/health'
5
+
6
+ module Datadog
7
+ module Core
8
+ module Diagnostics
9
+ # Health-related diagnostics
10
+ module Health
11
+ # Health metrics for diagnostics
12
+ class Metrics < Core::Metrics::Client
13
+ # TODO: Don't reference this. Have tracing add its metrics behavior.
14
+ extend Tracing::Diagnostics::Health::Metrics
15
+ end
16
+ end
17
+ end
18
+ end
19
+ end
@@ -0,0 +1,72 @@
1
+ require 'json'
2
+ require 'msgpack'
3
+
4
+ module Datadog
5
+ module Core
6
+ # Encoding module that encodes data for the AgentTransport
7
+ module Encoding
8
+ # Encoder interface that provides the logic to encode traces and service
9
+ # @abstract
10
+ module Encoder
11
+ def content_type
12
+ raise NotImplementedError
13
+ end
14
+
15
+ # Concatenates a list of elements previously encoded by +#encode+.
16
+ def join(encoded_elements)
17
+ raise NotImplementedError
18
+ end
19
+
20
+ # Serializes a single trace into a String suitable for network transmission.
21
+ def encode(_)
22
+ raise NotImplementedError
23
+ end
24
+ end
25
+
26
+ # Encoder for the JSON format
27
+ module JSONEncoder
28
+ extend Encoder
29
+
30
+ CONTENT_TYPE = 'application/json'.freeze
31
+
32
+ module_function
33
+
34
+ def content_type
35
+ CONTENT_TYPE
36
+ end
37
+
38
+ def encode(obj)
39
+ JSON.dump(obj)
40
+ end
41
+
42
+ def join(encoded_data)
43
+ "[#{encoded_data.join(',')}]"
44
+ end
45
+ end
46
+
47
+ # Encoder for the Msgpack format
48
+ module MsgpackEncoder
49
+ extend Encoder
50
+
51
+ module_function
52
+
53
+ CONTENT_TYPE = 'application/msgpack'.freeze
54
+
55
+ def content_type
56
+ CONTENT_TYPE
57
+ end
58
+
59
+ def encode(obj)
60
+ MessagePack.pack(obj)
61
+ end
62
+
63
+ def join(encoded_data)
64
+ packer = MessagePack::Packer.new
65
+ packer.write_array_header(encoded_data.size)
66
+
67
+ (packer.buffer.to_a + encoded_data).join
68
+ end
69
+ end
70
+ end
71
+ end
72
+ end
@@ -1,5 +1,4 @@
1
- # typed: true
2
- require 'datadog/core/environment/ext'
1
+ require_relative 'ext'
3
2
 
4
3
  module Datadog
5
4
  module Core
@@ -9,8 +8,6 @@ module Datadog
9
8
  # about the current Linux container identity.
10
9
  # @see https://man7.org/linux/man-pages/man7/cgroups.7.html
11
10
  module Cgroup
12
- include Kernel # Ensure that kernel methods are always available (https://sorbet.org/docs/error-reference#7003)
13
-
14
11
  LINE_REGEX = /^(\d+):([^:]*):(.+)$/.freeze
15
12
 
16
13
  Descriptor = Struct.new(
@@ -34,7 +31,9 @@ module Datadog
34
31
  end
35
32
  end
36
33
  rescue StandardError => e
37
- Datadog.logger.error("Error while parsing cgroup. Cause: #{e.message} Location: #{Array(e.backtrace).first}")
34
+ Datadog.logger.error(
35
+ "Error while parsing cgroup. Cause: #{e.class.name} #{e.message} Location: #{Array(e.backtrace).first}"
36
+ )
38
37
  end
39
38
  end
40
39
  end
@@ -1,4 +1,5 @@
1
- # typed: true
1
+ # frozen_string_literal: true
2
+
2
3
  module Datadog
3
4
  module Core
4
5
  module Environment
@@ -1,13 +1,10 @@
1
- # typed: true
2
- require 'datadog/core/environment/cgroup'
1
+ require_relative 'cgroup'
3
2
 
4
3
  module Datadog
5
4
  module Core
6
5
  module Environment
7
6
  # For container environments
8
7
  module Container
9
- include Kernel # Ensure that kernel methods are always available (https://sorbet.org/docs/error-reference#7003)
10
-
11
8
  UUID_PATTERN = '[0-9a-f]{8}[-_]?[0-9a-f]{4}[-_]?[0-9a-f]{4}[-_]?[0-9a-f]{4}[-_]?[0-9a-f]{12}'.freeze
12
9
  CONTAINER_PATTERN = '[0-9a-f]{64}'.freeze
13
10
 
@@ -80,7 +77,8 @@ module Datadog
80
77
  end
81
78
  rescue StandardError => e
82
79
  Datadog.logger.error(
83
- "Error while parsing container info. Cause: #{e.message} Location: #{Array(e.backtrace).first}"
80
+ "Error while parsing container info. Cause: #{e.class.name} #{e.message} " \
81
+ "Location: #{Array(e.backtrace).first}"
84
82
  )
85
83
  end
86
84
  end