ddtrace 1.1.0 → 1.9.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (641) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +423 -1
  3. data/LICENSE-3rdparty.csv +3 -0
  4. data/README.md +9 -4
  5. data/ext/ddtrace_profiling_loader/ddtrace_profiling_loader.c +21 -5
  6. data/ext/ddtrace_profiling_loader/extconf.rb +22 -1
  7. data/ext/ddtrace_profiling_native_extension/NativeExtensionDesign.md +52 -8
  8. data/ext/ddtrace_profiling_native_extension/clock_id.h +22 -1
  9. data/ext/ddtrace_profiling_native_extension/clock_id_from_pthread.c +34 -3
  10. data/ext/ddtrace_profiling_native_extension/clock_id_noop.c +11 -2
  11. data/ext/ddtrace_profiling_native_extension/collectors_cpu_and_wall_time.c +899 -0
  12. data/ext/ddtrace_profiling_native_extension/collectors_cpu_and_wall_time.h +9 -0
  13. data/ext/ddtrace_profiling_native_extension/collectors_cpu_and_wall_time_worker.c +776 -0
  14. data/ext/ddtrace_profiling_native_extension/collectors_dynamic_sampling_rate.c +142 -0
  15. data/ext/ddtrace_profiling_native_extension/collectors_dynamic_sampling_rate.h +14 -0
  16. data/ext/ddtrace_profiling_native_extension/collectors_idle_sampling_helper.c +241 -0
  17. data/ext/ddtrace_profiling_native_extension/collectors_idle_sampling_helper.h +3 -0
  18. data/ext/ddtrace_profiling_native_extension/collectors_stack.c +175 -63
  19. data/ext/ddtrace_profiling_native_extension/collectors_stack.h +18 -0
  20. data/ext/ddtrace_profiling_native_extension/extconf.rb +90 -18
  21. data/ext/ddtrace_profiling_native_extension/helpers.h +17 -0
  22. data/ext/ddtrace_profiling_native_extension/http_transport.c +354 -0
  23. data/ext/ddtrace_profiling_native_extension/libdatadog_helpers.h +18 -0
  24. data/ext/ddtrace_profiling_native_extension/native_extension_helpers.rb +154 -21
  25. data/ext/ddtrace_profiling_native_extension/private_vm_api_access.c +256 -17
  26. data/ext/ddtrace_profiling_native_extension/private_vm_api_access.h +17 -5
  27. data/ext/ddtrace_profiling_native_extension/profiling.c +223 -3
  28. data/ext/ddtrace_profiling_native_extension/ruby_helpers.c +110 -0
  29. data/ext/ddtrace_profiling_native_extension/ruby_helpers.h +89 -0
  30. data/ext/ddtrace_profiling_native_extension/setup_signal_handler.c +115 -0
  31. data/ext/ddtrace_profiling_native_extension/setup_signal_handler.h +11 -0
  32. data/ext/ddtrace_profiling_native_extension/stack_recorder.c +392 -44
  33. data/ext/ddtrace_profiling_native_extension/stack_recorder.h +25 -14
  34. data/ext/ddtrace_profiling_native_extension/time_helpers.c +17 -0
  35. data/ext/ddtrace_profiling_native_extension/time_helpers.h +10 -0
  36. data/lib/datadog/appsec/assets/blocked.html +98 -3
  37. data/lib/datadog/appsec/assets/blocked.json +1 -0
  38. data/lib/datadog/appsec/assets/blocked.text +5 -0
  39. data/lib/datadog/appsec/assets/waf_rules/recommended.json +1250 -300
  40. data/lib/datadog/appsec/assets/waf_rules/risky.json +78 -78
  41. data/lib/datadog/appsec/assets/waf_rules/strict.json +308 -73
  42. data/lib/datadog/appsec/assets.rb +3 -3
  43. data/lib/datadog/appsec/autoload.rb +4 -2
  44. data/lib/datadog/appsec/configuration/settings.rb +40 -23
  45. data/lib/datadog/appsec/configuration.rb +9 -3
  46. data/lib/datadog/appsec/contrib/auto_instrument.rb +1 -3
  47. data/lib/datadog/appsec/contrib/configuration/settings.rb +2 -2
  48. data/lib/datadog/appsec/contrib/integration.rb +1 -1
  49. data/lib/datadog/appsec/contrib/patcher.rb +1 -1
  50. data/lib/datadog/appsec/contrib/rack/configuration/settings.rb +3 -3
  51. data/lib/datadog/appsec/contrib/rack/ext.rb +1 -1
  52. data/lib/datadog/appsec/contrib/rack/gateway/watcher.rb +32 -27
  53. data/lib/datadog/appsec/contrib/rack/integration.rb +5 -5
  54. data/lib/datadog/appsec/contrib/rack/patcher.rb +2 -2
  55. data/lib/datadog/appsec/contrib/rack/reactive/request.rb +17 -21
  56. data/lib/datadog/appsec/contrib/rack/reactive/request_body.rb +13 -13
  57. data/lib/datadog/appsec/contrib/rack/reactive/response.rb +13 -13
  58. data/lib/datadog/appsec/contrib/rack/request.rb +21 -1
  59. data/lib/datadog/appsec/contrib/rack/request_body_middleware.rb +3 -3
  60. data/lib/datadog/appsec/contrib/rack/request_middleware.rb +50 -23
  61. data/lib/datadog/appsec/contrib/rack/response.rb +1 -1
  62. data/lib/datadog/appsec/contrib/rails/configuration/settings.rb +3 -3
  63. data/lib/datadog/appsec/contrib/rails/ext.rb +1 -1
  64. data/lib/datadog/appsec/contrib/rails/framework.rb +1 -1
  65. data/lib/datadog/appsec/contrib/rails/gateway/watcher.rb +12 -11
  66. data/lib/datadog/appsec/contrib/rails/integration.rb +5 -5
  67. data/lib/datadog/appsec/contrib/rails/patcher.rb +14 -13
  68. data/lib/datadog/appsec/contrib/rails/reactive/action.rb +13 -13
  69. data/lib/datadog/appsec/contrib/rails/request.rb +4 -1
  70. data/lib/datadog/appsec/contrib/rails/request_middleware.rb +1 -1
  71. data/lib/datadog/appsec/contrib/sinatra/configuration/settings.rb +3 -3
  72. data/lib/datadog/appsec/contrib/sinatra/ext.rb +2 -1
  73. data/lib/datadog/appsec/contrib/sinatra/framework.rb +1 -1
  74. data/lib/datadog/appsec/contrib/sinatra/gateway/watcher.rb +21 -19
  75. data/lib/datadog/appsec/contrib/sinatra/integration.rb +4 -4
  76. data/lib/datadog/appsec/contrib/sinatra/patcher.rb +22 -15
  77. data/lib/datadog/appsec/contrib/sinatra/reactive/routed.rb +12 -12
  78. data/lib/datadog/appsec/contrib/sinatra/request_middleware.rb +1 -1
  79. data/lib/datadog/appsec/event.rb +10 -14
  80. data/lib/datadog/appsec/extensions.rb +43 -23
  81. data/lib/datadog/appsec/instrumentation/gateway.rb +17 -3
  82. data/lib/datadog/appsec/processor.rb +51 -21
  83. data/lib/datadog/appsec/rate_limiter.rb +1 -1
  84. data/lib/datadog/appsec/reactive/address_hash.rb +1 -1
  85. data/lib/datadog/appsec/reactive/engine.rb +3 -3
  86. data/lib/datadog/appsec/reactive/operation.rb +5 -5
  87. data/lib/datadog/appsec/reactive/subscriber.rb +1 -1
  88. data/lib/datadog/appsec/response.rb +63 -0
  89. data/lib/datadog/appsec/utils/http/media_range.rb +201 -0
  90. data/lib/datadog/appsec/utils/http/media_type.rb +87 -0
  91. data/lib/datadog/appsec/utils/http.rb +9 -0
  92. data/lib/datadog/appsec/utils.rb +7 -0
  93. data/lib/datadog/appsec.rb +6 -6
  94. data/lib/datadog/ci/configuration/components.rb +1 -1
  95. data/lib/datadog/ci/configuration/settings.rb +1 -1
  96. data/lib/datadog/ci/contrib/cucumber/configuration/settings.rb +2 -2
  97. data/lib/datadog/ci/contrib/cucumber/formatter.rb +5 -5
  98. data/lib/datadog/ci/contrib/cucumber/instrumentation.rb +1 -1
  99. data/lib/datadog/ci/contrib/cucumber/integration.rb +4 -4
  100. data/lib/datadog/ci/contrib/cucumber/patcher.rb +2 -2
  101. data/lib/datadog/ci/contrib/rspec/configuration/settings.rb +2 -2
  102. data/lib/datadog/ci/contrib/rspec/example.rb +5 -5
  103. data/lib/datadog/ci/contrib/rspec/integration.rb +4 -4
  104. data/lib/datadog/ci/contrib/rspec/patcher.rb +2 -2
  105. data/lib/datadog/ci/ext/environment.rb +78 -20
  106. data/lib/datadog/ci/extensions.rb +4 -4
  107. data/lib/datadog/ci/flush.rb +2 -2
  108. data/lib/datadog/ci/test.rb +3 -3
  109. data/lib/datadog/ci.rb +6 -6
  110. data/lib/datadog/core/buffer/cruby.rb +1 -1
  111. data/lib/datadog/core/buffer/thread_safe.rb +1 -1
  112. data/lib/datadog/core/configuration/agent_settings_resolver.rb +8 -11
  113. data/lib/datadog/core/configuration/base.rb +14 -2
  114. data/lib/datadog/core/configuration/components.rb +103 -52
  115. data/lib/datadog/core/configuration/ext.rb +26 -0
  116. data/lib/datadog/core/configuration/option_definition.rb +12 -3
  117. data/lib/datadog/core/configuration/option_definition_set.rb +1 -1
  118. data/lib/datadog/core/configuration/options.rb +3 -3
  119. data/lib/datadog/core/configuration/settings.rb +78 -250
  120. data/lib/datadog/core/configuration.rb +9 -6
  121. data/lib/datadog/core/diagnostics/environment_logger.rb +10 -5
  122. data/lib/datadog/core/diagnostics/health.rb +5 -23
  123. data/lib/datadog/core/environment/cgroup.rb +1 -1
  124. data/lib/datadog/core/environment/container.rb +1 -1
  125. data/lib/datadog/core/environment/ext.rb +1 -1
  126. data/lib/datadog/core/environment/identity.rb +2 -2
  127. data/lib/datadog/core/environment/platform.rb +40 -0
  128. data/lib/datadog/core/environment/socket.rb +1 -1
  129. data/lib/datadog/core/environment/variable_helpers.rb +58 -10
  130. data/lib/datadog/core/error.rb +1 -1
  131. data/lib/datadog/core/extensions.rb +1 -1
  132. data/lib/datadog/core/header_collection.rb +41 -0
  133. data/lib/datadog/core/metrics/client.rb +10 -9
  134. data/lib/datadog/core/metrics/ext.rb +0 -2
  135. data/lib/datadog/core/metrics/options.rb +3 -3
  136. data/lib/datadog/core/runtime/ext.rb +1 -1
  137. data/lib/datadog/core/runtime/metrics.rb +6 -6
  138. data/lib/datadog/core/telemetry/client.rb +79 -0
  139. data/lib/datadog/core/telemetry/collector.rb +233 -0
  140. data/lib/datadog/core/telemetry/emitter.rb +48 -0
  141. data/lib/datadog/core/telemetry/event.rb +71 -0
  142. data/lib/datadog/core/telemetry/ext.rb +11 -0
  143. data/lib/datadog/core/telemetry/heartbeat.rb +37 -0
  144. data/lib/datadog/core/telemetry/http/adapters/net.rb +113 -0
  145. data/lib/datadog/core/telemetry/http/env.rb +20 -0
  146. data/lib/datadog/core/telemetry/http/ext.rb +20 -0
  147. data/lib/datadog/core/telemetry/http/response.rb +68 -0
  148. data/lib/datadog/core/telemetry/http/transport.rb +53 -0
  149. data/lib/datadog/core/telemetry/v1/app_event.rb +52 -0
  150. data/lib/datadog/core/telemetry/v1/application.rb +86 -0
  151. data/lib/datadog/core/telemetry/v1/configuration.rb +25 -0
  152. data/lib/datadog/core/telemetry/v1/dependency.rb +36 -0
  153. data/lib/datadog/core/telemetry/v1/host.rb +51 -0
  154. data/lib/datadog/core/telemetry/v1/integration.rb +58 -0
  155. data/lib/datadog/core/telemetry/v1/product.rb +28 -0
  156. data/lib/datadog/core/telemetry/v1/telemetry_request.rb +100 -0
  157. data/lib/datadog/core/utils/compression.rb +5 -1
  158. data/lib/datadog/core/utils/object_set.rb +1 -1
  159. data/lib/datadog/core/utils/sequence.rb +5 -0
  160. data/lib/datadog/core/utils/string_table.rb +1 -1
  161. data/lib/datadog/core/utils/time.rb +3 -3
  162. data/lib/datadog/core/utils.rb +1 -22
  163. data/lib/datadog/core/vendor/multipart-post/multipart/post/multipartable.rb +2 -2
  164. data/lib/datadog/core/vendor/multipart-post/net/http/post/multipart.rb +3 -3
  165. data/lib/datadog/core/workers/async.rb +1 -3
  166. data/lib/datadog/core/workers/polling.rb +2 -2
  167. data/lib/datadog/core/workers/runtime_metrics.rb +4 -4
  168. data/lib/datadog/core.rb +22 -56
  169. data/lib/datadog/kit/appsec/events.rb +75 -0
  170. data/lib/datadog/kit/enable_core_dumps.rb +1 -0
  171. data/lib/datadog/kit/identity.rb +8 -7
  172. data/lib/datadog/kit.rb +1 -1
  173. data/lib/datadog/opentelemetry/api/context.rb +187 -0
  174. data/lib/datadog/opentelemetry/api/trace/span.rb +15 -0
  175. data/lib/datadog/opentelemetry/sdk/configurator.rb +38 -0
  176. data/lib/datadog/opentelemetry/sdk/id_generator.rb +27 -0
  177. data/lib/datadog/opentelemetry/sdk/propagator.rb +91 -0
  178. data/lib/datadog/opentelemetry/sdk/span_processor.rb +92 -0
  179. data/lib/datadog/opentelemetry.rb +48 -0
  180. data/lib/datadog/opentracer/distributed_headers.rb +7 -9
  181. data/lib/datadog/opentracer/rack_propagator.rb +10 -9
  182. data/lib/datadog/opentracer/span.rb +1 -1
  183. data/lib/datadog/opentracer/text_map_propagator.rb +13 -12
  184. data/lib/datadog/opentracer/thread_local_scope_manager.rb +26 -3
  185. data/lib/datadog/opentracer/tracer.rb +23 -21
  186. data/lib/datadog/opentracer.rb +16 -16
  187. data/lib/datadog/profiling/buffer.rb +3 -3
  188. data/lib/datadog/profiling/collectors/code_provenance.rb +1 -0
  189. data/lib/datadog/profiling/collectors/cpu_and_wall_time.rb +43 -0
  190. data/lib/datadog/profiling/collectors/cpu_and_wall_time_worker.rb +91 -0
  191. data/lib/datadog/profiling/collectors/dynamic_sampling_rate.rb +14 -0
  192. data/lib/datadog/profiling/collectors/idle_sampling_helper.rb +68 -0
  193. data/lib/datadog/profiling/collectors/old_stack.rb +15 -8
  194. data/lib/datadog/profiling/collectors/stack.rb +3 -6
  195. data/lib/datadog/profiling/encoding/profile.rb +8 -12
  196. data/lib/datadog/profiling/events/stack.rb +1 -1
  197. data/lib/datadog/profiling/exporter.rb +69 -9
  198. data/lib/datadog/profiling/ext/forking.rb +41 -42
  199. data/lib/datadog/profiling/ext.rb +3 -15
  200. data/lib/datadog/profiling/flush.rb +25 -56
  201. data/lib/datadog/profiling/http_transport.rb +132 -0
  202. data/lib/datadog/profiling/old_recorder.rb +109 -0
  203. data/lib/datadog/profiling/pprof/builder.rb +4 -4
  204. data/lib/datadog/profiling/pprof/converter.rb +1 -1
  205. data/lib/datadog/profiling/pprof/message_set.rb +1 -1
  206. data/lib/datadog/profiling/pprof/stack_sample.rb +4 -4
  207. data/lib/datadog/profiling/pprof/string_table.rb +1 -1
  208. data/lib/datadog/profiling/pprof/template.rb +5 -5
  209. data/lib/datadog/profiling/preload.rb +1 -1
  210. data/lib/datadog/profiling/profiler.rb +7 -0
  211. data/lib/datadog/profiling/scheduler.rb +28 -49
  212. data/lib/datadog/profiling/stack_recorder.rb +50 -4
  213. data/lib/datadog/profiling/tag_builder.rb +6 -1
  214. data/lib/datadog/profiling/tasks/setup.rb +2 -9
  215. data/lib/datadog/profiling/trace_identifiers/ddtrace.rb +2 -2
  216. data/lib/datadog/profiling/trace_identifiers/helper.rb +1 -1
  217. data/lib/datadog/profiling.rb +24 -21
  218. data/lib/datadog/tracing/analytics.rb +1 -1
  219. data/lib/datadog/tracing/buffer.rb +5 -5
  220. data/lib/datadog/tracing/client_ip.rb +164 -0
  221. data/lib/datadog/tracing/configuration/ext.rb +47 -4
  222. data/lib/datadog/tracing/configuration/settings.rb +433 -0
  223. data/lib/datadog/tracing/context.rb +1 -1
  224. data/lib/datadog/tracing/context_provider.rb +18 -2
  225. data/lib/datadog/tracing/contrib/action_cable/configuration/settings.rb +2 -2
  226. data/lib/datadog/tracing/contrib/action_cable/event.rb +4 -5
  227. data/lib/datadog/tracing/contrib/action_cable/events/broadcast.rb +4 -4
  228. data/lib/datadog/tracing/contrib/action_cable/events/perform_action.rb +3 -3
  229. data/lib/datadog/tracing/contrib/action_cable/events/transmit.rb +4 -4
  230. data/lib/datadog/tracing/contrib/action_cable/events.rb +4 -4
  231. data/lib/datadog/tracing/contrib/action_cable/instrumentation.rb +3 -4
  232. data/lib/datadog/tracing/contrib/action_cable/integration.rb +4 -4
  233. data/lib/datadog/tracing/contrib/action_cable/patcher.rb +4 -4
  234. data/lib/datadog/tracing/contrib/action_mailer/configuration/settings.rb +2 -2
  235. data/lib/datadog/tracing/contrib/action_mailer/event.rb +3 -3
  236. data/lib/datadog/tracing/contrib/action_mailer/events/deliver.rb +3 -3
  237. data/lib/datadog/tracing/contrib/action_mailer/events/process.rb +3 -3
  238. data/lib/datadog/tracing/contrib/action_mailer/events.rb +2 -2
  239. data/lib/datadog/tracing/contrib/action_mailer/integration.rb +4 -4
  240. data/lib/datadog/tracing/contrib/action_mailer/patcher.rb +3 -3
  241. data/lib/datadog/tracing/contrib/action_pack/action_controller/instrumentation.rb +10 -6
  242. data/lib/datadog/tracing/contrib/action_pack/action_controller/patcher.rb +2 -2
  243. data/lib/datadog/tracing/contrib/action_pack/configuration/settings.rb +2 -2
  244. data/lib/datadog/tracing/contrib/action_pack/integration.rb +4 -4
  245. data/lib/datadog/tracing/contrib/action_pack/patcher.rb +2 -2
  246. data/lib/datadog/tracing/contrib/action_pack/utils.rb +1 -1
  247. data/lib/datadog/tracing/contrib/action_view/configuration/settings.rb +2 -2
  248. data/lib/datadog/tracing/contrib/action_view/event.rb +1 -1
  249. data/lib/datadog/tracing/contrib/action_view/events/render_partial.rb +5 -5
  250. data/lib/datadog/tracing/contrib/action_view/events/render_template.rb +5 -5
  251. data/lib/datadog/tracing/contrib/action_view/events.rb +2 -2
  252. data/lib/datadog/tracing/contrib/action_view/instrumentation/partial_renderer.rb +2 -2
  253. data/lib/datadog/tracing/contrib/action_view/instrumentation/template_renderer.rb +2 -2
  254. data/lib/datadog/tracing/contrib/action_view/integration.rb +4 -4
  255. data/lib/datadog/tracing/contrib/action_view/patcher.rb +7 -7
  256. data/lib/datadog/tracing/contrib/action_view/utils.rb +1 -1
  257. data/lib/datadog/tracing/contrib/active_job/configuration/settings.rb +3 -3
  258. data/lib/datadog/tracing/contrib/active_job/event.rb +3 -3
  259. data/lib/datadog/tracing/contrib/active_job/events/discard.rb +4 -4
  260. data/lib/datadog/tracing/contrib/active_job/events/enqueue.rb +4 -4
  261. data/lib/datadog/tracing/contrib/active_job/events/enqueue_at.rb +4 -4
  262. data/lib/datadog/tracing/contrib/active_job/events/enqueue_retry.rb +4 -4
  263. data/lib/datadog/tracing/contrib/active_job/events/perform.rb +4 -4
  264. data/lib/datadog/tracing/contrib/active_job/events/retry_stopped.rb +4 -4
  265. data/lib/datadog/tracing/contrib/active_job/events.rb +6 -6
  266. data/lib/datadog/tracing/contrib/active_job/integration.rb +4 -4
  267. data/lib/datadog/tracing/contrib/active_job/log_injection.rb +0 -2
  268. data/lib/datadog/tracing/contrib/active_job/patcher.rb +4 -4
  269. data/lib/datadog/tracing/contrib/active_model_serializers/configuration/settings.rb +2 -2
  270. data/lib/datadog/tracing/contrib/active_model_serializers/event.rb +4 -5
  271. data/lib/datadog/tracing/contrib/active_model_serializers/events/render.rb +3 -3
  272. data/lib/datadog/tracing/contrib/active_model_serializers/events/serialize.rb +2 -2
  273. data/lib/datadog/tracing/contrib/active_model_serializers/events.rb +2 -2
  274. data/lib/datadog/tracing/contrib/active_model_serializers/integration.rb +3 -3
  275. data/lib/datadog/tracing/contrib/active_model_serializers/patcher.rb +3 -4
  276. data/lib/datadog/tracing/contrib/active_record/configuration/resolver.rb +2 -2
  277. data/lib/datadog/tracing/contrib/active_record/configuration/settings.rb +3 -3
  278. data/lib/datadog/tracing/contrib/active_record/event.rb +1 -1
  279. data/lib/datadog/tracing/contrib/active_record/events/instantiation.rb +4 -4
  280. data/lib/datadog/tracing/contrib/active_record/events/sql.rb +6 -6
  281. data/lib/datadog/tracing/contrib/active_record/events.rb +2 -2
  282. data/lib/datadog/tracing/contrib/active_record/integration.rb +6 -6
  283. data/lib/datadog/tracing/contrib/active_record/patcher.rb +2 -2
  284. data/lib/datadog/tracing/contrib/active_record/utils.rb +2 -2
  285. data/lib/datadog/tracing/contrib/active_support/cache/instrumentation.rb +19 -9
  286. data/lib/datadog/tracing/contrib/active_support/cache/patcher.rb +2 -2
  287. data/lib/datadog/tracing/contrib/active_support/cache/redis.rb +1 -1
  288. data/lib/datadog/tracing/contrib/active_support/configuration/settings.rb +2 -2
  289. data/lib/datadog/tracing/contrib/active_support/integration.rb +5 -5
  290. data/lib/datadog/tracing/contrib/active_support/notifications/event.rb +1 -1
  291. data/lib/datadog/tracing/contrib/active_support/notifications/subscriber.rb +1 -1
  292. data/lib/datadog/tracing/contrib/active_support/patcher.rb +2 -2
  293. data/lib/datadog/tracing/contrib/analytics.rb +1 -1
  294. data/lib/datadog/tracing/contrib/auto_instrument.rb +4 -4
  295. data/lib/datadog/tracing/contrib/aws/configuration/settings.rb +6 -3
  296. data/lib/datadog/tracing/contrib/aws/ext.rb +1 -0
  297. data/lib/datadog/tracing/contrib/aws/instrumentation.rb +5 -4
  298. data/lib/datadog/tracing/contrib/aws/integration.rb +3 -3
  299. data/lib/datadog/tracing/contrib/aws/patcher.rb +5 -5
  300. data/lib/datadog/tracing/contrib/aws/services.rb +0 -2
  301. data/lib/datadog/tracing/contrib/concurrent_ruby/configuration/settings.rb +2 -2
  302. data/lib/datadog/tracing/contrib/concurrent_ruby/future_patch.rb +1 -1
  303. data/lib/datadog/tracing/contrib/concurrent_ruby/integration.rb +3 -3
  304. data/lib/datadog/tracing/contrib/concurrent_ruby/patcher.rb +2 -2
  305. data/lib/datadog/tracing/contrib/configurable.rb +2 -2
  306. data/lib/datadog/tracing/contrib/configuration/resolvers/pattern_resolver.rb +1 -1
  307. data/lib/datadog/tracing/contrib/configuration/settings.rb +2 -2
  308. data/lib/datadog/tracing/contrib/dalli/configuration/settings.rb +6 -3
  309. data/lib/datadog/tracing/contrib/dalli/ext.rb +2 -0
  310. data/lib/datadog/tracing/contrib/dalli/instrumentation.rb +8 -5
  311. data/lib/datadog/tracing/contrib/dalli/integration.rb +3 -3
  312. data/lib/datadog/tracing/contrib/dalli/patcher.rb +3 -3
  313. data/lib/datadog/tracing/contrib/dalli/quantize.rb +1 -1
  314. data/lib/datadog/tracing/contrib/delayed_job/configuration/settings.rb +3 -3
  315. data/lib/datadog/tracing/contrib/delayed_job/ext.rb +2 -0
  316. data/lib/datadog/tracing/contrib/delayed_job/integration.rb +3 -3
  317. data/lib/datadog/tracing/contrib/delayed_job/patcher.rb +8 -2
  318. data/lib/datadog/tracing/contrib/delayed_job/plugin.rb +7 -4
  319. data/lib/datadog/tracing/contrib/delayed_job/server_internal_tracer/worker.rb +32 -0
  320. data/lib/datadog/tracing/contrib/elasticsearch/configuration/settings.rb +7 -3
  321. data/lib/datadog/tracing/contrib/elasticsearch/ext.rb +3 -0
  322. data/lib/datadog/tracing/contrib/elasticsearch/integration.rb +3 -3
  323. data/lib/datadog/tracing/contrib/elasticsearch/patcher.rb +9 -7
  324. data/lib/datadog/tracing/contrib/elasticsearch/quantize.rb +1 -1
  325. data/lib/datadog/tracing/contrib/ethon/configuration/settings.rb +8 -3
  326. data/lib/datadog/tracing/contrib/ethon/easy_patch.rb +6 -7
  327. data/lib/datadog/tracing/contrib/ethon/ext.rb +1 -0
  328. data/lib/datadog/tracing/contrib/ethon/integration.rb +4 -4
  329. data/lib/datadog/tracing/contrib/ethon/multi_patch.rb +5 -4
  330. data/lib/datadog/tracing/contrib/ethon/patcher.rb +3 -3
  331. data/lib/datadog/tracing/contrib/excon/configuration/settings.rb +7 -3
  332. data/lib/datadog/tracing/contrib/excon/ext.rb +1 -0
  333. data/lib/datadog/tracing/contrib/excon/integration.rb +4 -4
  334. data/lib/datadog/tracing/contrib/excon/middleware.rb +8 -7
  335. data/lib/datadog/tracing/contrib/excon/patcher.rb +2 -2
  336. data/lib/datadog/tracing/contrib/ext.rb +25 -0
  337. data/lib/datadog/tracing/contrib/extensions.rb +5 -3
  338. data/lib/datadog/tracing/contrib/faraday/configuration/settings.rb +7 -3
  339. data/lib/datadog/tracing/contrib/faraday/ext.rb +1 -0
  340. data/lib/datadog/tracing/contrib/faraday/integration.rb +4 -4
  341. data/lib/datadog/tracing/contrib/faraday/middleware.rb +8 -8
  342. data/lib/datadog/tracing/contrib/faraday/patcher.rb +5 -5
  343. data/lib/datadog/tracing/contrib/grape/configuration/settings.rb +3 -3
  344. data/lib/datadog/tracing/contrib/grape/endpoint.rb +4 -7
  345. data/lib/datadog/tracing/contrib/grape/integration.rb +3 -3
  346. data/lib/datadog/tracing/contrib/grape/patcher.rb +4 -4
  347. data/lib/datadog/tracing/contrib/graphql/configuration/settings.rb +3 -3
  348. data/lib/datadog/tracing/contrib/graphql/integration.rb +3 -3
  349. data/lib/datadog/tracing/contrib/graphql/patcher.rb +2 -3
  350. data/lib/datadog/tracing/contrib/grpc/configuration/settings.rb +10 -4
  351. data/lib/datadog/tracing/contrib/grpc/datadog_interceptor/client.rb +20 -5
  352. data/lib/datadog/tracing/contrib/grpc/datadog_interceptor/server.rb +17 -17
  353. data/lib/datadog/tracing/contrib/grpc/datadog_interceptor.rb +7 -4
  354. data/lib/datadog/tracing/contrib/grpc/distributed/fetcher.rb +27 -0
  355. data/lib/datadog/tracing/contrib/grpc/distributed/propagation.rb +43 -0
  356. data/lib/datadog/tracing/contrib/grpc/ext.rb +4 -0
  357. data/lib/datadog/tracing/contrib/grpc/integration.rb +3 -3
  358. data/lib/datadog/tracing/contrib/grpc/patcher.rb +3 -5
  359. data/lib/datadog/tracing/contrib/hanami/action_tracer.rb +47 -0
  360. data/lib/datadog/tracing/contrib/hanami/configuration/settings.rb +22 -0
  361. data/lib/datadog/tracing/contrib/hanami/ext.rb +24 -0
  362. data/lib/datadog/tracing/contrib/hanami/integration.rb +44 -0
  363. data/lib/datadog/tracing/contrib/hanami/patcher.rb +33 -0
  364. data/lib/datadog/tracing/contrib/hanami/plugin.rb +23 -0
  365. data/lib/datadog/tracing/contrib/hanami/renderer_policy_tracing.rb +41 -0
  366. data/lib/datadog/tracing/contrib/hanami/router_tracing.rb +44 -0
  367. data/lib/datadog/tracing/contrib/http/circuit_breaker.rb +1 -2
  368. data/lib/datadog/tracing/contrib/http/configuration/settings.rb +13 -3
  369. data/lib/datadog/tracing/contrib/http/distributed/fetcher.rb +39 -0
  370. data/lib/datadog/tracing/contrib/http/distributed/propagation.rb +38 -0
  371. data/lib/datadog/tracing/contrib/http/ext.rb +2 -0
  372. data/lib/datadog/tracing/contrib/http/instrumentation.rb +8 -10
  373. data/lib/datadog/tracing/contrib/http/integration.rb +6 -6
  374. data/lib/datadog/tracing/contrib/http/patcher.rb +3 -3
  375. data/lib/datadog/tracing/contrib/httpclient/configuration/settings.rb +13 -3
  376. data/lib/datadog/tracing/contrib/httpclient/ext.rb +2 -0
  377. data/lib/datadog/tracing/contrib/httpclient/instrumentation.rb +9 -9
  378. data/lib/datadog/tracing/contrib/httpclient/integration.rb +4 -4
  379. data/lib/datadog/tracing/contrib/httpclient/patcher.rb +3 -3
  380. data/lib/datadog/tracing/contrib/httprb/configuration/settings.rb +13 -3
  381. data/lib/datadog/tracing/contrib/httprb/ext.rb +2 -0
  382. data/lib/datadog/tracing/contrib/httprb/instrumentation.rb +9 -9
  383. data/lib/datadog/tracing/contrib/httprb/integration.rb +4 -4
  384. data/lib/datadog/tracing/contrib/httprb/patcher.rb +3 -3
  385. data/lib/datadog/tracing/contrib/integration.rb +3 -3
  386. data/lib/datadog/tracing/contrib/kafka/configuration/settings.rb +2 -2
  387. data/lib/datadog/tracing/contrib/kafka/consumer_event.rb +1 -0
  388. data/lib/datadog/tracing/contrib/kafka/event.rb +3 -3
  389. data/lib/datadog/tracing/contrib/kafka/events/connection/request.rb +2 -2
  390. data/lib/datadog/tracing/contrib/kafka/events/consumer/process_batch.rb +3 -3
  391. data/lib/datadog/tracing/contrib/kafka/events/consumer/process_message.rb +3 -3
  392. data/lib/datadog/tracing/contrib/kafka/events/consumer_group/heartbeat.rb +4 -4
  393. data/lib/datadog/tracing/contrib/kafka/events/consumer_group/join_group.rb +4 -4
  394. data/lib/datadog/tracing/contrib/kafka/events/consumer_group/leave_group.rb +4 -4
  395. data/lib/datadog/tracing/contrib/kafka/events/consumer_group/sync_group.rb +4 -4
  396. data/lib/datadog/tracing/contrib/kafka/events/produce_operation/send_messages.rb +3 -2
  397. data/lib/datadog/tracing/contrib/kafka/events/producer/deliver_messages.rb +3 -2
  398. data/lib/datadog/tracing/contrib/kafka/events.rb +9 -9
  399. data/lib/datadog/tracing/contrib/kafka/integration.rb +3 -3
  400. data/lib/datadog/tracing/contrib/kafka/patcher.rb +3 -3
  401. data/lib/datadog/tracing/contrib/lograge/configuration/settings.rb +2 -2
  402. data/lib/datadog/tracing/contrib/lograge/instrumentation.rb +1 -2
  403. data/lib/datadog/tracing/contrib/lograge/integration.rb +3 -3
  404. data/lib/datadog/tracing/contrib/lograge/patcher.rb +2 -2
  405. data/lib/datadog/tracing/contrib/mongodb/configuration/settings.rb +7 -3
  406. data/lib/datadog/tracing/contrib/mongodb/ext.rb +8 -0
  407. data/lib/datadog/tracing/contrib/mongodb/instrumentation.rb +3 -3
  408. data/lib/datadog/tracing/contrib/mongodb/integration.rb +4 -4
  409. data/lib/datadog/tracing/contrib/mongodb/parsers.rb +1 -1
  410. data/lib/datadog/tracing/contrib/mongodb/patcher.rb +3 -3
  411. data/lib/datadog/tracing/contrib/mongodb/subscribers.rb +10 -4
  412. data/lib/datadog/tracing/contrib/mysql2/configuration/settings.rb +18 -3
  413. data/lib/datadog/tracing/contrib/mysql2/ext.rb +2 -0
  414. data/lib/datadog/tracing/contrib/mysql2/instrumentation.rb +20 -5
  415. data/lib/datadog/tracing/contrib/mysql2/integration.rb +3 -3
  416. data/lib/datadog/tracing/contrib/mysql2/patcher.rb +2 -2
  417. data/lib/datadog/tracing/contrib/patcher.rb +16 -4
  418. data/lib/datadog/tracing/contrib/pg/configuration/settings.rb +50 -0
  419. data/lib/datadog/tracing/contrib/pg/ext.rb +33 -0
  420. data/lib/datadog/tracing/contrib/pg/instrumentation.rb +168 -0
  421. data/lib/datadog/tracing/contrib/pg/integration.rb +43 -0
  422. data/lib/datadog/tracing/contrib/pg/patcher.rb +31 -0
  423. data/lib/datadog/tracing/contrib/presto/configuration/settings.rb +6 -3
  424. data/lib/datadog/tracing/contrib/presto/ext.rb +1 -0
  425. data/lib/datadog/tracing/contrib/presto/instrumentation.rb +2 -3
  426. data/lib/datadog/tracing/contrib/presto/integration.rb +3 -3
  427. data/lib/datadog/tracing/contrib/presto/patcher.rb +4 -4
  428. data/lib/datadog/tracing/contrib/propagation/sql_comment/comment.rb +43 -0
  429. data/lib/datadog/tracing/contrib/propagation/sql_comment/ext.rb +33 -0
  430. data/lib/datadog/tracing/contrib/propagation/sql_comment/mode.rb +28 -0
  431. data/lib/datadog/tracing/contrib/propagation/sql_comment.rb +47 -0
  432. data/lib/datadog/tracing/contrib/qless/configuration/settings.rb +2 -2
  433. data/lib/datadog/tracing/contrib/qless/integration.rb +3 -3
  434. data/lib/datadog/tracing/contrib/qless/patcher.rb +1 -2
  435. data/lib/datadog/tracing/contrib/qless/qless_job.rb +2 -3
  436. data/lib/datadog/tracing/contrib/qless/tracer_cleaner.rb +0 -2
  437. data/lib/datadog/tracing/contrib/que/configuration/settings.rb +3 -3
  438. data/lib/datadog/tracing/contrib/que/integration.rb +4 -4
  439. data/lib/datadog/tracing/contrib/que/patcher.rb +1 -1
  440. data/lib/datadog/tracing/contrib/que/tracer.rb +3 -1
  441. data/lib/datadog/tracing/contrib/racecar/configuration/settings.rb +2 -2
  442. data/lib/datadog/tracing/contrib/racecar/event.rb +4 -5
  443. data/lib/datadog/tracing/contrib/racecar/events/batch.rb +6 -3
  444. data/lib/datadog/tracing/contrib/racecar/events/consume.rb +2 -2
  445. data/lib/datadog/tracing/contrib/racecar/events/message.rb +6 -3
  446. data/lib/datadog/tracing/contrib/racecar/events.rb +3 -3
  447. data/lib/datadog/tracing/contrib/racecar/integration.rb +3 -3
  448. data/lib/datadog/tracing/contrib/racecar/patcher.rb +3 -3
  449. data/lib/datadog/tracing/contrib/rack/configuration/settings.rb +2 -2
  450. data/lib/datadog/tracing/contrib/rack/header_collection.rb +35 -0
  451. data/lib/datadog/tracing/contrib/rack/integration.rb +4 -4
  452. data/lib/datadog/tracing/contrib/rack/middlewares.rb +129 -61
  453. data/lib/datadog/tracing/contrib/rack/patcher.rb +12 -2
  454. data/lib/datadog/tracing/contrib/rails/auto_instrument_railtie.rb +1 -1
  455. data/lib/datadog/tracing/contrib/rails/configuration/settings.rb +4 -1
  456. data/lib/datadog/tracing/contrib/rails/framework.rb +18 -22
  457. data/lib/datadog/tracing/contrib/rails/integration.rb +4 -4
  458. data/lib/datadog/tracing/contrib/rails/log_injection.rb +0 -2
  459. data/lib/datadog/tracing/contrib/rails/middlewares.rb +1 -2
  460. data/lib/datadog/tracing/contrib/rails/patcher.rb +7 -8
  461. data/lib/datadog/tracing/contrib/rails/railtie.rb +3 -3
  462. data/lib/datadog/tracing/contrib/rails/utils.rb +1 -1
  463. data/lib/datadog/tracing/contrib/rake/configuration/settings.rb +17 -2
  464. data/lib/datadog/tracing/contrib/rake/instrumentation.rb +12 -7
  465. data/lib/datadog/tracing/contrib/rake/integration.rb +3 -3
  466. data/lib/datadog/tracing/contrib/rake/patcher.rb +3 -4
  467. data/lib/datadog/tracing/contrib/redis/configuration/resolver.rb +1 -1
  468. data/lib/datadog/tracing/contrib/redis/configuration/settings.rb +6 -3
  469. data/lib/datadog/tracing/contrib/redis/ext.rb +3 -0
  470. data/lib/datadog/tracing/contrib/redis/instrumentation.rb +36 -26
  471. data/lib/datadog/tracing/contrib/redis/integration.rb +37 -4
  472. data/lib/datadog/tracing/contrib/redis/patcher.rb +57 -13
  473. data/lib/datadog/tracing/contrib/redis/quantize.rb +12 -9
  474. data/lib/datadog/tracing/contrib/redis/tags.rb +12 -10
  475. data/lib/datadog/tracing/contrib/redis/trace_middleware.rb +72 -0
  476. data/lib/datadog/tracing/contrib/resque/configuration/settings.rb +3 -3
  477. data/lib/datadog/tracing/contrib/resque/integration.rb +3 -3
  478. data/lib/datadog/tracing/contrib/resque/patcher.rb +2 -2
  479. data/lib/datadog/tracing/contrib/resque/resque_job.rb +5 -4
  480. data/lib/datadog/tracing/contrib/rest_client/configuration/settings.rb +9 -3
  481. data/lib/datadog/tracing/contrib/rest_client/ext.rb +1 -0
  482. data/lib/datadog/tracing/contrib/rest_client/integration.rb +3 -3
  483. data/lib/datadog/tracing/contrib/rest_client/patcher.rb +2 -2
  484. data/lib/datadog/tracing/contrib/rest_client/request_patch.rb +7 -6
  485. data/lib/datadog/tracing/contrib/semantic_logger/configuration/settings.rb +2 -2
  486. data/lib/datadog/tracing/contrib/semantic_logger/instrumentation.rb +1 -2
  487. data/lib/datadog/tracing/contrib/semantic_logger/integration.rb +3 -3
  488. data/lib/datadog/tracing/contrib/semantic_logger/patcher.rb +2 -2
  489. data/lib/datadog/tracing/contrib/sequel/configuration/settings.rb +2 -2
  490. data/lib/datadog/tracing/contrib/sequel/database.rb +4 -5
  491. data/lib/datadog/tracing/contrib/sequel/dataset.rb +4 -5
  492. data/lib/datadog/tracing/contrib/sequel/integration.rb +3 -3
  493. data/lib/datadog/tracing/contrib/sequel/patcher.rb +3 -3
  494. data/lib/datadog/tracing/contrib/sequel/utils.rb +2 -2
  495. data/lib/datadog/tracing/contrib/shoryuken/configuration/settings.rb +3 -3
  496. data/lib/datadog/tracing/contrib/shoryuken/integration.rb +4 -4
  497. data/lib/datadog/tracing/contrib/shoryuken/patcher.rb +1 -1
  498. data/lib/datadog/tracing/contrib/shoryuken/tracer.rb +3 -1
  499. data/lib/datadog/tracing/contrib/sidekiq/client_tracer.rb +9 -5
  500. data/lib/datadog/tracing/contrib/sidekiq/configuration/settings.rb +3 -3
  501. data/lib/datadog/tracing/contrib/sidekiq/ext.rb +6 -0
  502. data/lib/datadog/tracing/contrib/sidekiq/integration.rb +3 -3
  503. data/lib/datadog/tracing/contrib/sidekiq/patcher.rb +14 -7
  504. data/lib/datadog/tracing/contrib/sidekiq/server_internal_tracer/heartbeat.rb +19 -1
  505. data/lib/datadog/tracing/contrib/sidekiq/server_internal_tracer/{scheduled_push.rb → redis_info.rb} +5 -6
  506. data/lib/datadog/tracing/contrib/sidekiq/server_internal_tracer/scheduled_poller.rb +53 -0
  507. data/lib/datadog/tracing/contrib/sidekiq/server_tracer.rb +10 -6
  508. data/lib/datadog/tracing/contrib/sidekiq/tracing.rb +2 -2
  509. data/lib/datadog/tracing/contrib/sinatra/configuration/settings.rb +2 -2
  510. data/lib/datadog/tracing/contrib/sinatra/env.rb +14 -25
  511. data/lib/datadog/tracing/contrib/sinatra/ext.rb +7 -3
  512. data/lib/datadog/tracing/contrib/sinatra/framework.rb +0 -2
  513. data/lib/datadog/tracing/contrib/sinatra/headers.rb +1 -1
  514. data/lib/datadog/tracing/contrib/sinatra/integration.rb +3 -3
  515. data/lib/datadog/tracing/contrib/sinatra/patcher.rb +7 -7
  516. data/lib/datadog/tracing/contrib/sinatra/tracer.rb +15 -88
  517. data/lib/datadog/tracing/contrib/sinatra/tracer_middleware.rb +20 -16
  518. data/lib/datadog/tracing/contrib/sneakers/configuration/settings.rb +2 -2
  519. data/lib/datadog/tracing/contrib/sneakers/integration.rb +4 -4
  520. data/lib/datadog/tracing/contrib/sneakers/patcher.rb +2 -2
  521. data/lib/datadog/tracing/contrib/sneakers/tracer.rb +4 -3
  522. data/lib/datadog/tracing/contrib/status_code_matcher.rb +2 -2
  523. data/lib/datadog/tracing/contrib/stripe/configuration/settings.rb +33 -0
  524. data/lib/datadog/tracing/contrib/stripe/ext.rb +26 -0
  525. data/lib/datadog/tracing/contrib/stripe/integration.rb +43 -0
  526. data/lib/datadog/tracing/contrib/stripe/patcher.rb +29 -0
  527. data/lib/datadog/tracing/contrib/stripe/request.rb +67 -0
  528. data/lib/datadog/tracing/contrib/sucker_punch/configuration/settings.rb +2 -2
  529. data/lib/datadog/tracing/contrib/sucker_punch/instrumentation.rb +3 -4
  530. data/lib/datadog/tracing/contrib/sucker_punch/integration.rb +3 -3
  531. data/lib/datadog/tracing/contrib/sucker_punch/patcher.rb +4 -5
  532. data/lib/datadog/tracing/contrib/utils/quantization/http.rb +92 -10
  533. data/lib/datadog/tracing/contrib.rb +50 -47
  534. data/lib/datadog/tracing/correlation.rb +1 -1
  535. data/lib/datadog/{core → tracing}/diagnostics/ext.rb +1 -6
  536. data/lib/datadog/tracing/diagnostics/health.rb +40 -0
  537. data/lib/datadog/tracing/distributed/b3_multi.rb +66 -0
  538. data/lib/datadog/tracing/distributed/b3_single.rb +66 -0
  539. data/lib/datadog/tracing/distributed/datadog.rb +153 -0
  540. data/lib/datadog/tracing/distributed/datadog_tags_codec.rb +85 -0
  541. data/lib/datadog/tracing/distributed/fetcher.rb +30 -0
  542. data/lib/datadog/tracing/distributed/headers/ext.rb +19 -15
  543. data/lib/datadog/tracing/distributed/helpers.rb +40 -4
  544. data/lib/datadog/tracing/distributed/none.rb +19 -0
  545. data/lib/datadog/tracing/distributed/propagation.rb +127 -0
  546. data/lib/datadog/tracing/distributed/trace_context.rb +378 -0
  547. data/lib/datadog/tracing/event.rb +1 -1
  548. data/lib/datadog/tracing/flush.rb +57 -35
  549. data/lib/datadog/tracing/metadata/analytics.rb +2 -2
  550. data/lib/datadog/tracing/metadata/errors.rb +2 -2
  551. data/lib/datadog/tracing/metadata/ext.rb +28 -1
  552. data/lib/datadog/tracing/metadata/tagging.rb +23 -2
  553. data/lib/datadog/tracing/metadata.rb +3 -3
  554. data/lib/datadog/tracing/pipeline/span_filter.rb +10 -6
  555. data/lib/datadog/tracing/pipeline.rb +3 -3
  556. data/lib/datadog/tracing/propagation/http.rb +3 -98
  557. data/lib/datadog/tracing/runtime/metrics.rb +1 -1
  558. data/lib/datadog/tracing/sampling/all_sampler.rb +1 -1
  559. data/lib/datadog/tracing/sampling/ext.rb +31 -0
  560. data/lib/datadog/tracing/sampling/priority_sampler.rb +62 -9
  561. data/lib/datadog/tracing/sampling/rate_by_key_sampler.rb +10 -11
  562. data/lib/datadog/tracing/sampling/rate_by_service_sampler.rb +32 -8
  563. data/lib/datadog/tracing/sampling/rate_limiter.rb +4 -1
  564. data/lib/datadog/tracing/sampling/rate_sampler.rb +27 -10
  565. data/lib/datadog/tracing/sampling/rule.rb +3 -3
  566. data/lib/datadog/tracing/sampling/rule_sampler.rb +8 -7
  567. data/lib/datadog/tracing/sampling/span/ext.rb +25 -0
  568. data/lib/datadog/tracing/sampling/span/matcher.rb +89 -0
  569. data/lib/datadog/tracing/sampling/span/rule.rb +82 -0
  570. data/lib/datadog/tracing/sampling/span/rule_parser.rb +104 -0
  571. data/lib/datadog/tracing/sampling/span/sampler.rb +75 -0
  572. data/lib/datadog/tracing/span.rb +24 -20
  573. data/lib/datadog/tracing/span_operation.rb +13 -13
  574. data/lib/datadog/tracing/sync_writer.rb +5 -5
  575. data/lib/datadog/tracing/trace_digest.rb +88 -2
  576. data/lib/datadog/tracing/trace_operation.rb +60 -15
  577. data/lib/datadog/tracing/trace_segment.rb +13 -8
  578. data/lib/datadog/tracing/tracer.rb +49 -21
  579. data/lib/datadog/tracing/utils.rb +50 -0
  580. data/lib/datadog/tracing/workers/trace_writer.rb +9 -9
  581. data/lib/datadog/tracing/workers.rb +3 -3
  582. data/lib/datadog/tracing/writer.rb +12 -5
  583. data/lib/datadog/tracing.rb +8 -8
  584. data/lib/ddtrace/auto_instrument.rb +9 -2
  585. data/lib/ddtrace/transport/ext.rb +7 -1
  586. data/lib/ddtrace/transport/http/adapters/net.rb +3 -2
  587. data/lib/ddtrace/transport/http/adapters/test.rb +1 -1
  588. data/lib/ddtrace/transport/http/adapters/unix_socket.rb +2 -2
  589. data/lib/ddtrace/transport/http/api/map.rb +1 -1
  590. data/lib/ddtrace/transport/http/api.rb +4 -4
  591. data/lib/ddtrace/transport/http/builder.rb +5 -5
  592. data/lib/ddtrace/transport/http/client.rb +2 -2
  593. data/lib/ddtrace/transport/http/response.rb +1 -1
  594. data/lib/ddtrace/transport/http/statistics.rb +1 -1
  595. data/lib/ddtrace/transport/http/traces.rb +5 -5
  596. data/lib/ddtrace/transport/http.rb +12 -9
  597. data/lib/ddtrace/transport/io/client.rb +2 -2
  598. data/lib/ddtrace/transport/io/response.rb +1 -1
  599. data/lib/ddtrace/transport/io/traces.rb +3 -3
  600. data/lib/ddtrace/transport/io.rb +3 -3
  601. data/lib/ddtrace/transport/statistics.rb +2 -2
  602. data/lib/ddtrace/transport/trace_formatter.rb +14 -10
  603. data/lib/ddtrace/transport/traces.rb +8 -6
  604. data/lib/ddtrace/version.rb +1 -1
  605. data/lib/ddtrace.rb +6 -6
  606. metadata +127 -48
  607. data/.editorconfig +0 -22
  608. data/.gitignore +0 -58
  609. data/CONTRIBUTING.md +0 -81
  610. data/ddtrace.gemspec +0 -68
  611. data/docs/0.x-trace.png +0 -0
  612. data/docs/1.0-trace.png +0 -0
  613. data/docs/AutoInstrumentation.md +0 -36
  614. data/docs/Deprecation.md +0 -8
  615. data/docs/DevelopmentGuide.md +0 -259
  616. data/docs/GettingStarted.md +0 -2688
  617. data/docs/ProfilingDevelopment.md +0 -110
  618. data/docs/PublicApi.md +0 -14
  619. data/docs/UpgradeGuide.md +0 -736
  620. data/ext/ddtrace_profiling_native_extension/libddprof_helpers.h +0 -13
  621. data/lib/datadog/profiling/recorder.rb +0 -117
  622. data/lib/datadog/profiling/transport/client.rb +0 -16
  623. data/lib/datadog/profiling/transport/http/api/endpoint.rb +0 -107
  624. data/lib/datadog/profiling/transport/http/api/instance.rb +0 -38
  625. data/lib/datadog/profiling/transport/http/api/spec.rb +0 -42
  626. data/lib/datadog/profiling/transport/http/api.rb +0 -45
  627. data/lib/datadog/profiling/transport/http/builder.rb +0 -30
  628. data/lib/datadog/profiling/transport/http/client.rb +0 -35
  629. data/lib/datadog/profiling/transport/http/response.rb +0 -23
  630. data/lib/datadog/profiling/transport/http.rb +0 -112
  631. data/lib/datadog/profiling/transport/io/client.rb +0 -29
  632. data/lib/datadog/profiling/transport/io/response.rb +0 -18
  633. data/lib/datadog/profiling/transport/io.rb +0 -32
  634. data/lib/datadog/profiling/transport/parcel.rb +0 -19
  635. data/lib/datadog/profiling/transport/request.rb +0 -17
  636. data/lib/datadog/profiling/transport/response.rb +0 -10
  637. data/lib/datadog/tracing/distributed/headers/b3.rb +0 -55
  638. data/lib/datadog/tracing/distributed/headers/b3_single.rb +0 -67
  639. data/lib/datadog/tracing/distributed/headers/datadog.rb +0 -52
  640. data/lib/datadog/tracing/distributed/parser.rb +0 -70
  641. data/lib/datadog/tracing/propagation/grpc.rb +0 -88
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ddtrace
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.1.0
4
+ version: 1.9.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Datadog, Inc.
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2022-05-25 00:00:00.000000000 Z
11
+ date: 2023-01-30 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: msgpack
@@ -28,46 +28,52 @@ dependencies:
28
28
  name: debase-ruby_core_source
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
- - - "<="
31
+ - - ">="
32
32
  - !ruby/object:Gem::Version
33
33
  version: 0.10.16
34
+ - - "<="
35
+ - !ruby/object:Gem::Version
36
+ version: 3.2.0
34
37
  type: :runtime
35
38
  prerelease: false
36
39
  version_requirements: !ruby/object:Gem::Requirement
37
40
  requirements:
38
- - - "<="
41
+ - - ">="
39
42
  - !ruby/object:Gem::Version
40
43
  version: 0.10.16
44
+ - - "<="
45
+ - !ruby/object:Gem::Version
46
+ version: 3.2.0
41
47
  - !ruby/object:Gem::Dependency
42
48
  name: libddwaf
43
49
  requirement: !ruby/object:Gem::Requirement
44
50
  requirements:
45
51
  - - "~>"
46
52
  - !ruby/object:Gem::Version
47
- version: 1.3.0.2.0
53
+ version: 1.5.1.0.0
48
54
  type: :runtime
49
55
  prerelease: false
50
56
  version_requirements: !ruby/object:Gem::Requirement
51
57
  requirements:
52
58
  - - "~>"
53
59
  - !ruby/object:Gem::Version
54
- version: 1.3.0.2.0
60
+ version: 1.5.1.0.0
55
61
  - !ruby/object:Gem::Dependency
56
- name: libddprof
62
+ name: libdatadog
57
63
  requirement: !ruby/object:Gem::Requirement
58
64
  requirements:
59
65
  - - "~>"
60
66
  - !ruby/object:Gem::Version
61
- version: 0.6.0.1.0
67
+ version: 1.0.1.1.0
62
68
  type: :runtime
63
69
  prerelease: false
64
70
  version_requirements: !ruby/object:Gem::Requirement
65
71
  requirements:
66
72
  - - "~>"
67
73
  - !ruby/object:Gem::Version
68
- version: 0.6.0.1.0
74
+ version: 1.0.1.1.0
69
75
  description: |
70
- ddtrace is Datadogs tracing client for Ruby. It is used to trace requests
76
+ ddtrace is Datadog's tracing client for Ruby. It is used to trace requests
71
77
  as they flow across web servers, databases and microservices so that developers
72
78
  have great visiblity into bottlenecks and troublesome requests.
73
79
  email:
@@ -79,10 +85,7 @@ extensions:
79
85
  - ext/ddtrace_profiling_loader/extconf.rb
80
86
  extra_rdoc_files: []
81
87
  files:
82
- - ".editorconfig"
83
- - ".gitignore"
84
88
  - CHANGELOG.md
85
- - CONTRIBUTING.md
86
89
  - LICENSE
87
90
  - LICENSE-3rdparty.csv
88
91
  - LICENSE.Apache
@@ -90,34 +93,42 @@ files:
90
93
  - NOTICE
91
94
  - README.md
92
95
  - bin/ddtracerb
93
- - ddtrace.gemspec
94
- - docs/0.x-trace.png
95
- - docs/1.0-trace.png
96
- - docs/AutoInstrumentation.md
97
- - docs/Deprecation.md
98
- - docs/DevelopmentGuide.md
99
- - docs/GettingStarted.md
100
- - docs/ProfilingDevelopment.md
101
- - docs/PublicApi.md
102
- - docs/UpgradeGuide.md
103
96
  - ext/ddtrace_profiling_loader/ddtrace_profiling_loader.c
104
97
  - ext/ddtrace_profiling_loader/extconf.rb
105
98
  - ext/ddtrace_profiling_native_extension/NativeExtensionDesign.md
106
99
  - ext/ddtrace_profiling_native_extension/clock_id.h
107
100
  - ext/ddtrace_profiling_native_extension/clock_id_from_pthread.c
108
101
  - ext/ddtrace_profiling_native_extension/clock_id_noop.c
102
+ - ext/ddtrace_profiling_native_extension/collectors_cpu_and_wall_time.c
103
+ - ext/ddtrace_profiling_native_extension/collectors_cpu_and_wall_time.h
104
+ - ext/ddtrace_profiling_native_extension/collectors_cpu_and_wall_time_worker.c
105
+ - ext/ddtrace_profiling_native_extension/collectors_dynamic_sampling_rate.c
106
+ - ext/ddtrace_profiling_native_extension/collectors_dynamic_sampling_rate.h
107
+ - ext/ddtrace_profiling_native_extension/collectors_idle_sampling_helper.c
108
+ - ext/ddtrace_profiling_native_extension/collectors_idle_sampling_helper.h
109
109
  - ext/ddtrace_profiling_native_extension/collectors_stack.c
110
+ - ext/ddtrace_profiling_native_extension/collectors_stack.h
110
111
  - ext/ddtrace_profiling_native_extension/extconf.rb
111
- - ext/ddtrace_profiling_native_extension/libddprof_helpers.h
112
+ - ext/ddtrace_profiling_native_extension/helpers.h
113
+ - ext/ddtrace_profiling_native_extension/http_transport.c
114
+ - ext/ddtrace_profiling_native_extension/libdatadog_helpers.h
112
115
  - ext/ddtrace_profiling_native_extension/native_extension_helpers.rb
113
116
  - ext/ddtrace_profiling_native_extension/private_vm_api_access.c
114
117
  - ext/ddtrace_profiling_native_extension/private_vm_api_access.h
115
118
  - ext/ddtrace_profiling_native_extension/profiling.c
119
+ - ext/ddtrace_profiling_native_extension/ruby_helpers.c
120
+ - ext/ddtrace_profiling_native_extension/ruby_helpers.h
121
+ - ext/ddtrace_profiling_native_extension/setup_signal_handler.c
122
+ - ext/ddtrace_profiling_native_extension/setup_signal_handler.h
116
123
  - ext/ddtrace_profiling_native_extension/stack_recorder.c
117
124
  - ext/ddtrace_profiling_native_extension/stack_recorder.h
125
+ - ext/ddtrace_profiling_native_extension/time_helpers.c
126
+ - ext/ddtrace_profiling_native_extension/time_helpers.h
118
127
  - lib/datadog/appsec.rb
119
128
  - lib/datadog/appsec/assets.rb
120
129
  - lib/datadog/appsec/assets/blocked.html
130
+ - lib/datadog/appsec/assets/blocked.json
131
+ - lib/datadog/appsec/assets/blocked.text
121
132
  - lib/datadog/appsec/assets/waf_rules/README.md
122
133
  - lib/datadog/appsec/assets/waf_rules/recommended.json
123
134
  - lib/datadog/appsec/assets/waf_rules/risky.json
@@ -167,6 +178,11 @@ files:
167
178
  - lib/datadog/appsec/reactive/engine.rb
168
179
  - lib/datadog/appsec/reactive/operation.rb
169
180
  - lib/datadog/appsec/reactive/subscriber.rb
181
+ - lib/datadog/appsec/response.rb
182
+ - lib/datadog/appsec/utils.rb
183
+ - lib/datadog/appsec/utils/http.rb
184
+ - lib/datadog/appsec/utils/http/media_range.rb
185
+ - lib/datadog/appsec/utils/http/media_type.rb
170
186
  - lib/datadog/ci.rb
171
187
  - lib/datadog/ci/configuration/components.rb
172
188
  - lib/datadog/ci/configuration/settings.rb
@@ -198,6 +214,7 @@ files:
198
214
  - lib/datadog/core/configuration/base.rb
199
215
  - lib/datadog/core/configuration/components.rb
200
216
  - lib/datadog/core/configuration/dependency_resolver.rb
217
+ - lib/datadog/core/configuration/ext.rb
201
218
  - lib/datadog/core/configuration/option.rb
202
219
  - lib/datadog/core/configuration/option_definition.rb
203
220
  - lib/datadog/core/configuration/option_definition_set.rb
@@ -205,7 +222,6 @@ files:
205
222
  - lib/datadog/core/configuration/options.rb
206
223
  - lib/datadog/core/configuration/settings.rb
207
224
  - lib/datadog/core/diagnostics/environment_logger.rb
208
- - lib/datadog/core/diagnostics/ext.rb
209
225
  - lib/datadog/core/diagnostics/health.rb
210
226
  - lib/datadog/core/encoding.rb
211
227
  - lib/datadog/core/environment/cgroup.rb
@@ -214,6 +230,7 @@ files:
214
230
  - lib/datadog/core/environment/ext.rb
215
231
  - lib/datadog/core/environment/gc.rb
216
232
  - lib/datadog/core/environment/identity.rb
233
+ - lib/datadog/core/environment/platform.rb
217
234
  - lib/datadog/core/environment/socket.rb
218
235
  - lib/datadog/core/environment/thread_count.rb
219
236
  - lib/datadog/core/environment/variable_helpers.rb
@@ -221,6 +238,7 @@ files:
221
238
  - lib/datadog/core/error.rb
222
239
  - lib/datadog/core/extensions.rb
223
240
  - lib/datadog/core/git/ext.rb
241
+ - lib/datadog/core/header_collection.rb
224
242
  - lib/datadog/core/logger.rb
225
243
  - lib/datadog/core/logging/ext.rb
226
244
  - lib/datadog/core/metrics/client.rb
@@ -232,6 +250,25 @@ files:
232
250
  - lib/datadog/core/pin.rb
233
251
  - lib/datadog/core/runtime/ext.rb
234
252
  - lib/datadog/core/runtime/metrics.rb
253
+ - lib/datadog/core/telemetry/client.rb
254
+ - lib/datadog/core/telemetry/collector.rb
255
+ - lib/datadog/core/telemetry/emitter.rb
256
+ - lib/datadog/core/telemetry/event.rb
257
+ - lib/datadog/core/telemetry/ext.rb
258
+ - lib/datadog/core/telemetry/heartbeat.rb
259
+ - lib/datadog/core/telemetry/http/adapters/net.rb
260
+ - lib/datadog/core/telemetry/http/env.rb
261
+ - lib/datadog/core/telemetry/http/ext.rb
262
+ - lib/datadog/core/telemetry/http/response.rb
263
+ - lib/datadog/core/telemetry/http/transport.rb
264
+ - lib/datadog/core/telemetry/v1/app_event.rb
265
+ - lib/datadog/core/telemetry/v1/application.rb
266
+ - lib/datadog/core/telemetry/v1/configuration.rb
267
+ - lib/datadog/core/telemetry/v1/dependency.rb
268
+ - lib/datadog/core/telemetry/v1/host.rb
269
+ - lib/datadog/core/telemetry/v1/integration.rb
270
+ - lib/datadog/core/telemetry/v1/product.rb
271
+ - lib/datadog/core/telemetry/v1/telemetry_request.rb
235
272
  - lib/datadog/core/utils.rb
236
273
  - lib/datadog/core/utils/compression.rb
237
274
  - lib/datadog/core/utils/forking.rb
@@ -256,8 +293,16 @@ files:
256
293
  - lib/datadog/core/workers/queue.rb
257
294
  - lib/datadog/core/workers/runtime_metrics.rb
258
295
  - lib/datadog/kit.rb
296
+ - lib/datadog/kit/appsec/events.rb
259
297
  - lib/datadog/kit/enable_core_dumps.rb
260
298
  - lib/datadog/kit/identity.rb
299
+ - lib/datadog/opentelemetry.rb
300
+ - lib/datadog/opentelemetry/api/context.rb
301
+ - lib/datadog/opentelemetry/api/trace/span.rb
302
+ - lib/datadog/opentelemetry/sdk/configurator.rb
303
+ - lib/datadog/opentelemetry/sdk/id_generator.rb
304
+ - lib/datadog/opentelemetry/sdk/propagator.rb
305
+ - lib/datadog/opentelemetry/sdk/span_processor.rb
261
306
  - lib/datadog/opentracer.rb
262
307
  - lib/datadog/opentracer/binary_propagator.rb
263
308
  - lib/datadog/opentracer/carrier.rb
@@ -278,6 +323,10 @@ files:
278
323
  - lib/datadog/profiling/backtrace_location.rb
279
324
  - lib/datadog/profiling/buffer.rb
280
325
  - lib/datadog/profiling/collectors/code_provenance.rb
326
+ - lib/datadog/profiling/collectors/cpu_and_wall_time.rb
327
+ - lib/datadog/profiling/collectors/cpu_and_wall_time_worker.rb
328
+ - lib/datadog/profiling/collectors/dynamic_sampling_rate.rb
329
+ - lib/datadog/profiling/collectors/idle_sampling_helper.rb
281
330
  - lib/datadog/profiling/collectors/old_stack.rb
282
331
  - lib/datadog/profiling/collectors/stack.rb
283
332
  - lib/datadog/profiling/encoding/profile.rb
@@ -287,8 +336,10 @@ files:
287
336
  - lib/datadog/profiling/ext.rb
288
337
  - lib/datadog/profiling/ext/forking.rb
289
338
  - lib/datadog/profiling/flush.rb
339
+ - lib/datadog/profiling/http_transport.rb
290
340
  - lib/datadog/profiling/load_native_extension.rb
291
341
  - lib/datadog/profiling/native_extension.rb
342
+ - lib/datadog/profiling/old_recorder.rb
292
343
  - lib/datadog/profiling/pprof/builder.rb
293
344
  - lib/datadog/profiling/pprof/converter.rb
294
345
  - lib/datadog/profiling/pprof/message_set.rb
@@ -300,7 +351,6 @@ files:
300
351
  - lib/datadog/profiling/pprof/template.rb
301
352
  - lib/datadog/profiling/preload.rb
302
353
  - lib/datadog/profiling/profiler.rb
303
- - lib/datadog/profiling/recorder.rb
304
354
  - lib/datadog/profiling/scheduler.rb
305
355
  - lib/datadog/profiling/stack_recorder.rb
306
356
  - lib/datadog/profiling/tag_builder.rb
@@ -309,25 +359,12 @@ files:
309
359
  - lib/datadog/profiling/tasks/setup.rb
310
360
  - lib/datadog/profiling/trace_identifiers/ddtrace.rb
311
361
  - lib/datadog/profiling/trace_identifiers/helper.rb
312
- - lib/datadog/profiling/transport/client.rb
313
- - lib/datadog/profiling/transport/http.rb
314
- - lib/datadog/profiling/transport/http/api.rb
315
- - lib/datadog/profiling/transport/http/api/endpoint.rb
316
- - lib/datadog/profiling/transport/http/api/instance.rb
317
- - lib/datadog/profiling/transport/http/api/spec.rb
318
- - lib/datadog/profiling/transport/http/builder.rb
319
- - lib/datadog/profiling/transport/http/client.rb
320
- - lib/datadog/profiling/transport/http/response.rb
321
- - lib/datadog/profiling/transport/io.rb
322
- - lib/datadog/profiling/transport/io/client.rb
323
- - lib/datadog/profiling/transport/io/response.rb
324
- - lib/datadog/profiling/transport/parcel.rb
325
- - lib/datadog/profiling/transport/request.rb
326
- - lib/datadog/profiling/transport/response.rb
327
362
  - lib/datadog/tracing.rb
328
363
  - lib/datadog/tracing/analytics.rb
329
364
  - lib/datadog/tracing/buffer.rb
365
+ - lib/datadog/tracing/client_ip.rb
330
366
  - lib/datadog/tracing/configuration/ext.rb
367
+ - lib/datadog/tracing/configuration/settings.rb
331
368
  - lib/datadog/tracing/context.rb
332
369
  - lib/datadog/tracing/context_provider.rb
333
370
  - lib/datadog/tracing/contrib.rb
@@ -441,6 +478,7 @@ files:
441
478
  - lib/datadog/tracing/contrib/delayed_job/integration.rb
442
479
  - lib/datadog/tracing/contrib/delayed_job/patcher.rb
443
480
  - lib/datadog/tracing/contrib/delayed_job/plugin.rb
481
+ - lib/datadog/tracing/contrib/delayed_job/server_internal_tracer/worker.rb
444
482
  - lib/datadog/tracing/contrib/elasticsearch/configuration/settings.rb
445
483
  - lib/datadog/tracing/contrib/elasticsearch/ext.rb
446
484
  - lib/datadog/tracing/contrib/elasticsearch/integration.rb
@@ -457,6 +495,7 @@ files:
457
495
  - lib/datadog/tracing/contrib/excon/integration.rb
458
496
  - lib/datadog/tracing/contrib/excon/middleware.rb
459
497
  - lib/datadog/tracing/contrib/excon/patcher.rb
498
+ - lib/datadog/tracing/contrib/ext.rb
460
499
  - lib/datadog/tracing/contrib/extensions.rb
461
500
  - lib/datadog/tracing/contrib/faraday/configuration/settings.rb
462
501
  - lib/datadog/tracing/contrib/faraday/connection.rb
@@ -479,12 +518,24 @@ files:
479
518
  - lib/datadog/tracing/contrib/grpc/datadog_interceptor.rb
480
519
  - lib/datadog/tracing/contrib/grpc/datadog_interceptor/client.rb
481
520
  - lib/datadog/tracing/contrib/grpc/datadog_interceptor/server.rb
521
+ - lib/datadog/tracing/contrib/grpc/distributed/fetcher.rb
522
+ - lib/datadog/tracing/contrib/grpc/distributed/propagation.rb
482
523
  - lib/datadog/tracing/contrib/grpc/ext.rb
483
524
  - lib/datadog/tracing/contrib/grpc/integration.rb
484
525
  - lib/datadog/tracing/contrib/grpc/intercept_with_datadog.rb
485
526
  - lib/datadog/tracing/contrib/grpc/patcher.rb
527
+ - lib/datadog/tracing/contrib/hanami/action_tracer.rb
528
+ - lib/datadog/tracing/contrib/hanami/configuration/settings.rb
529
+ - lib/datadog/tracing/contrib/hanami/ext.rb
530
+ - lib/datadog/tracing/contrib/hanami/integration.rb
531
+ - lib/datadog/tracing/contrib/hanami/patcher.rb
532
+ - lib/datadog/tracing/contrib/hanami/plugin.rb
533
+ - lib/datadog/tracing/contrib/hanami/renderer_policy_tracing.rb
534
+ - lib/datadog/tracing/contrib/hanami/router_tracing.rb
486
535
  - lib/datadog/tracing/contrib/http/circuit_breaker.rb
487
536
  - lib/datadog/tracing/contrib/http/configuration/settings.rb
537
+ - lib/datadog/tracing/contrib/http/distributed/fetcher.rb
538
+ - lib/datadog/tracing/contrib/http/distributed/propagation.rb
488
539
  - lib/datadog/tracing/contrib/http/ext.rb
489
540
  - lib/datadog/tracing/contrib/http/instrumentation.rb
490
541
  - lib/datadog/tracing/contrib/http/integration.rb
@@ -537,11 +588,20 @@ files:
537
588
  - lib/datadog/tracing/contrib/mysql2/patcher.rb
538
589
  - lib/datadog/tracing/contrib/patchable.rb
539
590
  - lib/datadog/tracing/contrib/patcher.rb
591
+ - lib/datadog/tracing/contrib/pg/configuration/settings.rb
592
+ - lib/datadog/tracing/contrib/pg/ext.rb
593
+ - lib/datadog/tracing/contrib/pg/instrumentation.rb
594
+ - lib/datadog/tracing/contrib/pg/integration.rb
595
+ - lib/datadog/tracing/contrib/pg/patcher.rb
540
596
  - lib/datadog/tracing/contrib/presto/configuration/settings.rb
541
597
  - lib/datadog/tracing/contrib/presto/ext.rb
542
598
  - lib/datadog/tracing/contrib/presto/instrumentation.rb
543
599
  - lib/datadog/tracing/contrib/presto/integration.rb
544
600
  - lib/datadog/tracing/contrib/presto/patcher.rb
601
+ - lib/datadog/tracing/contrib/propagation/sql_comment.rb
602
+ - lib/datadog/tracing/contrib/propagation/sql_comment/comment.rb
603
+ - lib/datadog/tracing/contrib/propagation/sql_comment/ext.rb
604
+ - lib/datadog/tracing/contrib/propagation/sql_comment/mode.rb
545
605
  - lib/datadog/tracing/contrib/qless/configuration/settings.rb
546
606
  - lib/datadog/tracing/contrib/qless/ext.rb
547
607
  - lib/datadog/tracing/contrib/qless/integration.rb
@@ -564,6 +624,7 @@ files:
564
624
  - lib/datadog/tracing/contrib/racecar/patcher.rb
565
625
  - lib/datadog/tracing/contrib/rack/configuration/settings.rb
566
626
  - lib/datadog/tracing/contrib/rack/ext.rb
627
+ - lib/datadog/tracing/contrib/rack/header_collection.rb
567
628
  - lib/datadog/tracing/contrib/rack/integration.rb
568
629
  - lib/datadog/tracing/contrib/rack/middlewares.rb
569
630
  - lib/datadog/tracing/contrib/rack/patcher.rb
@@ -591,6 +652,7 @@ files:
591
652
  - lib/datadog/tracing/contrib/redis/patcher.rb
592
653
  - lib/datadog/tracing/contrib/redis/quantize.rb
593
654
  - lib/datadog/tracing/contrib/redis/tags.rb
655
+ - lib/datadog/tracing/contrib/redis/trace_middleware.rb
594
656
  - lib/datadog/tracing/contrib/redis/vendor/LICENSE
595
657
  - lib/datadog/tracing/contrib/redis/vendor/resolver.rb
596
658
  - lib/datadog/tracing/contrib/registerable.rb
@@ -629,7 +691,8 @@ files:
629
691
  - lib/datadog/tracing/contrib/sidekiq/patcher.rb
630
692
  - lib/datadog/tracing/contrib/sidekiq/server_internal_tracer/heartbeat.rb
631
693
  - lib/datadog/tracing/contrib/sidekiq/server_internal_tracer/job_fetch.rb
632
- - lib/datadog/tracing/contrib/sidekiq/server_internal_tracer/scheduled_push.rb
694
+ - lib/datadog/tracing/contrib/sidekiq/server_internal_tracer/redis_info.rb
695
+ - lib/datadog/tracing/contrib/sidekiq/server_internal_tracer/scheduled_poller.rb
633
696
  - lib/datadog/tracing/contrib/sidekiq/server_tracer.rb
634
697
  - lib/datadog/tracing/contrib/sidekiq/tracing.rb
635
698
  - lib/datadog/tracing/contrib/sinatra/configuration/settings.rb
@@ -647,6 +710,11 @@ files:
647
710
  - lib/datadog/tracing/contrib/sneakers/patcher.rb
648
711
  - lib/datadog/tracing/contrib/sneakers/tracer.rb
649
712
  - lib/datadog/tracing/contrib/status_code_matcher.rb
713
+ - lib/datadog/tracing/contrib/stripe/configuration/settings.rb
714
+ - lib/datadog/tracing/contrib/stripe/ext.rb
715
+ - lib/datadog/tracing/contrib/stripe/integration.rb
716
+ - lib/datadog/tracing/contrib/stripe/patcher.rb
717
+ - lib/datadog/tracing/contrib/stripe/request.rb
650
718
  - lib/datadog/tracing/contrib/sucker_punch/configuration/settings.rb
651
719
  - lib/datadog/tracing/contrib/sucker_punch/exception_handler.rb
652
720
  - lib/datadog/tracing/contrib/sucker_punch/ext.rb
@@ -657,12 +725,18 @@ files:
657
725
  - lib/datadog/tracing/contrib/utils/quantization/hash.rb
658
726
  - lib/datadog/tracing/contrib/utils/quantization/http.rb
659
727
  - lib/datadog/tracing/correlation.rb
660
- - lib/datadog/tracing/distributed/headers/b3.rb
661
- - lib/datadog/tracing/distributed/headers/b3_single.rb
662
- - lib/datadog/tracing/distributed/headers/datadog.rb
728
+ - lib/datadog/tracing/diagnostics/ext.rb
729
+ - lib/datadog/tracing/diagnostics/health.rb
730
+ - lib/datadog/tracing/distributed/b3_multi.rb
731
+ - lib/datadog/tracing/distributed/b3_single.rb
732
+ - lib/datadog/tracing/distributed/datadog.rb
733
+ - lib/datadog/tracing/distributed/datadog_tags_codec.rb
734
+ - lib/datadog/tracing/distributed/fetcher.rb
663
735
  - lib/datadog/tracing/distributed/headers/ext.rb
664
736
  - lib/datadog/tracing/distributed/helpers.rb
665
- - lib/datadog/tracing/distributed/parser.rb
737
+ - lib/datadog/tracing/distributed/none.rb
738
+ - lib/datadog/tracing/distributed/propagation.rb
739
+ - lib/datadog/tracing/distributed/trace_context.rb
666
740
  - lib/datadog/tracing/event.rb
667
741
  - lib/datadog/tracing/flush.rb
668
742
  - lib/datadog/tracing/metadata.rb
@@ -673,7 +747,6 @@ files:
673
747
  - lib/datadog/tracing/pipeline.rb
674
748
  - lib/datadog/tracing/pipeline/span_filter.rb
675
749
  - lib/datadog/tracing/pipeline/span_processor.rb
676
- - lib/datadog/tracing/propagation/grpc.rb
677
750
  - lib/datadog/tracing/propagation/http.rb
678
751
  - lib/datadog/tracing/runtime/metrics.rb
679
752
  - lib/datadog/tracing/sampling/all_sampler.rb
@@ -687,6 +760,11 @@ files:
687
760
  - lib/datadog/tracing/sampling/rule.rb
688
761
  - lib/datadog/tracing/sampling/rule_sampler.rb
689
762
  - lib/datadog/tracing/sampling/sampler.rb
763
+ - lib/datadog/tracing/sampling/span/ext.rb
764
+ - lib/datadog/tracing/sampling/span/matcher.rb
765
+ - lib/datadog/tracing/sampling/span/rule.rb
766
+ - lib/datadog/tracing/sampling/span/rule_parser.rb
767
+ - lib/datadog/tracing/sampling/span/sampler.rb
690
768
  - lib/datadog/tracing/span.rb
691
769
  - lib/datadog/tracing/span_operation.rb
692
770
  - lib/datadog/tracing/sync_writer.rb
@@ -694,6 +772,7 @@ files:
694
772
  - lib/datadog/tracing/trace_operation.rb
695
773
  - lib/datadog/tracing/trace_segment.rb
696
774
  - lib/datadog/tracing/tracer.rb
775
+ - lib/datadog/tracing/utils.rb
697
776
  - lib/datadog/tracing/workers.rb
698
777
  - lib/datadog/tracing/workers/trace_writer.rb
699
778
  - lib/datadog/tracing/writer.rb
@@ -754,7 +833,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
754
833
  - !ruby/object:Gem::Version
755
834
  version: 2.0.0
756
835
  requirements: []
757
- rubygems_version: 3.1.6
836
+ rubygems_version: 3.3.26
758
837
  signing_key:
759
838
  specification_version: 4
760
839
  summary: Datadog tracing code for your Ruby applications
data/.editorconfig DELETED
@@ -1,22 +0,0 @@
1
- # EditorConfig is awesome: https://EditorConfig.org
2
-
3
- # top-most EditorConfig file
4
- root = true
5
-
6
- # Unix-style newlines with a newline ending every file
7
- [*]
8
- end_of_line = lf
9
- insert_final_newline = true
10
- trim_trailing_whitespace = true
11
-
12
- [*.h]
13
- indent_style = space
14
- indent_size = 2
15
-
16
- [*.c]
17
- indent_style = space
18
- indent_size = 2
19
-
20
- [*.yml]
21
- indent_style = space
22
- indent_size = 2
data/.gitignore DELETED
@@ -1,58 +0,0 @@
1
- *.gem
2
- *.rbc
3
- *.swp
4
- *.nix
5
- *.vim
6
- /.config
7
- /coverage/
8
- /InstalledFiles
9
- /pkg/
10
- /spec/reports/
11
- /spec/examples.txt
12
- /test/tmp/
13
- /test/version_tmp/
14
- /tmp/
15
- /log/
16
- TODO
17
- ext/**/skipped_reason.txt
18
-
19
- # Used by dotenv library to load environment variables.
20
- # .env
21
-
22
- ## Documentation cache and generated files:
23
- /.yardoc/
24
- /_yardoc/
25
- /doc/
26
- /rdoc/
27
- /html/
28
-
29
- ## Environment normalization:
30
- /.bundle/
31
- /vendor/bundle
32
- /lib/bundler/man/
33
-
34
- # for a library or gem, you might want to ignore these files since the code is
35
- # intended to run in multiple environments; otherwise, check them in:
36
- .ruby-version
37
- .ruby-gemset
38
-
39
- # unless supporting rvm < 1.11.0 or doing something fancy, ignore this:
40
- .rvmrc
41
- # Ignore local variables
42
- .envrc
43
-
44
- # lock files
45
- Gemfile.lock
46
-
47
- # Appraisal gemfiles (they can always be regenerated by running `appraisal install`)
48
- gemfiles/*.gemfile
49
-
50
- # bundle config
51
- gemfiles/.bundle
52
-
53
- # Native extension binaries
54
- lib/*.bundle
55
- lib/*.so
56
-
57
- # Extra file kept by sorbet for debugging usage, as documented in https://sorbet.org/docs/adopting#step-6-source-control
58
- sorbet/rbi/hidden-definitions/errors.txt
data/CONTRIBUTING.md DELETED
@@ -1,81 +0,0 @@
1
- # Contributing
2
-
3
- Community contributions to the Datadog tracing library for Ruby are welcome! See below for some basic guidelines.
4
-
5
- ## Want to request a new feature?
6
-
7
- Many great ideas for new features come from the community, and we'd be happy to consider yours!
8
-
9
- To share your request, you can [open a Github issue](https://github.com/DataDog/dd-trace-rb/issues/new) with the details about what you'd like to see. At a minimum, please provide:
10
-
11
- - The goal of the new feature
12
- - A description of how it might be used or behave
13
- - Links to any important resources (e.g. Github repos, websites, screenshots, specifications, diagrams)
14
-
15
- Additionally, if you can, include:
16
-
17
- - A description of how it could be accomplished
18
- - Code snippets that might demonstrate its use or implementation
19
- - Screenshots or mockups that visually demonstrate the feature
20
- - Links to similar features that would serve as a good comparison
21
- - (Any other details that would be useful for implementing this feature!)
22
-
23
- ## Found a bug?
24
-
25
- For any urgent matters (such as outages) or issues concerning the Datadog service or UI, contact our support team via https://docs.datadoghq.com/help/ for direct, faster assistance.
26
-
27
- You may submit bug reports concerning the Datadog tracing library for Ruby by [opening a Github issue](https://github.com/DataDog/dd-trace-rb/issues/new). At a minimum, please provide:
28
-
29
- - A description of the problem
30
- - Steps to reproduce
31
- - Expected behavior
32
- - Actual behavior
33
- - Errors (with stack traces) or warnings received
34
- - Any details you can share about your configuration including:
35
- - Ruby version & platform
36
- - `ddtrace` version
37
- - Versions of any other relevant gems (or a `Gemfile.lock` if available)
38
- - Any configuration settings for the trace library (e.g. `initializers/datadog.rb`)
39
-
40
- If at all possible, also provide:
41
-
42
- - Logs (from the tracer/application/agent) or other diagnostics
43
- - Screenshots, links, or other visual aids that are publicly accessible
44
- - Code sample or test that reproduces the problem
45
- - An explanation of what causes the bug and/or how it can be fixed
46
-
47
- Reports that include rich detail are better, and ones with code that reproduce the bug are best.
48
-
49
- ## Have a patch?
50
-
51
- We welcome code contributions to the library, which you can [submit as a pull request](https://github.com/DataDog/dd-trace-rb/pull/new/master). To create a pull request:
52
-
53
- 1. **Fork the repository** from https://github.com/DataDog/dd-trace-rb
54
- 2. **Make any changes** for your patch.
55
- 3. **Write tests** that demonstrate how the feature works or how the bug is fixed.
56
- 4. **Update any documentation** such as `docs/GettingStarted.md`, especially for new features.
57
- 5. **Submit the pull request** from your fork back to the latest revision of the `master` branch on https://github.com/DataDog/dd-trace-rb.
58
-
59
- The pull request will be run through our CI pipeline, and a project member will review the changes with you. At a minimum, to be accepted and merged, pull requests must:
60
-
61
- - Have a stated goal and detailed description of the changes made
62
- - Include thorough test coverage and documentation, where applicable
63
- - Pass all tests and code quality checks (linting/coverage/benchmarks) on CI
64
- - Receive at least one approval from a project member with push permissions
65
-
66
- We also recommend that you share in your description:
67
-
68
- - Any motivations or intent for the contribution
69
- - Links to any issues/pull requests it might be related to
70
- - Links to any webpages or other external resources that might be related to the change
71
- - Screenshots, code samples, or other visual aids that demonstrate the changes or how they are implemented
72
- - Benchmarks if the feature is anticipated to have performance implications
73
- - Any limitations, constraints or risks that are important to consider
74
-
75
- For more information on common topics such as debugging locally, or how to write new integrations, check out [our development guide](https://github.com/DataDog/dd-trace-rb/blob/master/docs/DevelopmentGuide.md). If at any point you have a question or need assistance with your pull request, feel free to mention a project member! We're always happy to help contributors with their pull requests.
76
-
77
- ## Final word
78
-
79
- Many thanks to all of our contributors, and looking forward to seeing you on Github! :tada:
80
-
81
- - Datadog Ruby APM Team
data/ddtrace.gemspec DELETED
@@ -1,68 +0,0 @@
1
- # coding: utf-8
2
-
3
- lib = File.expand_path('../lib', __FILE__)
4
- $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
5
- require 'ddtrace/version'
6
-
7
- Gem::Specification.new do |spec|
8
- spec.name = 'ddtrace'
9
- spec.version = DDTrace::VERSION::STRING
10
- spec.required_ruby_version = [">= #{DDTrace::VERSION::MINIMUM_RUBY_VERSION}", "< #{DDTrace::VERSION::MAXIMUM_RUBY_VERSION}"]
11
- spec.required_rubygems_version = '>= 2.0.0'
12
- spec.authors = ['Datadog, Inc.']
13
- spec.email = ['dev@datadoghq.com']
14
-
15
- spec.summary = 'Datadog tracing code for your Ruby applications'
16
- spec.description = <<-EOS.gsub(/^[\s]+/, '')
17
- ddtrace is Datadog’s tracing client for Ruby. It is used to trace requests
18
- as they flow across web servers, databases and microservices so that developers
19
- have great visiblity into bottlenecks and troublesome requests.
20
- EOS
21
-
22
- spec.homepage = 'https://github.com/DataDog/dd-trace-rb'
23
- spec.license = 'BSD-3-Clause'
24
-
25
- if spec.respond_to?(:metadata)
26
- spec.metadata['allowed_push_host'] = 'https://rubygems.org'
27
- else
28
- raise 'RubyGems 2.0 or newer is required to protect against public gem pushes.'
29
- end
30
-
31
- spec.files =
32
- `git ls-files -z`
33
- .split("\x0")
34
- .reject { |f| f.match(%r{^(test|spec|features|[.]circleci|[.]github|[.]dd-ci|benchmarks|gemfiles|integration|tasks|sorbet|yard)/}) }
35
- .reject do |f|
36
- ['.dockerignore', '.env', '.gitattributes', '.gitlab-ci.yml', '.rspec', '.rubocop.yml',
37
- '.rubocop_todo.yml', '.simplecov', 'Appraisals', 'Gemfile', 'Rakefile', 'docker-compose.yml', '.pryrc', '.yardopts'].include?(f)
38
- end
39
- spec.executables = ['ddtracerb']
40
- spec.require_paths = ['lib']
41
-
42
- # Important note: This `if` ONLY works for development. When packaging up the gem, Ruby runs this code, and hardcodes
43
- # the output in the `.gem` file that gets uploaded to rubygems. So the decision here gets hardcoded, we don't actually
44
- # pick a version depending on the Ruby customers are running, as it may appear.
45
- # For more context, see the discussion in
46
- # * https://github.com/DataDog/dd-trace-rb/pull/1739
47
- # * https://github.com/DataDog/dd-trace-rb/pull/1336
48
- if RUBY_VERSION >= '2.2.0'
49
- spec.add_dependency 'msgpack'
50
- else
51
- # msgpack 1.4 fails for Ruby 2.1: https://github.com/msgpack/msgpack-ruby/issues/205
52
- spec.add_dependency 'msgpack', '< 1.4'
53
- end
54
-
55
- # Used by the profiler native extension to support older Rubies (see NativeExtensionDesign.md for notes)
56
- #
57
- # Because we only use this for older Rubies, and we consider it "feature-complete" for those older Rubies,
58
- # we're pinning it at the latest available version and will manually bump the dependency as needed.
59
- spec.add_dependency 'debase-ruby_core_source', '<= 0.10.16'
60
-
61
- # Used by appsec
62
- spec.add_dependency 'libddwaf', '~> 1.3.0.2.0'
63
-
64
- # Used by profiling
65
- spec.add_dependency 'libddprof', '~> 0.6.0.1.0'
66
-
67
- spec.extensions = ['ext/ddtrace_profiling_native_extension/extconf.rb', 'ext/ddtrace_profiling_loader/extconf.rb']
68
- end
data/docs/0.x-trace.png DELETED
Binary file