ddtrace 0.53.0 → 1.0.0.beta1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (1074) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +3 -0
  3. data/CHANGELOG.md +110 -11
  4. data/LICENSE-3rdparty.csv +2 -1
  5. data/README.md +4 -0
  6. data/bin/ddtracerb +5 -5
  7. data/ddtrace.gemspec +12 -6
  8. data/docs/0.x-trace.png +0 -0
  9. data/docs/1.0-trace.png +0 -0
  10. data/docs/AutoInstrumentation.md +36 -0
  11. data/docs/Deprecation.md +8 -0
  12. data/docs/DevelopmentGuide.md +1 -1
  13. data/docs/GettingStarted.md +449 -431
  14. data/docs/ProfilingDevelopment.md +14 -11
  15. data/docs/PublicApi.md +14 -0
  16. data/docs/UpgradeGuide.md +557 -0
  17. data/ext/ddtrace_profiling_native_extension/NativeExtensionDesign.md +86 -0
  18. data/ext/ddtrace_profiling_native_extension/clock_id.h +4 -0
  19. data/ext/ddtrace_profiling_native_extension/clock_id_from_pthread.c +52 -0
  20. data/ext/ddtrace_profiling_native_extension/clock_id_noop.c +14 -0
  21. data/ext/ddtrace_profiling_native_extension/extconf.rb +177 -8
  22. data/ext/ddtrace_profiling_native_extension/private_vm_api_access.c +35 -0
  23. data/ext/ddtrace_profiling_native_extension/private_vm_api_access.h +3 -0
  24. data/ext/ddtrace_profiling_native_extension/profiling.c +6 -1
  25. data/lib/datadog/appsec/assets/blocked.html +4 -0
  26. data/lib/datadog/appsec/assets/waf_rules/README.md +7 -0
  27. data/lib/datadog/appsec/assets/waf_rules/recommended.json +5708 -0
  28. data/lib/datadog/appsec/assets/waf_rules/risky.json +1439 -0
  29. data/lib/datadog/appsec/assets/waf_rules/strict.json +1361 -0
  30. data/lib/datadog/appsec/assets.rb +36 -0
  31. data/lib/datadog/appsec/autoload.rb +16 -0
  32. data/lib/datadog/appsec/configuration/settings.rb +173 -0
  33. data/lib/datadog/appsec/configuration.rb +70 -0
  34. data/lib/datadog/appsec/contrib/auto_instrument.rb +27 -0
  35. data/lib/datadog/appsec/contrib/configuration/settings.rb +18 -0
  36. data/lib/datadog/appsec/contrib/integration.rb +35 -0
  37. data/lib/datadog/appsec/contrib/patcher.rb +10 -0
  38. data/lib/datadog/appsec/contrib/rack/configuration/settings.rb +20 -0
  39. data/lib/datadog/appsec/contrib/rack/ext.rb +13 -0
  40. data/lib/datadog/appsec/contrib/rack/gateway/watcher.rb +128 -0
  41. data/lib/datadog/appsec/contrib/rack/integration.rb +48 -0
  42. data/lib/datadog/appsec/contrib/rack/patcher.rb +33 -0
  43. data/lib/datadog/appsec/contrib/rack/reactive/request.rb +85 -0
  44. data/lib/datadog/appsec/contrib/rack/reactive/response.rb +62 -0
  45. data/lib/datadog/appsec/contrib/rack/request.rb +43 -0
  46. data/lib/datadog/appsec/contrib/rack/request_middleware.rb +98 -0
  47. data/lib/datadog/appsec/contrib/rack/response.rb +22 -0
  48. data/lib/datadog/appsec/contrib/rails/configuration/settings.rb +20 -0
  49. data/lib/datadog/appsec/contrib/rails/ext.rb +13 -0
  50. data/lib/datadog/appsec/contrib/rails/framework.rb +28 -0
  51. data/lib/datadog/appsec/contrib/rails/integration.rb +48 -0
  52. data/lib/datadog/appsec/contrib/rails/patcher.rb +125 -0
  53. data/lib/datadog/appsec/contrib/rails/request_middleware.rb +18 -0
  54. data/lib/datadog/appsec/contrib/sinatra/configuration/settings.rb +20 -0
  55. data/lib/datadog/appsec/contrib/sinatra/ext.rb +13 -0
  56. data/lib/datadog/appsec/contrib/sinatra/framework.rb +32 -0
  57. data/lib/datadog/appsec/contrib/sinatra/integration.rb +48 -0
  58. data/lib/datadog/appsec/contrib/sinatra/patcher.rb +77 -0
  59. data/lib/datadog/appsec/contrib/sinatra/request_middleware.rb +18 -0
  60. data/lib/datadog/appsec/event.rb +111 -0
  61. data/lib/datadog/appsec/extensions.rb +120 -0
  62. data/lib/datadog/appsec/instrumentation/gateway.rb +42 -0
  63. data/lib/datadog/appsec/rate_limiter.rb +53 -0
  64. data/lib/datadog/appsec/reactive/address_hash.rb +16 -0
  65. data/lib/datadog/appsec/reactive/engine.rb +42 -0
  66. data/lib/datadog/appsec/reactive/operation.rb +50 -0
  67. data/lib/datadog/appsec/reactive/subscriber.rb +16 -0
  68. data/lib/datadog/appsec.rb +21 -0
  69. data/lib/datadog/ci/configuration/components.rb +8 -8
  70. data/lib/datadog/ci/configuration/settings.rb +12 -3
  71. data/lib/datadog/ci/contrib/cucumber/configuration/settings.rb +3 -2
  72. data/lib/datadog/ci/contrib/cucumber/ext.rb +1 -0
  73. data/lib/datadog/ci/contrib/cucumber/formatter.rb +2 -7
  74. data/lib/datadog/ci/contrib/cucumber/instrumentation.rb +1 -1
  75. data/lib/datadog/ci/contrib/cucumber/integration.rb +2 -2
  76. data/lib/datadog/ci/contrib/cucumber/patcher.rb +2 -2
  77. data/lib/datadog/ci/contrib/rspec/configuration/settings.rb +3 -2
  78. data/lib/datadog/ci/contrib/rspec/example.rb +1 -6
  79. data/lib/datadog/ci/contrib/rspec/ext.rb +1 -0
  80. data/lib/datadog/ci/contrib/rspec/integration.rb +2 -2
  81. data/lib/datadog/ci/contrib/rspec/patcher.rb +2 -2
  82. data/lib/datadog/ci/ext/app_types.rb +1 -1
  83. data/lib/datadog/ci/ext/environment.rb +123 -115
  84. data/lib/datadog/ci/ext/settings.rb +1 -1
  85. data/lib/datadog/ci/ext/test.rb +1 -0
  86. data/lib/datadog/ci/extensions.rb +4 -4
  87. data/lib/datadog/ci/flush.rb +37 -0
  88. data/lib/datadog/ci/test.rb +19 -14
  89. data/lib/datadog/ci.rb +3 -2
  90. data/lib/datadog/core/buffer/cruby.rb +54 -0
  91. data/lib/datadog/core/buffer/random.rb +134 -0
  92. data/lib/datadog/core/buffer/thread_safe.rb +57 -0
  93. data/lib/datadog/core/chunker.rb +35 -0
  94. data/lib/datadog/core/configuration/agent_settings_resolver.rb +296 -0
  95. data/lib/datadog/core/configuration/base.rb +88 -0
  96. data/lib/datadog/core/configuration/components.rb +392 -0
  97. data/lib/datadog/core/configuration/dependency_resolver.rb +27 -0
  98. data/lib/datadog/core/configuration/option.rb +68 -0
  99. data/lib/datadog/core/configuration/option_definition.rb +125 -0
  100. data/lib/datadog/core/configuration/option_definition_set.rb +21 -0
  101. data/lib/datadog/core/configuration/option_set.rb +9 -0
  102. data/lib/datadog/core/configuration/options.rb +117 -0
  103. data/lib/datadog/core/configuration/settings.rb +626 -0
  104. data/lib/datadog/core/configuration.rb +283 -0
  105. data/lib/datadog/core/diagnostics/environment_logger.rb +282 -0
  106. data/lib/datadog/core/diagnostics/ext.rb +40 -0
  107. data/lib/datadog/core/diagnostics/health.rb +36 -0
  108. data/lib/datadog/core/encoding.rb +75 -0
  109. data/lib/datadog/core/environment/ext.rb +27 -9
  110. data/lib/datadog/core/environment/identity.rb +10 -4
  111. data/lib/datadog/core/environment/socket.rb +8 -2
  112. data/lib/datadog/core/environment/variable_helpers.rb +1 -0
  113. data/lib/datadog/core/error.rb +100 -0
  114. data/lib/datadog/core/extensions.rb +15 -0
  115. data/lib/datadog/core/git/ext.rb +34 -0
  116. data/lib/datadog/core/logger.rb +45 -0
  117. data/lib/datadog/core/metrics/client.rb +187 -0
  118. data/lib/datadog/core/metrics/ext.rb +19 -0
  119. data/lib/datadog/core/metrics/helpers.rb +23 -0
  120. data/lib/datadog/core/metrics/logging.rb +42 -0
  121. data/lib/datadog/core/metrics/metric.rb +12 -0
  122. data/lib/datadog/core/metrics/options.rb +48 -0
  123. data/lib/datadog/core/pin.rb +75 -0
  124. data/lib/datadog/core/runtime/ext.rb +28 -0
  125. data/lib/datadog/core/runtime/metrics.rb +125 -0
  126. data/lib/datadog/core/utils/compression.rb +31 -0
  127. data/lib/datadog/core/utils/forking.rb +62 -0
  128. data/lib/datadog/core/utils/object_set.rb +42 -0
  129. data/lib/datadog/core/utils/only_once.rb +43 -0
  130. data/lib/datadog/core/utils/sequence.rb +20 -0
  131. data/lib/datadog/core/utils/string_table.rb +48 -0
  132. data/lib/datadog/core/utils/time.rb +53 -0
  133. data/lib/datadog/core/utils.rb +114 -0
  134. data/lib/{ddtrace → datadog/core}/vendor/multipart-post/LICENSE +0 -0
  135. data/lib/datadog/core/vendor/multipart-post/multipart/post/composite_read_io.rb +119 -0
  136. data/lib/datadog/core/vendor/multipart-post/multipart/post/multipartable.rb +60 -0
  137. data/lib/datadog/core/vendor/multipart-post/multipart/post/parts.rb +138 -0
  138. data/lib/datadog/core/vendor/multipart-post/multipart/post/version.rb +12 -0
  139. data/lib/datadog/core/vendor/multipart-post/multipart/post.rb +11 -0
  140. data/lib/datadog/core/vendor/multipart-post/multipart.rb +15 -0
  141. data/lib/datadog/core/vendor/multipart-post/net/http/post/multipart.rb +35 -0
  142. data/lib/datadog/core/worker.rb +23 -0
  143. data/lib/datadog/core/workers/async.rb +179 -0
  144. data/lib/datadog/core/workers/interval_loop.rb +118 -0
  145. data/lib/datadog/core/workers/polling.rb +58 -0
  146. data/lib/datadog/core/workers/queue.rb +43 -0
  147. data/lib/datadog/core/workers/runtime_metrics.rb +64 -0
  148. data/lib/datadog/core.rb +73 -0
  149. data/lib/datadog/opentelemetry/extensions.rb +14 -0
  150. data/lib/datadog/opentelemetry/span.rb +34 -0
  151. data/lib/{ddtrace → datadog}/opentracer/binary_propagator.rb +0 -0
  152. data/lib/datadog/opentracer/carrier.rb +8 -0
  153. data/lib/datadog/opentracer/distributed_headers.rb +57 -0
  154. data/lib/datadog/opentracer/global_tracer.rb +16 -0
  155. data/lib/datadog/opentracer/propagator.rb +25 -0
  156. data/lib/datadog/opentracer/rack_propagator.rb +71 -0
  157. data/lib/datadog/opentracer/scope.rb +17 -0
  158. data/lib/datadog/opentracer/scope_manager.rb +8 -0
  159. data/lib/datadog/opentracer/span.rb +100 -0
  160. data/lib/datadog/opentracer/span_context.rb +18 -0
  161. data/lib/datadog/opentracer/span_context_factory.rb +26 -0
  162. data/lib/datadog/opentracer/text_map_propagator.rb +86 -0
  163. data/lib/datadog/opentracer/thread_local_scope.rb +33 -0
  164. data/lib/datadog/opentracer/thread_local_scope_manager.rb +42 -0
  165. data/lib/datadog/opentracer/tracer.rb +213 -0
  166. data/lib/datadog/opentracer.rb +23 -0
  167. data/lib/{ddtrace → datadog}/profiling/backtrace_location.rb +0 -0
  168. data/lib/datadog/profiling/buffer.rb +42 -0
  169. data/lib/datadog/profiling/collectors/code_provenance.rb +113 -0
  170. data/lib/datadog/profiling/collectors/stack.rb +297 -0
  171. data/lib/datadog/profiling/encoding/profile.rb +47 -0
  172. data/lib/{ddtrace → datadog}/profiling/event.rb +0 -0
  173. data/lib/datadog/profiling/events/stack.rb +81 -0
  174. data/lib/datadog/profiling/exporter.rb +24 -0
  175. data/lib/{ddtrace → datadog}/profiling/ext/forking.rb +0 -0
  176. data/lib/datadog/profiling/ext.rb +56 -0
  177. data/lib/datadog/profiling/flush.rb +68 -0
  178. data/lib/datadog/profiling/native_extension.rb +40 -0
  179. data/lib/datadog/profiling/pprof/builder.rb +126 -0
  180. data/lib/datadog/profiling/pprof/converter.rb +103 -0
  181. data/lib/datadog/profiling/pprof/message_set.rb +15 -0
  182. data/lib/{ddtrace → datadog}/profiling/pprof/payload.rb +0 -0
  183. data/lib/{ddtrace → datadog}/profiling/pprof/pprof.proto +0 -0
  184. data/lib/datadog/profiling/pprof/pprof_pb.rb +82 -0
  185. data/lib/datadog/profiling/pprof/stack_sample.rb +140 -0
  186. data/lib/datadog/profiling/pprof/string_table.rb +11 -0
  187. data/lib/datadog/profiling/pprof/template.rb +119 -0
  188. data/lib/datadog/profiling/preload.rb +4 -0
  189. data/lib/datadog/profiling/profiler.rb +33 -0
  190. data/lib/datadog/profiling/recorder.rb +116 -0
  191. data/lib/datadog/profiling/scheduler.rb +150 -0
  192. data/lib/datadog/profiling/tasks/exec.rb +49 -0
  193. data/lib/datadog/profiling/tasks/help.rb +17 -0
  194. data/lib/datadog/profiling/tasks/setup.rb +90 -0
  195. data/lib/datadog/profiling/trace_identifiers/ddtrace.rb +44 -0
  196. data/lib/datadog/profiling/trace_identifiers/helper.rb +46 -0
  197. data/lib/{ddtrace → datadog}/profiling/transport/client.rb +0 -0
  198. data/lib/datadog/profiling/transport/http/api/endpoint.rb +106 -0
  199. data/lib/datadog/profiling/transport/http/api/instance.rb +37 -0
  200. data/lib/{ddtrace → datadog}/profiling/transport/http/api/spec.rb +0 -0
  201. data/lib/datadog/profiling/transport/http/api.rb +44 -0
  202. data/lib/datadog/profiling/transport/http/builder.rb +29 -0
  203. data/lib/datadog/profiling/transport/http/client.rb +34 -0
  204. data/lib/datadog/profiling/transport/http/response.rb +22 -0
  205. data/lib/datadog/profiling/transport/http.rb +111 -0
  206. data/lib/datadog/profiling/transport/io/client.rb +28 -0
  207. data/lib/datadog/profiling/transport/io/response.rb +17 -0
  208. data/lib/datadog/profiling/transport/io.rb +31 -0
  209. data/lib/{ddtrace → datadog}/profiling/transport/parcel.rb +0 -0
  210. data/lib/datadog/profiling/transport/request.rb +16 -0
  211. data/lib/{ddtrace → datadog}/profiling/transport/response.rb +0 -0
  212. data/lib/datadog/profiling.rb +167 -0
  213. data/lib/datadog/tracing/analytics.rb +24 -0
  214. data/lib/datadog/tracing/buffer.rb +125 -0
  215. data/lib/datadog/tracing/configuration/ext.rb +50 -0
  216. data/lib/datadog/tracing/context.rb +67 -0
  217. data/lib/datadog/tracing/context_provider.rb +67 -0
  218. data/lib/datadog/tracing/contrib/action_cable/configuration/settings.rb +34 -0
  219. data/lib/datadog/tracing/contrib/action_cable/event.rb +71 -0
  220. data/lib/datadog/tracing/contrib/action_cable/events/broadcast.rb +57 -0
  221. data/lib/datadog/tracing/contrib/action_cable/events/perform_action.rb +62 -0
  222. data/lib/datadog/tracing/contrib/action_cable/events/transmit.rb +58 -0
  223. data/lib/datadog/tracing/contrib/action_cable/events.rb +36 -0
  224. data/lib/datadog/tracing/contrib/action_cable/ext.rb +31 -0
  225. data/lib/datadog/tracing/contrib/action_cable/instrumentation.rb +91 -0
  226. data/lib/datadog/tracing/contrib/action_cable/integration.rb +49 -0
  227. data/lib/datadog/tracing/contrib/action_cable/patcher.rb +30 -0
  228. data/lib/datadog/tracing/contrib/action_mailer/configuration/settings.rb +35 -0
  229. data/lib/datadog/tracing/contrib/action_mailer/event.rb +51 -0
  230. data/lib/datadog/tracing/contrib/action_mailer/events/deliver.rb +59 -0
  231. data/lib/datadog/tracing/contrib/action_mailer/events/process.rb +46 -0
  232. data/lib/datadog/tracing/contrib/action_mailer/events.rb +33 -0
  233. data/lib/datadog/tracing/contrib/action_mailer/ext.rb +32 -0
  234. data/lib/datadog/tracing/contrib/action_mailer/integration.rb +49 -0
  235. data/lib/datadog/tracing/contrib/action_mailer/patcher.rb +28 -0
  236. data/lib/datadog/tracing/contrib/action_pack/action_controller/instrumentation.rb +155 -0
  237. data/lib/datadog/tracing/contrib/action_pack/action_controller/patcher.rb +28 -0
  238. data/lib/datadog/tracing/contrib/action_pack/configuration/settings.rb +35 -0
  239. data/lib/datadog/tracing/contrib/action_pack/ext.rb +21 -0
  240. data/lib/datadog/tracing/contrib/action_pack/integration.rb +49 -0
  241. data/lib/datadog/tracing/contrib/action_pack/patcher.rb +26 -0
  242. data/lib/datadog/tracing/contrib/action_pack/utils.rb +39 -0
  243. data/lib/datadog/tracing/contrib/action_view/configuration/settings.rb +35 -0
  244. data/lib/datadog/tracing/contrib/action_view/event.rb +34 -0
  245. data/lib/datadog/tracing/contrib/action_view/events/render_partial.rb +53 -0
  246. data/lib/datadog/tracing/contrib/action_view/events/render_template.rb +56 -0
  247. data/lib/datadog/tracing/contrib/action_view/events.rb +33 -0
  248. data/lib/datadog/tracing/contrib/action_view/ext.rb +23 -0
  249. data/lib/datadog/tracing/contrib/action_view/instrumentation/partial_renderer.rb +77 -0
  250. data/lib/datadog/tracing/contrib/action_view/instrumentation/template_renderer.rb +90 -0
  251. data/lib/datadog/tracing/contrib/action_view/integration.rb +56 -0
  252. data/lib/datadog/tracing/contrib/action_view/patcher.rb +47 -0
  253. data/lib/datadog/tracing/contrib/action_view/utils.rb +35 -0
  254. data/lib/datadog/tracing/contrib/active_job/configuration/settings.rb +36 -0
  255. data/lib/datadog/tracing/contrib/active_job/event.rb +57 -0
  256. data/lib/datadog/tracing/contrib/active_job/events/discard.rb +49 -0
  257. data/lib/datadog/tracing/contrib/active_job/events/enqueue.rb +48 -0
  258. data/lib/datadog/tracing/contrib/active_job/events/enqueue_at.rb +48 -0
  259. data/lib/datadog/tracing/contrib/active_job/events/enqueue_retry.rb +50 -0
  260. data/lib/datadog/tracing/contrib/active_job/events/perform.rb +48 -0
  261. data/lib/datadog/tracing/contrib/active_job/events/retry_stopped.rb +49 -0
  262. data/lib/datadog/tracing/contrib/active_job/events.rb +41 -0
  263. data/lib/datadog/tracing/contrib/active_job/ext.rb +38 -0
  264. data/lib/datadog/tracing/contrib/active_job/integration.rb +49 -0
  265. data/lib/datadog/tracing/contrib/active_job/log_injection.rb +25 -0
  266. data/lib/datadog/tracing/contrib/active_job/patcher.rb +35 -0
  267. data/lib/datadog/tracing/contrib/active_model_serializers/configuration/settings.rb +32 -0
  268. data/lib/datadog/tracing/contrib/active_model_serializers/event.rb +68 -0
  269. data/lib/datadog/tracing/contrib/active_model_serializers/events/render.rb +44 -0
  270. data/lib/datadog/tracing/contrib/active_model_serializers/events/serialize.rb +46 -0
  271. data/lib/datadog/tracing/contrib/active_model_serializers/events.rb +33 -0
  272. data/lib/datadog/tracing/contrib/active_model_serializers/ext.rb +23 -0
  273. data/lib/datadog/tracing/contrib/active_model_serializers/integration.rb +44 -0
  274. data/lib/datadog/tracing/contrib/active_model_serializers/patcher.rb +32 -0
  275. data/lib/datadog/tracing/contrib/active_record/configuration/makara_resolver.rb +35 -0
  276. data/lib/datadog/tracing/contrib/active_record/configuration/resolver.rb +137 -0
  277. data/lib/datadog/tracing/contrib/active_record/configuration/settings.rb +38 -0
  278. data/lib/datadog/tracing/contrib/active_record/event.rb +29 -0
  279. data/lib/datadog/tracing/contrib/active_record/events/instantiation.rb +57 -0
  280. data/lib/datadog/tracing/contrib/active_record/events/sql.rb +77 -0
  281. data/lib/datadog/tracing/contrib/active_record/events.rb +33 -0
  282. data/lib/datadog/tracing/contrib/active_record/ext.rb +28 -0
  283. data/lib/datadog/tracing/contrib/active_record/integration.rb +55 -0
  284. data/lib/datadog/tracing/contrib/active_record/patcher.rb +26 -0
  285. data/lib/datadog/tracing/contrib/active_record/utils.rb +127 -0
  286. data/lib/{ddtrace/vendor/active_record → datadog/tracing/contrib/active_record/vendor}/MIT-LICENSE +0 -0
  287. data/lib/datadog/tracing/contrib/active_record/vendor/connection_specification.rb +306 -0
  288. data/lib/datadog/tracing/contrib/active_support/cache/instrumentation.rb +269 -0
  289. data/lib/datadog/tracing/contrib/active_support/cache/patcher.rb +72 -0
  290. data/lib/datadog/tracing/contrib/active_support/cache/redis.rb +46 -0
  291. data/lib/datadog/tracing/contrib/active_support/configuration/settings.rb +34 -0
  292. data/lib/datadog/tracing/contrib/active_support/ext.rb +30 -0
  293. data/lib/datadog/tracing/contrib/active_support/integration.rb +50 -0
  294. data/lib/datadog/tracing/contrib/active_support/notifications/event.rb +70 -0
  295. data/lib/datadog/tracing/contrib/active_support/notifications/subscriber.rb +70 -0
  296. data/lib/datadog/tracing/contrib/active_support/notifications/subscription.rb +161 -0
  297. data/lib/datadog/tracing/contrib/active_support/patcher.rb +26 -0
  298. data/lib/datadog/tracing/contrib/analytics.rb +28 -0
  299. data/lib/datadog/tracing/contrib/auto_instrument.rb +50 -0
  300. data/lib/datadog/tracing/contrib/aws/configuration/settings.rb +34 -0
  301. data/lib/datadog/tracing/contrib/aws/ext.rb +26 -0
  302. data/lib/datadog/tracing/contrib/aws/instrumentation.rb +93 -0
  303. data/lib/datadog/tracing/contrib/aws/integration.rb +46 -0
  304. data/lib/datadog/tracing/contrib/aws/parsed_context.rb +59 -0
  305. data/lib/datadog/tracing/contrib/aws/patcher.rb +56 -0
  306. data/lib/datadog/tracing/contrib/aws/services.rb +122 -0
  307. data/lib/datadog/tracing/contrib/concurrent_ruby/configuration/settings.rb +22 -0
  308. data/lib/datadog/tracing/contrib/concurrent_ruby/context_composite_executor_service.rb +45 -0
  309. data/lib/datadog/tracing/contrib/concurrent_ruby/ext.rb +15 -0
  310. data/lib/datadog/tracing/contrib/concurrent_ruby/future_patch.rb +26 -0
  311. data/lib/datadog/tracing/contrib/concurrent_ruby/integration.rb +42 -0
  312. data/lib/datadog/tracing/contrib/concurrent_ruby/patcher.rb +32 -0
  313. data/lib/datadog/tracing/contrib/configurable.rb +101 -0
  314. data/lib/datadog/tracing/contrib/configuration/resolver.rb +84 -0
  315. data/lib/datadog/tracing/contrib/configuration/resolvers/pattern_resolver.rb +42 -0
  316. data/lib/datadog/tracing/contrib/configuration/settings.rb +42 -0
  317. data/lib/datadog/tracing/contrib/dalli/configuration/settings.rb +34 -0
  318. data/lib/datadog/tracing/contrib/dalli/ext.rb +23 -0
  319. data/lib/datadog/tracing/contrib/dalli/instrumentation.rb +57 -0
  320. data/lib/datadog/tracing/contrib/dalli/integration.rb +51 -0
  321. data/lib/datadog/tracing/contrib/dalli/patcher.rb +28 -0
  322. data/lib/datadog/tracing/contrib/dalli/quantize.rb +25 -0
  323. data/lib/datadog/tracing/contrib/delayed_job/configuration/settings.rb +37 -0
  324. data/lib/datadog/tracing/contrib/delayed_job/ext.rb +25 -0
  325. data/lib/datadog/tracing/contrib/delayed_job/integration.rb +42 -0
  326. data/lib/datadog/tracing/contrib/delayed_job/patcher.rb +31 -0
  327. data/lib/datadog/tracing/contrib/delayed_job/plugin.rb +100 -0
  328. data/lib/datadog/tracing/contrib/elasticsearch/configuration/settings.rb +35 -0
  329. data/lib/datadog/tracing/contrib/elasticsearch/ext.rb +25 -0
  330. data/lib/datadog/tracing/contrib/elasticsearch/integration.rb +43 -0
  331. data/lib/datadog/tracing/contrib/elasticsearch/patcher.rb +114 -0
  332. data/lib/datadog/tracing/contrib/elasticsearch/quantize.rb +88 -0
  333. data/lib/datadog/tracing/contrib/ethon/configuration/settings.rb +36 -0
  334. data/lib/datadog/tracing/contrib/ethon/easy_patch.rb +176 -0
  335. data/lib/datadog/tracing/contrib/ethon/ext.rb +23 -0
  336. data/lib/datadog/tracing/contrib/ethon/integration.rb +47 -0
  337. data/lib/datadog/tracing/contrib/ethon/multi_patch.rb +95 -0
  338. data/lib/datadog/tracing/contrib/ethon/patcher.rb +31 -0
  339. data/lib/datadog/tracing/contrib/excon/configuration/settings.rb +37 -0
  340. data/lib/datadog/tracing/contrib/excon/ext.rb +20 -0
  341. data/lib/datadog/tracing/contrib/excon/integration.rb +47 -0
  342. data/lib/datadog/tracing/contrib/excon/middleware.rb +169 -0
  343. data/lib/datadog/tracing/contrib/excon/patcher.rb +30 -0
  344. data/lib/datadog/tracing/contrib/extensions.rb +184 -0
  345. data/lib/datadog/tracing/contrib/faraday/configuration/settings.rb +41 -0
  346. data/lib/datadog/tracing/contrib/faraday/connection.rb +21 -0
  347. data/lib/datadog/tracing/contrib/faraday/ext.rb +20 -0
  348. data/lib/datadog/tracing/contrib/faraday/integration.rb +47 -0
  349. data/lib/datadog/tracing/contrib/faraday/middleware.rb +92 -0
  350. data/lib/datadog/tracing/contrib/faraday/patcher.rb +56 -0
  351. data/lib/datadog/tracing/contrib/faraday/rack_builder.rb +21 -0
  352. data/lib/datadog/tracing/contrib/grape/configuration/settings.rb +41 -0
  353. data/lib/datadog/tracing/contrib/grape/endpoint.rb +251 -0
  354. data/lib/datadog/tracing/contrib/grape/ext.rb +27 -0
  355. data/lib/datadog/tracing/contrib/grape/instrumentation.rb +36 -0
  356. data/lib/datadog/tracing/contrib/grape/integration.rb +43 -0
  357. data/lib/datadog/tracing/contrib/grape/patcher.rb +33 -0
  358. data/lib/datadog/tracing/contrib/graphql/configuration/settings.rb +35 -0
  359. data/lib/datadog/tracing/contrib/graphql/ext.rb +18 -0
  360. data/lib/datadog/tracing/contrib/graphql/integration.rb +43 -0
  361. data/lib/datadog/tracing/contrib/graphql/patcher.rb +64 -0
  362. data/lib/datadog/tracing/contrib/grpc/configuration/settings.rb +36 -0
  363. data/lib/datadog/tracing/contrib/grpc/datadog_interceptor/client.rb +83 -0
  364. data/lib/datadog/tracing/contrib/grpc/datadog_interceptor/server.rb +89 -0
  365. data/lib/datadog/tracing/contrib/grpc/datadog_interceptor.rb +103 -0
  366. data/lib/datadog/tracing/contrib/grpc/ext.rb +22 -0
  367. data/lib/datadog/tracing/contrib/grpc/integration.rb +42 -0
  368. data/lib/datadog/tracing/contrib/grpc/intercept_with_datadog.rb +52 -0
  369. data/lib/datadog/tracing/contrib/grpc/patcher.rb +37 -0
  370. data/lib/datadog/tracing/contrib/http/circuit_breaker.rb +43 -0
  371. data/lib/datadog/tracing/contrib/http/configuration/settings.rb +36 -0
  372. data/lib/datadog/tracing/contrib/http/ext.rb +20 -0
  373. data/lib/datadog/tracing/contrib/http/instrumentation.rb +138 -0
  374. data/lib/datadog/tracing/contrib/http/integration.rb +48 -0
  375. data/lib/datadog/tracing/contrib/http/patcher.rb +29 -0
  376. data/lib/datadog/tracing/contrib/http_annotation_helper.rb +16 -0
  377. data/lib/datadog/tracing/contrib/httpclient/configuration/settings.rb +36 -0
  378. data/lib/datadog/tracing/contrib/httpclient/ext.rb +20 -0
  379. data/lib/datadog/tracing/contrib/httpclient/instrumentation.rb +116 -0
  380. data/lib/datadog/tracing/contrib/httpclient/integration.rb +47 -0
  381. data/lib/datadog/tracing/contrib/httpclient/patcher.rb +41 -0
  382. data/lib/datadog/tracing/contrib/httprb/configuration/settings.rb +36 -0
  383. data/lib/datadog/tracing/contrib/httprb/ext.rb +20 -0
  384. data/lib/datadog/tracing/contrib/httprb/instrumentation.rb +127 -0
  385. data/lib/datadog/tracing/contrib/httprb/integration.rb +47 -0
  386. data/lib/datadog/tracing/contrib/httprb/patcher.rb +41 -0
  387. data/lib/datadog/tracing/contrib/integration.rb +77 -0
  388. data/lib/datadog/tracing/contrib/kafka/configuration/settings.rb +34 -0
  389. data/lib/datadog/tracing/contrib/kafka/consumer_event.rb +17 -0
  390. data/lib/datadog/tracing/contrib/kafka/consumer_group_event.rb +17 -0
  391. data/lib/datadog/tracing/contrib/kafka/event.rb +51 -0
  392. data/lib/datadog/tracing/contrib/kafka/events/connection/request.rb +41 -0
  393. data/lib/datadog/tracing/contrib/kafka/events/consumer/process_batch.rb +48 -0
  394. data/lib/datadog/tracing/contrib/kafka/events/consumer/process_message.rb +46 -0
  395. data/lib/datadog/tracing/contrib/kafka/events/consumer_group/heartbeat.rb +46 -0
  396. data/lib/datadog/tracing/contrib/kafka/events/consumer_group/join_group.rb +36 -0
  397. data/lib/datadog/tracing/contrib/kafka/events/consumer_group/leave_group.rb +36 -0
  398. data/lib/datadog/tracing/contrib/kafka/events/consumer_group/sync_group.rb +36 -0
  399. data/lib/datadog/tracing/contrib/kafka/events/produce_operation/send_messages.rb +39 -0
  400. data/lib/datadog/tracing/contrib/kafka/events/producer/deliver_messages.rb +42 -0
  401. data/lib/datadog/tracing/contrib/kafka/events.rb +47 -0
  402. data/lib/datadog/tracing/contrib/kafka/ext.rb +51 -0
  403. data/lib/datadog/tracing/contrib/kafka/integration.rb +43 -0
  404. data/lib/datadog/tracing/contrib/kafka/patcher.rb +29 -0
  405. data/lib/datadog/tracing/contrib/lograge/configuration/settings.rb +22 -0
  406. data/lib/datadog/tracing/contrib/lograge/ext.rb +14 -0
  407. data/lib/datadog/tracing/contrib/lograge/instrumentation.rb +45 -0
  408. data/lib/datadog/tracing/contrib/lograge/integration.rb +49 -0
  409. data/lib/datadog/tracing/contrib/lograge/patcher.rb +28 -0
  410. data/lib/datadog/tracing/contrib/mongodb/configuration/settings.rb +37 -0
  411. data/lib/datadog/tracing/contrib/mongodb/ext.rb +26 -0
  412. data/lib/datadog/tracing/contrib/mongodb/instrumentation.rb +46 -0
  413. data/lib/datadog/tracing/contrib/mongodb/integration.rb +47 -0
  414. data/lib/datadog/tracing/contrib/mongodb/parsers.rb +48 -0
  415. data/lib/datadog/tracing/contrib/mongodb/patcher.rb +33 -0
  416. data/lib/datadog/tracing/contrib/mongodb/subscribers.rb +120 -0
  417. data/lib/datadog/tracing/contrib/mysql2/configuration/settings.rb +34 -0
  418. data/lib/datadog/tracing/contrib/mysql2/ext.rb +21 -0
  419. data/lib/datadog/tracing/contrib/mysql2/instrumentation.rb +61 -0
  420. data/lib/datadog/tracing/contrib/mysql2/integration.rb +42 -0
  421. data/lib/datadog/tracing/contrib/mysql2/patcher.rb +30 -0
  422. data/lib/datadog/tracing/contrib/patchable.rb +108 -0
  423. data/lib/datadog/tracing/contrib/patcher.rb +73 -0
  424. data/lib/datadog/tracing/contrib/presto/configuration/settings.rb +34 -0
  425. data/lib/datadog/tracing/contrib/presto/ext.rb +31 -0
  426. data/lib/datadog/tracing/contrib/presto/instrumentation.rb +124 -0
  427. data/lib/datadog/tracing/contrib/presto/integration.rb +42 -0
  428. data/lib/datadog/tracing/contrib/presto/patcher.rb +36 -0
  429. data/lib/datadog/tracing/contrib/qless/configuration/settings.rb +39 -0
  430. data/lib/datadog/tracing/contrib/qless/ext.rb +25 -0
  431. data/lib/datadog/tracing/contrib/qless/integration.rb +42 -0
  432. data/lib/datadog/tracing/contrib/qless/patcher.rb +38 -0
  433. data/lib/datadog/tracing/contrib/qless/qless_job.rb +74 -0
  434. data/lib/datadog/tracing/contrib/qless/tracer_cleaner.rb +31 -0
  435. data/lib/datadog/tracing/contrib/que/configuration/settings.rb +48 -0
  436. data/lib/datadog/tracing/contrib/que/ext.rb +33 -0
  437. data/lib/datadog/tracing/contrib/que/integration.rb +45 -0
  438. data/lib/datadog/tracing/contrib/que/patcher.rb +28 -0
  439. data/lib/datadog/tracing/contrib/que/tracer.rb +60 -0
  440. data/lib/datadog/tracing/contrib/racecar/configuration/settings.rb +34 -0
  441. data/lib/datadog/tracing/contrib/racecar/event.rb +78 -0
  442. data/lib/datadog/tracing/contrib/racecar/events/batch.rb +34 -0
  443. data/lib/datadog/tracing/contrib/racecar/events/consume.rb +34 -0
  444. data/lib/datadog/tracing/contrib/racecar/events/message.rb +34 -0
  445. data/lib/datadog/tracing/contrib/racecar/events.rb +35 -0
  446. data/lib/datadog/tracing/contrib/racecar/ext.rb +30 -0
  447. data/lib/datadog/tracing/contrib/racecar/integration.rb +43 -0
  448. data/lib/datadog/tracing/contrib/racecar/patcher.rb +29 -0
  449. data/lib/datadog/tracing/contrib/rack/configuration/settings.rb +50 -0
  450. data/lib/datadog/tracing/contrib/rack/ext.rb +24 -0
  451. data/lib/datadog/tracing/contrib/rack/integration.rb +49 -0
  452. data/lib/datadog/tracing/contrib/rack/middlewares.rb +254 -0
  453. data/lib/datadog/tracing/contrib/rack/patcher.rb +108 -0
  454. data/lib/datadog/tracing/contrib/rack/request_queue.rb +47 -0
  455. data/lib/datadog/tracing/contrib/rails/auto_instrument_railtie.rb +10 -0
  456. data/lib/datadog/tracing/contrib/rails/configuration/settings.rb +70 -0
  457. data/lib/datadog/tracing/contrib/rails/ext.rb +18 -0
  458. data/lib/datadog/tracing/contrib/rails/framework.rb +151 -0
  459. data/lib/datadog/tracing/contrib/rails/integration.rb +48 -0
  460. data/lib/datadog/tracing/contrib/rails/log_injection.rb +46 -0
  461. data/lib/datadog/tracing/contrib/rails/middlewares.rb +46 -0
  462. data/lib/datadog/tracing/contrib/rails/patcher.rb +116 -0
  463. data/lib/datadog/tracing/contrib/rails/railtie.rb +18 -0
  464. data/lib/datadog/tracing/contrib/rails/utils.rb +27 -0
  465. data/lib/datadog/tracing/contrib/rake/configuration/settings.rb +35 -0
  466. data/lib/datadog/tracing/contrib/rake/ext.rb +25 -0
  467. data/lib/datadog/tracing/contrib/rake/instrumentation.rb +96 -0
  468. data/lib/datadog/tracing/contrib/rake/integration.rb +42 -0
  469. data/lib/datadog/tracing/contrib/rake/patcher.rb +34 -0
  470. data/lib/datadog/tracing/contrib/redis/configuration/resolver.rb +48 -0
  471. data/lib/datadog/tracing/contrib/redis/configuration/settings.rb +39 -0
  472. data/lib/datadog/tracing/contrib/redis/ext.rb +25 -0
  473. data/lib/datadog/tracing/contrib/redis/instrumentation.rb +77 -0
  474. data/lib/datadog/tracing/contrib/redis/integration.rb +46 -0
  475. data/lib/datadog/tracing/contrib/redis/patcher.rb +35 -0
  476. data/lib/datadog/tracing/contrib/redis/quantize.rb +78 -0
  477. data/lib/datadog/tracing/contrib/redis/tags.rb +53 -0
  478. data/lib/{ddtrace → datadog/tracing}/contrib/redis/vendor/LICENSE +0 -0
  479. data/lib/datadog/tracing/contrib/redis/vendor/resolver.rb +161 -0
  480. data/lib/datadog/tracing/contrib/registerable.rb +50 -0
  481. data/lib/datadog/tracing/contrib/registry.rb +51 -0
  482. data/lib/datadog/tracing/contrib/resque/configuration/settings.rb +36 -0
  483. data/lib/datadog/tracing/contrib/resque/ext.rb +20 -0
  484. data/lib/datadog/tracing/contrib/resque/integration.rb +47 -0
  485. data/lib/datadog/tracing/contrib/resque/patcher.rb +29 -0
  486. data/lib/datadog/tracing/contrib/resque/resque_job.rb +102 -0
  487. data/lib/datadog/tracing/contrib/rest_client/configuration/settings.rb +35 -0
  488. data/lib/datadog/tracing/contrib/rest_client/ext.rb +20 -0
  489. data/lib/datadog/tracing/contrib/rest_client/integration.rb +42 -0
  490. data/lib/datadog/tracing/contrib/rest_client/patcher.rb +29 -0
  491. data/lib/datadog/tracing/contrib/rest_client/request_patch.rb +104 -0
  492. data/lib/datadog/tracing/contrib/semantic_logger/configuration/settings.rb +22 -0
  493. data/lib/datadog/tracing/contrib/semantic_logger/ext.rb +14 -0
  494. data/lib/datadog/tracing/contrib/semantic_logger/instrumentation.rb +49 -0
  495. data/lib/datadog/tracing/contrib/semantic_logger/integration.rb +51 -0
  496. data/lib/datadog/tracing/contrib/semantic_logger/patcher.rb +28 -0
  497. data/lib/datadog/tracing/contrib/sequel/configuration/settings.rb +32 -0
  498. data/lib/datadog/tracing/contrib/sequel/database.rb +59 -0
  499. data/lib/datadog/tracing/contrib/sequel/dataset.rb +64 -0
  500. data/lib/datadog/tracing/contrib/sequel/ext.rb +21 -0
  501. data/lib/datadog/tracing/contrib/sequel/integration.rb +42 -0
  502. data/lib/datadog/tracing/contrib/sequel/patcher.rb +36 -0
  503. data/lib/datadog/tracing/contrib/sequel/utils.rb +86 -0
  504. data/lib/datadog/tracing/contrib/shoryuken/configuration/settings.rb +37 -0
  505. data/lib/datadog/tracing/contrib/shoryuken/ext.rb +24 -0
  506. data/lib/datadog/tracing/contrib/shoryuken/integration.rb +43 -0
  507. data/lib/datadog/tracing/contrib/shoryuken/patcher.rb +27 -0
  508. data/lib/datadog/tracing/contrib/shoryuken/tracer.rb +60 -0
  509. data/lib/datadog/tracing/contrib/sidekiq/client_tracer.rb +52 -0
  510. data/lib/datadog/tracing/contrib/sidekiq/configuration/settings.rb +42 -0
  511. data/lib/datadog/tracing/contrib/sidekiq/ext.rb +37 -0
  512. data/lib/datadog/tracing/contrib/sidekiq/integration.rb +52 -0
  513. data/lib/datadog/tracing/contrib/sidekiq/patcher.rb +70 -0
  514. data/lib/datadog/tracing/contrib/sidekiq/server_internal_tracer/heartbeat.rb +34 -0
  515. data/lib/datadog/tracing/contrib/sidekiq/server_internal_tracer/job_fetch.rb +34 -0
  516. data/lib/datadog/tracing/contrib/sidekiq/server_internal_tracer/scheduled_push.rb +33 -0
  517. data/lib/datadog/tracing/contrib/sidekiq/server_tracer.rb +78 -0
  518. data/lib/datadog/tracing/contrib/sidekiq/tracing.rb +43 -0
  519. data/lib/datadog/tracing/contrib/sinatra/configuration/settings.rb +42 -0
  520. data/lib/datadog/tracing/contrib/sinatra/env.rb +65 -0
  521. data/lib/datadog/tracing/contrib/sinatra/ext.rb +31 -0
  522. data/lib/datadog/tracing/contrib/sinatra/framework.rb +105 -0
  523. data/lib/datadog/tracing/contrib/sinatra/headers.rb +34 -0
  524. data/lib/datadog/tracing/contrib/sinatra/integration.rb +42 -0
  525. data/lib/datadog/tracing/contrib/sinatra/patcher.rb +76 -0
  526. data/lib/datadog/tracing/contrib/sinatra/tracer.rb +158 -0
  527. data/lib/datadog/tracing/contrib/sinatra/tracer_middleware.rb +122 -0
  528. data/lib/datadog/tracing/contrib/sneakers/configuration/settings.rb +37 -0
  529. data/lib/datadog/tracing/contrib/sneakers/ext.rb +25 -0
  530. data/lib/datadog/tracing/contrib/sneakers/integration.rb +45 -0
  531. data/lib/datadog/tracing/contrib/sneakers/patcher.rb +29 -0
  532. data/lib/datadog/tracing/contrib/sneakers/tracer.rb +57 -0
  533. data/lib/datadog/tracing/contrib/status_code_matcher.rb +74 -0
  534. data/lib/datadog/tracing/contrib/sucker_punch/configuration/settings.rb +34 -0
  535. data/lib/datadog/tracing/contrib/sucker_punch/exception_handler.rb +27 -0
  536. data/lib/datadog/tracing/contrib/sucker_punch/ext.rb +26 -0
  537. data/lib/datadog/tracing/contrib/sucker_punch/instrumentation.rb +104 -0
  538. data/lib/datadog/tracing/contrib/sucker_punch/integration.rb +42 -0
  539. data/lib/datadog/tracing/contrib/sucker_punch/patcher.rb +37 -0
  540. data/lib/datadog/tracing/contrib/utils/database.rb +30 -0
  541. data/lib/datadog/tracing/contrib/utils/quantization/hash.rb +110 -0
  542. data/lib/datadog/tracing/contrib/utils/quantization/http.rb +98 -0
  543. data/lib/datadog/tracing/contrib.rb +73 -0
  544. data/lib/datadog/tracing/correlation.rb +108 -0
  545. data/lib/datadog/tracing/distributed/headers/b3.rb +54 -0
  546. data/lib/datadog/tracing/distributed/headers/b3_single.rb +66 -0
  547. data/lib/datadog/tracing/distributed/headers/datadog.rb +51 -0
  548. data/lib/datadog/tracing/distributed/headers/ext.rb +30 -0
  549. data/lib/datadog/tracing/distributed/helpers.rb +43 -0
  550. data/lib/datadog/tracing/distributed/parser.rb +69 -0
  551. data/lib/datadog/tracing/event.rb +76 -0
  552. data/lib/datadog/tracing/flush.rb +73 -0
  553. data/lib/datadog/tracing/metadata/analytics.rb +24 -0
  554. data/lib/datadog/tracing/metadata/ext.rb +150 -0
  555. data/lib/datadog/tracing/metadata/tagging.rb +118 -0
  556. data/lib/datadog/tracing/metadata.rb +16 -0
  557. data/lib/datadog/tracing/pipeline/span_filter.rb +42 -0
  558. data/lib/datadog/tracing/pipeline/span_processor.rb +38 -0
  559. data/lib/datadog/tracing/pipeline.rb +65 -0
  560. data/lib/datadog/tracing/propagation/grpc.rb +87 -0
  561. data/lib/datadog/tracing/propagation/http.rb +108 -0
  562. data/lib/datadog/tracing/runtime/metrics.rb +18 -0
  563. data/lib/datadog/tracing/sampling/all_sampler.rb +24 -0
  564. data/lib/datadog/tracing/sampling/ext.rb +26 -0
  565. data/lib/datadog/tracing/sampling/matcher.rb +67 -0
  566. data/lib/datadog/tracing/sampling/priority_sampler.rb +112 -0
  567. data/lib/datadog/tracing/sampling/rate_by_key_sampler.rb +96 -0
  568. data/lib/datadog/tracing/sampling/rate_by_service_sampler.rb +40 -0
  569. data/lib/datadog/tracing/sampling/rate_limiter.rb +184 -0
  570. data/lib/datadog/tracing/sampling/rate_sampler.rb +54 -0
  571. data/lib/datadog/tracing/sampling/rule.rb +69 -0
  572. data/lib/datadog/tracing/sampling/rule_sampler.rb +132 -0
  573. data/lib/datadog/tracing/sampling/sampler.rb +43 -0
  574. data/lib/datadog/tracing/span.rb +210 -0
  575. data/lib/datadog/tracing/span_operation.rb +519 -0
  576. data/lib/datadog/tracing/sync_writer.rb +68 -0
  577. data/lib/datadog/tracing/trace_digest.rb +58 -0
  578. data/lib/datadog/tracing/trace_operation.rb +411 -0
  579. data/lib/datadog/tracing/trace_segment.rb +292 -0
  580. data/lib/datadog/tracing/tracer.rb +504 -0
  581. data/lib/datadog/tracing/workers/trace_writer.rb +194 -0
  582. data/lib/datadog/tracing/workers.rb +124 -0
  583. data/lib/datadog/tracing/writer.rb +179 -0
  584. data/lib/datadog/tracing.rb +140 -0
  585. data/lib/ddtrace/auto_instrument.rb +4 -1
  586. data/lib/ddtrace/profiling/preload.rb +2 -4
  587. data/lib/ddtrace/transport/ext.rb +34 -0
  588. data/lib/ddtrace/transport/http/adapters/net.rb +2 -2
  589. data/lib/ddtrace/transport/http/adapters/unix_socket.rb +2 -2
  590. data/lib/ddtrace/transport/http/api.rb +4 -11
  591. data/lib/ddtrace/transport/http/builder.rb +2 -2
  592. data/lib/ddtrace/transport/http/traces.rb +2 -0
  593. data/lib/ddtrace/transport/http.rb +22 -28
  594. data/lib/ddtrace/transport/io/traces.rb +1 -1
  595. data/lib/ddtrace/transport/io.rb +2 -2
  596. data/lib/ddtrace/transport/parcel.rb +1 -0
  597. data/lib/ddtrace/transport/serializable_trace.rb +116 -0
  598. data/lib/ddtrace/transport/statistics.rb +5 -4
  599. data/lib/ddtrace/transport/trace_formatter.rb +164 -0
  600. data/lib/ddtrace/transport/traces.rb +14 -5
  601. data/lib/ddtrace/version.rb +4 -4
  602. data/lib/ddtrace.rb +18 -39
  603. metadata +570 -489
  604. data/.yardopts +0 -5
  605. data/lib/datadog/ci/context_flush.rb +0 -29
  606. data/lib/datadog/contrib.rb +0 -71
  607. data/lib/ddtrace/analytics.rb +0 -39
  608. data/lib/ddtrace/buffer.rb +0 -328
  609. data/lib/ddtrace/chunker.rb +0 -35
  610. data/lib/ddtrace/configuration/agent_settings_resolver.rb +0 -298
  611. data/lib/ddtrace/configuration/base.rb +0 -82
  612. data/lib/ddtrace/configuration/components.rb +0 -292
  613. data/lib/ddtrace/configuration/dependency_resolver.rb +0 -25
  614. data/lib/ddtrace/configuration/option.rb +0 -65
  615. data/lib/ddtrace/configuration/option_definition.rb +0 -122
  616. data/lib/ddtrace/configuration/option_definition_set.rb +0 -19
  617. data/lib/ddtrace/configuration/option_set.rb +0 -7
  618. data/lib/ddtrace/configuration/options.rb +0 -112
  619. data/lib/ddtrace/configuration/pin_setup.rb +0 -32
  620. data/lib/ddtrace/configuration/settings.rb +0 -413
  621. data/lib/ddtrace/configuration.rb +0 -195
  622. data/lib/ddtrace/context.rb +0 -326
  623. data/lib/ddtrace/context_flush.rb +0 -82
  624. data/lib/ddtrace/context_provider.rb +0 -62
  625. data/lib/ddtrace/contrib/action_cable/configuration/settings.rb +0 -31
  626. data/lib/ddtrace/contrib/action_cable/event.rb +0 -67
  627. data/lib/ddtrace/contrib/action_cable/events/broadcast.rb +0 -50
  628. data/lib/ddtrace/contrib/action_cable/events/perform_action.rb +0 -56
  629. data/lib/ddtrace/contrib/action_cable/events/transmit.rb +0 -51
  630. data/lib/ddtrace/contrib/action_cable/events.rb +0 -34
  631. data/lib/ddtrace/contrib/action_cable/ext.rb +0 -27
  632. data/lib/ddtrace/contrib/action_cable/instrumentation.rb +0 -78
  633. data/lib/ddtrace/contrib/action_cable/integration.rb +0 -46
  634. data/lib/ddtrace/contrib/action_cable/patcher.rb +0 -29
  635. data/lib/ddtrace/contrib/action_mailer/configuration/settings.rb +0 -32
  636. data/lib/ddtrace/contrib/action_mailer/event.rb +0 -50
  637. data/lib/ddtrace/contrib/action_mailer/events/deliver.rb +0 -54
  638. data/lib/ddtrace/contrib/action_mailer/events/process.rb +0 -41
  639. data/lib/ddtrace/contrib/action_mailer/events.rb +0 -31
  640. data/lib/ddtrace/contrib/action_mailer/ext.rb +0 -32
  641. data/lib/ddtrace/contrib/action_mailer/integration.rb +0 -45
  642. data/lib/ddtrace/contrib/action_mailer/patcher.rb +0 -27
  643. data/lib/ddtrace/contrib/action_pack/action_controller/instrumentation.rb +0 -157
  644. data/lib/ddtrace/contrib/action_pack/action_controller/patcher.rb +0 -26
  645. data/lib/ddtrace/contrib/action_pack/configuration/settings.rb +0 -33
  646. data/lib/ddtrace/contrib/action_pack/ext.rb +0 -20
  647. data/lib/ddtrace/contrib/action_pack/integration.rb +0 -46
  648. data/lib/ddtrace/contrib/action_pack/patcher.rb +0 -24
  649. data/lib/ddtrace/contrib/action_pack/utils.rb +0 -37
  650. data/lib/ddtrace/contrib/action_view/configuration/settings.rb +0 -32
  651. data/lib/ddtrace/contrib/action_view/event.rb +0 -36
  652. data/lib/ddtrace/contrib/action_view/events/render_partial.rb +0 -47
  653. data/lib/ddtrace/contrib/action_view/events/render_template.rb +0 -50
  654. data/lib/ddtrace/contrib/action_view/events.rb +0 -31
  655. data/lib/ddtrace/contrib/action_view/ext.rb +0 -21
  656. data/lib/ddtrace/contrib/action_view/instrumentation/partial_renderer.rb +0 -75
  657. data/lib/ddtrace/contrib/action_view/instrumentation/template_renderer.rb +0 -168
  658. data/lib/ddtrace/contrib/action_view/integration.rb +0 -53
  659. data/lib/ddtrace/contrib/action_view/patcher.rb +0 -48
  660. data/lib/ddtrace/contrib/action_view/utils.rb +0 -33
  661. data/lib/ddtrace/contrib/active_job/configuration/settings.rb +0 -33
  662. data/lib/ddtrace/contrib/active_job/event.rb +0 -54
  663. data/lib/ddtrace/contrib/active_job/events/discard.rb +0 -46
  664. data/lib/ddtrace/contrib/active_job/events/enqueue.rb +0 -45
  665. data/lib/ddtrace/contrib/active_job/events/enqueue_at.rb +0 -45
  666. data/lib/ddtrace/contrib/active_job/events/enqueue_retry.rb +0 -47
  667. data/lib/ddtrace/contrib/active_job/events/perform.rb +0 -45
  668. data/lib/ddtrace/contrib/active_job/events/retry_stopped.rb +0 -46
  669. data/lib/ddtrace/contrib/active_job/events.rb +0 -39
  670. data/lib/ddtrace/contrib/active_job/ext.rb +0 -32
  671. data/lib/ddtrace/contrib/active_job/integration.rb +0 -46
  672. data/lib/ddtrace/contrib/active_job/log_injection.rb +0 -21
  673. data/lib/ddtrace/contrib/active_job/patcher.rb +0 -33
  674. data/lib/ddtrace/contrib/active_model_serializers/configuration/settings.rb +0 -31
  675. data/lib/ddtrace/contrib/active_model_serializers/event.rb +0 -69
  676. data/lib/ddtrace/contrib/active_model_serializers/events/render.rb +0 -33
  677. data/lib/ddtrace/contrib/active_model_serializers/events/serialize.rb +0 -36
  678. data/lib/ddtrace/contrib/active_model_serializers/events.rb +0 -31
  679. data/lib/ddtrace/contrib/active_model_serializers/ext.rb +0 -21
  680. data/lib/ddtrace/contrib/active_model_serializers/integration.rb +0 -41
  681. data/lib/ddtrace/contrib/active_model_serializers/patcher.rb +0 -30
  682. data/lib/ddtrace/contrib/active_record/configuration/makara_resolver.rb +0 -31
  683. data/lib/ddtrace/contrib/active_record/configuration/resolver.rb +0 -135
  684. data/lib/ddtrace/contrib/active_record/configuration/settings.rb +0 -36
  685. data/lib/ddtrace/contrib/active_record/event.rb +0 -31
  686. data/lib/ddtrace/contrib/active_record/events/instantiation.rb +0 -61
  687. data/lib/ddtrace/contrib/active_record/events/sql.rb +0 -69
  688. data/lib/ddtrace/contrib/active_record/events.rb +0 -31
  689. data/lib/ddtrace/contrib/active_record/ext.rb +0 -25
  690. data/lib/ddtrace/contrib/active_record/integration.rb +0 -54
  691. data/lib/ddtrace/contrib/active_record/patcher.rb +0 -24
  692. data/lib/ddtrace/contrib/active_record/utils.rb +0 -124
  693. data/lib/ddtrace/contrib/active_support/cache/instrumentation.rb +0 -259
  694. data/lib/ddtrace/contrib/active_support/cache/patcher.rb +0 -70
  695. data/lib/ddtrace/contrib/active_support/cache/redis.rb +0 -44
  696. data/lib/ddtrace/contrib/active_support/configuration/settings.rb +0 -31
  697. data/lib/ddtrace/contrib/active_support/ext.rb +0 -28
  698. data/lib/ddtrace/contrib/active_support/integration.rb +0 -47
  699. data/lib/ddtrace/contrib/active_support/notifications/event.rb +0 -76
  700. data/lib/ddtrace/contrib/active_support/notifications/subscriber.rb +0 -68
  701. data/lib/ddtrace/contrib/active_support/notifications/subscription.rb +0 -164
  702. data/lib/ddtrace/contrib/active_support/patcher.rb +0 -24
  703. data/lib/ddtrace/contrib/analytics.rb +0 -25
  704. data/lib/ddtrace/contrib/auto_instrument.rb +0 -48
  705. data/lib/ddtrace/contrib/aws/configuration/settings.rb +0 -31
  706. data/lib/ddtrace/contrib/aws/ext.rb +0 -24
  707. data/lib/ddtrace/contrib/aws/instrumentation.rb +0 -91
  708. data/lib/ddtrace/contrib/aws/integration.rb +0 -43
  709. data/lib/ddtrace/contrib/aws/parsed_context.rb +0 -57
  710. data/lib/ddtrace/contrib/aws/patcher.rb +0 -54
  711. data/lib/ddtrace/contrib/aws/services.rb +0 -119
  712. data/lib/ddtrace/contrib/concurrent_ruby/configuration/settings.rb +0 -21
  713. data/lib/ddtrace/contrib/concurrent_ruby/context_composite_executor_service.rb +0 -42
  714. data/lib/ddtrace/contrib/concurrent_ruby/ext.rb +0 -13
  715. data/lib/ddtrace/contrib/concurrent_ruby/future_patch.rb +0 -24
  716. data/lib/ddtrace/contrib/concurrent_ruby/integration.rb +0 -39
  717. data/lib/ddtrace/contrib/concurrent_ruby/patcher.rb +0 -30
  718. data/lib/ddtrace/contrib/configurable.rb +0 -103
  719. data/lib/ddtrace/contrib/configuration/resolver.rb +0 -82
  720. data/lib/ddtrace/contrib/configuration/resolvers/pattern_resolver.rb +0 -40
  721. data/lib/ddtrace/contrib/configuration/settings.rb +0 -56
  722. data/lib/ddtrace/contrib/dalli/configuration/settings.rb +0 -31
  723. data/lib/ddtrace/contrib/dalli/ext.rb +0 -21
  724. data/lib/ddtrace/contrib/dalli/instrumentation.rb +0 -55
  725. data/lib/ddtrace/contrib/dalli/integration.rb +0 -39
  726. data/lib/ddtrace/contrib/dalli/patcher.rb +0 -26
  727. data/lib/ddtrace/contrib/dalli/quantize.rb +0 -23
  728. data/lib/ddtrace/contrib/delayed_job/configuration/settings.rb +0 -33
  729. data/lib/ddtrace/contrib/delayed_job/ext.rb +0 -24
  730. data/lib/ddtrace/contrib/delayed_job/integration.rb +0 -39
  731. data/lib/ddtrace/contrib/delayed_job/patcher.rb +0 -29
  732. data/lib/ddtrace/contrib/delayed_job/plugin.rb +0 -85
  733. data/lib/ddtrace/contrib/elasticsearch/configuration/settings.rb +0 -32
  734. data/lib/ddtrace/contrib/elasticsearch/ext.rb +0 -23
  735. data/lib/ddtrace/contrib/elasticsearch/integration.rb +0 -40
  736. data/lib/ddtrace/contrib/elasticsearch/patcher.rb +0 -123
  737. data/lib/ddtrace/contrib/elasticsearch/quantize.rb +0 -84
  738. data/lib/ddtrace/contrib/ethon/configuration/settings.rb +0 -33
  739. data/lib/ddtrace/contrib/ethon/easy_patch.rb +0 -152
  740. data/lib/ddtrace/contrib/ethon/ext.rb +0 -20
  741. data/lib/ddtrace/contrib/ethon/integration.rb +0 -44
  742. data/lib/ddtrace/contrib/ethon/multi_patch.rb +0 -85
  743. data/lib/ddtrace/contrib/ethon/patcher.rb +0 -27
  744. data/lib/ddtrace/contrib/excon/configuration/settings.rb +0 -34
  745. data/lib/ddtrace/contrib/excon/ext.rb +0 -18
  746. data/lib/ddtrace/contrib/excon/integration.rb +0 -44
  747. data/lib/ddtrace/contrib/excon/middleware.rb +0 -164
  748. data/lib/ddtrace/contrib/excon/patcher.rb +0 -28
  749. data/lib/ddtrace/contrib/extensions.rb +0 -169
  750. data/lib/ddtrace/contrib/faraday/configuration/settings.rb +0 -39
  751. data/lib/ddtrace/contrib/faraday/connection.rb +0 -19
  752. data/lib/ddtrace/contrib/faraday/ext.rb +0 -18
  753. data/lib/ddtrace/contrib/faraday/integration.rb +0 -44
  754. data/lib/ddtrace/contrib/faraday/middleware.rb +0 -86
  755. data/lib/ddtrace/contrib/faraday/patcher.rb +0 -54
  756. data/lib/ddtrace/contrib/faraday/rack_builder.rb +0 -19
  757. data/lib/ddtrace/contrib/grape/configuration/settings.rb +0 -39
  758. data/lib/ddtrace/contrib/grape/endpoint.rb +0 -246
  759. data/lib/ddtrace/contrib/grape/ext.rb +0 -24
  760. data/lib/ddtrace/contrib/grape/instrumentation.rb +0 -34
  761. data/lib/ddtrace/contrib/grape/integration.rb +0 -40
  762. data/lib/ddtrace/contrib/grape/patcher.rb +0 -32
  763. data/lib/ddtrace/contrib/graphql/configuration/settings.rb +0 -33
  764. data/lib/ddtrace/contrib/graphql/ext.rb +0 -17
  765. data/lib/ddtrace/contrib/graphql/integration.rb +0 -40
  766. data/lib/ddtrace/contrib/graphql/patcher.rb +0 -61
  767. data/lib/ddtrace/contrib/grpc/configuration/settings.rb +0 -32
  768. data/lib/ddtrace/contrib/grpc/datadog_interceptor/client.rb +0 -59
  769. data/lib/ddtrace/contrib/grpc/datadog_interceptor/server.rb +0 -80
  770. data/lib/ddtrace/contrib/grpc/datadog_interceptor.rb +0 -79
  771. data/lib/ddtrace/contrib/grpc/ext.rb +0 -19
  772. data/lib/ddtrace/contrib/grpc/integration.rb +0 -39
  773. data/lib/ddtrace/contrib/grpc/intercept_with_datadog.rb +0 -50
  774. data/lib/ddtrace/contrib/grpc/patcher.rb +0 -34
  775. data/lib/ddtrace/contrib/http/circuit_breaker.rb +0 -38
  776. data/lib/ddtrace/contrib/http/configuration/settings.rb +0 -33
  777. data/lib/ddtrace/contrib/http/ext.rb +0 -18
  778. data/lib/ddtrace/contrib/http/instrumentation.rb +0 -180
  779. data/lib/ddtrace/contrib/http/integration.rb +0 -46
  780. data/lib/ddtrace/contrib/http/patcher.rb +0 -27
  781. data/lib/ddtrace/contrib/http_annotation_helper.rb +0 -11
  782. data/lib/ddtrace/contrib/httpclient/configuration/settings.rb +0 -33
  783. data/lib/ddtrace/contrib/httpclient/ext.rb +0 -18
  784. data/lib/ddtrace/contrib/httpclient/instrumentation.rb +0 -148
  785. data/lib/ddtrace/contrib/httpclient/integration.rb +0 -44
  786. data/lib/ddtrace/contrib/httpclient/patcher.rb +0 -39
  787. data/lib/ddtrace/contrib/httprb/configuration/settings.rb +0 -33
  788. data/lib/ddtrace/contrib/httprb/ext.rb +0 -18
  789. data/lib/ddtrace/contrib/httprb/instrumentation.rb +0 -158
  790. data/lib/ddtrace/contrib/httprb/integration.rb +0 -44
  791. data/lib/ddtrace/contrib/httprb/patcher.rb +0 -39
  792. data/lib/ddtrace/contrib/integration.rb +0 -17
  793. data/lib/ddtrace/contrib/kafka/configuration/settings.rb +0 -31
  794. data/lib/ddtrace/contrib/kafka/consumer_event.rb +0 -15
  795. data/lib/ddtrace/contrib/kafka/consumer_group_event.rb +0 -15
  796. data/lib/ddtrace/contrib/kafka/event.rb +0 -52
  797. data/lib/ddtrace/contrib/kafka/events/connection/request.rb +0 -35
  798. data/lib/ddtrace/contrib/kafka/events/consumer/process_batch.rb +0 -42
  799. data/lib/ddtrace/contrib/kafka/events/consumer/process_message.rb +0 -40
  800. data/lib/ddtrace/contrib/kafka/events/consumer_group/heartbeat.rb +0 -40
  801. data/lib/ddtrace/contrib/kafka/events/consumer_group/join_group.rb +0 -30
  802. data/lib/ddtrace/contrib/kafka/events/consumer_group/leave_group.rb +0 -30
  803. data/lib/ddtrace/contrib/kafka/events/consumer_group/sync_group.rb +0 -30
  804. data/lib/ddtrace/contrib/kafka/events/produce_operation/send_messages.rb +0 -33
  805. data/lib/ddtrace/contrib/kafka/events/producer/deliver_messages.rb +0 -36
  806. data/lib/ddtrace/contrib/kafka/events.rb +0 -45
  807. data/lib/ddtrace/contrib/kafka/ext.rb +0 -42
  808. data/lib/ddtrace/contrib/kafka/integration.rb +0 -40
  809. data/lib/ddtrace/contrib/kafka/patcher.rb +0 -27
  810. data/lib/ddtrace/contrib/lograge/configuration/settings.rb +0 -19
  811. data/lib/ddtrace/contrib/lograge/ext.rb +0 -11
  812. data/lib/ddtrace/contrib/lograge/instrumentation.rb +0 -39
  813. data/lib/ddtrace/contrib/lograge/integration.rb +0 -46
  814. data/lib/ddtrace/contrib/lograge/patcher.rb +0 -26
  815. data/lib/ddtrace/contrib/mongodb/configuration/settings.rb +0 -34
  816. data/lib/ddtrace/contrib/mongodb/ext.rb +0 -24
  817. data/lib/ddtrace/contrib/mongodb/instrumentation.rb +0 -70
  818. data/lib/ddtrace/contrib/mongodb/integration.rb +0 -39
  819. data/lib/ddtrace/contrib/mongodb/parsers.rb +0 -69
  820. data/lib/ddtrace/contrib/mongodb/patcher.rb +0 -32
  821. data/lib/ddtrace/contrib/mongodb/subscribers.rb +0 -112
  822. data/lib/ddtrace/contrib/mysql2/configuration/settings.rb +0 -31
  823. data/lib/ddtrace/contrib/mysql2/ext.rb +0 -19
  824. data/lib/ddtrace/contrib/mysql2/instrumentation.rb +0 -65
  825. data/lib/ddtrace/contrib/mysql2/integration.rb +0 -39
  826. data/lib/ddtrace/contrib/mysql2/patcher.rb +0 -28
  827. data/lib/ddtrace/contrib/patchable.rb +0 -71
  828. data/lib/ddtrace/contrib/patcher.rb +0 -66
  829. data/lib/ddtrace/contrib/presto/configuration/settings.rb +0 -31
  830. data/lib/ddtrace/contrib/presto/ext.rb +0 -29
  831. data/lib/ddtrace/contrib/presto/instrumentation.rb +0 -111
  832. data/lib/ddtrace/contrib/presto/integration.rb +0 -39
  833. data/lib/ddtrace/contrib/presto/patcher.rb +0 -34
  834. data/lib/ddtrace/contrib/qless/configuration/settings.rb +0 -36
  835. data/lib/ddtrace/contrib/qless/ext.rb +0 -21
  836. data/lib/ddtrace/contrib/qless/integration.rb +0 -39
  837. data/lib/ddtrace/contrib/qless/patcher.rb +0 -35
  838. data/lib/ddtrace/contrib/qless/qless_job.rb +0 -74
  839. data/lib/ddtrace/contrib/qless/tracer_cleaner.rb +0 -34
  840. data/lib/ddtrace/contrib/que/configuration/settings.rb +0 -44
  841. data/lib/ddtrace/contrib/que/ext.rb +0 -31
  842. data/lib/ddtrace/contrib/que/integration.rb +0 -43
  843. data/lib/ddtrace/contrib/que/patcher.rb +0 -25
  844. data/lib/ddtrace/contrib/que/tracer.rb +0 -58
  845. data/lib/ddtrace/contrib/racecar/configuration/settings.rb +0 -31
  846. data/lib/ddtrace/contrib/racecar/event.rb +0 -77
  847. data/lib/ddtrace/contrib/racecar/events/batch.rb +0 -28
  848. data/lib/ddtrace/contrib/racecar/events/consume.rb +0 -28
  849. data/lib/ddtrace/contrib/racecar/events/message.rb +0 -28
  850. data/lib/ddtrace/contrib/racecar/events.rb +0 -33
  851. data/lib/ddtrace/contrib/racecar/ext.rb +0 -26
  852. data/lib/ddtrace/contrib/racecar/integration.rb +0 -40
  853. data/lib/ddtrace/contrib/racecar/patcher.rb +0 -27
  854. data/lib/ddtrace/contrib/rack/configuration/settings.rb +0 -47
  855. data/lib/ddtrace/contrib/rack/ext.rb +0 -22
  856. data/lib/ddtrace/contrib/rack/integration.rb +0 -46
  857. data/lib/ddtrace/contrib/rack/middlewares.rb +0 -288
  858. data/lib/ddtrace/contrib/rack/patcher.rb +0 -106
  859. data/lib/ddtrace/contrib/rack/request_queue.rb +0 -45
  860. data/lib/ddtrace/contrib/rails/auto_instrument_railtie.rb +0 -10
  861. data/lib/ddtrace/contrib/rails/configuration/settings.rb +0 -94
  862. data/lib/ddtrace/contrib/rails/ext.rb +0 -18
  863. data/lib/ddtrace/contrib/rails/framework.rb +0 -171
  864. data/lib/ddtrace/contrib/rails/integration.rb +0 -45
  865. data/lib/ddtrace/contrib/rails/log_injection.rb +0 -42
  866. data/lib/ddtrace/contrib/rails/middlewares.rb +0 -44
  867. data/lib/ddtrace/contrib/rails/patcher.rb +0 -119
  868. data/lib/ddtrace/contrib/rails/railtie.rb +0 -18
  869. data/lib/ddtrace/contrib/rails/utils.rb +0 -25
  870. data/lib/ddtrace/contrib/rake/configuration/settings.rb +0 -32
  871. data/lib/ddtrace/contrib/rake/ext.rb +0 -22
  872. data/lib/ddtrace/contrib/rake/instrumentation.rb +0 -91
  873. data/lib/ddtrace/contrib/rake/integration.rb +0 -39
  874. data/lib/ddtrace/contrib/rake/patcher.rb +0 -31
  875. data/lib/ddtrace/contrib/redis/configuration/resolver.rb +0 -46
  876. data/lib/ddtrace/contrib/redis/configuration/settings.rb +0 -36
  877. data/lib/ddtrace/contrib/redis/ext.rb +0 -23
  878. data/lib/ddtrace/contrib/redis/integration.rb +0 -43
  879. data/lib/ddtrace/contrib/redis/patcher.rb +0 -115
  880. data/lib/ddtrace/contrib/redis/quantize.rb +0 -76
  881. data/lib/ddtrace/contrib/redis/tags.rb +0 -47
  882. data/lib/ddtrace/contrib/redis/vendor/resolver.rb +0 -159
  883. data/lib/ddtrace/contrib/registerable.rb +0 -33
  884. data/lib/ddtrace/contrib/registry.rb +0 -43
  885. data/lib/ddtrace/contrib/resque/configuration/settings.rb +0 -49
  886. data/lib/ddtrace/contrib/resque/ext.rb +0 -18
  887. data/lib/ddtrace/contrib/resque/integration.rb +0 -48
  888. data/lib/ddtrace/contrib/resque/patcher.rb +0 -30
  889. data/lib/ddtrace/contrib/resque/resque_job.rb +0 -104
  890. data/lib/ddtrace/contrib/rest_client/configuration/settings.rb +0 -32
  891. data/lib/ddtrace/contrib/rest_client/ext.rb +0 -18
  892. data/lib/ddtrace/contrib/rest_client/integration.rb +0 -39
  893. data/lib/ddtrace/contrib/rest_client/patcher.rb +0 -25
  894. data/lib/ddtrace/contrib/rest_client/request_patch.rb +0 -92
  895. data/lib/ddtrace/contrib/semantic_logger/configuration/settings.rb +0 -19
  896. data/lib/ddtrace/contrib/semantic_logger/ext.rb +0 -11
  897. data/lib/ddtrace/contrib/semantic_logger/instrumentation.rb +0 -43
  898. data/lib/ddtrace/contrib/semantic_logger/integration.rb +0 -48
  899. data/lib/ddtrace/contrib/semantic_logger/patcher.rb +0 -26
  900. data/lib/ddtrace/contrib/sequel/configuration/settings.rb +0 -29
  901. data/lib/ddtrace/contrib/sequel/database.rb +0 -64
  902. data/lib/ddtrace/contrib/sequel/dataset.rb +0 -64
  903. data/lib/ddtrace/contrib/sequel/ext.rb +0 -20
  904. data/lib/ddtrace/contrib/sequel/integration.rb +0 -39
  905. data/lib/ddtrace/contrib/sequel/patcher.rb +0 -34
  906. data/lib/ddtrace/contrib/sequel/utils.rb +0 -75
  907. data/lib/ddtrace/contrib/shoryuken/configuration/settings.rb +0 -32
  908. data/lib/ddtrace/contrib/shoryuken/ext.rb +0 -22
  909. data/lib/ddtrace/contrib/shoryuken/integration.rb +0 -40
  910. data/lib/ddtrace/contrib/shoryuken/patcher.rb +0 -25
  911. data/lib/ddtrace/contrib/shoryuken/tracer.rb +0 -56
  912. data/lib/ddtrace/contrib/sidekiq/client_tracer.rb +0 -44
  913. data/lib/ddtrace/contrib/sidekiq/configuration/settings.rb +0 -38
  914. data/lib/ddtrace/contrib/sidekiq/ext.rb +0 -31
  915. data/lib/ddtrace/contrib/sidekiq/integration.rb +0 -49
  916. data/lib/ddtrace/contrib/sidekiq/patcher.rb +0 -68
  917. data/lib/ddtrace/contrib/sidekiq/server_internal_tracer/heartbeat.rb +0 -30
  918. data/lib/ddtrace/contrib/sidekiq/server_internal_tracer/job_fetch.rb +0 -30
  919. data/lib/ddtrace/contrib/sidekiq/server_internal_tracer/scheduled_push.rb +0 -29
  920. data/lib/ddtrace/contrib/sidekiq/server_tracer.rb +0 -66
  921. data/lib/ddtrace/contrib/sidekiq/tracing.rb +0 -45
  922. data/lib/ddtrace/contrib/sinatra/configuration/settings.rb +0 -40
  923. data/lib/ddtrace/contrib/sinatra/env.rb +0 -59
  924. data/lib/ddtrace/contrib/sinatra/ext.rb +0 -28
  925. data/lib/ddtrace/contrib/sinatra/headers.rb +0 -30
  926. data/lib/ddtrace/contrib/sinatra/integration.rb +0 -39
  927. data/lib/ddtrace/contrib/sinatra/patcher.rb +0 -30
  928. data/lib/ddtrace/contrib/sinatra/tracer.rb +0 -150
  929. data/lib/ddtrace/contrib/sinatra/tracer_middleware.rb +0 -112
  930. data/lib/ddtrace/contrib/sneakers/configuration/settings.rb +0 -34
  931. data/lib/ddtrace/contrib/sneakers/ext.rb +0 -23
  932. data/lib/ddtrace/contrib/sneakers/integration.rb +0 -42
  933. data/lib/ddtrace/contrib/sneakers/patcher.rb +0 -25
  934. data/lib/ddtrace/contrib/sneakers/tracer.rb +0 -54
  935. data/lib/ddtrace/contrib/status_code_matcher.rb +0 -70
  936. data/lib/ddtrace/contrib/sucker_punch/configuration/settings.rb +0 -31
  937. data/lib/ddtrace/contrib/sucker_punch/exception_handler.rb +0 -25
  938. data/lib/ddtrace/contrib/sucker_punch/ext.rb +0 -22
  939. data/lib/ddtrace/contrib/sucker_punch/instrumentation.rb +0 -89
  940. data/lib/ddtrace/contrib/sucker_punch/integration.rb +0 -39
  941. data/lib/ddtrace/contrib/sucker_punch/patcher.rb +0 -44
  942. data/lib/ddtrace/correlation.rb +0 -40
  943. data/lib/ddtrace/diagnostics/environment_logger.rb +0 -280
  944. data/lib/ddtrace/diagnostics/health.rb +0 -34
  945. data/lib/ddtrace/distributed_tracing/headers/b3.rb +0 -45
  946. data/lib/ddtrace/distributed_tracing/headers/b3_single.rb +0 -57
  947. data/lib/ddtrace/distributed_tracing/headers/datadog.rb +0 -43
  948. data/lib/ddtrace/distributed_tracing/headers/headers.rb +0 -72
  949. data/lib/ddtrace/distributed_tracing/headers/helpers.rb +0 -44
  950. data/lib/ddtrace/encoding.rb +0 -72
  951. data/lib/ddtrace/error.rb +0 -97
  952. data/lib/ddtrace/event.rb +0 -53
  953. data/lib/ddtrace/ext/analytics.rb +0 -13
  954. data/lib/ddtrace/ext/app_types.rb +0 -12
  955. data/lib/ddtrace/ext/correlation.rb +0 -12
  956. data/lib/ddtrace/ext/diagnostics.rb +0 -37
  957. data/lib/ddtrace/ext/distributed.rb +0 -40
  958. data/lib/ddtrace/ext/environment.rb +0 -24
  959. data/lib/ddtrace/ext/errors.rb +0 -11
  960. data/lib/ddtrace/ext/forced_tracing.rb +0 -26
  961. data/lib/ddtrace/ext/git.rb +0 -32
  962. data/lib/ddtrace/ext/http.rb +0 -47
  963. data/lib/ddtrace/ext/integration.rb +0 -9
  964. data/lib/ddtrace/ext/manual_tracing.rb +0 -10
  965. data/lib/ddtrace/ext/metrics.rb +0 -16
  966. data/lib/ddtrace/ext/net.rb +0 -11
  967. data/lib/ddtrace/ext/priority.rb +0 -17
  968. data/lib/ddtrace/ext/profiling.rb +0 -57
  969. data/lib/ddtrace/ext/runtime.rb +0 -25
  970. data/lib/ddtrace/ext/sampling.rb +0 -17
  971. data/lib/ddtrace/ext/sql.rb +0 -9
  972. data/lib/ddtrace/ext/test.rb +0 -9
  973. data/lib/ddtrace/ext/transport.rb +0 -32
  974. data/lib/ddtrace/forced_tracing.rb +0 -39
  975. data/lib/ddtrace/logger.rb +0 -41
  976. data/lib/ddtrace/metrics.rb +0 -282
  977. data/lib/ddtrace/opentelemetry/extensions.rb +0 -14
  978. data/lib/ddtrace/opentelemetry/span.rb +0 -34
  979. data/lib/ddtrace/opentracer/carrier.rb +0 -7
  980. data/lib/ddtrace/opentracer/distributed_headers.rb +0 -56
  981. data/lib/ddtrace/opentracer/global_tracer.rb +0 -16
  982. data/lib/ddtrace/opentracer/propagator.rb +0 -23
  983. data/lib/ddtrace/opentracer/rack_propagator.rb +0 -61
  984. data/lib/ddtrace/opentracer/scope.rb +0 -16
  985. data/lib/ddtrace/opentracer/scope_manager.rb +0 -7
  986. data/lib/ddtrace/opentracer/span.rb +0 -95
  987. data/lib/ddtrace/opentracer/span_context.rb +0 -15
  988. data/lib/ddtrace/opentracer/span_context_factory.rb +0 -24
  989. data/lib/ddtrace/opentracer/text_map_propagator.rb +0 -76
  990. data/lib/ddtrace/opentracer/thread_local_scope.rb +0 -32
  991. data/lib/ddtrace/opentracer/thread_local_scope_manager.rb +0 -41
  992. data/lib/ddtrace/opentracer/tracer.rb +0 -209
  993. data/lib/ddtrace/opentracer.rb +0 -22
  994. data/lib/ddtrace/patcher.rb +0 -69
  995. data/lib/ddtrace/pin.rb +0 -86
  996. data/lib/ddtrace/pipeline/span_filter.rb +0 -39
  997. data/lib/ddtrace/pipeline/span_processor.rb +0 -21
  998. data/lib/ddtrace/pipeline.rb +0 -47
  999. data/lib/ddtrace/profiling/buffer.rb +0 -42
  1000. data/lib/ddtrace/profiling/collectors/stack.rb +0 -301
  1001. data/lib/ddtrace/profiling/encoding/profile.rb +0 -46
  1002. data/lib/ddtrace/profiling/events/stack.rb +0 -81
  1003. data/lib/ddtrace/profiling/exporter.rb +0 -24
  1004. data/lib/ddtrace/profiling/ext/cpu.rb +0 -67
  1005. data/lib/ddtrace/profiling/ext/cthread.rb +0 -156
  1006. data/lib/ddtrace/profiling/flush.rb +0 -44
  1007. data/lib/ddtrace/profiling/native_extension.rb +0 -18
  1008. data/lib/ddtrace/profiling/pprof/builder.rb +0 -120
  1009. data/lib/ddtrace/profiling/pprof/converter.rb +0 -103
  1010. data/lib/ddtrace/profiling/pprof/message_set.rb +0 -15
  1011. data/lib/ddtrace/profiling/pprof/pprof_pb.rb +0 -82
  1012. data/lib/ddtrace/profiling/pprof/stack_sample.rb +0 -143
  1013. data/lib/ddtrace/profiling/pprof/string_table.rb +0 -11
  1014. data/lib/ddtrace/profiling/pprof/template.rb +0 -119
  1015. data/lib/ddtrace/profiling/profiler.rb +0 -31
  1016. data/lib/ddtrace/profiling/recorder.rb +0 -96
  1017. data/lib/ddtrace/profiling/scheduler.rb +0 -134
  1018. data/lib/ddtrace/profiling/tasks/setup.rb +0 -81
  1019. data/lib/ddtrace/profiling/trace_identifiers/ddtrace.rb +0 -41
  1020. data/lib/ddtrace/profiling/trace_identifiers/helper.rb +0 -46
  1021. data/lib/ddtrace/profiling/transport/http/api/endpoint.rb +0 -101
  1022. data/lib/ddtrace/profiling/transport/http/api/instance.rb +0 -37
  1023. data/lib/ddtrace/profiling/transport/http/api.rb +0 -44
  1024. data/lib/ddtrace/profiling/transport/http/builder.rb +0 -29
  1025. data/lib/ddtrace/profiling/transport/http/client.rb +0 -34
  1026. data/lib/ddtrace/profiling/transport/http/response.rb +0 -22
  1027. data/lib/ddtrace/profiling/transport/http.rb +0 -111
  1028. data/lib/ddtrace/profiling/transport/io/client.rb +0 -28
  1029. data/lib/ddtrace/profiling/transport/io/response.rb +0 -17
  1030. data/lib/ddtrace/profiling/transport/io.rb +0 -31
  1031. data/lib/ddtrace/profiling/transport/request.rb +0 -16
  1032. data/lib/ddtrace/profiling.rb +0 -151
  1033. data/lib/ddtrace/propagation/grpc_propagator.rb +0 -75
  1034. data/lib/ddtrace/propagation/http_propagator.rb +0 -91
  1035. data/lib/ddtrace/quantization/hash.rb +0 -104
  1036. data/lib/ddtrace/quantization/http.rb +0 -90
  1037. data/lib/ddtrace/runtime/metrics.rb +0 -135
  1038. data/lib/ddtrace/sampler.rb +0 -293
  1039. data/lib/ddtrace/sampling/matcher.rb +0 -58
  1040. data/lib/ddtrace/sampling/rate_limiter.rb +0 -177
  1041. data/lib/ddtrace/sampling/rule.rb +0 -62
  1042. data/lib/ddtrace/sampling/rule_sampler.rb +0 -121
  1043. data/lib/ddtrace/sampling.rb +0 -3
  1044. data/lib/ddtrace/span.rb +0 -445
  1045. data/lib/ddtrace/sync_writer.rb +0 -69
  1046. data/lib/ddtrace/tasks/exec.rb +0 -47
  1047. data/lib/ddtrace/tasks/help.rb +0 -15
  1048. data/lib/ddtrace/tracer.rb +0 -449
  1049. data/lib/ddtrace/utils/compression.rb +0 -28
  1050. data/lib/ddtrace/utils/database.rb +0 -26
  1051. data/lib/ddtrace/utils/forking.rb +0 -53
  1052. data/lib/ddtrace/utils/object_set.rb +0 -40
  1053. data/lib/ddtrace/utils/only_once.rb +0 -41
  1054. data/lib/ddtrace/utils/sequence.rb +0 -18
  1055. data/lib/ddtrace/utils/string_table.rb +0 -46
  1056. data/lib/ddtrace/utils/time.rb +0 -45
  1057. data/lib/ddtrace/utils.rb +0 -80
  1058. data/lib/ddtrace/vendor/active_record/connection_specification.rb +0 -302
  1059. data/lib/ddtrace/vendor/multipart-post/multipart/post/composite_read_io.rb +0 -117
  1060. data/lib/ddtrace/vendor/multipart-post/multipart/post/multipartable.rb +0 -58
  1061. data/lib/ddtrace/vendor/multipart-post/multipart/post/parts.rb +0 -136
  1062. data/lib/ddtrace/vendor/multipart-post/multipart/post/version.rb +0 -10
  1063. data/lib/ddtrace/vendor/multipart-post/multipart/post.rb +0 -9
  1064. data/lib/ddtrace/vendor/multipart-post/multipart.rb +0 -13
  1065. data/lib/ddtrace/vendor/multipart-post/net/http/post/multipart.rb +0 -33
  1066. data/lib/ddtrace/worker.rb +0 -21
  1067. data/lib/ddtrace/workers/async.rb +0 -175
  1068. data/lib/ddtrace/workers/loop.rb +0 -132
  1069. data/lib/ddtrace/workers/polling.rb +0 -56
  1070. data/lib/ddtrace/workers/queue.rb +0 -41
  1071. data/lib/ddtrace/workers/runtime_metrics.rb +0 -65
  1072. data/lib/ddtrace/workers/trace_writer.rb +0 -200
  1073. data/lib/ddtrace/workers.rb +0 -123
  1074. data/lib/ddtrace/writer.rb +0 -200
@@ -6,19 +6,18 @@ For a more practical view of getting started with development of `ddtrace`, see
6
6
 
7
7
  ## Profiling components high-level view
8
8
 
9
- Components below live inside <../lib/ddtrace/profiling>:
9
+ Components below live inside <../lib/datadog/profiling>:
10
10
 
11
11
  * `Collectors::Stack`: Collects stack trace samples from Ruby threads for both CPU-time (if available) and wall-clock.
12
12
  Runs on its own background thread.
13
+ * `Collectors::CodeProvenance`: Collects library metadata to power grouping and categorization of stack traces (e.g. to help distinguish user code, from libraries, from the standard library, etc).
13
14
  * `Encoding::Profile`: Encodes gathered data into the pprof format.
14
15
  * `Events::Stack`, `Events::StackSample`: Entity classes used to represent stacks.
15
- * `Ext::CPU`: Monkey patches Ruby's `Thread` with our `Ext::CThread` to enable CPU-time profiling.
16
- * `Ext::CThread`: Extension used to enable CPU-time profiling via use of Pthread's `getcpuclockid`.
17
16
  * `Ext::Forking`: Monkey patches `Kernel#fork`, adding a `Kernel#at_fork` callback mechanism which is used to restore
18
17
  profiling abilities after the VM forks (such as re-instrumenting the main thread, and restarting profiler threads).
19
- * `Pprof::*` (in <../lib/ddtrace/profiling/pprof>): Converts samples captured in the `Recorder` into the pprof format.
20
- * `Tasks::Setup`: Takes care of loading our extensions/monkey patches to handle fork() and CPU profiling.
21
- * `Transport::*` (in <../lib/ddtrace/profiling/transport>): Implements transmission of profiling payloads to the Datadog agent
18
+ * `Pprof::*` (in <../lib/datadog/profiling/pprof>): Converts samples captured in the `Recorder` into the pprof format.
19
+ * `Tasks::Setup`: Takes care of loading our extensions/monkey patches to handle fork().
20
+ * `Transport::*` (in <../lib/datadog/profiling/transport>): Implements transmission of profiling payloads to the Datadog agent
22
21
  or backend.
23
22
  * `TraceIdentifiers::*`: Used to retrieve trace id and span id from tracers, to be used to connect traces to profiles.
24
23
  * `BacktraceLocation`: Entity class used to represent an entry in a stack trace.
@@ -35,13 +34,12 @@ Components below live inside <../lib/ddtrace/profiling>:
35
34
  When started via `ddtracerb exec` (together with `DD_PROFILING_ENABLED=true`), initialization goes through the following
36
35
  flow:
37
36
 
38
- 1. <../lib/ddtrace/profiling/preload.rb> triggers the creation of the `Datadog.profiler` instance by calling the method
39
- 2. `Datadog.profiler` is handled by `Datadog::Configuration`, which triggers the configuration of `ddtrace` components
37
+ 1. <../lib/datadog/profiling/preload.rb> triggers the creation of the profiler instance by calling the method `Datadog::Profiling.start_if_enabled`
38
+ 2. The profiler instance is handled by `Datadog::Configuration`, which triggers the configuration of `ddtrace` components
40
39
  in `#build_components`
41
40
  3. Inside `Datadog::Components`, the `build_profiler` method triggers the execution of the `Tasks::Setup`
42
41
  4. The `Setup` task activates our extensions
43
42
  * `Datadog::Profiling::Ext::Forking`
44
- * `Datadog::Profiling::Ext::CPU`
45
43
  5. Still inside `Datadog::Components`, the `build_profiler` method then creates and wires up the Profiler as such:
46
44
  ```asciiflow
47
45
  +------------+
@@ -62,6 +60,11 @@ flow:
62
60
  +-+-------+-+
63
61
  | Recorder |
64
62
  +-----------+
63
+ |
64
+ v
65
+ +-----------------+
66
+ | Code Provenance |
67
+ +-----------------+
65
68
  ```
66
69
  6. The profiler gets started when `startup!` is called by `Datadog::Configuration` after component creation.
67
70
 
@@ -97,9 +100,9 @@ The profiler backend links a trace covering a given time interval to the profile
97
100
  whenever they share the same `runtime-id`.
98
101
 
99
102
  To further enable filtering of a profile to show only samples related to a given trace/span, each sample taken by the
100
- profiler is tagged with the trace_id and span_id for the given trace/span.
103
+ profiler is tagged with the `local root span id` and `span id` for the given trace/span.
101
104
 
102
- This is done using the `Datadog::Profiling::TraceIdentifiers::Helper` that retrieves a trace_id and span_id, if
105
+ This is done using the `Datadog::Profiling::TraceIdentifiers::Helper` that retrieves a `root_span_id` and `span_id`, if
103
106
  available, from the supported tracers. This helper is called by the `Collectors::Stack` during sampling.
104
107
 
105
108
  Note that if a given trace executes too fast, it's possible that the profiler will not contain any samples for that
data/docs/PublicApi.md ADDED
@@ -0,0 +1,14 @@
1
+ # Public API
2
+
3
+ `ddtrace` respects [Semantic Versioning 2.0.0](https://semver.org/spec/v2.0.0.html).
4
+
5
+ Classes, modules, and methods marked as part of the public API will not introduce
6
+ breaking changes outside of a major version release.
7
+
8
+ Objects that belong to the public API are marked with the `@public_api` YARD documentation tag.
9
+ When navigating [`ddtrace`'s YARD documentation](https://rubydoc.info/gems/ddtrace), public API
10
+ objects will have an explicit banner informing the user that they are part of the public API contract.
11
+
12
+ Objects not marked with the `@public_api` tag are not part of the public API contract, and thus
13
+ considered internal to `ddtrace`. These objects can receive breaking changes in minor and patch
14
+ releases.
@@ -0,0 +1,557 @@
1
+ # Upgrading ddtrace
2
+
3
+ # From 0.x to 1.0
4
+
5
+ - [Namespacing & the public API](#namespacing--the-public-api)
6
+ - [Configuration](#configuration)
7
+ - [Instrumentation](#instrumentation)
8
+ - [Full list of breaking changes](#full-list-of-breaking-changes)
9
+
10
+ Upgrading `ddtrace` from 0.x to 1.x introduces some changes to namespacing, the public API, and the underlying trace data structure.
11
+
12
+ Here's a list of the most common changes you may encounter:
13
+
14
+ ## Namespacing & the public API
15
+
16
+ To avoid naming conflicts with new Datadog features and products, many of the tracing constants and functions defined directly under `Datadog` have moved to `Datadog::Tracing`.
17
+
18
+ You can access most common functions through our [public API](https://www.rubydoc.info/gems/ddtrace/) within `Datadog::Tracing`. Use of some of the functions in the public API will be described in use cases below. Here's a few examples:
19
+
20
+ ```ruby
21
+ ### Old 0.x ###
22
+ Datadog.tracer.trace
23
+ Datadog.tracer.active_span
24
+ Datadog.tracer.active_correlation.to_s
25
+
26
+
27
+ ### New 1.0 ###
28
+ Datadog::Tracing.trace
29
+ Datadog::Tracing.active_span
30
+ Datadog::Tracing.log_correlation
31
+ # ...and more...
32
+ ```
33
+
34
+ Check out our [complete list of namespacing changes](#appendix-namespacing) for more details.
35
+
36
+ ### Removed `Datadog.tracer`
37
+
38
+ Many of the functions accessed directly through `Datadog.tracer` have been moved to `Datadog::Tracing` instead.
39
+
40
+ ### Removed access to `Datadog::Context`
41
+
42
+ Direct usage of `Datadog::Context` has been removed. Previously, it was used to modify or access active trace state. Most use cases have been replaced by our public trace API.
43
+
44
+ ## Configuration
45
+
46
+ ### Settings have been namespaced
47
+
48
+ Configuration settings have been sorted into smaller configuration groups, by product.
49
+
50
+ - `Datadog.configure { |c| c.* }`: Datadog configuration settings
51
+ - `Datadog.configure { |c| c.tracing.* }`: Tracing configuration settings
52
+ - `Datadog.configure { |c| c.profiling.* }`: Profiling configuration settings
53
+ - `Datadog.configure { |c| c.ci.* }`: CI configuration settings
54
+
55
+ Existing applications should update their configuration files and settings accordingly. For example:
56
+
57
+ ```ruby
58
+ # config/initializers/datadog.rb
59
+ require 'ddtrace'
60
+
61
+ ### Old 0.x ###
62
+ Datadog.configure do |c|
63
+ # Global settings
64
+ c.diagnostics.debug = true
65
+ c.service = 'billing-api'
66
+
67
+ # Profiling settings
68
+ c.profiling.enabled = true
69
+
70
+ # Tracer settings
71
+ c.analytics.enabled = true
72
+ c.runtime_metrics.enabled = true
73
+ c.tracer.hostname = '127.0.0.1'
74
+ c.tracer.port = 8126
75
+
76
+ # CI settings
77
+ c.ci_mode = (ENV['DD_ENV'] == 'ci')
78
+
79
+ # Instrumentation
80
+ c.use :rails
81
+ c.use :redis, service_name: 'billing-redis'
82
+ c.use :resque
83
+ c.use :rspec
84
+ end
85
+
86
+
87
+ ### New 1.0 ###
88
+ Datadog.configure do |c|
89
+ # Global settings
90
+ c.agent.hostname = '127.0.0.1'
91
+ c.agent.port = 8126
92
+ c.diagnostics.debug = true
93
+ c.service = 'billing-api'
94
+
95
+ # Profiling settings
96
+ c.profiling.enabled = true
97
+
98
+ # Tracer settings
99
+ c.tracing.analytics.enabled = true
100
+ c.tracing.runtime_metrics.enabled = true
101
+
102
+ # CI settings
103
+ c.ci.enabled = (ENV['DD_ENV'] == 'ci')
104
+
105
+ # Instrumentation
106
+ c.tracing.instrument :rails
107
+ c.tracing.instrument :redis, service_name: 'billing-redis'
108
+ c.tracing.instrument :resque
109
+ c.ci.instrument :rspec
110
+ end
111
+ ```
112
+
113
+ Check out our [complete list of configuration changes](#appendix-configuration) for more details.
114
+
115
+ ### Activating instrumentation
116
+
117
+ The `use` function has been renamed to `instrument`. Also, `instrument` has been namespaced to the specific product:
118
+
119
+ ```ruby
120
+ ### Old 0.x ###
121
+ Datadog.configure do |c|
122
+ c.use :rails
123
+ c.use :cucumber
124
+ end
125
+
126
+
127
+ ### New 1.0 ###
128
+ Datadog.configure do |c|
129
+ c.tracing.instrument :rails
130
+ c.ci.instrument :cucumber
131
+ end
132
+ ```
133
+
134
+ ## Instrumentation
135
+
136
+ ### Service naming
137
+
138
+ In 0.x, The `service` field on spans generated by Datadog integrations would typically default to the package name, e.g. `http` or `sidekiq`. This would often result in many "services" being generated by one application, one for each instrumented package. Users would often rectify this by overriding the `service_name` setting on each integration to get matching `service` names.
139
+
140
+ To remedy this in later 0.x versions, we introduced the global `service` name setting (also set via `DD_SERVICE`), which is the recommended way to set the name of your application. However, the Datadog integrations (with the exception of Rails) still did not employ this field.
141
+
142
+ In 1.0, spans now inherit the global `service` name by default, unless otherwise explicitly set. This means for spans generated by Datadog integrations, they will default to the global `service` name, unless the `service_name` setting is configured for that integration.
143
+
144
+ Spans that describe external services (e.g. `mysql`), will default to some other name that describes the external service instead.
145
+
146
+ As an example, expect the following code & trace in 0.x:
147
+
148
+ ```ruby
149
+ ### Old 0.x ###
150
+ Datadog.configure do |c|
151
+ c.service = 'billing-api'
152
+ c.use :rails
153
+ c.use :redis
154
+ c.use :resque
155
+ end
156
+ ```
157
+
158
+ ![0.x trace](./0.x-trace.png)
159
+
160
+ To reflect the following trace in 1.0 instead:
161
+
162
+ ```ruby
163
+ ### New 1.0 ###
164
+ Datadog.configure do |c|
165
+ c.service = 'billing-api'
166
+ c.tracing.instrument :rails
167
+ c.tracing.instrument :redis
168
+ c.tracing.instrument :resque
169
+ end
170
+ ```
171
+
172
+ ![1.0 trace](./1.0-trace.png)
173
+
174
+ ### Manual tracing & trace model
175
+
176
+ Manual tracing is now done through the public API.
177
+
178
+ Whereas in 0.x, the block would yield a `Datadog::Span` as `span`, in 1.0, the block yields a `Datadog::SpanOperation` as `span` and `Datadog::TraceOperation` as `trace`.
179
+
180
+ ```ruby
181
+ ### Old 0.x ###
182
+ Datadog.tracer.trace('my.job') do |span|
183
+ # Do work...
184
+ # span => #<Datadog::Tracing::Span>
185
+ end
186
+
187
+
188
+ ### New 1.0 ###
189
+ Datadog::Tracing.trace('my.job') do |span, trace|
190
+ # Do work...
191
+ # span => #<Datadog::Tracing::SpanOperation>
192
+ # trace => #<Datadog::Tracing::TraceOperation>
193
+ end
194
+ ```
195
+
196
+ The yielded `span` is nearly identical in behavior, except access to some fields (like `context`) been removed. Instead, the `trace`, which models the trace itself, grants access to new functions.
197
+
198
+ For more details about new behaviors and the trace model, see [this pull request](https://github.com/DataDog/dd-trace-rb/pull/1783).
199
+
200
+ ### Accessing trace state
201
+
202
+ The public API provides new functions to access active trace data:
203
+
204
+ ```ruby
205
+ ### Old 0.x ###
206
+ # Retuns the active context (contains trace state)
207
+ Datadog.tracer.call_context
208
+ # Returns the active Span
209
+ Datadog.tracer.active_span
210
+ # Returns an immutable set of identifiers for the current trace state
211
+ Datadog.tracer.active_correlation
212
+
213
+
214
+ ### New 1.0 ###
215
+ # Retuns the active TraceOperation for the current thread (contains trace state)
216
+ Datadog::Tracing.active_trace
217
+ # Returns the active SpanOperation for the current thread (contains span state)
218
+ Datadog::Tracing.active_span
219
+ # Returns an immutable set of identifiers for the current trace state
220
+ Datadog::Tracing.correlation
221
+ ```
222
+
223
+ Use of `active_root_span` has been removed.
224
+
225
+ ### Distributed tracing
226
+
227
+ Previously, distributed tracing required building new `Datadog::Context` objects, then replacing the context within the tracer.
228
+
229
+ Instead, users utilize `TraceDigest` objects derived from a trace. This object represents the state of a trace. It can be used to propagate a trace across execution boundaries (processes, threads), or to continue a trace locally.
230
+
231
+ ```ruby
232
+ ### Old 0.x ###
233
+ # Get trace continuation from active trace
234
+ env = {}
235
+ Datadog::HTTPPropagator.inject(Datadog.tracer.call_context, env)
236
+ context = Datadog::HTTPPropagator.extract(env)
237
+
238
+ # Continue a trace: implicit continuation
239
+ Datadog.tracer.provider.context = context
240
+
241
+ # Next trace inherits trace properties
242
+ Datadog.tracer.trace('my.job') do |span|
243
+ span.trace_id == context.trace_id
244
+ end
245
+
246
+
247
+ ### New 1.0 ###
248
+ # Get trace continuation from active trace
249
+ trace_digest = Datadog::Tracing.active_trace.to_digest
250
+
251
+ # Continue a trace: explicit continuation
252
+ # Inherits trace properties from the trace digest
253
+ Datadog::Tracing.trace('my.job', continue_from: trace_digest) do |span, trace|
254
+ trace.id == trace_digest.trace_id
255
+ end
256
+
257
+ # Continue a trace: implicit continuation
258
+ # Digest will be "consumed" by the next `trace` operation
259
+ Datadog::Tracing.continue_trace!(trace_digest)
260
+
261
+ # Next trace inherits trace properties
262
+ Datadog::Tracing.trace('my.job') do |span, trace|
263
+ trace.id == trace_digest.trace_id
264
+ end
265
+
266
+ # Second trace does NOT inherit trace properties
267
+ Datadog::Tracing.trace('my.job') do |span, trace|
268
+ trace.id != trace_digest.trace_id
269
+ end
270
+ ```
271
+
272
+ #### Propagation over HTTP/gRPC
273
+
274
+ To propagate a local trace to a remote service:
275
+
276
+ ```ruby
277
+ ### Old 0.x ###
278
+ context = Datadog.tracer.call_context
279
+
280
+ # HTTP
281
+ headers = {}
282
+ Datadog::HTTPPropagator.inject!(context, headers)
283
+ # Inject `headers` into your HTTP headers
284
+
285
+ # gRPC
286
+ headers = {}
287
+ Datadog::GRPCPropagator.inject!(context, headers)
288
+ # Inject `headers` into your headers
289
+
290
+
291
+ ### New 1.0 ###
292
+ trace_digest = Datadog::Tracing.active_trace.to_digest
293
+
294
+ # HTTP
295
+ headers = {}
296
+ Datadog::Tracing::Propagation::HTTP.inject!(trace_digest, headers)
297
+ # Inject `headers` into your HTTP headers
298
+
299
+ # gRPC
300
+ headers = {}
301
+ Datadog::Tracing::Propagation::GRPC.inject!(trace_digest, headers)
302
+ # Inject `headers` into your headers
303
+ ```
304
+
305
+ To continue a propagated trace locally:
306
+
307
+ ```ruby
308
+ ### Old 0.x ###
309
+ # HTTP
310
+ context = Datadog::HTTPPropagator.extract(request.env)
311
+ Datadog.tracer.provider.context = context
312
+
313
+ # gRPC
314
+ context = Datadog::GRPCPropagator.extract(metadata)
315
+ Datadog.tracer.provider.context = context
316
+
317
+ ### New 1.0 ###
318
+ # HTTP
319
+ digest = Datadog::Tracing::Propagation::HTTP.extract(request.env)
320
+ Datadog::Tracing.continue_trace!(digest)
321
+
322
+ # gRPC
323
+ digest = Datadog::Tracing::Propagation::GRPC.extract(metadata)
324
+ Datadog::Tracing.continue_trace!(digest)
325
+ ```
326
+
327
+ #### Propagation between threads
328
+
329
+ Traces do not implicitly propagate across threads, as they are considered different execution contexts.
330
+
331
+ However, if you wish to do this, trace propagation across threads is similar to cross-process. A `TraceDigest` should be produced by the parent thread and consumed by the child thread.
332
+
333
+ NOTE: The same `TraceOperation` object should never be shared between threads; this would create race conditions.
334
+
335
+ ```ruby
336
+ # Get trace digest
337
+ trace = Datadog::Tracing.active_trace
338
+
339
+ # NOTE: We must produce the digest BEFORE starting the thread.
340
+ # Otherwise if it's lazily evaluated within the thread,
341
+ # the thread's trace may follow the wrong parent span.
342
+ trace_digest = trace.to_digest
343
+
344
+ Thread.new do
345
+ # Inherits trace properties from the trace digest
346
+ Datadog::Tracing.trace('my.job', continue_from: trace_digest) do |span, trace|
347
+ trace.id == trace_digest.trace_id
348
+ end
349
+ end
350
+ ```
351
+
352
+ ### Sampling
353
+
354
+ Accessing `call_context` to set explicit sampling has been removed.
355
+
356
+ Instead, use the `TraceOperation` to set the sampling decision.
357
+
358
+ ```ruby
359
+ ### Old 0.x ###
360
+ # From within the trace:
361
+ Datadog.tracer.trace('web.request') do |span|
362
+ span.context.sampling_priority = Datadog::Ext::Priority::USER_REJECT if env.path == '/healthcheck'
363
+ end
364
+
365
+ # From outside the trace:
366
+ Datadog.tracer.active_span.context.sampling_priority = Datadog::Ext::Priority::USER_KEEP # Keeps current trace
367
+ Datadog.tracer.active_span.context.sampling_priority = Datadog::Ext::Priority::USER_REJECT # Drops current trace
368
+
369
+
370
+ ### New 1.0 ###
371
+ # From within the trace:
372
+ Datadog::Tracing.trace('web.request') do |span, trace|
373
+ trace.reject! if env.path == '/healthcheck'
374
+ end
375
+
376
+ # From outside the trace:
377
+ Datadog::Tracing.keep! # Keeps current trace
378
+ Datadog::Tracing.reject! # Drops current trace
379
+ ```
380
+
381
+ ### Processing pipeline
382
+
383
+ When using a trace processor in the processing pipeline, the block yields a `TraceSegment` as `trace` instead of `Array[Datadog::Span]`. This object can be modified by reference.
384
+
385
+ ```ruby
386
+ ### Old 0.x ###
387
+ Datadog::Pipeline.before_flush do |trace|
388
+ # Processing logic...
389
+ trace # => Array[Datadog::Span]
390
+ end
391
+
392
+
393
+ ### New 1.0 ###
394
+ Datadog::Tracing.before_flush do |trace|
395
+ # Processing logic...
396
+ trace # => #<Datadog::Tracing::TraceSegment>
397
+ end
398
+ ```
399
+
400
+ ## Appendix
401
+
402
+ <h3 id="appendix-namespacing">Namespacing</h3>
403
+
404
+ #### `require` paths
405
+
406
+ | `0.x require path` | `1.0 require path` |
407
+ |-----------------------------|-----------------------------|
408
+ | `ddtrace/opentelemetry` | `datadog/opentelemetry` |
409
+ | `ddtrace/opentracer` | `datadog/opentracer` |
410
+ | `ddtrace/profiling/preload` | `datadog/profiling/preload` |
411
+
412
+
413
+ #### Constants
414
+
415
+ | `0.x Constant` | `1.0 Constant` |
416
+ |-----------------------------------------------------------------|-----------------------------------------------------------------------------------------|
417
+ | `Datadog::AllSampler` | `Datadog::Tracing::Sampling::AllSampler` |
418
+ | `Datadog::Buffer` | `Datadog::Core::Buffer::Random` |
419
+ | `Datadog::Chunker` | `Datadog::Core::Chunker` |
420
+ | `Datadog::Configuration` | `Datadog::Core::Configuration` |
421
+ | `Datadog::ContextFlush` | `Datadog::Tracing::Flush` |
422
+ | `Datadog::CRubyBuffer` | `Datadog::Core::Buffer::CRuby` |
423
+ | `Datadog::Diagnostics` | `Datadog::Core::Diagnostics` |
424
+ | `Datadog::DistributedTracing` | `Datadog::Tracing::Distributed` |
425
+ | `Datadog::Encoding` | `Datadog::Core::Encoding` |
426
+ | `Datadog::Error` | `Datadog::Core::Error` |
427
+ | `Datadog::Ext::Analytics::ENV_TRACE_ANALYTICS_ENABLED` | `Datadog::Tracing::Configuration::Ext::Analytics::ENV_TRACE_ANALYTICS_ENABLED` |
428
+ | `Datadog::Ext::Analytics` | `Datadog::Tracing::Metadata::Ext::Analytics` |
429
+ | `Datadog::Ext::AppTypes` | `Datadog::Tracing::Metadata::Ext::AppTypes` |
430
+ | `Datadog::Ext::Correlation::ENV_LOGS_INJECTION_ENABLED` | `Datadog::Tracing::Configuration::Ext::Correlation::ENV_LOGS_INJECTION_ENABLED` |
431
+ | `Datadog::Ext::Correlation` | `Datadog::Tracing::Correlation::Identifier` |
432
+ | `Datadog::Ext::Diagnostics` | `Datadog::Core::Diagnostics::Ext` |
433
+ | `Datadog::Ext::Distributed::ENV_PROPAGATION_STYLE_EXTRACT` | `Datadog::Tracing::Configuration::Ext::Distributed::ENV_PROPAGATION_STYLE_EXTRACT` |
434
+ | `Datadog::Ext::Distributed::ENV_PROPAGATION_STYLE_INJECT` | `Datadog::Tracing::Configuration::Ext::Distributed::ENV_PROPAGATION_STYLE_INJECT` |
435
+ | `Datadog::Ext::Distributed::PROPAGATION_STYLE_B3_SINGLE_HEADER` | `Datadog::Tracing::Configuration::Ext::Distributed::PROPAGATION_STYLE_B3_SINGLE_HEADER` |
436
+ | `Datadog::Ext::Distributed::PROPAGATION_STYLE_B3` | `Datadog::Tracing::Configuration::Ext::Distributed::PROPAGATION_STYLE_B3` |
437
+ | `Datadog::Ext::Distributed::PROPAGATION_STYLE_DATADOG` | `Datadog::Tracing::Configuration::Ext::Distributed::PROPAGATION_STYLE_DATADOG` |
438
+ | `Datadog::Ext::Distributed` | `Datadog::Tracing::Metadata::Ext::Distributed` |
439
+ | `Datadog::Ext::DistributedTracing::TAG_ORIGIN` | `Datadog::Tracing::Metadata::Ext::Distributed::TAG_ORIGIN` |
440
+ | `Datadog::Ext::DistributedTracing::TAG_SAMPLING_PRIORITY` | `Datadog::Tracing::Metadata::Ext::Distributed::TAG_SAMPLING_PRIORITY` |
441
+ | `Datadog::Ext::DistributedTracing` | `Datadog::Tracing::Distributed::Headers::Ext` |
442
+ | `Datadog::Ext::Environment` | `Datadog::Core::Environment::Ext` |
443
+ | `Datadog::Ext::Errors` | `Datadog::Tracing::Metadata::Ext::Errors` |
444
+ | `Datadog::Ext::Git` | `Datadog::Core::Git::Ext` |
445
+ | `Datadog::Ext::HTTP` | `Datadog::Tracing::Metadata::Ext::HTTP` |
446
+ | `Datadog::Ext::Integration` | `Datadog::Tracing::Metadata::Ext` |
447
+ | `Datadog::Ext::NET::ENV_REPORT_HOSTNAME` | `Datadog::Tracing::Configuration::Ext::NET::ENV_REPORT_HOSTNAME` |
448
+ | `Datadog::Ext::NET` | `Datadog::Tracing::Metadata::Ext::NET` |
449
+ | `Datadog::Ext::Priority` | `Datadog::Tracing::Sampling::Ext::Priority` |
450
+ | `Datadog::Ext::Runtime` | `Datadog::Core::Runtime::Ext` |
451
+ | `Datadog::Ext::Sampling::ENV_RATE_LIMIT` | `Datadog::Tracing::Configuration::Ext::Sampling::ENV_RATE_LIMIT` |
452
+ | `Datadog::Ext::Sampling::ENV_SAMPLE_RATE` | `Datadog::Tracing::Configuration::Ext::Sampling::ENV_SAMPLE_RATE` |
453
+ | `Datadog::Ext::Sampling` | `Datadog::Tracing::Metadata::Ext::Sampling` |
454
+ | `Datadog::Ext::SQL` | `Datadog::Tracing::Metadata::Ext::SQL` |
455
+ | `Datadog::Ext::Test` | `Datadog::Tracing::Configuration::Ext::Test` |
456
+ | `Datadog::Ext::Transport::HTTP::ENV_DEFAULT_HOST` | `Datadog::Tracing::Configuration::Ext::Transport::ENV_DEFAULT_HOST` |
457
+ | `Datadog::Ext::Transport::HTTP::ENV_DEFAULT_PORT` | `Datadog::Tracing::Configuration::Ext::Transport::ENV_DEFAULT_PORT` |
458
+ | `Datadog::Ext::Transport::HTTP::ENV_DEFAULT_URL` | `Datadog::Tracing::Configuration::Ext::Transport::ENV_DEFAULT_URL` |
459
+ | `Datadog::Ext::Transport` | `Datadog::Transport::Ext` |
460
+ | `Datadog::GRPCPropagator` | `Datadog::Tracing::Propagation::GRPC` |
461
+ | `Datadog::HTTPPropagator` | `Datadog::Tracing::Propagation::HTTP` |
462
+ | `Datadog::Logger` | `Datadog::Core::Logger` |
463
+ | `Datadog::Metrics` | `Datadog::Core::Metrics::Client` |
464
+ | `Datadog::PrioritySampler` | `Datadog::Tracing::Sampling::PrioritySampler` |
465
+ | `Datadog::Quantization` | `Datadog::Contrib::Utils::Quantization` |
466
+ | `Datadog::RateByKeySampler` | `Datadog::Tracing::Sampling::RateByKeySampler` |
467
+ | `Datadog::RateByServiceSampler` | `Datadog::Tracing::Sampling::RateByServiceSampler` |
468
+ | `Datadog::RateSampler` | `Datadog::Tracing::Sampling::RateSampler` |
469
+ | `Datadog::Runtime` | `Datadog::Core::Runtime` |
470
+ | `Datadog::Sampler` | `Datadog::Tracing::Sampling::Sampler` |
471
+ | `Datadog::Tagging::Analytics` | `Datadog::Tracing::Metadata::Analytics` |
472
+ | `Datadog::Tagging::Metadata` | `Datadog::Tracing::Metadata::Tagging` |
473
+ | `Datadog::ThreadSafeBuffer` | `Datadog::Core::Buffer::ThreadSafe` |
474
+ | `Datadog::Utils` | `Datadog::Core::Utils` |
475
+ | `Datadog::Vendor::ActiveRecord` | `Datadog::Contrib::ActiveRecord::Vendor` |
476
+ | `Datadog::Vendor::Multipart` | `Datadog::Core::Vendor::Multipart` |
477
+ | `Datadog::Worker` | `Datadog::Core::Worker` |
478
+ | `Datadog::Workers` | `Datadog::Core::Workers` |
479
+
480
+
481
+ <h3 id="appendix-configuration">Configuration</h3>
482
+
483
+ | 0.x setting | 1.0 setting |
484
+ |----------------------------------------|-------------------------------|
485
+ | `analytics.enabled` | `tracing.analytics.enabled` |
486
+ | `ci_mode.context_flush` | `ci.context_flush` |
487
+ | `ci_mode.enabled` | `ci.enabled` |
488
+ | `ci_mode.writer_options` | `ci.writer_options` |
489
+ | `distributed_tracing` | `tracing.distributed_tracing` |
490
+ | `logger=` | `logger.instance=` |
491
+ | `profiling.exporter.transport_options` | Removed |
492
+ | `report_hostname` | `tracing.report_hostname` |
493
+ | `runtime_metrics_enabled` | `runtime_metrics.enabled` |
494
+ | `runtime_metrics(options)` | Removed |
495
+ | `sampling` | `tracing.sampling` |
496
+ | `test_moade` | `tracing.test_mode` |
497
+ | `tracer.enabled` | `tracing.enabled` |
498
+ | `tracer.hostname` | `agent.hostname` |
499
+ | `tracer.instance` | `tracing.instance` |
500
+ | `tracer.partial_flush` | `tracing.partial_flush` |
501
+ | `tracer.port` | `agent.port` |
502
+ | `tracer.sampler` | `tracing.sampler` |
503
+ | `tracer.transport_options` | `tracing.transport_options` |
504
+ | `tracer.transport_options(options)` | Removed |
505
+ | `tracer.writer` | `tracing.writer` |
506
+ | `tracer.writer_options` | `tracing.writer_options` |
507
+
508
+ <h3 id="appendix-breaking-changes">Breaking changes</h3>
509
+
510
+ | **Category** | **Type** | **Description** | **Change / Alternative** |
511
+ |---------------|----------|----------------------------------------------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
512
+ | General | Changed | Many constants have been moved from `Datadog` to `Datadog::Core`, `Datadog::Tracing`, `Datadog::Profiling` | Update your references to these [new namespaces](#appendix-namespacing) where appropriate. |
513
+ | General | Removed | `Datadog.tracer` | Use methods in `Datadog::Tracing` instead. |
514
+ | General | Removed | Support for trace agent API v0.2 | Use v0.4 instead (default behavior.) |
515
+ | CI API | Changed | `DD_TRACE_CI_MODE_ENABLED` environment variable is now `DD_TRACE_CI_ENABLED` | Use `DD_TRACE_CI_ENABLED` instead. |
516
+ | Configuration | Changed | Many settings have been namespaced under specific categories | Update your configuration to these [new settings](#appendix-configuration) where appropriate. |
517
+ | Configuration | Removed | `Datadog.configure(client, options)` | Use `Datadog::Tracing.configure_onto(client, options)` instead. |
518
+ | Configuration | Removed | `DD_#{integration}_ANALYTICS_ENABLED` and `DD_#{integration}_ANALYTICS_SAMPLE_RATE` environment variables | Use `DD_TRACE_#{integration}_ANALYTICS_ENABLED` and `DD_TRACE_#{integration}_ANALYTICS_SAMPLE_RATE` instead. |
519
+ | Configuration | Removed | `DD_PROPAGATION_INJECT_STYLE` and `DD_PROPAGATION_EXTRACT_STYLE` environment variables | Use `DD_PROPAGATION_STYLE_INJECT` and `DD_PROPAGATION_STYLE_EXTRACT` instead. |
520
+ | Integrations | Changed | `-` in HTTP header tag names are kept, and no longer replaced with `_` | For example: `http.response.headers.content_type` is changed to `http.response.headers.content-type`. |
521
+ | Integrations | Changed | `Contrib::Configurable#default_configuration` moved to `Tracing::Contrib::Configurable#new_configuration` | Use `Tracing::Contrib::Configurable#new_configuration` instead. |
522
+ | Integrations | Changed | `Datadog.configuration.registry` moved to `Datadog.registry` | Use `Datadog.registry` instead. |
523
+ | Integrations | Changed | `service_name` option from each integration uses the default service name, unless it represents an external service | Set `c.service` or `DD_SERVICE`, and remove `service_name` option from integration to inherit default service name. Set `service_name` option on integration to override. |
524
+ | Integrations | Changed | Presto: `out.host` tag now contains only client hostname. Before it contained `"#{hostname}:#{port}"`. | |
525
+ | Integrations | Changed | Rails: service_name does not propagate to sub-components (e.g. `c.use :rails, cache_service: 'my-cache'`) | Use `c.service` instead. |
526
+ | Integrations | Changed | Rails: Sub-components service_name options are now consistently called `:service_name` | Update your configuration to use `:service_name`. |
527
+ | Integrations | Changed | Rails: Trace-logging correlation is enabled by default | Can be disabled using the environment variable `DD_LOGS_INJECTION=false`. |
528
+ | Integrations | Removed | `tracer` integration option from all integrations | Remove this option from your configuration. |
529
+ | Integrations | Removed | ActiveJob: `log_injection` option | Use `c.tracing.log_injection` instead. |
530
+ | Integrations | Removed | ActiveModelSerializers: service_name configuration | Remove this option from your configuration. |
531
+ | Integrations | Removed | ConcurrentRuby: unused option `service_name` | Remove this option from your configuration. |
532
+ | Integrations | Removed | Rails: 3.0 and 3.1 support. | Not supported. |
533
+ | Integrations | Removed | Rails: `log_injection` option. | Use global `c.tracing.log_injection` instead. |
534
+ | Integrations | Removed | Rails: `orm_service_name` option. | Remove this option from your configuration. |
535
+ | Integrations | Removed | Resque: `workers` option. (All Resque workers are now automatically instrumented.) | Remove this option from your configuration. |
536
+ | Tracing API | Changed | `Correlation#to_s` to `Correlation#to_log_format` | Use `Datadog::Tracing.log_correlation` instead. |
537
+ | Tracing API | Changed | `Tracer#trace` implements keyword args | Omit invalid options from `trace` calls. |
538
+ | Tracing API | Changed | Distributed tracing takes and yields `TraceDigest` instead of `Context` | Update your usage of distributed tracing to use `continue_from` and `to_digest`. |
539
+ | Tracing API | Changed | Rules for RuleSampler now yield `TraceOperation` instead of `Span` | Update Rule sampler usage to use `TraceOperation`. |
540
+ | Tracing API | Changed | Trace processors yield `TraceSegment` instead of `Array[Span]` | Update pipeline callbacks to use `TraceSegment instead. |
541
+ | Tracing API | Removed | `child_of:` option from `Tracer#trace` | Not supported. |
542
+ | Tracing API | Removed | `Pin.new(service, config: { option: value }).onto(client)` | Use `Datadog::Tracing.configure_onto(client, service_name: service, option: value)` instead. |
543
+ | Tracing API | Removed | `Pin.get_from(client)` | Use `Datadog::Tracing.configure_for(client)` instead. |
544
+ | Tracing API | Removed | `Pipeline.before_flush` | Use `Datadog::Tracing.before_flush` instead. |
545
+ | Tracing API | Removed | `SpanOperation#context` | Use `Datadog::Tracing.active_trace` instead. |
546
+ | Tracing API | Removed | `SpanOperation#parent`/`SpanOperation#parent=` | Not supported. |
547
+ | Tracing API | Removed | `SpanOperation#sampled` | Use `Datadog::TraceOperation#sampled?` instead. |
548
+ | Tracing API | Removed | `Tracer#active_correlation` | Use `Datadog::Tracing.correlation` instead. |
549
+ | Tracing API | Removed | `Tracer#active_correlation.to_log_format` | Use `Datadog::Tracing.log_correlation` instead. |
550
+ | Tracing API | Removed | `Tracer#active_root_span` | Use `Datadog::Tracing.active_trace` instead. |
551
+ | Tracing API | Removed | `Tracer#build_span` | Use `Datadog::Tracing.trace` instead. |
552
+ | Tracing API | Removed | `Tracer#call_context` | Use `Datadog::Tracing.active_trace` instead. |
553
+ | Tracing API | Removed | `Tracer#configure` | Not supported. |
554
+ | Tracing API | Removed | `Tracer#services` | Not supported. |
555
+ | Tracing API | Removed | `Tracer#set_service_info` | Not supported. |
556
+ | Tracing API | Removed | `Tracer#start_span` | Use `Datadog::Tracing.trace` instead. |
557
+ | Tracing API | Removed | `Writer#write` and `SyncWriter#write` `services` argument | Not supported. |