ddtrace 0.54.2 → 1.0.0.beta1

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 (1062) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +3 -0
  3. data/LICENSE-3rdparty.csv +2 -1
  4. data/README.md +4 -0
  5. data/bin/ddtracerb +5 -5
  6. data/ddtrace.gemspec +7 -4
  7. data/docs/0.x-trace.png +0 -0
  8. data/docs/1.0-trace.png +0 -0
  9. data/docs/AutoInstrumentation.md +36 -0
  10. data/docs/Deprecation.md +8 -0
  11. data/docs/DevelopmentGuide.md +1 -1
  12. data/docs/GettingStarted.md +408 -431
  13. data/docs/ProfilingDevelopment.md +12 -9
  14. data/docs/PublicApi.md +14 -0
  15. data/docs/UpgradeGuide.md +557 -0
  16. data/lib/datadog/appsec/assets/blocked.html +4 -0
  17. data/lib/datadog/appsec/assets/waf_rules/README.md +7 -0
  18. data/lib/datadog/appsec/assets/waf_rules/recommended.json +5708 -0
  19. data/lib/datadog/appsec/assets/waf_rules/risky.json +1439 -0
  20. data/lib/datadog/appsec/assets/waf_rules/strict.json +1361 -0
  21. data/lib/datadog/appsec/assets.rb +36 -0
  22. data/lib/datadog/appsec/autoload.rb +16 -0
  23. data/lib/datadog/appsec/configuration/settings.rb +173 -0
  24. data/lib/datadog/appsec/configuration.rb +70 -0
  25. data/lib/datadog/appsec/contrib/auto_instrument.rb +27 -0
  26. data/lib/datadog/appsec/contrib/configuration/settings.rb +18 -0
  27. data/lib/datadog/appsec/contrib/integration.rb +35 -0
  28. data/lib/datadog/appsec/contrib/patcher.rb +10 -0
  29. data/lib/datadog/appsec/contrib/rack/configuration/settings.rb +20 -0
  30. data/lib/datadog/appsec/contrib/rack/ext.rb +13 -0
  31. data/lib/datadog/appsec/contrib/rack/gateway/watcher.rb +128 -0
  32. data/lib/datadog/appsec/contrib/rack/integration.rb +48 -0
  33. data/lib/datadog/appsec/contrib/rack/patcher.rb +33 -0
  34. data/lib/datadog/appsec/contrib/rack/reactive/request.rb +85 -0
  35. data/lib/datadog/appsec/contrib/rack/reactive/response.rb +62 -0
  36. data/lib/datadog/appsec/contrib/rack/request.rb +43 -0
  37. data/lib/datadog/appsec/contrib/rack/request_middleware.rb +98 -0
  38. data/lib/datadog/appsec/contrib/rack/response.rb +22 -0
  39. data/lib/datadog/appsec/contrib/rails/configuration/settings.rb +20 -0
  40. data/lib/datadog/appsec/contrib/rails/ext.rb +13 -0
  41. data/lib/datadog/appsec/contrib/rails/framework.rb +28 -0
  42. data/lib/datadog/appsec/contrib/rails/integration.rb +48 -0
  43. data/lib/datadog/appsec/contrib/rails/patcher.rb +125 -0
  44. data/lib/datadog/appsec/contrib/rails/request_middleware.rb +18 -0
  45. data/lib/datadog/appsec/contrib/sinatra/configuration/settings.rb +20 -0
  46. data/lib/datadog/appsec/contrib/sinatra/ext.rb +13 -0
  47. data/lib/datadog/appsec/contrib/sinatra/framework.rb +32 -0
  48. data/lib/datadog/appsec/contrib/sinatra/integration.rb +48 -0
  49. data/lib/datadog/appsec/contrib/sinatra/patcher.rb +77 -0
  50. data/lib/datadog/appsec/contrib/sinatra/request_middleware.rb +18 -0
  51. data/lib/datadog/appsec/event.rb +111 -0
  52. data/lib/datadog/appsec/extensions.rb +120 -0
  53. data/lib/datadog/appsec/instrumentation/gateway.rb +42 -0
  54. data/lib/datadog/appsec/rate_limiter.rb +53 -0
  55. data/lib/datadog/appsec/reactive/address_hash.rb +16 -0
  56. data/lib/datadog/appsec/reactive/engine.rb +42 -0
  57. data/lib/datadog/appsec/reactive/operation.rb +50 -0
  58. data/lib/datadog/appsec/reactive/subscriber.rb +16 -0
  59. data/lib/datadog/appsec.rb +21 -0
  60. data/lib/datadog/ci/configuration/components.rb +8 -8
  61. data/lib/datadog/ci/configuration/settings.rb +12 -3
  62. data/lib/datadog/ci/contrib/cucumber/configuration/settings.rb +3 -2
  63. data/lib/datadog/ci/contrib/cucumber/ext.rb +1 -0
  64. data/lib/datadog/ci/contrib/cucumber/formatter.rb +2 -8
  65. data/lib/datadog/ci/contrib/cucumber/instrumentation.rb +1 -1
  66. data/lib/datadog/ci/contrib/cucumber/integration.rb +2 -2
  67. data/lib/datadog/ci/contrib/cucumber/patcher.rb +2 -2
  68. data/lib/datadog/ci/contrib/rspec/configuration/settings.rb +3 -2
  69. data/lib/datadog/ci/contrib/rspec/example.rb +1 -7
  70. data/lib/datadog/ci/contrib/rspec/ext.rb +1 -0
  71. data/lib/datadog/ci/contrib/rspec/integration.rb +2 -2
  72. data/lib/datadog/ci/contrib/rspec/patcher.rb +2 -2
  73. data/lib/datadog/ci/ext/app_types.rb +1 -1
  74. data/lib/datadog/ci/ext/environment.rb +105 -102
  75. data/lib/datadog/ci/ext/settings.rb +1 -1
  76. data/lib/datadog/ci/extensions.rb +4 -4
  77. data/lib/datadog/ci/flush.rb +37 -0
  78. data/lib/datadog/ci/test.rb +14 -13
  79. data/lib/datadog/ci.rb +3 -2
  80. data/lib/datadog/core/buffer/cruby.rb +54 -0
  81. data/lib/datadog/core/buffer/random.rb +134 -0
  82. data/lib/datadog/core/buffer/thread_safe.rb +57 -0
  83. data/lib/datadog/core/chunker.rb +35 -0
  84. data/lib/datadog/core/configuration/agent_settings_resolver.rb +296 -0
  85. data/lib/datadog/core/configuration/base.rb +88 -0
  86. data/lib/datadog/core/configuration/components.rb +392 -0
  87. data/lib/datadog/core/configuration/dependency_resolver.rb +27 -0
  88. data/lib/datadog/core/configuration/option.rb +68 -0
  89. data/lib/datadog/core/configuration/option_definition.rb +125 -0
  90. data/lib/datadog/core/configuration/option_definition_set.rb +21 -0
  91. data/lib/datadog/core/configuration/option_set.rb +9 -0
  92. data/lib/datadog/core/configuration/options.rb +117 -0
  93. data/lib/datadog/core/configuration/settings.rb +626 -0
  94. data/lib/datadog/core/configuration.rb +283 -0
  95. data/lib/datadog/core/diagnostics/environment_logger.rb +282 -0
  96. data/lib/datadog/core/diagnostics/ext.rb +40 -0
  97. data/lib/datadog/core/diagnostics/health.rb +36 -0
  98. data/lib/datadog/core/encoding.rb +75 -0
  99. data/lib/datadog/core/environment/ext.rb +27 -9
  100. data/lib/datadog/core/environment/identity.rb +10 -4
  101. data/lib/datadog/core/environment/socket.rb +8 -2
  102. data/lib/datadog/core/environment/variable_helpers.rb +1 -0
  103. data/lib/datadog/core/error.rb +100 -0
  104. data/lib/datadog/core/extensions.rb +15 -0
  105. data/lib/datadog/core/git/ext.rb +34 -0
  106. data/lib/datadog/core/logger.rb +45 -0
  107. data/lib/datadog/core/metrics/client.rb +187 -0
  108. data/lib/datadog/core/metrics/ext.rb +19 -0
  109. data/lib/datadog/core/metrics/helpers.rb +23 -0
  110. data/lib/datadog/core/metrics/logging.rb +42 -0
  111. data/lib/datadog/core/metrics/metric.rb +12 -0
  112. data/lib/datadog/core/metrics/options.rb +48 -0
  113. data/lib/datadog/core/pin.rb +75 -0
  114. data/lib/datadog/core/runtime/ext.rb +28 -0
  115. data/lib/datadog/core/runtime/metrics.rb +125 -0
  116. data/lib/datadog/core/utils/compression.rb +31 -0
  117. data/lib/datadog/core/utils/forking.rb +62 -0
  118. data/lib/datadog/core/utils/object_set.rb +42 -0
  119. data/lib/datadog/core/utils/only_once.rb +43 -0
  120. data/lib/datadog/core/utils/sequence.rb +20 -0
  121. data/lib/datadog/core/utils/string_table.rb +48 -0
  122. data/lib/datadog/core/utils/time.rb +53 -0
  123. data/lib/datadog/core/utils.rb +114 -0
  124. data/lib/{ddtrace → datadog/core}/vendor/multipart-post/LICENSE +0 -0
  125. data/lib/datadog/core/vendor/multipart-post/multipart/post/composite_read_io.rb +119 -0
  126. data/lib/datadog/core/vendor/multipart-post/multipart/post/multipartable.rb +60 -0
  127. data/lib/datadog/core/vendor/multipart-post/multipart/post/parts.rb +138 -0
  128. data/lib/datadog/core/vendor/multipart-post/multipart/post/version.rb +12 -0
  129. data/lib/datadog/core/vendor/multipart-post/multipart/post.rb +11 -0
  130. data/lib/datadog/core/vendor/multipart-post/multipart.rb +15 -0
  131. data/lib/datadog/core/vendor/multipart-post/net/http/post/multipart.rb +35 -0
  132. data/lib/datadog/core/worker.rb +23 -0
  133. data/lib/datadog/core/workers/async.rb +179 -0
  134. data/lib/datadog/core/workers/interval_loop.rb +118 -0
  135. data/lib/datadog/core/workers/polling.rb +58 -0
  136. data/lib/datadog/core/workers/queue.rb +43 -0
  137. data/lib/datadog/core/workers/runtime_metrics.rb +64 -0
  138. data/lib/datadog/core.rb +73 -0
  139. data/lib/datadog/opentelemetry/extensions.rb +14 -0
  140. data/lib/datadog/opentelemetry/span.rb +34 -0
  141. data/lib/{ddtrace → datadog}/opentracer/binary_propagator.rb +0 -0
  142. data/lib/datadog/opentracer/carrier.rb +8 -0
  143. data/lib/datadog/opentracer/distributed_headers.rb +57 -0
  144. data/lib/datadog/opentracer/global_tracer.rb +16 -0
  145. data/lib/datadog/opentracer/propagator.rb +25 -0
  146. data/lib/datadog/opentracer/rack_propagator.rb +71 -0
  147. data/lib/datadog/opentracer/scope.rb +17 -0
  148. data/lib/datadog/opentracer/scope_manager.rb +8 -0
  149. data/lib/datadog/opentracer/span.rb +100 -0
  150. data/lib/datadog/opentracer/span_context.rb +18 -0
  151. data/lib/datadog/opentracer/span_context_factory.rb +26 -0
  152. data/lib/datadog/opentracer/text_map_propagator.rb +86 -0
  153. data/lib/datadog/opentracer/thread_local_scope.rb +33 -0
  154. data/lib/datadog/opentracer/thread_local_scope_manager.rb +42 -0
  155. data/lib/datadog/opentracer/tracer.rb +213 -0
  156. data/lib/datadog/opentracer.rb +23 -0
  157. data/lib/{ddtrace → datadog}/profiling/backtrace_location.rb +0 -0
  158. data/lib/datadog/profiling/buffer.rb +42 -0
  159. data/lib/datadog/profiling/collectors/code_provenance.rb +113 -0
  160. data/lib/datadog/profiling/collectors/stack.rb +297 -0
  161. data/lib/datadog/profiling/encoding/profile.rb +47 -0
  162. data/lib/{ddtrace → datadog}/profiling/event.rb +0 -0
  163. data/lib/datadog/profiling/events/stack.rb +81 -0
  164. data/lib/datadog/profiling/exporter.rb +24 -0
  165. data/lib/{ddtrace → datadog}/profiling/ext/forking.rb +0 -0
  166. data/lib/datadog/profiling/ext.rb +56 -0
  167. data/lib/datadog/profiling/flush.rb +68 -0
  168. data/lib/{ddtrace → datadog}/profiling/native_extension.rb +0 -0
  169. data/lib/datadog/profiling/pprof/builder.rb +126 -0
  170. data/lib/datadog/profiling/pprof/converter.rb +103 -0
  171. data/lib/datadog/profiling/pprof/message_set.rb +15 -0
  172. data/lib/{ddtrace → datadog}/profiling/pprof/payload.rb +0 -0
  173. data/lib/{ddtrace → datadog}/profiling/pprof/pprof.proto +0 -0
  174. data/lib/datadog/profiling/pprof/pprof_pb.rb +82 -0
  175. data/lib/datadog/profiling/pprof/stack_sample.rb +140 -0
  176. data/lib/datadog/profiling/pprof/string_table.rb +11 -0
  177. data/lib/datadog/profiling/pprof/template.rb +119 -0
  178. data/lib/datadog/profiling/preload.rb +4 -0
  179. data/lib/datadog/profiling/profiler.rb +33 -0
  180. data/lib/datadog/profiling/recorder.rb +116 -0
  181. data/lib/datadog/profiling/scheduler.rb +150 -0
  182. data/lib/datadog/profiling/tasks/exec.rb +49 -0
  183. data/lib/datadog/profiling/tasks/help.rb +17 -0
  184. data/lib/datadog/profiling/tasks/setup.rb +90 -0
  185. data/lib/datadog/profiling/trace_identifiers/ddtrace.rb +44 -0
  186. data/lib/datadog/profiling/trace_identifiers/helper.rb +46 -0
  187. data/lib/{ddtrace → datadog}/profiling/transport/client.rb +0 -0
  188. data/lib/datadog/profiling/transport/http/api/endpoint.rb +106 -0
  189. data/lib/datadog/profiling/transport/http/api/instance.rb +37 -0
  190. data/lib/{ddtrace → datadog}/profiling/transport/http/api/spec.rb +0 -0
  191. data/lib/datadog/profiling/transport/http/api.rb +44 -0
  192. data/lib/datadog/profiling/transport/http/builder.rb +29 -0
  193. data/lib/datadog/profiling/transport/http/client.rb +34 -0
  194. data/lib/datadog/profiling/transport/http/response.rb +22 -0
  195. data/lib/datadog/profiling/transport/http.rb +111 -0
  196. data/lib/datadog/profiling/transport/io/client.rb +28 -0
  197. data/lib/datadog/profiling/transport/io/response.rb +17 -0
  198. data/lib/datadog/profiling/transport/io.rb +31 -0
  199. data/lib/{ddtrace → datadog}/profiling/transport/parcel.rb +0 -0
  200. data/lib/datadog/profiling/transport/request.rb +16 -0
  201. data/lib/{ddtrace → datadog}/profiling/transport/response.rb +0 -0
  202. data/lib/datadog/profiling.rb +167 -0
  203. data/lib/datadog/tracing/analytics.rb +24 -0
  204. data/lib/datadog/tracing/buffer.rb +125 -0
  205. data/lib/datadog/tracing/configuration/ext.rb +50 -0
  206. data/lib/datadog/tracing/context.rb +67 -0
  207. data/lib/datadog/tracing/context_provider.rb +67 -0
  208. data/lib/datadog/tracing/contrib/action_cable/configuration/settings.rb +34 -0
  209. data/lib/datadog/tracing/contrib/action_cable/event.rb +71 -0
  210. data/lib/datadog/tracing/contrib/action_cable/events/broadcast.rb +57 -0
  211. data/lib/datadog/tracing/contrib/action_cable/events/perform_action.rb +62 -0
  212. data/lib/datadog/tracing/contrib/action_cable/events/transmit.rb +58 -0
  213. data/lib/datadog/tracing/contrib/action_cable/events.rb +36 -0
  214. data/lib/datadog/tracing/contrib/action_cable/ext.rb +31 -0
  215. data/lib/datadog/tracing/contrib/action_cable/instrumentation.rb +91 -0
  216. data/lib/datadog/tracing/contrib/action_cable/integration.rb +49 -0
  217. data/lib/datadog/tracing/contrib/action_cable/patcher.rb +30 -0
  218. data/lib/datadog/tracing/contrib/action_mailer/configuration/settings.rb +35 -0
  219. data/lib/datadog/tracing/contrib/action_mailer/event.rb +51 -0
  220. data/lib/datadog/tracing/contrib/action_mailer/events/deliver.rb +59 -0
  221. data/lib/datadog/tracing/contrib/action_mailer/events/process.rb +46 -0
  222. data/lib/datadog/tracing/contrib/action_mailer/events.rb +33 -0
  223. data/lib/datadog/tracing/contrib/action_mailer/ext.rb +32 -0
  224. data/lib/datadog/tracing/contrib/action_mailer/integration.rb +49 -0
  225. data/lib/datadog/tracing/contrib/action_mailer/patcher.rb +28 -0
  226. data/lib/datadog/tracing/contrib/action_pack/action_controller/instrumentation.rb +155 -0
  227. data/lib/datadog/tracing/contrib/action_pack/action_controller/patcher.rb +28 -0
  228. data/lib/datadog/tracing/contrib/action_pack/configuration/settings.rb +35 -0
  229. data/lib/datadog/tracing/contrib/action_pack/ext.rb +21 -0
  230. data/lib/datadog/tracing/contrib/action_pack/integration.rb +49 -0
  231. data/lib/datadog/tracing/contrib/action_pack/patcher.rb +26 -0
  232. data/lib/datadog/tracing/contrib/action_pack/utils.rb +39 -0
  233. data/lib/datadog/tracing/contrib/action_view/configuration/settings.rb +35 -0
  234. data/lib/datadog/tracing/contrib/action_view/event.rb +34 -0
  235. data/lib/datadog/tracing/contrib/action_view/events/render_partial.rb +53 -0
  236. data/lib/datadog/tracing/contrib/action_view/events/render_template.rb +56 -0
  237. data/lib/datadog/tracing/contrib/action_view/events.rb +33 -0
  238. data/lib/datadog/tracing/contrib/action_view/ext.rb +23 -0
  239. data/lib/datadog/tracing/contrib/action_view/instrumentation/partial_renderer.rb +77 -0
  240. data/lib/datadog/tracing/contrib/action_view/instrumentation/template_renderer.rb +90 -0
  241. data/lib/datadog/tracing/contrib/action_view/integration.rb +56 -0
  242. data/lib/datadog/tracing/contrib/action_view/patcher.rb +47 -0
  243. data/lib/datadog/tracing/contrib/action_view/utils.rb +35 -0
  244. data/lib/datadog/tracing/contrib/active_job/configuration/settings.rb +36 -0
  245. data/lib/datadog/tracing/contrib/active_job/event.rb +57 -0
  246. data/lib/datadog/tracing/contrib/active_job/events/discard.rb +49 -0
  247. data/lib/datadog/tracing/contrib/active_job/events/enqueue.rb +48 -0
  248. data/lib/datadog/tracing/contrib/active_job/events/enqueue_at.rb +48 -0
  249. data/lib/datadog/tracing/contrib/active_job/events/enqueue_retry.rb +50 -0
  250. data/lib/datadog/tracing/contrib/active_job/events/perform.rb +48 -0
  251. data/lib/datadog/tracing/contrib/active_job/events/retry_stopped.rb +49 -0
  252. data/lib/datadog/tracing/contrib/active_job/events.rb +41 -0
  253. data/lib/datadog/tracing/contrib/active_job/ext.rb +38 -0
  254. data/lib/datadog/tracing/contrib/active_job/integration.rb +49 -0
  255. data/lib/datadog/tracing/contrib/active_job/log_injection.rb +25 -0
  256. data/lib/datadog/tracing/contrib/active_job/patcher.rb +35 -0
  257. data/lib/datadog/tracing/contrib/active_model_serializers/configuration/settings.rb +32 -0
  258. data/lib/datadog/tracing/contrib/active_model_serializers/event.rb +68 -0
  259. data/lib/datadog/tracing/contrib/active_model_serializers/events/render.rb +44 -0
  260. data/lib/datadog/tracing/contrib/active_model_serializers/events/serialize.rb +46 -0
  261. data/lib/datadog/tracing/contrib/active_model_serializers/events.rb +33 -0
  262. data/lib/datadog/tracing/contrib/active_model_serializers/ext.rb +23 -0
  263. data/lib/datadog/tracing/contrib/active_model_serializers/integration.rb +44 -0
  264. data/lib/datadog/tracing/contrib/active_model_serializers/patcher.rb +32 -0
  265. data/lib/datadog/tracing/contrib/active_record/configuration/makara_resolver.rb +35 -0
  266. data/lib/datadog/tracing/contrib/active_record/configuration/resolver.rb +137 -0
  267. data/lib/datadog/tracing/contrib/active_record/configuration/settings.rb +38 -0
  268. data/lib/datadog/tracing/contrib/active_record/event.rb +29 -0
  269. data/lib/datadog/tracing/contrib/active_record/events/instantiation.rb +57 -0
  270. data/lib/datadog/tracing/contrib/active_record/events/sql.rb +77 -0
  271. data/lib/datadog/tracing/contrib/active_record/events.rb +33 -0
  272. data/lib/datadog/tracing/contrib/active_record/ext.rb +28 -0
  273. data/lib/datadog/tracing/contrib/active_record/integration.rb +55 -0
  274. data/lib/datadog/tracing/contrib/active_record/patcher.rb +26 -0
  275. data/lib/datadog/tracing/contrib/active_record/utils.rb +127 -0
  276. data/lib/{ddtrace/vendor/active_record → datadog/tracing/contrib/active_record/vendor}/MIT-LICENSE +0 -0
  277. data/lib/datadog/tracing/contrib/active_record/vendor/connection_specification.rb +306 -0
  278. data/lib/datadog/tracing/contrib/active_support/cache/instrumentation.rb +269 -0
  279. data/lib/datadog/tracing/contrib/active_support/cache/patcher.rb +72 -0
  280. data/lib/datadog/tracing/contrib/active_support/cache/redis.rb +46 -0
  281. data/lib/datadog/tracing/contrib/active_support/configuration/settings.rb +34 -0
  282. data/lib/datadog/tracing/contrib/active_support/ext.rb +30 -0
  283. data/lib/datadog/tracing/contrib/active_support/integration.rb +50 -0
  284. data/lib/datadog/tracing/contrib/active_support/notifications/event.rb +70 -0
  285. data/lib/datadog/tracing/contrib/active_support/notifications/subscriber.rb +70 -0
  286. data/lib/datadog/tracing/contrib/active_support/notifications/subscription.rb +161 -0
  287. data/lib/datadog/tracing/contrib/active_support/patcher.rb +26 -0
  288. data/lib/datadog/tracing/contrib/analytics.rb +28 -0
  289. data/lib/datadog/tracing/contrib/auto_instrument.rb +50 -0
  290. data/lib/datadog/tracing/contrib/aws/configuration/settings.rb +34 -0
  291. data/lib/datadog/tracing/contrib/aws/ext.rb +26 -0
  292. data/lib/datadog/tracing/contrib/aws/instrumentation.rb +93 -0
  293. data/lib/datadog/tracing/contrib/aws/integration.rb +46 -0
  294. data/lib/datadog/tracing/contrib/aws/parsed_context.rb +59 -0
  295. data/lib/datadog/tracing/contrib/aws/patcher.rb +56 -0
  296. data/lib/datadog/tracing/contrib/aws/services.rb +122 -0
  297. data/lib/datadog/tracing/contrib/concurrent_ruby/configuration/settings.rb +22 -0
  298. data/lib/datadog/tracing/contrib/concurrent_ruby/context_composite_executor_service.rb +45 -0
  299. data/lib/datadog/tracing/contrib/concurrent_ruby/ext.rb +15 -0
  300. data/lib/datadog/tracing/contrib/concurrent_ruby/future_patch.rb +26 -0
  301. data/lib/datadog/tracing/contrib/concurrent_ruby/integration.rb +42 -0
  302. data/lib/datadog/tracing/contrib/concurrent_ruby/patcher.rb +32 -0
  303. data/lib/datadog/tracing/contrib/configurable.rb +101 -0
  304. data/lib/datadog/tracing/contrib/configuration/resolver.rb +84 -0
  305. data/lib/datadog/tracing/contrib/configuration/resolvers/pattern_resolver.rb +42 -0
  306. data/lib/datadog/tracing/contrib/configuration/settings.rb +42 -0
  307. data/lib/datadog/tracing/contrib/dalli/configuration/settings.rb +34 -0
  308. data/lib/datadog/tracing/contrib/dalli/ext.rb +23 -0
  309. data/lib/datadog/tracing/contrib/dalli/instrumentation.rb +57 -0
  310. data/lib/datadog/tracing/contrib/dalli/integration.rb +51 -0
  311. data/lib/datadog/tracing/contrib/dalli/patcher.rb +28 -0
  312. data/lib/datadog/tracing/contrib/dalli/quantize.rb +25 -0
  313. data/lib/datadog/tracing/contrib/delayed_job/configuration/settings.rb +37 -0
  314. data/lib/datadog/tracing/contrib/delayed_job/ext.rb +25 -0
  315. data/lib/datadog/tracing/contrib/delayed_job/integration.rb +42 -0
  316. data/lib/datadog/tracing/contrib/delayed_job/patcher.rb +31 -0
  317. data/lib/datadog/tracing/contrib/delayed_job/plugin.rb +100 -0
  318. data/lib/datadog/tracing/contrib/elasticsearch/configuration/settings.rb +35 -0
  319. data/lib/datadog/tracing/contrib/elasticsearch/ext.rb +25 -0
  320. data/lib/datadog/tracing/contrib/elasticsearch/integration.rb +43 -0
  321. data/lib/datadog/tracing/contrib/elasticsearch/patcher.rb +114 -0
  322. data/lib/datadog/tracing/contrib/elasticsearch/quantize.rb +88 -0
  323. data/lib/datadog/tracing/contrib/ethon/configuration/settings.rb +36 -0
  324. data/lib/datadog/tracing/contrib/ethon/easy_patch.rb +176 -0
  325. data/lib/datadog/tracing/contrib/ethon/ext.rb +23 -0
  326. data/lib/datadog/tracing/contrib/ethon/integration.rb +47 -0
  327. data/lib/datadog/tracing/contrib/ethon/multi_patch.rb +95 -0
  328. data/lib/datadog/tracing/contrib/ethon/patcher.rb +31 -0
  329. data/lib/datadog/tracing/contrib/excon/configuration/settings.rb +37 -0
  330. data/lib/datadog/tracing/contrib/excon/ext.rb +20 -0
  331. data/lib/datadog/tracing/contrib/excon/integration.rb +47 -0
  332. data/lib/datadog/tracing/contrib/excon/middleware.rb +169 -0
  333. data/lib/datadog/tracing/contrib/excon/patcher.rb +30 -0
  334. data/lib/datadog/tracing/contrib/extensions.rb +184 -0
  335. data/lib/datadog/tracing/contrib/faraday/configuration/settings.rb +41 -0
  336. data/lib/datadog/tracing/contrib/faraday/connection.rb +21 -0
  337. data/lib/datadog/tracing/contrib/faraday/ext.rb +20 -0
  338. data/lib/datadog/tracing/contrib/faraday/integration.rb +47 -0
  339. data/lib/datadog/tracing/contrib/faraday/middleware.rb +92 -0
  340. data/lib/datadog/tracing/contrib/faraday/patcher.rb +56 -0
  341. data/lib/datadog/tracing/contrib/faraday/rack_builder.rb +21 -0
  342. data/lib/datadog/tracing/contrib/grape/configuration/settings.rb +41 -0
  343. data/lib/datadog/tracing/contrib/grape/endpoint.rb +251 -0
  344. data/lib/datadog/tracing/contrib/grape/ext.rb +27 -0
  345. data/lib/datadog/tracing/contrib/grape/instrumentation.rb +36 -0
  346. data/lib/datadog/tracing/contrib/grape/integration.rb +43 -0
  347. data/lib/datadog/tracing/contrib/grape/patcher.rb +33 -0
  348. data/lib/datadog/tracing/contrib/graphql/configuration/settings.rb +35 -0
  349. data/lib/datadog/tracing/contrib/graphql/ext.rb +18 -0
  350. data/lib/datadog/tracing/contrib/graphql/integration.rb +43 -0
  351. data/lib/datadog/tracing/contrib/graphql/patcher.rb +64 -0
  352. data/lib/datadog/tracing/contrib/grpc/configuration/settings.rb +36 -0
  353. data/lib/datadog/tracing/contrib/grpc/datadog_interceptor/client.rb +83 -0
  354. data/lib/datadog/tracing/contrib/grpc/datadog_interceptor/server.rb +89 -0
  355. data/lib/datadog/tracing/contrib/grpc/datadog_interceptor.rb +103 -0
  356. data/lib/datadog/tracing/contrib/grpc/ext.rb +22 -0
  357. data/lib/datadog/tracing/contrib/grpc/integration.rb +42 -0
  358. data/lib/datadog/tracing/contrib/grpc/intercept_with_datadog.rb +52 -0
  359. data/lib/datadog/tracing/contrib/grpc/patcher.rb +37 -0
  360. data/lib/datadog/tracing/contrib/http/circuit_breaker.rb +43 -0
  361. data/lib/datadog/tracing/contrib/http/configuration/settings.rb +36 -0
  362. data/lib/datadog/tracing/contrib/http/ext.rb +20 -0
  363. data/lib/datadog/tracing/contrib/http/instrumentation.rb +138 -0
  364. data/lib/datadog/tracing/contrib/http/integration.rb +48 -0
  365. data/lib/datadog/tracing/contrib/http/patcher.rb +29 -0
  366. data/lib/datadog/tracing/contrib/http_annotation_helper.rb +16 -0
  367. data/lib/datadog/tracing/contrib/httpclient/configuration/settings.rb +36 -0
  368. data/lib/datadog/tracing/contrib/httpclient/ext.rb +20 -0
  369. data/lib/datadog/tracing/contrib/httpclient/instrumentation.rb +116 -0
  370. data/lib/datadog/tracing/contrib/httpclient/integration.rb +47 -0
  371. data/lib/datadog/tracing/contrib/httpclient/patcher.rb +41 -0
  372. data/lib/datadog/tracing/contrib/httprb/configuration/settings.rb +36 -0
  373. data/lib/datadog/tracing/contrib/httprb/ext.rb +20 -0
  374. data/lib/datadog/tracing/contrib/httprb/instrumentation.rb +127 -0
  375. data/lib/datadog/tracing/contrib/httprb/integration.rb +47 -0
  376. data/lib/datadog/tracing/contrib/httprb/patcher.rb +41 -0
  377. data/lib/datadog/tracing/contrib/integration.rb +77 -0
  378. data/lib/datadog/tracing/contrib/kafka/configuration/settings.rb +34 -0
  379. data/lib/datadog/tracing/contrib/kafka/consumer_event.rb +17 -0
  380. data/lib/datadog/tracing/contrib/kafka/consumer_group_event.rb +17 -0
  381. data/lib/datadog/tracing/contrib/kafka/event.rb +51 -0
  382. data/lib/datadog/tracing/contrib/kafka/events/connection/request.rb +41 -0
  383. data/lib/datadog/tracing/contrib/kafka/events/consumer/process_batch.rb +48 -0
  384. data/lib/datadog/tracing/contrib/kafka/events/consumer/process_message.rb +46 -0
  385. data/lib/datadog/tracing/contrib/kafka/events/consumer_group/heartbeat.rb +46 -0
  386. data/lib/datadog/tracing/contrib/kafka/events/consumer_group/join_group.rb +36 -0
  387. data/lib/datadog/tracing/contrib/kafka/events/consumer_group/leave_group.rb +36 -0
  388. data/lib/datadog/tracing/contrib/kafka/events/consumer_group/sync_group.rb +36 -0
  389. data/lib/datadog/tracing/contrib/kafka/events/produce_operation/send_messages.rb +39 -0
  390. data/lib/datadog/tracing/contrib/kafka/events/producer/deliver_messages.rb +42 -0
  391. data/lib/datadog/tracing/contrib/kafka/events.rb +47 -0
  392. data/lib/datadog/tracing/contrib/kafka/ext.rb +51 -0
  393. data/lib/datadog/tracing/contrib/kafka/integration.rb +43 -0
  394. data/lib/datadog/tracing/contrib/kafka/patcher.rb +29 -0
  395. data/lib/datadog/tracing/contrib/lograge/configuration/settings.rb +22 -0
  396. data/lib/datadog/tracing/contrib/lograge/ext.rb +14 -0
  397. data/lib/datadog/tracing/contrib/lograge/instrumentation.rb +45 -0
  398. data/lib/datadog/tracing/contrib/lograge/integration.rb +49 -0
  399. data/lib/datadog/tracing/contrib/lograge/patcher.rb +28 -0
  400. data/lib/datadog/tracing/contrib/mongodb/configuration/settings.rb +37 -0
  401. data/lib/datadog/tracing/contrib/mongodb/ext.rb +26 -0
  402. data/lib/datadog/tracing/contrib/mongodb/instrumentation.rb +46 -0
  403. data/lib/datadog/tracing/contrib/mongodb/integration.rb +47 -0
  404. data/lib/datadog/tracing/contrib/mongodb/parsers.rb +48 -0
  405. data/lib/datadog/tracing/contrib/mongodb/patcher.rb +33 -0
  406. data/lib/datadog/tracing/contrib/mongodb/subscribers.rb +120 -0
  407. data/lib/datadog/tracing/contrib/mysql2/configuration/settings.rb +34 -0
  408. data/lib/datadog/tracing/contrib/mysql2/ext.rb +21 -0
  409. data/lib/datadog/tracing/contrib/mysql2/instrumentation.rb +61 -0
  410. data/lib/datadog/tracing/contrib/mysql2/integration.rb +42 -0
  411. data/lib/datadog/tracing/contrib/mysql2/patcher.rb +30 -0
  412. data/lib/datadog/tracing/contrib/patchable.rb +108 -0
  413. data/lib/datadog/tracing/contrib/patcher.rb +73 -0
  414. data/lib/datadog/tracing/contrib/presto/configuration/settings.rb +34 -0
  415. data/lib/datadog/tracing/contrib/presto/ext.rb +31 -0
  416. data/lib/datadog/tracing/contrib/presto/instrumentation.rb +124 -0
  417. data/lib/datadog/tracing/contrib/presto/integration.rb +42 -0
  418. data/lib/datadog/tracing/contrib/presto/patcher.rb +36 -0
  419. data/lib/datadog/tracing/contrib/qless/configuration/settings.rb +39 -0
  420. data/lib/datadog/tracing/contrib/qless/ext.rb +25 -0
  421. data/lib/datadog/tracing/contrib/qless/integration.rb +42 -0
  422. data/lib/datadog/tracing/contrib/qless/patcher.rb +38 -0
  423. data/lib/datadog/tracing/contrib/qless/qless_job.rb +74 -0
  424. data/lib/datadog/tracing/contrib/qless/tracer_cleaner.rb +31 -0
  425. data/lib/datadog/tracing/contrib/que/configuration/settings.rb +48 -0
  426. data/lib/datadog/tracing/contrib/que/ext.rb +33 -0
  427. data/lib/datadog/tracing/contrib/que/integration.rb +45 -0
  428. data/lib/datadog/tracing/contrib/que/patcher.rb +28 -0
  429. data/lib/datadog/tracing/contrib/que/tracer.rb +60 -0
  430. data/lib/datadog/tracing/contrib/racecar/configuration/settings.rb +34 -0
  431. data/lib/datadog/tracing/contrib/racecar/event.rb +78 -0
  432. data/lib/datadog/tracing/contrib/racecar/events/batch.rb +34 -0
  433. data/lib/datadog/tracing/contrib/racecar/events/consume.rb +34 -0
  434. data/lib/datadog/tracing/contrib/racecar/events/message.rb +34 -0
  435. data/lib/datadog/tracing/contrib/racecar/events.rb +35 -0
  436. data/lib/datadog/tracing/contrib/racecar/ext.rb +30 -0
  437. data/lib/datadog/tracing/contrib/racecar/integration.rb +43 -0
  438. data/lib/datadog/tracing/contrib/racecar/patcher.rb +29 -0
  439. data/lib/datadog/tracing/contrib/rack/configuration/settings.rb +50 -0
  440. data/lib/datadog/tracing/contrib/rack/ext.rb +24 -0
  441. data/lib/datadog/tracing/contrib/rack/integration.rb +49 -0
  442. data/lib/datadog/tracing/contrib/rack/middlewares.rb +254 -0
  443. data/lib/datadog/tracing/contrib/rack/patcher.rb +108 -0
  444. data/lib/datadog/tracing/contrib/rack/request_queue.rb +47 -0
  445. data/lib/datadog/tracing/contrib/rails/auto_instrument_railtie.rb +10 -0
  446. data/lib/datadog/tracing/contrib/rails/configuration/settings.rb +70 -0
  447. data/lib/datadog/tracing/contrib/rails/ext.rb +18 -0
  448. data/lib/datadog/tracing/contrib/rails/framework.rb +151 -0
  449. data/lib/datadog/tracing/contrib/rails/integration.rb +48 -0
  450. data/lib/datadog/tracing/contrib/rails/log_injection.rb +46 -0
  451. data/lib/datadog/tracing/contrib/rails/middlewares.rb +46 -0
  452. data/lib/datadog/tracing/contrib/rails/patcher.rb +116 -0
  453. data/lib/datadog/tracing/contrib/rails/railtie.rb +18 -0
  454. data/lib/datadog/tracing/contrib/rails/utils.rb +27 -0
  455. data/lib/datadog/tracing/contrib/rake/configuration/settings.rb +35 -0
  456. data/lib/datadog/tracing/contrib/rake/ext.rb +25 -0
  457. data/lib/datadog/tracing/contrib/rake/instrumentation.rb +96 -0
  458. data/lib/datadog/tracing/contrib/rake/integration.rb +42 -0
  459. data/lib/datadog/tracing/contrib/rake/patcher.rb +34 -0
  460. data/lib/datadog/tracing/contrib/redis/configuration/resolver.rb +48 -0
  461. data/lib/datadog/tracing/contrib/redis/configuration/settings.rb +39 -0
  462. data/lib/datadog/tracing/contrib/redis/ext.rb +25 -0
  463. data/lib/datadog/tracing/contrib/redis/instrumentation.rb +77 -0
  464. data/lib/datadog/tracing/contrib/redis/integration.rb +46 -0
  465. data/lib/datadog/tracing/contrib/redis/patcher.rb +35 -0
  466. data/lib/datadog/tracing/contrib/redis/quantize.rb +78 -0
  467. data/lib/datadog/tracing/contrib/redis/tags.rb +53 -0
  468. data/lib/{ddtrace → datadog/tracing}/contrib/redis/vendor/LICENSE +0 -0
  469. data/lib/datadog/tracing/contrib/redis/vendor/resolver.rb +161 -0
  470. data/lib/datadog/tracing/contrib/registerable.rb +50 -0
  471. data/lib/datadog/tracing/contrib/registry.rb +51 -0
  472. data/lib/datadog/tracing/contrib/resque/configuration/settings.rb +36 -0
  473. data/lib/datadog/tracing/contrib/resque/ext.rb +20 -0
  474. data/lib/datadog/tracing/contrib/resque/integration.rb +47 -0
  475. data/lib/datadog/tracing/contrib/resque/patcher.rb +29 -0
  476. data/lib/datadog/tracing/contrib/resque/resque_job.rb +102 -0
  477. data/lib/datadog/tracing/contrib/rest_client/configuration/settings.rb +35 -0
  478. data/lib/datadog/tracing/contrib/rest_client/ext.rb +20 -0
  479. data/lib/datadog/tracing/contrib/rest_client/integration.rb +42 -0
  480. data/lib/datadog/tracing/contrib/rest_client/patcher.rb +29 -0
  481. data/lib/datadog/tracing/contrib/rest_client/request_patch.rb +104 -0
  482. data/lib/datadog/tracing/contrib/semantic_logger/configuration/settings.rb +22 -0
  483. data/lib/datadog/tracing/contrib/semantic_logger/ext.rb +14 -0
  484. data/lib/datadog/tracing/contrib/semantic_logger/instrumentation.rb +49 -0
  485. data/lib/datadog/tracing/contrib/semantic_logger/integration.rb +51 -0
  486. data/lib/datadog/tracing/contrib/semantic_logger/patcher.rb +28 -0
  487. data/lib/datadog/tracing/contrib/sequel/configuration/settings.rb +32 -0
  488. data/lib/datadog/tracing/contrib/sequel/database.rb +59 -0
  489. data/lib/datadog/tracing/contrib/sequel/dataset.rb +64 -0
  490. data/lib/datadog/tracing/contrib/sequel/ext.rb +21 -0
  491. data/lib/datadog/tracing/contrib/sequel/integration.rb +42 -0
  492. data/lib/datadog/tracing/contrib/sequel/patcher.rb +36 -0
  493. data/lib/datadog/tracing/contrib/sequel/utils.rb +86 -0
  494. data/lib/datadog/tracing/contrib/shoryuken/configuration/settings.rb +37 -0
  495. data/lib/datadog/tracing/contrib/shoryuken/ext.rb +24 -0
  496. data/lib/datadog/tracing/contrib/shoryuken/integration.rb +43 -0
  497. data/lib/datadog/tracing/contrib/shoryuken/patcher.rb +27 -0
  498. data/lib/datadog/tracing/contrib/shoryuken/tracer.rb +60 -0
  499. data/lib/datadog/tracing/contrib/sidekiq/client_tracer.rb +52 -0
  500. data/lib/datadog/tracing/contrib/sidekiq/configuration/settings.rb +42 -0
  501. data/lib/datadog/tracing/contrib/sidekiq/ext.rb +37 -0
  502. data/lib/datadog/tracing/contrib/sidekiq/integration.rb +52 -0
  503. data/lib/datadog/tracing/contrib/sidekiq/patcher.rb +70 -0
  504. data/lib/datadog/tracing/contrib/sidekiq/server_internal_tracer/heartbeat.rb +34 -0
  505. data/lib/datadog/tracing/contrib/sidekiq/server_internal_tracer/job_fetch.rb +34 -0
  506. data/lib/datadog/tracing/contrib/sidekiq/server_internal_tracer/scheduled_push.rb +33 -0
  507. data/lib/datadog/tracing/contrib/sidekiq/server_tracer.rb +78 -0
  508. data/lib/datadog/tracing/contrib/sidekiq/tracing.rb +43 -0
  509. data/lib/datadog/tracing/contrib/sinatra/configuration/settings.rb +42 -0
  510. data/lib/datadog/tracing/contrib/sinatra/env.rb +65 -0
  511. data/lib/datadog/tracing/contrib/sinatra/ext.rb +31 -0
  512. data/lib/datadog/tracing/contrib/sinatra/framework.rb +105 -0
  513. data/lib/datadog/tracing/contrib/sinatra/headers.rb +34 -0
  514. data/lib/datadog/tracing/contrib/sinatra/integration.rb +42 -0
  515. data/lib/datadog/tracing/contrib/sinatra/patcher.rb +76 -0
  516. data/lib/datadog/tracing/contrib/sinatra/tracer.rb +158 -0
  517. data/lib/datadog/tracing/contrib/sinatra/tracer_middleware.rb +122 -0
  518. data/lib/datadog/tracing/contrib/sneakers/configuration/settings.rb +37 -0
  519. data/lib/datadog/tracing/contrib/sneakers/ext.rb +25 -0
  520. data/lib/datadog/tracing/contrib/sneakers/integration.rb +45 -0
  521. data/lib/datadog/tracing/contrib/sneakers/patcher.rb +29 -0
  522. data/lib/datadog/tracing/contrib/sneakers/tracer.rb +57 -0
  523. data/lib/datadog/tracing/contrib/status_code_matcher.rb +74 -0
  524. data/lib/datadog/tracing/contrib/sucker_punch/configuration/settings.rb +34 -0
  525. data/lib/datadog/tracing/contrib/sucker_punch/exception_handler.rb +27 -0
  526. data/lib/datadog/tracing/contrib/sucker_punch/ext.rb +26 -0
  527. data/lib/datadog/tracing/contrib/sucker_punch/instrumentation.rb +104 -0
  528. data/lib/datadog/tracing/contrib/sucker_punch/integration.rb +42 -0
  529. data/lib/datadog/tracing/contrib/sucker_punch/patcher.rb +37 -0
  530. data/lib/datadog/tracing/contrib/utils/database.rb +30 -0
  531. data/lib/datadog/tracing/contrib/utils/quantization/hash.rb +110 -0
  532. data/lib/datadog/tracing/contrib/utils/quantization/http.rb +98 -0
  533. data/lib/datadog/tracing/contrib.rb +73 -0
  534. data/lib/datadog/tracing/correlation.rb +108 -0
  535. data/lib/datadog/tracing/distributed/headers/b3.rb +54 -0
  536. data/lib/datadog/tracing/distributed/headers/b3_single.rb +66 -0
  537. data/lib/datadog/tracing/distributed/headers/datadog.rb +51 -0
  538. data/lib/datadog/tracing/distributed/headers/ext.rb +30 -0
  539. data/lib/datadog/tracing/distributed/helpers.rb +43 -0
  540. data/lib/datadog/tracing/distributed/parser.rb +69 -0
  541. data/lib/datadog/tracing/event.rb +76 -0
  542. data/lib/datadog/tracing/flush.rb +73 -0
  543. data/lib/datadog/tracing/metadata/analytics.rb +24 -0
  544. data/lib/datadog/tracing/metadata/ext.rb +150 -0
  545. data/lib/datadog/tracing/metadata/tagging.rb +118 -0
  546. data/lib/datadog/tracing/metadata.rb +16 -0
  547. data/lib/datadog/tracing/pipeline/span_filter.rb +42 -0
  548. data/lib/datadog/tracing/pipeline/span_processor.rb +38 -0
  549. data/lib/datadog/tracing/pipeline.rb +65 -0
  550. data/lib/datadog/tracing/propagation/grpc.rb +87 -0
  551. data/lib/datadog/tracing/propagation/http.rb +108 -0
  552. data/lib/datadog/tracing/runtime/metrics.rb +18 -0
  553. data/lib/datadog/tracing/sampling/all_sampler.rb +24 -0
  554. data/lib/datadog/tracing/sampling/ext.rb +26 -0
  555. data/lib/datadog/tracing/sampling/matcher.rb +67 -0
  556. data/lib/datadog/tracing/sampling/priority_sampler.rb +112 -0
  557. data/lib/datadog/tracing/sampling/rate_by_key_sampler.rb +96 -0
  558. data/lib/datadog/tracing/sampling/rate_by_service_sampler.rb +40 -0
  559. data/lib/datadog/tracing/sampling/rate_limiter.rb +184 -0
  560. data/lib/datadog/tracing/sampling/rate_sampler.rb +54 -0
  561. data/lib/datadog/tracing/sampling/rule.rb +69 -0
  562. data/lib/datadog/tracing/sampling/rule_sampler.rb +132 -0
  563. data/lib/datadog/tracing/sampling/sampler.rb +43 -0
  564. data/lib/datadog/tracing/span.rb +210 -0
  565. data/lib/datadog/tracing/span_operation.rb +519 -0
  566. data/lib/datadog/tracing/sync_writer.rb +68 -0
  567. data/lib/datadog/tracing/trace_digest.rb +58 -0
  568. data/lib/datadog/tracing/trace_operation.rb +411 -0
  569. data/lib/datadog/tracing/trace_segment.rb +292 -0
  570. data/lib/datadog/tracing/tracer.rb +504 -0
  571. data/lib/datadog/tracing/workers/trace_writer.rb +194 -0
  572. data/lib/datadog/tracing/workers.rb +124 -0
  573. data/lib/datadog/tracing/writer.rb +179 -0
  574. data/lib/datadog/tracing.rb +140 -0
  575. data/lib/ddtrace/auto_instrument.rb +4 -1
  576. data/lib/ddtrace/profiling/preload.rb +2 -4
  577. data/lib/ddtrace/transport/ext.rb +34 -0
  578. data/lib/ddtrace/transport/http/adapters/net.rb +2 -2
  579. data/lib/ddtrace/transport/http/adapters/unix_socket.rb +2 -2
  580. data/lib/ddtrace/transport/http/api.rb +4 -11
  581. data/lib/ddtrace/transport/http/builder.rb +2 -2
  582. data/lib/ddtrace/transport/http/traces.rb +2 -0
  583. data/lib/ddtrace/transport/http.rb +22 -28
  584. data/lib/ddtrace/transport/io/traces.rb +1 -1
  585. data/lib/ddtrace/transport/io.rb +2 -2
  586. data/lib/ddtrace/transport/parcel.rb +1 -0
  587. data/lib/ddtrace/transport/serializable_trace.rb +116 -0
  588. data/lib/ddtrace/transport/statistics.rb +5 -4
  589. data/lib/ddtrace/transport/trace_formatter.rb +164 -0
  590. data/lib/ddtrace/transport/traces.rb +14 -5
  591. data/lib/ddtrace/version.rb +5 -5
  592. data/lib/ddtrace.rb +18 -39
  593. metadata +561 -485
  594. data/.yardopts +0 -5
  595. data/lib/datadog/ci/context_flush.rb +0 -29
  596. data/lib/datadog/contrib.rb +0 -71
  597. data/lib/ddtrace/analytics.rb +0 -39
  598. data/lib/ddtrace/buffer.rb +0 -340
  599. data/lib/ddtrace/chunker.rb +0 -35
  600. data/lib/ddtrace/configuration/agent_settings_resolver.rb +0 -309
  601. data/lib/ddtrace/configuration/base.rb +0 -82
  602. data/lib/ddtrace/configuration/components.rb +0 -292
  603. data/lib/ddtrace/configuration/dependency_resolver.rb +0 -25
  604. data/lib/ddtrace/configuration/option.rb +0 -65
  605. data/lib/ddtrace/configuration/option_definition.rb +0 -122
  606. data/lib/ddtrace/configuration/option_definition_set.rb +0 -19
  607. data/lib/ddtrace/configuration/option_set.rb +0 -7
  608. data/lib/ddtrace/configuration/options.rb +0 -112
  609. data/lib/ddtrace/configuration/pin_setup.rb +0 -32
  610. data/lib/ddtrace/configuration/settings.rb +0 -413
  611. data/lib/ddtrace/configuration.rb +0 -195
  612. data/lib/ddtrace/context.rb +0 -334
  613. data/lib/ddtrace/context_flush.rb +0 -82
  614. data/lib/ddtrace/context_provider.rb +0 -62
  615. data/lib/ddtrace/contrib/action_cable/configuration/settings.rb +0 -31
  616. data/lib/ddtrace/contrib/action_cable/event.rb +0 -67
  617. data/lib/ddtrace/contrib/action_cable/events/broadcast.rb +0 -50
  618. data/lib/ddtrace/contrib/action_cable/events/perform_action.rb +0 -56
  619. data/lib/ddtrace/contrib/action_cable/events/transmit.rb +0 -51
  620. data/lib/ddtrace/contrib/action_cable/events.rb +0 -34
  621. data/lib/ddtrace/contrib/action_cable/ext.rb +0 -27
  622. data/lib/ddtrace/contrib/action_cable/instrumentation.rb +0 -78
  623. data/lib/ddtrace/contrib/action_cable/integration.rb +0 -46
  624. data/lib/ddtrace/contrib/action_cable/patcher.rb +0 -29
  625. data/lib/ddtrace/contrib/action_mailer/configuration/settings.rb +0 -32
  626. data/lib/ddtrace/contrib/action_mailer/event.rb +0 -50
  627. data/lib/ddtrace/contrib/action_mailer/events/deliver.rb +0 -54
  628. data/lib/ddtrace/contrib/action_mailer/events/process.rb +0 -41
  629. data/lib/ddtrace/contrib/action_mailer/events.rb +0 -31
  630. data/lib/ddtrace/contrib/action_mailer/ext.rb +0 -32
  631. data/lib/ddtrace/contrib/action_mailer/integration.rb +0 -45
  632. data/lib/ddtrace/contrib/action_mailer/patcher.rb +0 -27
  633. data/lib/ddtrace/contrib/action_pack/action_controller/instrumentation.rb +0 -157
  634. data/lib/ddtrace/contrib/action_pack/action_controller/patcher.rb +0 -26
  635. data/lib/ddtrace/contrib/action_pack/configuration/settings.rb +0 -33
  636. data/lib/ddtrace/contrib/action_pack/ext.rb +0 -20
  637. data/lib/ddtrace/contrib/action_pack/integration.rb +0 -46
  638. data/lib/ddtrace/contrib/action_pack/patcher.rb +0 -24
  639. data/lib/ddtrace/contrib/action_pack/utils.rb +0 -37
  640. data/lib/ddtrace/contrib/action_view/configuration/settings.rb +0 -32
  641. data/lib/ddtrace/contrib/action_view/event.rb +0 -36
  642. data/lib/ddtrace/contrib/action_view/events/render_partial.rb +0 -47
  643. data/lib/ddtrace/contrib/action_view/events/render_template.rb +0 -50
  644. data/lib/ddtrace/contrib/action_view/events.rb +0 -31
  645. data/lib/ddtrace/contrib/action_view/ext.rb +0 -21
  646. data/lib/ddtrace/contrib/action_view/instrumentation/partial_renderer.rb +0 -75
  647. data/lib/ddtrace/contrib/action_view/instrumentation/template_renderer.rb +0 -168
  648. data/lib/ddtrace/contrib/action_view/integration.rb +0 -53
  649. data/lib/ddtrace/contrib/action_view/patcher.rb +0 -48
  650. data/lib/ddtrace/contrib/action_view/utils.rb +0 -33
  651. data/lib/ddtrace/contrib/active_job/configuration/settings.rb +0 -33
  652. data/lib/ddtrace/contrib/active_job/event.rb +0 -54
  653. data/lib/ddtrace/contrib/active_job/events/discard.rb +0 -46
  654. data/lib/ddtrace/contrib/active_job/events/enqueue.rb +0 -45
  655. data/lib/ddtrace/contrib/active_job/events/enqueue_at.rb +0 -45
  656. data/lib/ddtrace/contrib/active_job/events/enqueue_retry.rb +0 -47
  657. data/lib/ddtrace/contrib/active_job/events/perform.rb +0 -45
  658. data/lib/ddtrace/contrib/active_job/events/retry_stopped.rb +0 -46
  659. data/lib/ddtrace/contrib/active_job/events.rb +0 -39
  660. data/lib/ddtrace/contrib/active_job/ext.rb +0 -32
  661. data/lib/ddtrace/contrib/active_job/integration.rb +0 -46
  662. data/lib/ddtrace/contrib/active_job/log_injection.rb +0 -21
  663. data/lib/ddtrace/contrib/active_job/patcher.rb +0 -33
  664. data/lib/ddtrace/contrib/active_model_serializers/configuration/settings.rb +0 -31
  665. data/lib/ddtrace/contrib/active_model_serializers/event.rb +0 -69
  666. data/lib/ddtrace/contrib/active_model_serializers/events/render.rb +0 -33
  667. data/lib/ddtrace/contrib/active_model_serializers/events/serialize.rb +0 -36
  668. data/lib/ddtrace/contrib/active_model_serializers/events.rb +0 -31
  669. data/lib/ddtrace/contrib/active_model_serializers/ext.rb +0 -21
  670. data/lib/ddtrace/contrib/active_model_serializers/integration.rb +0 -41
  671. data/lib/ddtrace/contrib/active_model_serializers/patcher.rb +0 -30
  672. data/lib/ddtrace/contrib/active_record/configuration/makara_resolver.rb +0 -31
  673. data/lib/ddtrace/contrib/active_record/configuration/resolver.rb +0 -135
  674. data/lib/ddtrace/contrib/active_record/configuration/settings.rb +0 -36
  675. data/lib/ddtrace/contrib/active_record/event.rb +0 -31
  676. data/lib/ddtrace/contrib/active_record/events/instantiation.rb +0 -61
  677. data/lib/ddtrace/contrib/active_record/events/sql.rb +0 -69
  678. data/lib/ddtrace/contrib/active_record/events.rb +0 -31
  679. data/lib/ddtrace/contrib/active_record/ext.rb +0 -25
  680. data/lib/ddtrace/contrib/active_record/integration.rb +0 -54
  681. data/lib/ddtrace/contrib/active_record/patcher.rb +0 -24
  682. data/lib/ddtrace/contrib/active_record/utils.rb +0 -124
  683. data/lib/ddtrace/contrib/active_support/cache/instrumentation.rb +0 -259
  684. data/lib/ddtrace/contrib/active_support/cache/patcher.rb +0 -70
  685. data/lib/ddtrace/contrib/active_support/cache/redis.rb +0 -44
  686. data/lib/ddtrace/contrib/active_support/configuration/settings.rb +0 -31
  687. data/lib/ddtrace/contrib/active_support/ext.rb +0 -28
  688. data/lib/ddtrace/contrib/active_support/integration.rb +0 -47
  689. data/lib/ddtrace/contrib/active_support/notifications/event.rb +0 -76
  690. data/lib/ddtrace/contrib/active_support/notifications/subscriber.rb +0 -68
  691. data/lib/ddtrace/contrib/active_support/notifications/subscription.rb +0 -164
  692. data/lib/ddtrace/contrib/active_support/patcher.rb +0 -24
  693. data/lib/ddtrace/contrib/analytics.rb +0 -25
  694. data/lib/ddtrace/contrib/auto_instrument.rb +0 -48
  695. data/lib/ddtrace/contrib/aws/configuration/settings.rb +0 -31
  696. data/lib/ddtrace/contrib/aws/ext.rb +0 -24
  697. data/lib/ddtrace/contrib/aws/instrumentation.rb +0 -91
  698. data/lib/ddtrace/contrib/aws/integration.rb +0 -43
  699. data/lib/ddtrace/contrib/aws/parsed_context.rb +0 -57
  700. data/lib/ddtrace/contrib/aws/patcher.rb +0 -54
  701. data/lib/ddtrace/contrib/aws/services.rb +0 -119
  702. data/lib/ddtrace/contrib/concurrent_ruby/configuration/settings.rb +0 -21
  703. data/lib/ddtrace/contrib/concurrent_ruby/context_composite_executor_service.rb +0 -42
  704. data/lib/ddtrace/contrib/concurrent_ruby/ext.rb +0 -13
  705. data/lib/ddtrace/contrib/concurrent_ruby/future_patch.rb +0 -24
  706. data/lib/ddtrace/contrib/concurrent_ruby/integration.rb +0 -39
  707. data/lib/ddtrace/contrib/concurrent_ruby/patcher.rb +0 -30
  708. data/lib/ddtrace/contrib/configurable.rb +0 -103
  709. data/lib/ddtrace/contrib/configuration/resolver.rb +0 -82
  710. data/lib/ddtrace/contrib/configuration/resolvers/pattern_resolver.rb +0 -40
  711. data/lib/ddtrace/contrib/configuration/settings.rb +0 -56
  712. data/lib/ddtrace/contrib/dalli/configuration/settings.rb +0 -31
  713. data/lib/ddtrace/contrib/dalli/ext.rb +0 -21
  714. data/lib/ddtrace/contrib/dalli/instrumentation.rb +0 -55
  715. data/lib/ddtrace/contrib/dalli/integration.rb +0 -39
  716. data/lib/ddtrace/contrib/dalli/patcher.rb +0 -26
  717. data/lib/ddtrace/contrib/dalli/quantize.rb +0 -23
  718. data/lib/ddtrace/contrib/delayed_job/configuration/settings.rb +0 -33
  719. data/lib/ddtrace/contrib/delayed_job/ext.rb +0 -24
  720. data/lib/ddtrace/contrib/delayed_job/integration.rb +0 -39
  721. data/lib/ddtrace/contrib/delayed_job/patcher.rb +0 -29
  722. data/lib/ddtrace/contrib/delayed_job/plugin.rb +0 -85
  723. data/lib/ddtrace/contrib/elasticsearch/configuration/settings.rb +0 -32
  724. data/lib/ddtrace/contrib/elasticsearch/ext.rb +0 -23
  725. data/lib/ddtrace/contrib/elasticsearch/integration.rb +0 -40
  726. data/lib/ddtrace/contrib/elasticsearch/patcher.rb +0 -123
  727. data/lib/ddtrace/contrib/elasticsearch/quantize.rb +0 -84
  728. data/lib/ddtrace/contrib/ethon/configuration/settings.rb +0 -33
  729. data/lib/ddtrace/contrib/ethon/easy_patch.rb +0 -152
  730. data/lib/ddtrace/contrib/ethon/ext.rb +0 -20
  731. data/lib/ddtrace/contrib/ethon/integration.rb +0 -44
  732. data/lib/ddtrace/contrib/ethon/multi_patch.rb +0 -85
  733. data/lib/ddtrace/contrib/ethon/patcher.rb +0 -27
  734. data/lib/ddtrace/contrib/excon/configuration/settings.rb +0 -34
  735. data/lib/ddtrace/contrib/excon/ext.rb +0 -18
  736. data/lib/ddtrace/contrib/excon/integration.rb +0 -44
  737. data/lib/ddtrace/contrib/excon/middleware.rb +0 -164
  738. data/lib/ddtrace/contrib/excon/patcher.rb +0 -28
  739. data/lib/ddtrace/contrib/extensions.rb +0 -169
  740. data/lib/ddtrace/contrib/faraday/configuration/settings.rb +0 -39
  741. data/lib/ddtrace/contrib/faraday/connection.rb +0 -19
  742. data/lib/ddtrace/contrib/faraday/ext.rb +0 -18
  743. data/lib/ddtrace/contrib/faraday/integration.rb +0 -44
  744. data/lib/ddtrace/contrib/faraday/middleware.rb +0 -86
  745. data/lib/ddtrace/contrib/faraday/patcher.rb +0 -54
  746. data/lib/ddtrace/contrib/faraday/rack_builder.rb +0 -19
  747. data/lib/ddtrace/contrib/grape/configuration/settings.rb +0 -39
  748. data/lib/ddtrace/contrib/grape/endpoint.rb +0 -246
  749. data/lib/ddtrace/contrib/grape/ext.rb +0 -24
  750. data/lib/ddtrace/contrib/grape/instrumentation.rb +0 -34
  751. data/lib/ddtrace/contrib/grape/integration.rb +0 -40
  752. data/lib/ddtrace/contrib/grape/patcher.rb +0 -32
  753. data/lib/ddtrace/contrib/graphql/configuration/settings.rb +0 -33
  754. data/lib/ddtrace/contrib/graphql/ext.rb +0 -17
  755. data/lib/ddtrace/contrib/graphql/integration.rb +0 -40
  756. data/lib/ddtrace/contrib/graphql/patcher.rb +0 -61
  757. data/lib/ddtrace/contrib/grpc/configuration/settings.rb +0 -32
  758. data/lib/ddtrace/contrib/grpc/datadog_interceptor/client.rb +0 -59
  759. data/lib/ddtrace/contrib/grpc/datadog_interceptor/server.rb +0 -80
  760. data/lib/ddtrace/contrib/grpc/datadog_interceptor.rb +0 -79
  761. data/lib/ddtrace/contrib/grpc/ext.rb +0 -19
  762. data/lib/ddtrace/contrib/grpc/integration.rb +0 -39
  763. data/lib/ddtrace/contrib/grpc/intercept_with_datadog.rb +0 -50
  764. data/lib/ddtrace/contrib/grpc/patcher.rb +0 -34
  765. data/lib/ddtrace/contrib/http/circuit_breaker.rb +0 -38
  766. data/lib/ddtrace/contrib/http/configuration/settings.rb +0 -33
  767. data/lib/ddtrace/contrib/http/ext.rb +0 -18
  768. data/lib/ddtrace/contrib/http/instrumentation.rb +0 -180
  769. data/lib/ddtrace/contrib/http/integration.rb +0 -46
  770. data/lib/ddtrace/contrib/http/patcher.rb +0 -27
  771. data/lib/ddtrace/contrib/http_annotation_helper.rb +0 -11
  772. data/lib/ddtrace/contrib/httpclient/configuration/settings.rb +0 -33
  773. data/lib/ddtrace/contrib/httpclient/ext.rb +0 -18
  774. data/lib/ddtrace/contrib/httpclient/instrumentation.rb +0 -148
  775. data/lib/ddtrace/contrib/httpclient/integration.rb +0 -44
  776. data/lib/ddtrace/contrib/httpclient/patcher.rb +0 -39
  777. data/lib/ddtrace/contrib/httprb/configuration/settings.rb +0 -33
  778. data/lib/ddtrace/contrib/httprb/ext.rb +0 -18
  779. data/lib/ddtrace/contrib/httprb/instrumentation.rb +0 -158
  780. data/lib/ddtrace/contrib/httprb/integration.rb +0 -44
  781. data/lib/ddtrace/contrib/httprb/patcher.rb +0 -39
  782. data/lib/ddtrace/contrib/integration.rb +0 -17
  783. data/lib/ddtrace/contrib/kafka/configuration/settings.rb +0 -31
  784. data/lib/ddtrace/contrib/kafka/consumer_event.rb +0 -15
  785. data/lib/ddtrace/contrib/kafka/consumer_group_event.rb +0 -15
  786. data/lib/ddtrace/contrib/kafka/event.rb +0 -52
  787. data/lib/ddtrace/contrib/kafka/events/connection/request.rb +0 -35
  788. data/lib/ddtrace/contrib/kafka/events/consumer/process_batch.rb +0 -42
  789. data/lib/ddtrace/contrib/kafka/events/consumer/process_message.rb +0 -40
  790. data/lib/ddtrace/contrib/kafka/events/consumer_group/heartbeat.rb +0 -40
  791. data/lib/ddtrace/contrib/kafka/events/consumer_group/join_group.rb +0 -30
  792. data/lib/ddtrace/contrib/kafka/events/consumer_group/leave_group.rb +0 -30
  793. data/lib/ddtrace/contrib/kafka/events/consumer_group/sync_group.rb +0 -30
  794. data/lib/ddtrace/contrib/kafka/events/produce_operation/send_messages.rb +0 -33
  795. data/lib/ddtrace/contrib/kafka/events/producer/deliver_messages.rb +0 -36
  796. data/lib/ddtrace/contrib/kafka/events.rb +0 -45
  797. data/lib/ddtrace/contrib/kafka/ext.rb +0 -42
  798. data/lib/ddtrace/contrib/kafka/integration.rb +0 -40
  799. data/lib/ddtrace/contrib/kafka/patcher.rb +0 -27
  800. data/lib/ddtrace/contrib/lograge/configuration/settings.rb +0 -19
  801. data/lib/ddtrace/contrib/lograge/ext.rb +0 -11
  802. data/lib/ddtrace/contrib/lograge/instrumentation.rb +0 -39
  803. data/lib/ddtrace/contrib/lograge/integration.rb +0 -46
  804. data/lib/ddtrace/contrib/lograge/patcher.rb +0 -26
  805. data/lib/ddtrace/contrib/mongodb/configuration/settings.rb +0 -34
  806. data/lib/ddtrace/contrib/mongodb/ext.rb +0 -24
  807. data/lib/ddtrace/contrib/mongodb/instrumentation.rb +0 -70
  808. data/lib/ddtrace/contrib/mongodb/integration.rb +0 -44
  809. data/lib/ddtrace/contrib/mongodb/parsers.rb +0 -69
  810. data/lib/ddtrace/contrib/mongodb/patcher.rb +0 -32
  811. data/lib/ddtrace/contrib/mongodb/subscribers.rb +0 -112
  812. data/lib/ddtrace/contrib/mysql2/configuration/settings.rb +0 -31
  813. data/lib/ddtrace/contrib/mysql2/ext.rb +0 -19
  814. data/lib/ddtrace/contrib/mysql2/instrumentation.rb +0 -65
  815. data/lib/ddtrace/contrib/mysql2/integration.rb +0 -39
  816. data/lib/ddtrace/contrib/mysql2/patcher.rb +0 -28
  817. data/lib/ddtrace/contrib/patchable.rb +0 -71
  818. data/lib/ddtrace/contrib/patcher.rb +0 -66
  819. data/lib/ddtrace/contrib/presto/configuration/settings.rb +0 -31
  820. data/lib/ddtrace/contrib/presto/ext.rb +0 -29
  821. data/lib/ddtrace/contrib/presto/instrumentation.rb +0 -111
  822. data/lib/ddtrace/contrib/presto/integration.rb +0 -39
  823. data/lib/ddtrace/contrib/presto/patcher.rb +0 -34
  824. data/lib/ddtrace/contrib/qless/configuration/settings.rb +0 -36
  825. data/lib/ddtrace/contrib/qless/ext.rb +0 -21
  826. data/lib/ddtrace/contrib/qless/integration.rb +0 -39
  827. data/lib/ddtrace/contrib/qless/patcher.rb +0 -35
  828. data/lib/ddtrace/contrib/qless/qless_job.rb +0 -74
  829. data/lib/ddtrace/contrib/qless/tracer_cleaner.rb +0 -34
  830. data/lib/ddtrace/contrib/que/configuration/settings.rb +0 -44
  831. data/lib/ddtrace/contrib/que/ext.rb +0 -31
  832. data/lib/ddtrace/contrib/que/integration.rb +0 -43
  833. data/lib/ddtrace/contrib/que/patcher.rb +0 -25
  834. data/lib/ddtrace/contrib/que/tracer.rb +0 -58
  835. data/lib/ddtrace/contrib/racecar/configuration/settings.rb +0 -31
  836. data/lib/ddtrace/contrib/racecar/event.rb +0 -77
  837. data/lib/ddtrace/contrib/racecar/events/batch.rb +0 -28
  838. data/lib/ddtrace/contrib/racecar/events/consume.rb +0 -28
  839. data/lib/ddtrace/contrib/racecar/events/message.rb +0 -28
  840. data/lib/ddtrace/contrib/racecar/events.rb +0 -33
  841. data/lib/ddtrace/contrib/racecar/ext.rb +0 -26
  842. data/lib/ddtrace/contrib/racecar/integration.rb +0 -40
  843. data/lib/ddtrace/contrib/racecar/patcher.rb +0 -27
  844. data/lib/ddtrace/contrib/rack/configuration/settings.rb +0 -47
  845. data/lib/ddtrace/contrib/rack/ext.rb +0 -22
  846. data/lib/ddtrace/contrib/rack/integration.rb +0 -46
  847. data/lib/ddtrace/contrib/rack/middlewares.rb +0 -288
  848. data/lib/ddtrace/contrib/rack/patcher.rb +0 -106
  849. data/lib/ddtrace/contrib/rack/request_queue.rb +0 -45
  850. data/lib/ddtrace/contrib/rails/auto_instrument_railtie.rb +0 -10
  851. data/lib/ddtrace/contrib/rails/configuration/settings.rb +0 -101
  852. data/lib/ddtrace/contrib/rails/ext.rb +0 -18
  853. data/lib/ddtrace/contrib/rails/framework.rb +0 -172
  854. data/lib/ddtrace/contrib/rails/integration.rb +0 -45
  855. data/lib/ddtrace/contrib/rails/log_injection.rb +0 -42
  856. data/lib/ddtrace/contrib/rails/middlewares.rb +0 -44
  857. data/lib/ddtrace/contrib/rails/patcher.rb +0 -119
  858. data/lib/ddtrace/contrib/rails/railtie.rb +0 -18
  859. data/lib/ddtrace/contrib/rails/utils.rb +0 -25
  860. data/lib/ddtrace/contrib/rake/configuration/settings.rb +0 -32
  861. data/lib/ddtrace/contrib/rake/ext.rb +0 -22
  862. data/lib/ddtrace/contrib/rake/instrumentation.rb +0 -91
  863. data/lib/ddtrace/contrib/rake/integration.rb +0 -39
  864. data/lib/ddtrace/contrib/rake/patcher.rb +0 -31
  865. data/lib/ddtrace/contrib/redis/configuration/resolver.rb +0 -46
  866. data/lib/ddtrace/contrib/redis/configuration/settings.rb +0 -36
  867. data/lib/ddtrace/contrib/redis/ext.rb +0 -23
  868. data/lib/ddtrace/contrib/redis/instrumentation.rb +0 -90
  869. data/lib/ddtrace/contrib/redis/integration.rb +0 -43
  870. data/lib/ddtrace/contrib/redis/patcher.rb +0 -33
  871. data/lib/ddtrace/contrib/redis/quantize.rb +0 -76
  872. data/lib/ddtrace/contrib/redis/tags.rb +0 -47
  873. data/lib/ddtrace/contrib/redis/vendor/resolver.rb +0 -159
  874. data/lib/ddtrace/contrib/registerable.rb +0 -33
  875. data/lib/ddtrace/contrib/registry.rb +0 -43
  876. data/lib/ddtrace/contrib/resque/configuration/settings.rb +0 -49
  877. data/lib/ddtrace/contrib/resque/ext.rb +0 -18
  878. data/lib/ddtrace/contrib/resque/integration.rb +0 -44
  879. data/lib/ddtrace/contrib/resque/patcher.rb +0 -30
  880. data/lib/ddtrace/contrib/resque/resque_job.rb +0 -104
  881. data/lib/ddtrace/contrib/rest_client/configuration/settings.rb +0 -32
  882. data/lib/ddtrace/contrib/rest_client/ext.rb +0 -18
  883. data/lib/ddtrace/contrib/rest_client/integration.rb +0 -39
  884. data/lib/ddtrace/contrib/rest_client/patcher.rb +0 -25
  885. data/lib/ddtrace/contrib/rest_client/request_patch.rb +0 -92
  886. data/lib/ddtrace/contrib/semantic_logger/configuration/settings.rb +0 -19
  887. data/lib/ddtrace/contrib/semantic_logger/ext.rb +0 -11
  888. data/lib/ddtrace/contrib/semantic_logger/instrumentation.rb +0 -43
  889. data/lib/ddtrace/contrib/semantic_logger/integration.rb +0 -48
  890. data/lib/ddtrace/contrib/semantic_logger/patcher.rb +0 -26
  891. data/lib/ddtrace/contrib/sequel/configuration/settings.rb +0 -29
  892. data/lib/ddtrace/contrib/sequel/database.rb +0 -64
  893. data/lib/ddtrace/contrib/sequel/dataset.rb +0 -64
  894. data/lib/ddtrace/contrib/sequel/ext.rb +0 -20
  895. data/lib/ddtrace/contrib/sequel/integration.rb +0 -39
  896. data/lib/ddtrace/contrib/sequel/patcher.rb +0 -34
  897. data/lib/ddtrace/contrib/sequel/utils.rb +0 -75
  898. data/lib/ddtrace/contrib/shoryuken/configuration/settings.rb +0 -32
  899. data/lib/ddtrace/contrib/shoryuken/ext.rb +0 -22
  900. data/lib/ddtrace/contrib/shoryuken/integration.rb +0 -40
  901. data/lib/ddtrace/contrib/shoryuken/patcher.rb +0 -25
  902. data/lib/ddtrace/contrib/shoryuken/tracer.rb +0 -56
  903. data/lib/ddtrace/contrib/sidekiq/client_tracer.rb +0 -44
  904. data/lib/ddtrace/contrib/sidekiq/configuration/settings.rb +0 -38
  905. data/lib/ddtrace/contrib/sidekiq/ext.rb +0 -31
  906. data/lib/ddtrace/contrib/sidekiq/integration.rb +0 -49
  907. data/lib/ddtrace/contrib/sidekiq/patcher.rb +0 -68
  908. data/lib/ddtrace/contrib/sidekiq/server_internal_tracer/heartbeat.rb +0 -30
  909. data/lib/ddtrace/contrib/sidekiq/server_internal_tracer/job_fetch.rb +0 -30
  910. data/lib/ddtrace/contrib/sidekiq/server_internal_tracer/scheduled_push.rb +0 -29
  911. data/lib/ddtrace/contrib/sidekiq/server_tracer.rb +0 -66
  912. data/lib/ddtrace/contrib/sidekiq/tracing.rb +0 -45
  913. data/lib/ddtrace/contrib/sinatra/configuration/settings.rb +0 -40
  914. data/lib/ddtrace/contrib/sinatra/env.rb +0 -59
  915. data/lib/ddtrace/contrib/sinatra/ext.rb +0 -28
  916. data/lib/ddtrace/contrib/sinatra/headers.rb +0 -30
  917. data/lib/ddtrace/contrib/sinatra/integration.rb +0 -39
  918. data/lib/ddtrace/contrib/sinatra/patcher.rb +0 -30
  919. data/lib/ddtrace/contrib/sinatra/tracer.rb +0 -150
  920. data/lib/ddtrace/contrib/sinatra/tracer_middleware.rb +0 -112
  921. data/lib/ddtrace/contrib/sneakers/configuration/settings.rb +0 -34
  922. data/lib/ddtrace/contrib/sneakers/ext.rb +0 -23
  923. data/lib/ddtrace/contrib/sneakers/integration.rb +0 -42
  924. data/lib/ddtrace/contrib/sneakers/patcher.rb +0 -25
  925. data/lib/ddtrace/contrib/sneakers/tracer.rb +0 -54
  926. data/lib/ddtrace/contrib/status_code_matcher.rb +0 -70
  927. data/lib/ddtrace/contrib/sucker_punch/configuration/settings.rb +0 -31
  928. data/lib/ddtrace/contrib/sucker_punch/exception_handler.rb +0 -25
  929. data/lib/ddtrace/contrib/sucker_punch/ext.rb +0 -22
  930. data/lib/ddtrace/contrib/sucker_punch/instrumentation.rb +0 -89
  931. data/lib/ddtrace/contrib/sucker_punch/integration.rb +0 -39
  932. data/lib/ddtrace/contrib/sucker_punch/patcher.rb +0 -44
  933. data/lib/ddtrace/correlation.rb +0 -40
  934. data/lib/ddtrace/diagnostics/environment_logger.rb +0 -280
  935. data/lib/ddtrace/diagnostics/health.rb +0 -34
  936. data/lib/ddtrace/distributed_tracing/headers/b3.rb +0 -45
  937. data/lib/ddtrace/distributed_tracing/headers/b3_single.rb +0 -57
  938. data/lib/ddtrace/distributed_tracing/headers/datadog.rb +0 -43
  939. data/lib/ddtrace/distributed_tracing/headers/headers.rb +0 -72
  940. data/lib/ddtrace/distributed_tracing/headers/helpers.rb +0 -44
  941. data/lib/ddtrace/encoding.rb +0 -72
  942. data/lib/ddtrace/error.rb +0 -97
  943. data/lib/ddtrace/event.rb +0 -53
  944. data/lib/ddtrace/ext/analytics.rb +0 -13
  945. data/lib/ddtrace/ext/app_types.rb +0 -12
  946. data/lib/ddtrace/ext/correlation.rb +0 -12
  947. data/lib/ddtrace/ext/diagnostics.rb +0 -37
  948. data/lib/ddtrace/ext/distributed.rb +0 -40
  949. data/lib/ddtrace/ext/environment.rb +0 -24
  950. data/lib/ddtrace/ext/errors.rb +0 -11
  951. data/lib/ddtrace/ext/forced_tracing.rb +0 -26
  952. data/lib/ddtrace/ext/git.rb +0 -32
  953. data/lib/ddtrace/ext/http.rb +0 -47
  954. data/lib/ddtrace/ext/integration.rb +0 -9
  955. data/lib/ddtrace/ext/manual_tracing.rb +0 -10
  956. data/lib/ddtrace/ext/metrics.rb +0 -16
  957. data/lib/ddtrace/ext/net.rb +0 -11
  958. data/lib/ddtrace/ext/priority.rb +0 -19
  959. data/lib/ddtrace/ext/profiling.rb +0 -53
  960. data/lib/ddtrace/ext/runtime.rb +0 -25
  961. data/lib/ddtrace/ext/sampling.rb +0 -17
  962. data/lib/ddtrace/ext/sql.rb +0 -9
  963. data/lib/ddtrace/ext/test.rb +0 -9
  964. data/lib/ddtrace/ext/transport.rb +0 -32
  965. data/lib/ddtrace/forced_tracing.rb +0 -39
  966. data/lib/ddtrace/logger.rb +0 -41
  967. data/lib/ddtrace/metrics.rb +0 -282
  968. data/lib/ddtrace/opentelemetry/extensions.rb +0 -14
  969. data/lib/ddtrace/opentelemetry/span.rb +0 -34
  970. data/lib/ddtrace/opentracer/carrier.rb +0 -7
  971. data/lib/ddtrace/opentracer/distributed_headers.rb +0 -56
  972. data/lib/ddtrace/opentracer/global_tracer.rb +0 -16
  973. data/lib/ddtrace/opentracer/propagator.rb +0 -23
  974. data/lib/ddtrace/opentracer/rack_propagator.rb +0 -61
  975. data/lib/ddtrace/opentracer/scope.rb +0 -16
  976. data/lib/ddtrace/opentracer/scope_manager.rb +0 -7
  977. data/lib/ddtrace/opentracer/span.rb +0 -95
  978. data/lib/ddtrace/opentracer/span_context.rb +0 -15
  979. data/lib/ddtrace/opentracer/span_context_factory.rb +0 -24
  980. data/lib/ddtrace/opentracer/text_map_propagator.rb +0 -76
  981. data/lib/ddtrace/opentracer/thread_local_scope.rb +0 -32
  982. data/lib/ddtrace/opentracer/thread_local_scope_manager.rb +0 -41
  983. data/lib/ddtrace/opentracer/tracer.rb +0 -209
  984. data/lib/ddtrace/opentracer.rb +0 -22
  985. data/lib/ddtrace/patcher.rb +0 -69
  986. data/lib/ddtrace/pin.rb +0 -86
  987. data/lib/ddtrace/pipeline/span_filter.rb +0 -39
  988. data/lib/ddtrace/pipeline/span_processor.rb +0 -21
  989. data/lib/ddtrace/pipeline.rb +0 -47
  990. data/lib/ddtrace/profiling/buffer.rb +0 -42
  991. data/lib/ddtrace/profiling/collectors/stack.rb +0 -297
  992. data/lib/ddtrace/profiling/encoding/profile.rb +0 -46
  993. data/lib/ddtrace/profiling/events/stack.rb +0 -81
  994. data/lib/ddtrace/profiling/exporter.rb +0 -24
  995. data/lib/ddtrace/profiling/flush.rb +0 -44
  996. data/lib/ddtrace/profiling/pprof/builder.rb +0 -126
  997. data/lib/ddtrace/profiling/pprof/converter.rb +0 -103
  998. data/lib/ddtrace/profiling/pprof/message_set.rb +0 -15
  999. data/lib/ddtrace/profiling/pprof/pprof_pb.rb +0 -82
  1000. data/lib/ddtrace/profiling/pprof/stack_sample.rb +0 -140
  1001. data/lib/ddtrace/profiling/pprof/string_table.rb +0 -11
  1002. data/lib/ddtrace/profiling/pprof/template.rb +0 -119
  1003. data/lib/ddtrace/profiling/profiler.rb +0 -31
  1004. data/lib/ddtrace/profiling/recorder.rb +0 -96
  1005. data/lib/ddtrace/profiling/scheduler.rb +0 -150
  1006. data/lib/ddtrace/profiling/tasks/setup.rb +0 -90
  1007. data/lib/ddtrace/profiling/trace_identifiers/ddtrace.rb +0 -42
  1008. data/lib/ddtrace/profiling/trace_identifiers/helper.rb +0 -46
  1009. data/lib/ddtrace/profiling/transport/http/api/endpoint.rb +0 -94
  1010. data/lib/ddtrace/profiling/transport/http/api/instance.rb +0 -37
  1011. data/lib/ddtrace/profiling/transport/http/api.rb +0 -44
  1012. data/lib/ddtrace/profiling/transport/http/builder.rb +0 -29
  1013. data/lib/ddtrace/profiling/transport/http/client.rb +0 -34
  1014. data/lib/ddtrace/profiling/transport/http/response.rb +0 -22
  1015. data/lib/ddtrace/profiling/transport/http.rb +0 -111
  1016. data/lib/ddtrace/profiling/transport/io/client.rb +0 -28
  1017. data/lib/ddtrace/profiling/transport/io/response.rb +0 -17
  1018. data/lib/ddtrace/profiling/transport/io.rb +0 -31
  1019. data/lib/ddtrace/profiling/transport/request.rb +0 -16
  1020. data/lib/ddtrace/profiling.rb +0 -149
  1021. data/lib/ddtrace/propagation/grpc_propagator.rb +0 -75
  1022. data/lib/ddtrace/propagation/http_propagator.rb +0 -91
  1023. data/lib/ddtrace/quantization/hash.rb +0 -104
  1024. data/lib/ddtrace/quantization/http.rb +0 -90
  1025. data/lib/ddtrace/runtime/metrics.rb +0 -135
  1026. data/lib/ddtrace/sampler.rb +0 -303
  1027. data/lib/ddtrace/sampling/matcher.rb +0 -58
  1028. data/lib/ddtrace/sampling/rate_limiter.rb +0 -177
  1029. data/lib/ddtrace/sampling/rule.rb +0 -62
  1030. data/lib/ddtrace/sampling/rule_sampler.rb +0 -133
  1031. data/lib/ddtrace/sampling.rb +0 -3
  1032. data/lib/ddtrace/span.rb +0 -445
  1033. data/lib/ddtrace/sync_writer.rb +0 -69
  1034. data/lib/ddtrace/tasks/exec.rb +0 -47
  1035. data/lib/ddtrace/tasks/help.rb +0 -15
  1036. data/lib/ddtrace/tracer.rb +0 -449
  1037. data/lib/ddtrace/utils/compression.rb +0 -28
  1038. data/lib/ddtrace/utils/database.rb +0 -26
  1039. data/lib/ddtrace/utils/forking.rb +0 -53
  1040. data/lib/ddtrace/utils/object_set.rb +0 -40
  1041. data/lib/ddtrace/utils/only_once.rb +0 -41
  1042. data/lib/ddtrace/utils/sequence.rb +0 -18
  1043. data/lib/ddtrace/utils/string_table.rb +0 -46
  1044. data/lib/ddtrace/utils/time.rb +0 -51
  1045. data/lib/ddtrace/utils.rb +0 -80
  1046. data/lib/ddtrace/vendor/active_record/connection_specification.rb +0 -302
  1047. data/lib/ddtrace/vendor/multipart-post/multipart/post/composite_read_io.rb +0 -117
  1048. data/lib/ddtrace/vendor/multipart-post/multipart/post/multipartable.rb +0 -58
  1049. data/lib/ddtrace/vendor/multipart-post/multipart/post/parts.rb +0 -136
  1050. data/lib/ddtrace/vendor/multipart-post/multipart/post/version.rb +0 -10
  1051. data/lib/ddtrace/vendor/multipart-post/multipart/post.rb +0 -9
  1052. data/lib/ddtrace/vendor/multipart-post/multipart.rb +0 -13
  1053. data/lib/ddtrace/vendor/multipart-post/net/http/post/multipart.rb +0 -33
  1054. data/lib/ddtrace/worker.rb +0 -21
  1055. data/lib/ddtrace/workers/async.rb +0 -175
  1056. data/lib/ddtrace/workers/interval_loop.rb +0 -116
  1057. data/lib/ddtrace/workers/polling.rb +0 -56
  1058. data/lib/ddtrace/workers/queue.rb +0 -41
  1059. data/lib/ddtrace/workers/runtime_metrics.rb +0 -65
  1060. data/lib/ddtrace/workers/trace_writer.rb +0 -200
  1061. data/lib/ddtrace/workers.rb +0 -123
  1062. data/lib/ddtrace/writer.rb +0 -200
@@ -0,0 +1,626 @@
1
+ # typed: false
2
+ require 'logger'
3
+
4
+ require 'datadog/core/configuration/base'
5
+ require 'datadog/core/environment/ext'
6
+ require 'datadog/core/runtime/ext'
7
+ require 'datadog/profiling/ext'
8
+ require 'datadog/tracing/configuration/ext'
9
+
10
+ module Datadog
11
+ module Core
12
+ module Configuration
13
+ # Global configuration settings for the trace library.
14
+ # @public_api
15
+ # rubocop:disable Metrics/BlockLength
16
+ # rubocop:disable Metrics/ClassLength
17
+ # rubocop:disable Layout/LineLength
18
+ class Settings
19
+ include Base
20
+
21
+ # @!visibility private
22
+ def initialize(*_)
23
+ super
24
+
25
+ # WORKAROUND: The values for services, version, and env can get set either directly OR as a side effect of
26
+ # accessing tags (reading or writing). This is of course really confusing and error-prone, e.g. in an app
27
+ # WITHOUT this workaround where you define `DD_TAGS=env:envenvtag,service:envservicetag,version:envversiontag`
28
+ # and do:
29
+ #
30
+ # puts Datadog.configuration.instance_exec { "#{service} #{env} #{version}" }
31
+ # Datadog.configuration.tags
32
+ # puts Datadog.configuration.instance_exec { "#{service} #{env} #{version}" }
33
+ #
34
+ # the output will be:
35
+ #
36
+ # [empty]
37
+ # envservicetag envenvtag envversiontag
38
+ #
39
+ # That is -- the proper values for service/env/version are only set AFTER something accidentally or not triggers
40
+ # the resolution of the tags.
41
+ # This is really confusing, error prone, etc, so calling tags here is a really hacky but effective way to
42
+ # avoid this. I could not think of a better way of fixing this issue without massive refactoring of tags parsing
43
+ # (so that the individual service/env/version get correctly set even from their tags values, not as a side
44
+ # effect). Sorry :(
45
+ tags
46
+ end
47
+
48
+ # {https://docs.datadoghq.com/agent/ Datadog Agent} configuration.
49
+ # @public_api
50
+ settings :agent do
51
+ # Agent hostname or IP.
52
+ # @default `DD_AGENT_HOST` environment variable, otherwise `127.0.0.1`
53
+ # @return [String,nil]
54
+ option :host
55
+
56
+ # Agent APM TCP port.
57
+ # @see https://docs.datadoghq.com/getting_started/tracing/#datadog-apm
58
+ # @default `DD_TRACE_AGENT_PORT` environment variable, otherwise `8126`
59
+ # @return [String,nil]
60
+ option :port
61
+
62
+ # TODO: add declarative statsd configuration. Currently only usable via an environment variable.
63
+ # Statsd configuration for agent access.
64
+ # @public_api
65
+ # settings :statsd do
66
+ # # Agent Statsd UDP port.
67
+ # # @configure_with {Datadog::Statsd}
68
+ # # @default `DD_AGENT_HOST` environment variable, otherwise `8125`
69
+ # # @return [String,nil]
70
+ # option :port
71
+ # end
72
+ end
73
+
74
+ # Datadog API key.
75
+ #
76
+ # For internal use only.
77
+ #
78
+ # @default `DD_API_KEY` environment variable, otherwise `nil`
79
+ # @return [String,nil]
80
+ option :api_key do |o|
81
+ o.default { ENV.fetch(Core::Environment::Ext::ENV_API_KEY, nil) }
82
+ o.lazy
83
+ end
84
+
85
+ # Datadog diagnostic settings.
86
+ #
87
+ # Enabling these surfaces debug information that can be helpful to
88
+ # diagnose issues related to Datadog internals.
89
+ # @public_api
90
+ settings :diagnostics do
91
+ # Outputs all spans created by the host application to `Datadog.logger`.
92
+ #
93
+ # **This option is very verbose!** It's only recommended for non-production
94
+ # environments.
95
+ #
96
+ # This option is helpful when trying to understand what information the
97
+ # Datadog features are sending to the Agent or backend.
98
+ # @default `DD_TRACE_DEBUG` environment variable, otherwise `false`
99
+ # @return [Boolean]
100
+ option :debug do |o|
101
+ o.default { env_to_bool(Datadog::Core::Diagnostics::Ext::DD_TRACE_DEBUG, false) }
102
+ o.lazy
103
+ o.on_set do |enabled|
104
+ # Enable rich debug print statements.
105
+ # We do not need to unnecessarily load 'pp' unless in debugging mode.
106
+ require 'pp' if enabled
107
+ end
108
+ end
109
+
110
+ # Internal {Datadog::Statsd} metrics collection.
111
+ #
112
+ # The list of metrics collected can be found in {Datadog::Core::Diagnostics::Ext::Health::Metrics}.
113
+ # @public_api
114
+ settings :health_metrics do
115
+ # Enable health metrics collection.
116
+ #
117
+ # @default `DD_HEALTH_METRICS_ENABLED` environment variable, otherwise `false`
118
+ # @return [Boolean]
119
+ option :enabled do |o|
120
+ o.default { env_to_bool(Datadog::Core::Diagnostics::Ext::Health::Metrics::ENV_ENABLED, false) }
121
+ o.lazy
122
+ end
123
+
124
+ # {Datadog::Statsd} instance to collect health metrics.
125
+ #
126
+ # If `nil`, health metrics creates a new {Datadog::Statsd} client with default agent configuration.
127
+ #
128
+ # @default `nil`
129
+ # @return [Datadog::Statsd,nil] a custom {Datadog::Statsd} instance
130
+ # @return [nil] an instance with default agent configuration will be lazily created
131
+ option :statsd
132
+ end
133
+
134
+ # Tracer startup debug log statement configuration.
135
+ # @public_api
136
+ settings :startup_logs do
137
+ # Enable startup logs collection.
138
+ #
139
+ # If `nil`, defaults to logging startup logs when `ddtrace` detects that the application
140
+ # is *not* running in a development environment.
141
+ #
142
+ # @default `DD_TRACE_STARTUP_LOGS` environment variable, otherwise `nil`
143
+ # @return [Boolean,nil]
144
+ option :enabled do |o|
145
+ # Defaults to nil as we want to know when the default value is being used
146
+ o.default { env_to_bool(Datadog::Core::Diagnostics::Ext::DD_TRACE_STARTUP_LOGS, nil) }
147
+ o.lazy
148
+ end
149
+ end
150
+ end
151
+
152
+ # The `env` tag in Datadog. Use it to separate out your staging, development, and production environments.
153
+ # @see https://docs.datadoghq.com/getting_started/tagging/unified_service_tagging
154
+ # @default `DD_ENV` environment variable, otherwise `nil`
155
+ # @return [String,nil]
156
+ option :env do |o|
157
+ # NOTE: env also gets set as a side effect of tags. See the WORKAROUND note in #initialize for details.
158
+ o.default { ENV.fetch(Core::Environment::Ext::ENV_ENVIRONMENT, nil) }
159
+ o.lazy
160
+ end
161
+
162
+ # Internal `Datadog.logger` configuration.
163
+ #
164
+ # This logger instance is only used internally by the gem.
165
+ # @public_api
166
+ settings :logger do
167
+ # The `Datadog.logger` object.
168
+ #
169
+ # Can be overwritten with a custom logger object that respects the
170
+ # [built-in Ruby Logger](https://ruby-doc.org/stdlib-3.0.1/libdoc/logger/rdoc/Logger.html)
171
+ # interface.
172
+ #
173
+ # @return Logger::Severity
174
+ option :instance do |o|
175
+ o.on_set { |value| set_option(:level, value.level) unless value.nil? }
176
+ end
177
+
178
+ # Log level for `Datadog.logger`.
179
+ # @see Logger::Severity
180
+ # @return Logger::Severity
181
+ option :level, default: ::Logger::INFO
182
+ end
183
+
184
+ # Datadog Profiler-specific configurations.
185
+ #
186
+ # @see https://docs.datadoghq.com/tracing/profiler/
187
+ # @public_api
188
+ settings :profiling do
189
+ # Enable profiling.
190
+ #
191
+ # @default `DD_PROFILING_ENABLED` environment variable, otherwise `false`
192
+ # @return [Boolean]
193
+ option :enabled do |o|
194
+ o.default { env_to_bool(Profiling::Ext::ENV_ENABLED, false) }
195
+ o.lazy
196
+ end
197
+
198
+ # @public_api
199
+ settings :exporter do
200
+ option :transport
201
+ end
202
+
203
+ # @public_api
204
+ settings :advanced do
205
+ # This should never be reduced, as it can cause the resulting profiles to become biased.
206
+ # The current default should be enough for most services, allowing 16 threads to be sampled around 30 times
207
+ # per second for a 60 second period.
208
+ option :max_events, default: 32768
209
+
210
+ # Controls the maximum number of frames for each thread sampled. Can be tuned to avoid omitted frames in the
211
+ # produced profiles. Increasing this may increase the overhead of profiling.
212
+ option :max_frames do |o|
213
+ o.default { env_to_int(Profiling::Ext::ENV_MAX_FRAMES, 400) }
214
+ o.lazy
215
+ end
216
+
217
+ # @public_api
218
+ settings :endpoint do
219
+ settings :collection do
220
+ # When using profiling together with tracing, this controls if endpoint names
221
+ # are gathered and reported together with profiles.
222
+ #
223
+ # @default `DD_PROFILING_ENDPOINT_COLLECTION_ENABLED` environment variable, otherwise `true`
224
+ # @return [Boolean]
225
+ option :enabled do |o|
226
+ o.default { env_to_bool(Profiling::Ext::ENV_ENDPOINT_COLLECTION_ENABLED, true) }
227
+ o.lazy
228
+ end
229
+ end
230
+ end
231
+
232
+ # Disable gathering of names and versions of gems in use by the service, used to power grouping and
233
+ # categorization of stack traces.
234
+ option :code_provenance_enabled, default: true
235
+ end
236
+
237
+ # @public_api
238
+ settings :upload do
239
+ option :timeout_seconds do |o|
240
+ o.setter { |value| value.nil? ? 30.0 : value.to_f }
241
+ o.default { env_to_float(Profiling::Ext::ENV_UPLOAD_TIMEOUT, 30.0) }
242
+ o.lazy
243
+ end
244
+ end
245
+ end
246
+
247
+ # [Runtime Metrics](https://docs.datadoghq.com/tracing/runtime_metrics/)
248
+ # are StatsD metrics collected by the tracer to gain additional insights into an application's performance.
249
+ # @public_api
250
+ settings :runtime_metrics do
251
+ # Enable runtime metrics.
252
+ # @default `DD_RUNTIME_METRICS_ENABLED` environment variable, otherwise `false`
253
+ # @return [Boolean]
254
+ option :enabled do |o|
255
+ o.default { env_to_bool(Core::Runtime::Ext::Metrics::ENV_ENABLED, false) }
256
+ o.lazy
257
+ end
258
+
259
+ option :opts, default: ->(_i) { {} }, lazy: true
260
+ option :statsd
261
+ end
262
+
263
+ # The `service` tag in Datadog. Use it to group related traces into a service.
264
+ # @see https://docs.datadoghq.com/getting_started/tagging/unified_service_tagging
265
+ # @default `DD_SERVICE` environment variable, otherwise the program name (e.g. `'ruby'`, `'rails'`, `'pry'`)
266
+ # @return [String]
267
+ option :service do |o|
268
+ # NOTE: service also gets set as a side effect of tags. See the WORKAROUND note in #initialize for details.
269
+ o.default { ENV.fetch(Core::Environment::Ext::ENV_SERVICE, Core::Environment::Ext::FALLBACK_SERVICE_NAME) }
270
+ o.lazy
271
+
272
+ # There's a few cases where we don't want to use the fallback service name, so this helper allows us to get a
273
+ # nil instead so that one can do
274
+ # nice_service_name = Datadog.configuration.service_without_fallback || nice_service_name_default
275
+ o.helper(:service_without_fallback) do
276
+ service_name = service
277
+ service_name unless service_name.equal?(Core::Environment::Ext::FALLBACK_SERVICE_NAME)
278
+ end
279
+ end
280
+
281
+ # The Datadog site host to send data to.
282
+ # By default, data is sent to the Datadog US site: `app.datadoghq.com`.
283
+ #
284
+ # If your organization is on another site, you must update this value to the new site.
285
+ #
286
+ # For internal use only.
287
+ #
288
+ # @see https://docs.datadoghq.com/agent/troubleshooting/site/
289
+ # @default `DD_SITE` environment variable, otherwise `nil` which sends data to `app.datadoghq.com`
290
+ # @return [String,nil]
291
+ option :site do |o|
292
+ o.default { ENV.fetch(Core::Environment::Ext::ENV_SITE, nil) }
293
+ o.lazy
294
+ end
295
+
296
+ # Default tags
297
+ #
298
+ # These tags are used by all Datadog products, when applicable.
299
+ # e.g. trace spans, profiles, etc.
300
+ # @default `DD_TAGS` environment variable (in the format `'tag1:value1,tag2:value2'`), otherwise `{}`
301
+ # @return [Hash<String,String>]
302
+ option :tags do |o|
303
+ o.default do
304
+ tags = {}
305
+
306
+ # Parse tags from environment
307
+ env_to_list(Core::Environment::Ext::ENV_TAGS).each do |tag|
308
+ pair = tag.split(':')
309
+ tags[pair.first] = pair.last if pair.length == 2
310
+ end
311
+
312
+ # Override tags if defined
313
+ tags[Core::Environment::Ext::TAG_ENV] = env unless env.nil?
314
+ tags[Core::Environment::Ext::TAG_VERSION] = version unless version.nil?
315
+
316
+ tags
317
+ end
318
+
319
+ o.setter do |new_value, old_value|
320
+ # Coerce keys to strings
321
+ string_tags = new_value.collect { |k, v| [k.to_s, v] }.to_h
322
+
323
+ # Cross-populate tag values with other settings
324
+ if env.nil? && string_tags.key?(Core::Environment::Ext::TAG_ENV)
325
+ self.env = string_tags[Core::Environment::Ext::TAG_ENV]
326
+ end
327
+
328
+ if version.nil? && string_tags.key?(Core::Environment::Ext::TAG_VERSION)
329
+ self.version = string_tags[Core::Environment::Ext::TAG_VERSION]
330
+ end
331
+
332
+ if service_without_fallback.nil? && string_tags.key?(Core::Environment::Ext::TAG_SERVICE)
333
+ self.service = string_tags[Core::Environment::Ext::TAG_SERVICE]
334
+ end
335
+
336
+ # Merge with previous tags
337
+ (old_value || {}).merge(string_tags)
338
+ end
339
+
340
+ o.lazy
341
+ end
342
+
343
+ # The time provider used by Datadog. It must respect the interface of [Time](https://ruby-doc.org/core-3.0.1/Time.html).
344
+ #
345
+ # When testing, it can be helpful to use a different time provider.
346
+ #
347
+ # For [Timecop](https://rubygems.org/gems/timecop), for example, `->{ Time.now_without_mock_time }`
348
+ # allows Datadog features to use the real wall time when time is frozen.
349
+ #
350
+ # @default `->{ Time.now }`
351
+ # @return [Proc<Time>]
352
+ option :time_now_provider do |o|
353
+ o.default { ::Time.now }
354
+
355
+ o.on_set do |time_provider|
356
+ Core::Utils::Time.now_provider = time_provider
357
+ end
358
+
359
+ o.resetter do |_value|
360
+ # TODO: Resetter needs access to the default value
361
+ # TODO: to help reduce duplication.
362
+ -> { ::Time.now }.tap do |default|
363
+ Core::Utils::Time.now_provider = default
364
+ end
365
+ end
366
+ end
367
+
368
+ # Tracer specific configurations.
369
+ # @public_api
370
+ settings :tracing do
371
+ # Legacy [App Analytics](https://docs.datadoghq.com/tracing/legacy_app_analytics/) configuration.
372
+ #
373
+ # @configure_with {Datadog::Tracing}
374
+ # @deprecated Use [Trace Retention and Ingestion](https://docs.datadoghq.com/tracing/trace_retention_and_ingestion/)
375
+ # controls.
376
+ # @public_api
377
+ settings :analytics do
378
+ # @default `DD_TRACE_ANALYTICS_ENABLED` environment variable, otherwise `nil`
379
+ # @return [Boolean,nil]
380
+ option :enabled do |o|
381
+ o.default { env_to_bool(Tracing::Configuration::Ext::Analytics::ENV_TRACE_ANALYTICS_ENABLED, nil) }
382
+ o.lazy
383
+ end
384
+ end
385
+
386
+ # [Distributed Tracing](https://docs.datadoghq.com/tracing/setup_overview/setup/ruby/#distributed-tracing) propagation
387
+ # style configuration.
388
+ #
389
+ # The supported formats are:
390
+ # * `Datadog`: Datadog propagation format, described by [Distributed Tracing](https://docs.datadoghq.com/tracing/setup_overview/setup/ruby/#distributed-tracing).
391
+ # * `B3`: B3 Propagation using multiple headers, described by [openzipkin/b3-propagation](https://github.com/openzipkin/b3-propagation#multiple-headers).
392
+ # * `B3 single header`: B3 Propagation using a single header, described by [openzipkin/b3-propagation](https://github.com/openzipkin/b3-propagation#single-header).
393
+ #
394
+ # @public_api
395
+ settings :distributed_tracing do
396
+ # An ordered list of what data propagation styles the tracer will use to extract distributed tracing propagation
397
+ # data from incoming requests and messages.
398
+ #
399
+ # The tracer will try to find distributed headers in the order they are present in the list provided to this option.
400
+ # The first format to have valid data present will be used.
401
+ #
402
+ # @default `DD_PROPAGATION_STYLE_EXTRACT` environment variable (comma-separated list),
403
+ # otherwise `['Datadog','B3','B3 single header']`.
404
+ # @return [Array<String>]
405
+ option :propagation_extract_style do |o|
406
+ o.default do
407
+ # Look for all headers by default
408
+ env_to_list(
409
+ Tracing::Configuration::Ext::Distributed::ENV_PROPAGATION_STYLE_EXTRACT,
410
+ [
411
+ Tracing::Configuration::Ext::Distributed::PROPAGATION_STYLE_DATADOG,
412
+ Tracing::Configuration::Ext::Distributed::PROPAGATION_STYLE_B3,
413
+ Tracing::Configuration::Ext::Distributed::PROPAGATION_STYLE_B3_SINGLE_HEADER
414
+ ]
415
+ )
416
+ end
417
+
418
+ o.lazy
419
+ end
420
+
421
+ # The data propagation styles the tracer will use to inject distributed tracing propagation
422
+ # data into outgoing requests and messages.
423
+ #
424
+ # The tracer will inject data from all styles specified in this option.
425
+ #
426
+ # @default `DD_PROPAGATION_STYLE_INJECT` environment variable (comma-separated list), otherwise `['Datadog']`.
427
+ # @return [Array<String>]
428
+ option :propagation_inject_style do |o|
429
+ o.default do
430
+ env_to_list(
431
+ Tracing::Configuration::Ext::Distributed::ENV_PROPAGATION_STYLE_INJECT,
432
+ [Tracing::Configuration::Ext::Distributed::PROPAGATION_STYLE_DATADOG] # Only inject Datadog headers by default
433
+ )
434
+ end
435
+
436
+ o.lazy
437
+ end
438
+ end
439
+
440
+ # Enable trace collection and span generation.
441
+ #
442
+ # You can use this option to disable tracing without having to
443
+ # remove the library as a whole.
444
+ #
445
+ # @default `DD_TRACE_ENABLED` environment variable, otherwise `true`
446
+ # @return [Boolean]
447
+ option :enabled do |o|
448
+ o.default { env_to_bool(Datadog::Core::Diagnostics::Ext::DD_TRACE_ENABLED, true) }
449
+ o.lazy
450
+ end
451
+
452
+ # A custom tracer instance.
453
+ #
454
+ # It must respect the contract of {Datadog::Tracing::Tracer}.
455
+ # It's recommended to delegate methods to {Datadog::Tracing::Tracer} to ease the implementation
456
+ # of a custom tracer.
457
+ #
458
+ # This option will not return the live tracer instance: it only holds a custom tracing instance, if any.
459
+ #
460
+ # For internal use only.
461
+ #
462
+ # @default `nil`
463
+ # @return [Object,nil]
464
+ option :instance
465
+
466
+ # DEV: Alias to Datadog::Tracing::Contrib::Extensions::Configuration::Settings#instrument.
467
+ # DEV: Should be removed when `c.tracing.instrument` namespacing is complete.
468
+ define_method(:instrument) do |integration_name, options = {}, &block|
469
+ Datadog.configuration.send(:instrument, integration_name, options, &block)
470
+ end
471
+
472
+ # TODO: Deprecate in the next major version, as `instrument` better describes this method's purpose
473
+ alias_method :use, :instrument
474
+
475
+ # Automatic correlation between tracing and logging.
476
+ # @see https://docs.datadoghq.com/tracing/setup_overview/setup/ruby/#trace-correlation
477
+ # @return [Boolean]
478
+ option :log_injection do |o|
479
+ o.default { env_to_bool(Tracing::Configuration::Ext::Correlation::ENV_LOGS_INJECTION_ENABLED, true) }
480
+ o.lazy
481
+ end
482
+
483
+ # Configures an alternative trace transport behavior, where
484
+ # traces can be sent to the agent and backend before all spans
485
+ # have finished.
486
+ #
487
+ # This is useful for long-running jobs or very large traces.
488
+ #
489
+ # The trace flame graph will display the partial trace as it is received and constantly
490
+ # update with new spans as they are flushed.
491
+ # @public_api
492
+ settings :partial_flush do
493
+ # Enable partial trace flushing.
494
+ #
495
+ # @default `false`
496
+ # @return [Boolean]
497
+ option :enabled, default: false
498
+
499
+ # Minimum number of finished spans required in a single unfinished trace before
500
+ # the tracer will consider that trace for partial flushing.
501
+ #
502
+ # This option helps preserve a minimum amount of batching in the
503
+ # flushing process, reducing network overhead.
504
+ #
505
+ # This threshold only applies to unfinished traces. Traces that have finished
506
+ # are always flushed immediately.
507
+ #
508
+ # @default 500
509
+ # @return [Boolean]
510
+ option :min_spans_threshold, default: 500
511
+ end
512
+
513
+ # Enables {https://docs.datadoghq.com/tracing/trace_retention_and_ingestion/#datadog-intelligent-retention-filter
514
+ # Datadog intelligent retention filter}.
515
+ # @default `true`
516
+ # @return [Boolean,nil]
517
+ option :priority_sampling
518
+
519
+ option :report_hostname do |o|
520
+ o.default { env_to_bool(Tracing::Configuration::Ext::NET::ENV_REPORT_HOSTNAME, false) }
521
+ o.lazy
522
+ end
523
+
524
+ # A custom sampler instance.
525
+ # The object must respect the {Datadog::Tracing::Sampling::Sampler} interface.
526
+ # @default `nil`
527
+ # @return [Object,nil]
528
+ option :sampler
529
+
530
+ # Client-side sampling configuration.
531
+ # @public_api
532
+ settings :sampling do
533
+ # Default sampling rate for the tracer.
534
+ #
535
+ # If `nil`, the trace uses an automatic sampling strategy that tries to ensure
536
+ # the collection of traces that are considered important (e.g. traces with an error, traces
537
+ # for resources not seen recently).
538
+ #
539
+ # @default `DD_TRACE_SAMPLE_RATE` environment variable, otherwise `nil`.
540
+ # @return [Float,nil]
541
+ option :default_rate do |o|
542
+ o.default { env_to_float(Tracing::Configuration::Ext::Sampling::ENV_SAMPLE_RATE, nil) }
543
+ o.lazy
544
+ end
545
+
546
+ # Rate limit for number of spans per second.
547
+ #
548
+ # Spans created above the limit will contribute to service metrics, but won't
549
+ # have their payload stored.
550
+ #
551
+ # @default `DD_TRACE_RATE_LIMIT` environment variable, otherwise 100.
552
+ # @return [Numeric,nil]
553
+ option :rate_limit do |o|
554
+ o.default { env_to_float(Tracing::Configuration::Ext::Sampling::ENV_RATE_LIMIT, 100) }
555
+ o.lazy
556
+ end
557
+ end
558
+
559
+ # [Continuous Integration Visibility](https://docs.datadoghq.com/continuous_integration/) configuration.
560
+ # @public_api
561
+ settings :test_mode do
562
+ # Enable test mode. This allows the tracer to collect spans from test runs.
563
+ #
564
+ # It also prevents the tracer from collecting spans in a production environment. Only use in a test environment.
565
+ #
566
+ # @default `DD_TRACE_TEST_MODE_ENABLED` environment variable, otherwise `false`
567
+ # @return [Boolean]
568
+ option :enabled do |o|
569
+ o.default { env_to_bool(Tracing::Configuration::Ext::Test::ENV_MODE_ENABLED, false) }
570
+ o.lazy
571
+ end
572
+
573
+ option :trace_flush do |o|
574
+ o.default { nil }
575
+ o.lazy
576
+ end
577
+
578
+ option :writer_options do |o|
579
+ o.default { {} }
580
+ o.lazy
581
+ end
582
+ end
583
+
584
+ # @see file:docs/GettingStarted.md#configuring-the-transport-layer Configuring the transport layer
585
+ #
586
+ # A {Proc} that configures a custom tracer transport.
587
+ # @yield Receives a {Datadog::Transport::HTTP} that can be modified with custom adapters and settings.
588
+ # @yieldparam [Datadog::Transport::HTTP] t transport to be configured.
589
+ # @default `nil`
590
+ # @return [Proc,nil]
591
+ option :transport_options, default: nil
592
+
593
+ # A custom writer instance.
594
+ # The object must respect the {Datadog::Tracing::Writer} interface.
595
+ #
596
+ # This option is recommended for internal use only.
597
+ #
598
+ # @default `nil`
599
+ # @return [Object,nil]
600
+ option :writer
601
+
602
+ # A custom {Hash} with keyword options to be passed to {Datadog::Tracing::Writer#initialize}.
603
+ #
604
+ # This option is recommended for internal use only.
605
+ #
606
+ # @default `{}`
607
+ # @return [Hash,nil]
608
+ option :writer_options, default: ->(_i) { {} }, lazy: true
609
+ end
610
+
611
+ # The `version` tag in Datadog. Use it to enable [Deployment Tracking](https://docs.datadoghq.com/tracing/deployment_tracking/).
612
+ # @see https://docs.datadoghq.com/getting_started/tagging/unified_service_tagging
613
+ # @default `DD_VERSION` environment variable, otherwise `nils`
614
+ # @return [String,nil]
615
+ option :version do |o|
616
+ # NOTE: version also gets set as a side effect of tags. See the WORKAROUND note in #initialize for details.
617
+ o.default { ENV.fetch(Core::Environment::Ext::ENV_VERSION, nil) }
618
+ o.lazy
619
+ end
620
+ end
621
+ # rubocop:enable Metrics/BlockLength
622
+ # rubocop:enable Metrics/ClassLength
623
+ # rubocop:enable Layout/LineLength
624
+ end
625
+ end
626
+ end