ls-trace 0.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (356) hide show
  1. checksums.yaml +7 -0
  2. data/.circleci/config.yml +673 -0
  3. data/.circleci/images/primary/Dockerfile-2.0.0 +73 -0
  4. data/.circleci/images/primary/Dockerfile-2.1.10 +73 -0
  5. data/.circleci/images/primary/Dockerfile-2.2.10 +73 -0
  6. data/.circleci/images/primary/Dockerfile-2.3.8 +75 -0
  7. data/.circleci/images/primary/Dockerfile-2.4.6 +73 -0
  8. data/.circleci/images/primary/Dockerfile-2.5.6 +73 -0
  9. data/.circleci/images/primary/Dockerfile-2.6.4 +73 -0
  10. data/.dockerignore +1 -0
  11. data/.env +24 -0
  12. data/.github/CODEOWNERS +1 -0
  13. data/.gitignore +59 -0
  14. data/.rspec +1 -0
  15. data/.rubocop.yml +77 -0
  16. data/.yardopts +5 -0
  17. data/Appraisals +820 -0
  18. data/CHANGELOG.md +1051 -0
  19. data/CONTRIBUTING.md +85 -0
  20. data/Gemfile +7 -0
  21. data/LICENSE +24 -0
  22. data/README.md +108 -0
  23. data/Rakefile +635 -0
  24. data/benchmarks/postgres_database.yml +9 -0
  25. data/benchmarks/sidekiq_test.rb +154 -0
  26. data/ddtrace.gemspec +63 -0
  27. data/docker-compose.yml +276 -0
  28. data/docs/DevelopmentGuide.md +195 -0
  29. data/docs/GettingStarted.md +1981 -0
  30. data/lib/ddtrace.rb +63 -0
  31. data/lib/ddtrace/analytics.rb +29 -0
  32. data/lib/ddtrace/augmentation.rb +13 -0
  33. data/lib/ddtrace/augmentation/method_wrapper.rb +20 -0
  34. data/lib/ddtrace/augmentation/method_wrapping.rb +38 -0
  35. data/lib/ddtrace/augmentation/shim.rb +102 -0
  36. data/lib/ddtrace/buffer.rb +119 -0
  37. data/lib/ddtrace/configuration.rb +30 -0
  38. data/lib/ddtrace/configuration/base.rb +82 -0
  39. data/lib/ddtrace/configuration/dependency_resolver.rb +24 -0
  40. data/lib/ddtrace/configuration/option.rb +55 -0
  41. data/lib/ddtrace/configuration/option_definition.rb +127 -0
  42. data/lib/ddtrace/configuration/option_definition_set.rb +18 -0
  43. data/lib/ddtrace/configuration/option_set.rb +6 -0
  44. data/lib/ddtrace/configuration/options.rb +107 -0
  45. data/lib/ddtrace/configuration/pin_setup.rb +30 -0
  46. data/lib/ddtrace/configuration/settings.rb +105 -0
  47. data/lib/ddtrace/context.rb +284 -0
  48. data/lib/ddtrace/context_flush.rb +132 -0
  49. data/lib/ddtrace/contrib/action_pack/action_controller/instrumentation.rb +144 -0
  50. data/lib/ddtrace/contrib/action_pack/action_controller/patcher.rb +37 -0
  51. data/lib/ddtrace/contrib/action_pack/configuration/settings.rb +27 -0
  52. data/lib/ddtrace/contrib/action_pack/ext.rb +16 -0
  53. data/lib/ddtrace/contrib/action_pack/integration.rb +36 -0
  54. data/lib/ddtrace/contrib/action_pack/patcher.rb +29 -0
  55. data/lib/ddtrace/contrib/action_pack/utils.rb +36 -0
  56. data/lib/ddtrace/contrib/action_view/configuration/settings.rb +26 -0
  57. data/lib/ddtrace/contrib/action_view/ext.rb +17 -0
  58. data/lib/ddtrace/contrib/action_view/instrumentation/partial_renderer.rb +78 -0
  59. data/lib/ddtrace/contrib/action_view/instrumentation/template_renderer.rb +167 -0
  60. data/lib/ddtrace/contrib/action_view/integration.rb +43 -0
  61. data/lib/ddtrace/contrib/action_view/patcher.rb +53 -0
  62. data/lib/ddtrace/contrib/action_view/utils.rb +32 -0
  63. data/lib/ddtrace/contrib/active_model_serializers/configuration/settings.rb +25 -0
  64. data/lib/ddtrace/contrib/active_model_serializers/event.rb +65 -0
  65. data/lib/ddtrace/contrib/active_model_serializers/events.rb +30 -0
  66. data/lib/ddtrace/contrib/active_model_serializers/events/render.rb +32 -0
  67. data/lib/ddtrace/contrib/active_model_serializers/events/serialize.rb +35 -0
  68. data/lib/ddtrace/contrib/active_model_serializers/ext.rb +17 -0
  69. data/lib/ddtrace/contrib/active_model_serializers/integration.rb +39 -0
  70. data/lib/ddtrace/contrib/active_model_serializers/patcher.rb +36 -0
  71. data/lib/ddtrace/contrib/active_record/configuration/resolver.rb +46 -0
  72. data/lib/ddtrace/contrib/active_record/configuration/settings.rb +30 -0
  73. data/lib/ddtrace/contrib/active_record/event.rb +30 -0
  74. data/lib/ddtrace/contrib/active_record/events.rb +30 -0
  75. data/lib/ddtrace/contrib/active_record/events/instantiation.rb +57 -0
  76. data/lib/ddtrace/contrib/active_record/events/sql.rb +64 -0
  77. data/lib/ddtrace/contrib/active_record/ext.rb +21 -0
  78. data/lib/ddtrace/contrib/active_record/integration.rb +44 -0
  79. data/lib/ddtrace/contrib/active_record/patcher.rb +29 -0
  80. data/lib/ddtrace/contrib/active_record/utils.rb +76 -0
  81. data/lib/ddtrace/contrib/active_support/cache/instrumentation.rb +157 -0
  82. data/lib/ddtrace/contrib/active_support/cache/patcher.rb +62 -0
  83. data/lib/ddtrace/contrib/active_support/cache/redis.rb +47 -0
  84. data/lib/ddtrace/contrib/active_support/configuration/settings.rb +25 -0
  85. data/lib/ddtrace/contrib/active_support/ext.rb +21 -0
  86. data/lib/ddtrace/contrib/active_support/integration.rb +38 -0
  87. data/lib/ddtrace/contrib/active_support/notifications/event.rb +62 -0
  88. data/lib/ddtrace/contrib/active_support/notifications/subscriber.rb +66 -0
  89. data/lib/ddtrace/contrib/active_support/notifications/subscription.rb +159 -0
  90. data/lib/ddtrace/contrib/active_support/patcher.rb +29 -0
  91. data/lib/ddtrace/contrib/analytics.rb +20 -0
  92. data/lib/ddtrace/contrib/aws/configuration/settings.rb +25 -0
  93. data/lib/ddtrace/contrib/aws/ext.rb +20 -0
  94. data/lib/ddtrace/contrib/aws/instrumentation.rb +56 -0
  95. data/lib/ddtrace/contrib/aws/integration.rb +36 -0
  96. data/lib/ddtrace/contrib/aws/parsed_context.rb +56 -0
  97. data/lib/ddtrace/contrib/aws/patcher.rb +49 -0
  98. data/lib/ddtrace/contrib/aws/services.rb +115 -0
  99. data/lib/ddtrace/contrib/concurrent_ruby/configuration/settings.rb +15 -0
  100. data/lib/ddtrace/contrib/concurrent_ruby/context_composite_executor_service.rb +35 -0
  101. data/lib/ddtrace/contrib/concurrent_ruby/ext.rb +11 -0
  102. data/lib/ddtrace/contrib/concurrent_ruby/future_patch.rb +23 -0
  103. data/lib/ddtrace/contrib/concurrent_ruby/integration.rb +32 -0
  104. data/lib/ddtrace/contrib/concurrent_ruby/patcher.rb +35 -0
  105. data/lib/ddtrace/contrib/configurable.rb +59 -0
  106. data/lib/ddtrace/contrib/configuration/resolver.rb +12 -0
  107. data/lib/ddtrace/contrib/configuration/settings.rb +35 -0
  108. data/lib/ddtrace/contrib/dalli/configuration/settings.rb +25 -0
  109. data/lib/ddtrace/contrib/dalli/ext.rb +17 -0
  110. data/lib/ddtrace/contrib/dalli/instrumentation.rb +50 -0
  111. data/lib/ddtrace/contrib/dalli/integration.rb +36 -0
  112. data/lib/ddtrace/contrib/dalli/patcher.rb +73 -0
  113. data/lib/ddtrace/contrib/dalli/quantize.rb +22 -0
  114. data/lib/ddtrace/contrib/delayed_job/configuration/settings.rb +25 -0
  115. data/lib/ddtrace/contrib/delayed_job/ext.rb +18 -0
  116. data/lib/ddtrace/contrib/delayed_job/integration.rb +32 -0
  117. data/lib/ddtrace/contrib/delayed_job/patcher.rb +34 -0
  118. data/lib/ddtrace/contrib/delayed_job/plugin.rb +57 -0
  119. data/lib/ddtrace/contrib/elasticsearch/configuration/settings.rb +26 -0
  120. data/lib/ddtrace/contrib/elasticsearch/ext.rb +19 -0
  121. data/lib/ddtrace/contrib/elasticsearch/integration.rb +37 -0
  122. data/lib/ddtrace/contrib/elasticsearch/patcher.rb +124 -0
  123. data/lib/ddtrace/contrib/elasticsearch/quantize.rb +80 -0
  124. data/lib/ddtrace/contrib/ethon/configuration/settings.rb +26 -0
  125. data/lib/ddtrace/contrib/ethon/easy_patch.rb +139 -0
  126. data/lib/ddtrace/contrib/ethon/ext.rb +15 -0
  127. data/lib/ddtrace/contrib/ethon/integration.rb +31 -0
  128. data/lib/ddtrace/contrib/ethon/multi_patch.rb +80 -0
  129. data/lib/ddtrace/contrib/ethon/patcher.rb +27 -0
  130. data/lib/ddtrace/contrib/excon/configuration/settings.rb +28 -0
  131. data/lib/ddtrace/contrib/excon/ext.rb +14 -0
  132. data/lib/ddtrace/contrib/excon/integration.rb +32 -0
  133. data/lib/ddtrace/contrib/excon/middleware.rb +154 -0
  134. data/lib/ddtrace/contrib/excon/patcher.rb +34 -0
  135. data/lib/ddtrace/contrib/extensions.rb +59 -0
  136. data/lib/ddtrace/contrib/faraday/configuration/settings.rb +33 -0
  137. data/lib/ddtrace/contrib/faraday/ext.rb +14 -0
  138. data/lib/ddtrace/contrib/faraday/integration.rb +36 -0
  139. data/lib/ddtrace/contrib/faraday/middleware.rb +93 -0
  140. data/lib/ddtrace/contrib/faraday/patcher.rb +82 -0
  141. data/lib/ddtrace/contrib/faraday/rack_builder.rb +18 -0
  142. data/lib/ddtrace/contrib/grape/configuration/settings.rb +27 -0
  143. data/lib/ddtrace/contrib/grape/endpoint.rb +199 -0
  144. data/lib/ddtrace/contrib/grape/ext.rb +19 -0
  145. data/lib/ddtrace/contrib/grape/instrumentation.rb +33 -0
  146. data/lib/ddtrace/contrib/grape/integration.rb +36 -0
  147. data/lib/ddtrace/contrib/grape/patcher.rb +79 -0
  148. data/lib/ddtrace/contrib/graphql/configuration/settings.rb +27 -0
  149. data/lib/ddtrace/contrib/graphql/ext.rb +13 -0
  150. data/lib/ddtrace/contrib/graphql/integration.rb +38 -0
  151. data/lib/ddtrace/contrib/graphql/patcher.rb +63 -0
  152. data/lib/ddtrace/contrib/grpc/configuration/settings.rb +25 -0
  153. data/lib/ddtrace/contrib/grpc/datadog_interceptor.rb +74 -0
  154. data/lib/ddtrace/contrib/grpc/datadog_interceptor/client.rb +56 -0
  155. data/lib/ddtrace/contrib/grpc/datadog_interceptor/server.rb +73 -0
  156. data/lib/ddtrace/contrib/grpc/ext.rb +15 -0
  157. data/lib/ddtrace/contrib/grpc/integration.rb +36 -0
  158. data/lib/ddtrace/contrib/grpc/intercept_with_datadog.rb +49 -0
  159. data/lib/ddtrace/contrib/grpc/patcher.rb +78 -0
  160. data/lib/ddtrace/contrib/http/circuit_breaker.rb +63 -0
  161. data/lib/ddtrace/contrib/http/configuration/settings.rb +26 -0
  162. data/lib/ddtrace/contrib/http/ext.rb +14 -0
  163. data/lib/ddtrace/contrib/http/instrumentation.rb +114 -0
  164. data/lib/ddtrace/contrib/http/integration.rb +32 -0
  165. data/lib/ddtrace/contrib/http/patcher.rb +32 -0
  166. data/lib/ddtrace/contrib/integration.rb +16 -0
  167. data/lib/ddtrace/contrib/mongodb/configuration/settings.rb +28 -0
  168. data/lib/ddtrace/contrib/mongodb/ext.rb +20 -0
  169. data/lib/ddtrace/contrib/mongodb/instrumentation.rb +68 -0
  170. data/lib/ddtrace/contrib/mongodb/integration.rb +36 -0
  171. data/lib/ddtrace/contrib/mongodb/parsers.rb +68 -0
  172. data/lib/ddtrace/contrib/mongodb/patcher.rb +37 -0
  173. data/lib/ddtrace/contrib/mongodb/subscribers.rb +108 -0
  174. data/lib/ddtrace/contrib/mysql2/configuration/settings.rb +25 -0
  175. data/lib/ddtrace/contrib/mysql2/ext.rb +15 -0
  176. data/lib/ddtrace/contrib/mysql2/instrumentation.rb +60 -0
  177. data/lib/ddtrace/contrib/mysql2/integration.rb +32 -0
  178. data/lib/ddtrace/contrib/mysql2/patcher.rb +33 -0
  179. data/lib/ddtrace/contrib/patchable.rb +42 -0
  180. data/lib/ddtrace/contrib/patcher.rb +28 -0
  181. data/lib/ddtrace/contrib/racecar/configuration/settings.rb +25 -0
  182. data/lib/ddtrace/contrib/racecar/event.rb +67 -0
  183. data/lib/ddtrace/contrib/racecar/events.rb +30 -0
  184. data/lib/ddtrace/contrib/racecar/events/batch.rb +27 -0
  185. data/lib/ddtrace/contrib/racecar/events/message.rb +27 -0
  186. data/lib/ddtrace/contrib/racecar/ext.rb +21 -0
  187. data/lib/ddtrace/contrib/racecar/integration.rb +36 -0
  188. data/lib/ddtrace/contrib/racecar/patcher.rb +32 -0
  189. data/lib/ddtrace/contrib/rack/configuration/settings.rb +41 -0
  190. data/lib/ddtrace/contrib/rack/ext.rb +18 -0
  191. data/lib/ddtrace/contrib/rack/integration.rb +32 -0
  192. data/lib/ddtrace/contrib/rack/middlewares.rb +283 -0
  193. data/lib/ddtrace/contrib/rack/patcher.rb +72 -0
  194. data/lib/ddtrace/contrib/rack/request_queue.rb +39 -0
  195. data/lib/ddtrace/contrib/rails/configuration/settings.rb +80 -0
  196. data/lib/ddtrace/contrib/rails/ext.rb +12 -0
  197. data/lib/ddtrace/contrib/rails/framework.rb +100 -0
  198. data/lib/ddtrace/contrib/rails/integration.rb +37 -0
  199. data/lib/ddtrace/contrib/rails/middlewares.rb +38 -0
  200. data/lib/ddtrace/contrib/rails/patcher.rb +78 -0
  201. data/lib/ddtrace/contrib/rails/railtie.rb +17 -0
  202. data/lib/ddtrace/contrib/rails/utils.rb +20 -0
  203. data/lib/ddtrace/contrib/rake/configuration/settings.rb +27 -0
  204. data/lib/ddtrace/contrib/rake/ext.rb +18 -0
  205. data/lib/ddtrace/contrib/rake/instrumentation.rb +84 -0
  206. data/lib/ddtrace/contrib/rake/integration.rb +32 -0
  207. data/lib/ddtrace/contrib/rake/patcher.rb +36 -0
  208. data/lib/ddtrace/contrib/redis/configuration/settings.rb +25 -0
  209. data/lib/ddtrace/contrib/redis/ext.rb +18 -0
  210. data/lib/ddtrace/contrib/redis/integration.rb +36 -0
  211. data/lib/ddtrace/contrib/redis/patcher.rb +94 -0
  212. data/lib/ddtrace/contrib/redis/quantize.rb +47 -0
  213. data/lib/ddtrace/contrib/redis/tags.rb +38 -0
  214. data/lib/ddtrace/contrib/registerable.rb +33 -0
  215. data/lib/ddtrace/contrib/registry.rb +42 -0
  216. data/lib/ddtrace/contrib/resque/configuration/settings.rb +26 -0
  217. data/lib/ddtrace/contrib/resque/ext.rb +14 -0
  218. data/lib/ddtrace/contrib/resque/integration.rb +37 -0
  219. data/lib/ddtrace/contrib/resque/patcher.rb +35 -0
  220. data/lib/ddtrace/contrib/resque/resque_job.rb +76 -0
  221. data/lib/ddtrace/contrib/rest_client/configuration/settings.rb +26 -0
  222. data/lib/ddtrace/contrib/rest_client/ext.rb +14 -0
  223. data/lib/ddtrace/contrib/rest_client/integration.rb +31 -0
  224. data/lib/ddtrace/contrib/rest_client/patcher.rb +25 -0
  225. data/lib/ddtrace/contrib/rest_client/request_patch.rb +89 -0
  226. data/lib/ddtrace/contrib/sequel/configuration/settings.rb +23 -0
  227. data/lib/ddtrace/contrib/sequel/database.rb +61 -0
  228. data/lib/ddtrace/contrib/sequel/dataset.rb +62 -0
  229. data/lib/ddtrace/contrib/sequel/ext.rb +15 -0
  230. data/lib/ddtrace/contrib/sequel/integration.rb +32 -0
  231. data/lib/ddtrace/contrib/sequel/patcher.rb +39 -0
  232. data/lib/ddtrace/contrib/sequel/utils.rb +46 -0
  233. data/lib/ddtrace/contrib/shoryuken/configuration/settings.rb +24 -0
  234. data/lib/ddtrace/contrib/shoryuken/ext.rb +18 -0
  235. data/lib/ddtrace/contrib/shoryuken/integration.rb +35 -0
  236. data/lib/ddtrace/contrib/shoryuken/patcher.rb +30 -0
  237. data/lib/ddtrace/contrib/shoryuken/tracer.rb +45 -0
  238. data/lib/ddtrace/contrib/sidekiq/client_tracer.rb +43 -0
  239. data/lib/ddtrace/contrib/sidekiq/configuration/settings.rb +26 -0
  240. data/lib/ddtrace/contrib/sidekiq/ext.rb +21 -0
  241. data/lib/ddtrace/contrib/sidekiq/integration.rb +36 -0
  242. data/lib/ddtrace/contrib/sidekiq/patcher.rb +40 -0
  243. data/lib/ddtrace/contrib/sidekiq/server_tracer.rb +58 -0
  244. data/lib/ddtrace/contrib/sidekiq/tracing.rb +28 -0
  245. data/lib/ddtrace/contrib/sinatra/configuration/settings.rb +34 -0
  246. data/lib/ddtrace/contrib/sinatra/env.rb +38 -0
  247. data/lib/ddtrace/contrib/sinatra/ext.rb +18 -0
  248. data/lib/ddtrace/contrib/sinatra/headers.rb +31 -0
  249. data/lib/ddtrace/contrib/sinatra/integration.rb +36 -0
  250. data/lib/ddtrace/contrib/sinatra/patcher.rb +33 -0
  251. data/lib/ddtrace/contrib/sinatra/tracer.rb +84 -0
  252. data/lib/ddtrace/contrib/sinatra/tracer_middleware.rb +72 -0
  253. data/lib/ddtrace/contrib/sucker_punch/configuration/settings.rb +25 -0
  254. data/lib/ddtrace/contrib/sucker_punch/exception_handler.rb +26 -0
  255. data/lib/ddtrace/contrib/sucker_punch/ext.rb +18 -0
  256. data/lib/ddtrace/contrib/sucker_punch/instrumentation.rb +70 -0
  257. data/lib/ddtrace/contrib/sucker_punch/integration.rb +36 -0
  258. data/lib/ddtrace/contrib/sucker_punch/patcher.rb +48 -0
  259. data/lib/ddtrace/correlation.rb +28 -0
  260. data/lib/ddtrace/diagnostics/health.rb +30 -0
  261. data/lib/ddtrace/distributed_tracing/headers/b3.rb +44 -0
  262. data/lib/ddtrace/distributed_tracing/headers/b3_single.rb +56 -0
  263. data/lib/ddtrace/distributed_tracing/headers/datadog.rb +42 -0
  264. data/lib/ddtrace/distributed_tracing/headers/headers.rb +70 -0
  265. data/lib/ddtrace/distributed_tracing/headers/helpers.rb +45 -0
  266. data/lib/ddtrace/encoding.rb +65 -0
  267. data/lib/ddtrace/environment.rb +23 -0
  268. data/lib/ddtrace/error.rb +27 -0
  269. data/lib/ddtrace/ext/analytics.rb +11 -0
  270. data/lib/ddtrace/ext/app_types.rb +11 -0
  271. data/lib/ddtrace/ext/diagnostics.rb +25 -0
  272. data/lib/ddtrace/ext/distributed.rb +33 -0
  273. data/lib/ddtrace/ext/errors.rb +10 -0
  274. data/lib/ddtrace/ext/forced_tracing.rb +25 -0
  275. data/lib/ddtrace/ext/http.rb +46 -0
  276. data/lib/ddtrace/ext/manual_tracing.rb +9 -0
  277. data/lib/ddtrace/ext/metrics.rb +15 -0
  278. data/lib/ddtrace/ext/net.rb +10 -0
  279. data/lib/ddtrace/ext/priority.rb +16 -0
  280. data/lib/ddtrace/ext/runtime.rb +26 -0
  281. data/lib/ddtrace/ext/sql.rb +8 -0
  282. data/lib/ddtrace/ext/transport.rb +17 -0
  283. data/lib/ddtrace/forced_tracing.rb +36 -0
  284. data/lib/ddtrace/logger.rb +39 -0
  285. data/lib/ddtrace/metrics.rb +215 -0
  286. data/lib/ddtrace/monkey.rb +58 -0
  287. data/lib/ddtrace/opentracer.rb +40 -0
  288. data/lib/ddtrace/opentracer/binary_propagator.rb +24 -0
  289. data/lib/ddtrace/opentracer/carrier.rb +6 -0
  290. data/lib/ddtrace/opentracer/distributed_headers.rb +52 -0
  291. data/lib/ddtrace/opentracer/global_tracer.rb +15 -0
  292. data/lib/ddtrace/opentracer/propagator.rb +22 -0
  293. data/lib/ddtrace/opentracer/rack_propagator.rb +60 -0
  294. data/lib/ddtrace/opentracer/scope.rb +15 -0
  295. data/lib/ddtrace/opentracer/scope_manager.rb +6 -0
  296. data/lib/ddtrace/opentracer/span.rb +98 -0
  297. data/lib/ddtrace/opentracer/span_context.rb +14 -0
  298. data/lib/ddtrace/opentracer/span_context_factory.rb +23 -0
  299. data/lib/ddtrace/opentracer/text_map_propagator.rb +75 -0
  300. data/lib/ddtrace/opentracer/thread_local_scope.rb +30 -0
  301. data/lib/ddtrace/opentracer/thread_local_scope_manager.rb +40 -0
  302. data/lib/ddtrace/opentracer/tracer.rb +208 -0
  303. data/lib/ddtrace/patcher.rb +47 -0
  304. data/lib/ddtrace/pin.rb +114 -0
  305. data/lib/ddtrace/pipeline.rb +46 -0
  306. data/lib/ddtrace/pipeline/span_filter.rb +38 -0
  307. data/lib/ddtrace/pipeline/span_processor.rb +20 -0
  308. data/lib/ddtrace/propagation/grpc_propagator.rb +61 -0
  309. data/lib/ddtrace/propagation/http_propagator.rb +75 -0
  310. data/lib/ddtrace/provider.rb +21 -0
  311. data/lib/ddtrace/quantization/hash.rb +103 -0
  312. data/lib/ddtrace/quantization/http.rb +86 -0
  313. data/lib/ddtrace/runtime/cgroup.rb +44 -0
  314. data/lib/ddtrace/runtime/class_count.rb +17 -0
  315. data/lib/ddtrace/runtime/container.rb +73 -0
  316. data/lib/ddtrace/runtime/gc.rb +16 -0
  317. data/lib/ddtrace/runtime/identity.rb +41 -0
  318. data/lib/ddtrace/runtime/metrics.rb +93 -0
  319. data/lib/ddtrace/runtime/object_space.rb +19 -0
  320. data/lib/ddtrace/runtime/socket.rb +14 -0
  321. data/lib/ddtrace/runtime/thread_count.rb +16 -0
  322. data/lib/ddtrace/sampler.rb +195 -0
  323. data/lib/ddtrace/span.rb +260 -0
  324. data/lib/ddtrace/sync_writer.rb +62 -0
  325. data/lib/ddtrace/tracer.rb +459 -0
  326. data/lib/ddtrace/transport/http.rb +91 -0
  327. data/lib/ddtrace/transport/http/adapters/net.rb +112 -0
  328. data/lib/ddtrace/transport/http/adapters/registry.rb +24 -0
  329. data/lib/ddtrace/transport/http/adapters/test.rb +77 -0
  330. data/lib/ddtrace/transport/http/adapters/unix_socket.rb +64 -0
  331. data/lib/ddtrace/transport/http/api.rb +46 -0
  332. data/lib/ddtrace/transport/http/api/endpoint.rb +27 -0
  333. data/lib/ddtrace/transport/http/api/fallbacks.rb +22 -0
  334. data/lib/ddtrace/transport/http/api/instance.rb +29 -0
  335. data/lib/ddtrace/transport/http/api/map.rb +14 -0
  336. data/lib/ddtrace/transport/http/api/spec.rb +15 -0
  337. data/lib/ddtrace/transport/http/builder.rb +165 -0
  338. data/lib/ddtrace/transport/http/client.rb +107 -0
  339. data/lib/ddtrace/transport/http/env.rb +48 -0
  340. data/lib/ddtrace/transport/http/response.rb +26 -0
  341. data/lib/ddtrace/transport/http/statistics.rb +30 -0
  342. data/lib/ddtrace/transport/http/traces.rb +140 -0
  343. data/lib/ddtrace/transport/parcel.rb +13 -0
  344. data/lib/ddtrace/transport/request.rb +13 -0
  345. data/lib/ddtrace/transport/response.rb +49 -0
  346. data/lib/ddtrace/transport/statistics.rb +72 -0
  347. data/lib/ddtrace/transport/traces.rb +33 -0
  348. data/lib/ddtrace/utils.rb +65 -0
  349. data/lib/ddtrace/utils/database.rb +25 -0
  350. data/lib/ddtrace/utils/time.rb +14 -0
  351. data/lib/ddtrace/vendor/active_record/connection_specification.rb +301 -0
  352. data/lib/ddtrace/version.rb +12 -0
  353. data/lib/ddtrace/workers.rb +125 -0
  354. data/lib/ddtrace/writer.rb +157 -0
  355. data/tasks/release_gem.rake +28 -0
  356. metadata +682 -0
@@ -0,0 +1,12 @@
1
+ module Datadog
2
+ module VERSION
3
+ MAJOR = 0
4
+ MINOR = 1
5
+ PATCH = 1
6
+ PRE = nil
7
+
8
+ STRING = [MAJOR, MINOR, PATCH, PRE].compact.join('.')
9
+
10
+ MINIMUM_RUBY_VERSION = '2.0.0'.freeze
11
+ end
12
+ end
@@ -0,0 +1,125 @@
1
+ require 'time'
2
+
3
+ require 'ddtrace/buffer'
4
+ require 'ddtrace/runtime/metrics'
5
+
6
+ module Datadog
7
+ module Workers
8
+ # Asynchronous worker that executes a +Send()+ operation after given
9
+ # seconds. Under the hood, it uses +Concurrent::TimerTask+ so that the thread
10
+ # will perform a task at regular intervals. The thread can be stopped
11
+ # with the +stop()+ method and can start with the +start()+ method.
12
+ class AsyncTransport
13
+ DEFAULT_BUFFER_MAX_SIZE = 1000
14
+ DEFAULT_FLUSH_INTERVAL = 1
15
+ DEFAULT_TIMEOUT = 5
16
+ BACK_OFF_RATIO = 1.2
17
+ BACK_OFF_MAX = 5
18
+ SHUTDOWN_TIMEOUT = 1
19
+
20
+ attr_reader \
21
+ :trace_buffer
22
+
23
+ def initialize(options = {})
24
+ @transport = options[:transport]
25
+
26
+ # Callbacks
27
+ @trace_task = options[:on_trace]
28
+ @runtime_metrics_task = options[:on_runtime_metrics]
29
+
30
+ # Intervals
31
+ interval = options.fetch(:interval, DEFAULT_FLUSH_INTERVAL)
32
+ @flush_interval = interval
33
+ @back_off = interval
34
+
35
+ # Buffers
36
+ buffer_size = options.fetch(:buffer_size, DEFAULT_BUFFER_MAX_SIZE)
37
+ @trace_buffer = TraceBuffer.new(buffer_size)
38
+
39
+ # Threading
40
+ @shutdown = ConditionVariable.new
41
+ @mutex = Mutex.new
42
+ @worker = nil
43
+ @run = false
44
+ end
45
+
46
+ # Callback function that process traces and executes the +send_traces()+ method.
47
+ def callback_traces
48
+ return true if @trace_buffer.empty?
49
+
50
+ begin
51
+ traces = @trace_buffer.pop
52
+ traces = Pipeline.process!(traces)
53
+ @trace_task.call(traces, @transport) unless @trace_task.nil?
54
+ rescue StandardError => e
55
+ # ensures that the thread will not die because of an exception.
56
+ # TODO[manu]: findout the reason and reschedule the send if it's not
57
+ # a fatal exception
58
+ Datadog::Tracer.log.error(
59
+ "Error during traces flush: dropped #{traces.length} items. Cause: #{e} Location: #{e.backtrace.first}"
60
+ )
61
+ end
62
+ end
63
+
64
+ def callback_runtime_metrics
65
+ @runtime_metrics_task.call unless @runtime_metrics_task.nil?
66
+ rescue StandardError => e
67
+ Datadog::Tracer.log.error(
68
+ "Error during runtime metrics flush. Cause: #{e} Location: #{e.backtrace.first}"
69
+ )
70
+ end
71
+
72
+ # Start the timer execution.
73
+ def start
74
+ @mutex.synchronize do
75
+ return if @run
76
+ @run = true
77
+ Tracer.log.debug("Starting thread in the process: #{Process.pid}")
78
+ @worker = Thread.new { perform }
79
+ end
80
+ end
81
+
82
+ # Closes all available queues and waits for the trace buffer to flush
83
+ def stop
84
+ @mutex.synchronize do
85
+ return unless @run
86
+
87
+ @trace_buffer.close
88
+ @run = false
89
+ @shutdown.signal
90
+ end
91
+
92
+ join
93
+ true
94
+ end
95
+
96
+ # Block until executor shutdown is complete or until timeout seconds have passed.
97
+ def join
98
+ @worker.join(SHUTDOWN_TIMEOUT)
99
+ end
100
+
101
+ # Enqueue an item in the trace internal buffer. This operation is thread-safe
102
+ # because uses the +TraceBuffer+ data structure.
103
+ def enqueue_trace(trace)
104
+ @trace_buffer.push(trace)
105
+ end
106
+
107
+ private
108
+
109
+ alias flush_data callback_traces
110
+
111
+ def perform
112
+ loop do
113
+ @back_off = flush_data ? @flush_interval : [@back_off * BACK_OFF_RATIO, BACK_OFF_MAX].min
114
+
115
+ callback_runtime_metrics
116
+
117
+ @mutex.synchronize do
118
+ return if !@run && @trace_buffer.empty?
119
+ @shutdown.wait(@mutex, @back_off) if @run # do not wait when shutting down
120
+ end
121
+ end
122
+ end
123
+ end
124
+ end
125
+ end
@@ -0,0 +1,157 @@
1
+ require 'json'
2
+
3
+ require 'ddtrace/ext/net'
4
+ require 'ddtrace/runtime/socket'
5
+
6
+ require 'ddtrace/transport/http'
7
+ require 'ddtrace/encoding'
8
+ require 'ddtrace/workers'
9
+
10
+ module Datadog
11
+ # Processor that sends traces and metadata to the agent
12
+ class Writer
13
+ attr_reader \
14
+ :priority_sampler,
15
+ :runtime_metrics,
16
+ :transport,
17
+ :worker
18
+
19
+ def initialize(options = {})
20
+ # writer and transport parameters
21
+ @buff_size = options.fetch(:buffer_size, Workers::AsyncTransport::DEFAULT_BUFFER_MAX_SIZE)
22
+ @flush_interval = options.fetch(:flush_interval, Workers::AsyncTransport::DEFAULT_FLUSH_INTERVAL)
23
+ transport_options = options.fetch(:transport_options, {})
24
+
25
+ # priority sampling
26
+ if options[:priority_sampler]
27
+ @priority_sampler = options[:priority_sampler]
28
+ transport_options[:api_version] ||= Transport::HTTP::API::V4
29
+ end
30
+
31
+ # transport and buffers
32
+ @transport = options.fetch(:transport) do
33
+ Transport::HTTP.default(transport_options)
34
+ end
35
+
36
+ # Runtime metrics
37
+ @runtime_metrics = options.fetch(:runtime_metrics) do
38
+ Runtime::Metrics.new
39
+ end
40
+
41
+ # handles the thread creation after an eventual fork
42
+ @mutex_after_fork = Mutex.new
43
+ @pid = nil
44
+
45
+ @traces_flushed = 0
46
+
47
+ # one worker for traces
48
+ @worker = nil
49
+ end
50
+
51
+ # spawns a worker for spans; they share the same transport which is thread-safe
52
+ def start
53
+ @pid = Process.pid
54
+ @trace_handler = ->(items, transport) { send_spans(items, transport) }
55
+ @runtime_metrics_handler = -> { send_runtime_metrics }
56
+ @worker = Datadog::Workers::AsyncTransport.new(
57
+ transport: @transport,
58
+ buffer_size: @buff_size,
59
+ on_trace: @trace_handler,
60
+ on_runtime_metrics: @runtime_metrics_handler,
61
+ interval: @flush_interval
62
+ )
63
+
64
+ @worker.start()
65
+ end
66
+
67
+ # stops worker for spans.
68
+ def stop
69
+ return if worker.nil?
70
+ @worker.stop
71
+ @worker = nil
72
+ end
73
+
74
+ # flush spans to the trace-agent, handles spans only
75
+ def send_spans(traces, transport)
76
+ return true if traces.empty?
77
+
78
+ # Inject hostname if configured to do so
79
+ inject_hostname!(traces) if Datadog.configuration.report_hostname
80
+
81
+ # Send traces an get a response.
82
+ response = transport.send_traces(traces)
83
+
84
+ unless response.internal_error?
85
+ @traces_flushed += traces.length unless response.server_error?
86
+
87
+ # Update priority sampler
88
+ unless priority_sampler.nil? || response.service_rates.nil?
89
+ priority_sampler.update(response.service_rates)
90
+ end
91
+ end
92
+
93
+ # Return if server error occurred.
94
+ !response.server_error?
95
+ end
96
+
97
+ def send_runtime_metrics
98
+ return unless Datadog.configuration.runtime_metrics_enabled
99
+
100
+ runtime_metrics.flush
101
+ end
102
+
103
+ # enqueue the trace for submission to the API
104
+ def write(trace, services = nil)
105
+ unless services.nil?
106
+ Datadog::Patcher.do_once('Writer#write') do
107
+ Datadog::Tracer.log.warn(%(
108
+ write: Writing services has been deprecated and no longer need to be provided.
109
+ write(traces, services) can be updated to write(traces)
110
+ ))
111
+ end
112
+ end
113
+
114
+ # In multiprocess environments, the main process initializes the +Writer+ instance and if
115
+ # the process forks (i.e. a web server like Unicorn or Puma with multiple workers) the new
116
+ # processes will share the same +Writer+ until the first write (COW). Because of that,
117
+ # each process owns a different copy of the +@buffer+ after each write and so the
118
+ # +AsyncTransport+ will not send data to the trace agent.
119
+ #
120
+ # This check ensures that if a process doesn't own the current +Writer+, async workers
121
+ # will be initialized again (but only once for each process).
122
+ pid = Process.pid
123
+ if pid != @pid # avoid using Mutex when pids are equal
124
+ @mutex_after_fork.synchronize do
125
+ # we should start threads because the worker doesn't own this
126
+ start if pid != @pid
127
+ end
128
+ end
129
+
130
+ # Associate root span with runtime metrics
131
+ runtime_metrics.associate_with_span(trace.first) unless trace.empty?
132
+
133
+ @worker.enqueue_trace(trace)
134
+ end
135
+
136
+ # stats returns a dictionary of stats about the writer.
137
+ def stats
138
+ {
139
+ traces_flushed: @traces_flushed,
140
+ transport: @transport.stats
141
+ }
142
+ end
143
+
144
+ private
145
+
146
+ def inject_hostname!(traces)
147
+ traces.each do |trace|
148
+ next if trace.first.nil?
149
+
150
+ hostname = Datadog::Runtime::Socket.hostname
151
+ unless hostname.nil? || hostname.empty?
152
+ trace.first.set_tag(Ext::NET::TAG_HOSTNAME, hostname)
153
+ end
154
+ end
155
+ end
156
+ end
157
+ end
@@ -0,0 +1,28 @@
1
+ desc 'create a new indexed repository'
2
+ task :'release:gem' do
3
+ raise 'Missing environment variable S3_DIR' if !S3_DIR || S3_DIR.empty?
4
+ # load existing deployed gems
5
+ sh "aws s3 cp --exclude 'docs/*' --recursive s3://#{S3_BUCKET}/#{S3_DIR}/ ./rubygems/"
6
+
7
+ # create folders
8
+ sh 'mkdir -p ./gems'
9
+ sh 'mkdir -p ./rubygems/gems'
10
+
11
+ # build the gem
12
+ Rake::Task['build'].execute
13
+
14
+ # copy the output in the indexed folder
15
+ sh 'cp pkg/*.gem ./rubygems/gems/'
16
+
17
+ # generate the gems index
18
+ sh 'gem generate_index -v --no-modern -d ./rubygems'
19
+
20
+ # remove all local repository gems to limit files needed to be uploaded
21
+ sh 'rm -f ./rubygems/gems/*'
22
+
23
+ # re-add new gems
24
+ sh 'cp pkg/*.gem ./rubygems/gems/'
25
+
26
+ # deploy a static gem registry
27
+ sh "aws s3 cp --recursive ./rubygems/ s3://#{S3_BUCKET}/#{S3_DIR}/"
28
+ end
metadata ADDED
@@ -0,0 +1,682 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: ls-trace
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.1
5
+ platform: ruby
6
+ authors:
7
+ - lightstep
8
+ autorequire:
9
+ bindir: exe
10
+ cert_chain: []
11
+ date: 2019-11-23 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: msgpack
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - ">="
18
+ - !ruby/object:Gem::Version
19
+ version: '0'
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - ">="
25
+ - !ruby/object:Gem::Version
26
+ version: '0'
27
+ - !ruby/object:Gem::Dependency
28
+ name: dogstatsd-ruby
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ">="
32
+ - !ruby/object:Gem::Version
33
+ version: 3.3.0
34
+ type: :development
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - ">="
39
+ - !ruby/object:Gem::Version
40
+ version: 3.3.0
41
+ - !ruby/object:Gem::Dependency
42
+ name: opentracing
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - ">="
46
+ - !ruby/object:Gem::Version
47
+ version: 0.4.1
48
+ type: :development
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - ">="
53
+ - !ruby/object:Gem::Version
54
+ version: 0.4.1
55
+ - !ruby/object:Gem::Dependency
56
+ name: rake
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - ">="
60
+ - !ruby/object:Gem::Version
61
+ version: '10.5'
62
+ type: :development
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - ">="
67
+ - !ruby/object:Gem::Version
68
+ version: '10.5'
69
+ - !ruby/object:Gem::Dependency
70
+ name: rubocop
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - '='
74
+ - !ruby/object:Gem::Version
75
+ version: 0.49.1
76
+ type: :development
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - '='
81
+ - !ruby/object:Gem::Version
82
+ version: 0.49.1
83
+ - !ruby/object:Gem::Dependency
84
+ name: rspec
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - "~>"
88
+ - !ruby/object:Gem::Version
89
+ version: '3.0'
90
+ type: :development
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - "~>"
95
+ - !ruby/object:Gem::Version
96
+ version: '3.0'
97
+ - !ruby/object:Gem::Dependency
98
+ name: rspec-collection_matchers
99
+ requirement: !ruby/object:Gem::Requirement
100
+ requirements:
101
+ - - "~>"
102
+ - !ruby/object:Gem::Version
103
+ version: '1.1'
104
+ type: :development
105
+ prerelease: false
106
+ version_requirements: !ruby/object:Gem::Requirement
107
+ requirements:
108
+ - - "~>"
109
+ - !ruby/object:Gem::Version
110
+ version: '1.1'
111
+ - !ruby/object:Gem::Dependency
112
+ name: minitest
113
+ requirement: !ruby/object:Gem::Requirement
114
+ requirements:
115
+ - - '='
116
+ - !ruby/object:Gem::Version
117
+ version: 5.10.1
118
+ type: :development
119
+ prerelease: false
120
+ version_requirements: !ruby/object:Gem::Requirement
121
+ requirements:
122
+ - - '='
123
+ - !ruby/object:Gem::Version
124
+ version: 5.10.1
125
+ - !ruby/object:Gem::Dependency
126
+ name: appraisal
127
+ requirement: !ruby/object:Gem::Requirement
128
+ requirements:
129
+ - - "~>"
130
+ - !ruby/object:Gem::Version
131
+ version: '2.2'
132
+ type: :development
133
+ prerelease: false
134
+ version_requirements: !ruby/object:Gem::Requirement
135
+ requirements:
136
+ - - "~>"
137
+ - !ruby/object:Gem::Version
138
+ version: '2.2'
139
+ - !ruby/object:Gem::Dependency
140
+ name: yard
141
+ requirement: !ruby/object:Gem::Requirement
142
+ requirements:
143
+ - - "~>"
144
+ - !ruby/object:Gem::Version
145
+ version: '0.9'
146
+ type: :development
147
+ prerelease: false
148
+ version_requirements: !ruby/object:Gem::Requirement
149
+ requirements:
150
+ - - "~>"
151
+ - !ruby/object:Gem::Version
152
+ version: '0.9'
153
+ - !ruby/object:Gem::Dependency
154
+ name: webmock
155
+ requirement: !ruby/object:Gem::Requirement
156
+ requirements:
157
+ - - "~>"
158
+ - !ruby/object:Gem::Version
159
+ version: '2.0'
160
+ type: :development
161
+ prerelease: false
162
+ version_requirements: !ruby/object:Gem::Requirement
163
+ requirements:
164
+ - - "~>"
165
+ - !ruby/object:Gem::Version
166
+ version: '2.0'
167
+ - !ruby/object:Gem::Dependency
168
+ name: builder
169
+ requirement: !ruby/object:Gem::Requirement
170
+ requirements:
171
+ - - ">="
172
+ - !ruby/object:Gem::Version
173
+ version: '0'
174
+ type: :development
175
+ prerelease: false
176
+ version_requirements: !ruby/object:Gem::Requirement
177
+ requirements:
178
+ - - ">="
179
+ - !ruby/object:Gem::Version
180
+ version: '0'
181
+ - !ruby/object:Gem::Dependency
182
+ name: ruby-prof
183
+ requirement: !ruby/object:Gem::Requirement
184
+ requirements:
185
+ - - ">="
186
+ - !ruby/object:Gem::Version
187
+ version: '0'
188
+ type: :development
189
+ prerelease: false
190
+ version_requirements: !ruby/object:Gem::Requirement
191
+ requirements:
192
+ - - ">="
193
+ - !ruby/object:Gem::Version
194
+ version: '0'
195
+ - !ruby/object:Gem::Dependency
196
+ name: sqlite3
197
+ requirement: !ruby/object:Gem::Requirement
198
+ requirements:
199
+ - - "~>"
200
+ - !ruby/object:Gem::Version
201
+ version: 1.3.6
202
+ type: :development
203
+ prerelease: false
204
+ version_requirements: !ruby/object:Gem::Requirement
205
+ requirements:
206
+ - - "~>"
207
+ - !ruby/object:Gem::Version
208
+ version: 1.3.6
209
+ - !ruby/object:Gem::Dependency
210
+ name: climate_control
211
+ requirement: !ruby/object:Gem::Requirement
212
+ requirements:
213
+ - - "~>"
214
+ - !ruby/object:Gem::Version
215
+ version: 0.2.0
216
+ type: :development
217
+ prerelease: false
218
+ version_requirements: !ruby/object:Gem::Requirement
219
+ requirements:
220
+ - - "~>"
221
+ - !ruby/object:Gem::Version
222
+ version: 0.2.0
223
+ - !ruby/object:Gem::Dependency
224
+ name: addressable
225
+ requirement: !ruby/object:Gem::Requirement
226
+ requirements:
227
+ - - "~>"
228
+ - !ruby/object:Gem::Version
229
+ version: 2.4.0
230
+ type: :development
231
+ prerelease: false
232
+ version_requirements: !ruby/object:Gem::Requirement
233
+ requirements:
234
+ - - "~>"
235
+ - !ruby/object:Gem::Version
236
+ version: 2.4.0
237
+ - !ruby/object:Gem::Dependency
238
+ name: redcarpet
239
+ requirement: !ruby/object:Gem::Requirement
240
+ requirements:
241
+ - - "~>"
242
+ - !ruby/object:Gem::Version
243
+ version: '3.4'
244
+ type: :development
245
+ prerelease: false
246
+ version_requirements: !ruby/object:Gem::Requirement
247
+ requirements:
248
+ - - "~>"
249
+ - !ruby/object:Gem::Version
250
+ version: '3.4'
251
+ - !ruby/object:Gem::Dependency
252
+ name: pry
253
+ requirement: !ruby/object:Gem::Requirement
254
+ requirements:
255
+ - - "~>"
256
+ - !ruby/object:Gem::Version
257
+ version: 0.10.4
258
+ type: :development
259
+ prerelease: false
260
+ version_requirements: !ruby/object:Gem::Requirement
261
+ requirements:
262
+ - - "~>"
263
+ - !ruby/object:Gem::Version
264
+ version: 0.10.4
265
+ - !ruby/object:Gem::Dependency
266
+ name: pry-stack_explorer
267
+ requirement: !ruby/object:Gem::Requirement
268
+ requirements:
269
+ - - "~>"
270
+ - !ruby/object:Gem::Version
271
+ version: 0.4.9.2
272
+ type: :development
273
+ prerelease: false
274
+ version_requirements: !ruby/object:Gem::Requirement
275
+ requirements:
276
+ - - "~>"
277
+ - !ruby/object:Gem::Version
278
+ version: 0.4.9.2
279
+ - !ruby/object:Gem::Dependency
280
+ name: warning
281
+ requirement: !ruby/object:Gem::Requirement
282
+ requirements:
283
+ - - ">="
284
+ - !ruby/object:Gem::Version
285
+ version: '0'
286
+ type: :development
287
+ prerelease: false
288
+ version_requirements: !ruby/object:Gem::Requirement
289
+ requirements:
290
+ - - ">="
291
+ - !ruby/object:Gem::Version
292
+ version: '0'
293
+ description: |
294
+ ls-trace is LightStep's fork of Datadog’s tracing client for Ruby. It
295
+ is used to trace requests as they flow across web servers, databases and
296
+ microservices so that developers have great visiblity into bottlenecks and
297
+ troublesome requests.
298
+ email:
299
+ - support@lightstep.com
300
+ executables: []
301
+ extensions: []
302
+ extra_rdoc_files: []
303
+ files:
304
+ - ".circleci/config.yml"
305
+ - ".circleci/images/primary/Dockerfile-2.0.0"
306
+ - ".circleci/images/primary/Dockerfile-2.1.10"
307
+ - ".circleci/images/primary/Dockerfile-2.2.10"
308
+ - ".circleci/images/primary/Dockerfile-2.3.8"
309
+ - ".circleci/images/primary/Dockerfile-2.4.6"
310
+ - ".circleci/images/primary/Dockerfile-2.5.6"
311
+ - ".circleci/images/primary/Dockerfile-2.6.4"
312
+ - ".dockerignore"
313
+ - ".env"
314
+ - ".github/CODEOWNERS"
315
+ - ".gitignore"
316
+ - ".rspec"
317
+ - ".rubocop.yml"
318
+ - ".yardopts"
319
+ - Appraisals
320
+ - CHANGELOG.md
321
+ - CONTRIBUTING.md
322
+ - Gemfile
323
+ - LICENSE
324
+ - README.md
325
+ - Rakefile
326
+ - benchmarks/postgres_database.yml
327
+ - benchmarks/sidekiq_test.rb
328
+ - ddtrace.gemspec
329
+ - docker-compose.yml
330
+ - docs/DevelopmentGuide.md
331
+ - docs/GettingStarted.md
332
+ - lib/ddtrace.rb
333
+ - lib/ddtrace/analytics.rb
334
+ - lib/ddtrace/augmentation.rb
335
+ - lib/ddtrace/augmentation/method_wrapper.rb
336
+ - lib/ddtrace/augmentation/method_wrapping.rb
337
+ - lib/ddtrace/augmentation/shim.rb
338
+ - lib/ddtrace/buffer.rb
339
+ - lib/ddtrace/configuration.rb
340
+ - lib/ddtrace/configuration/base.rb
341
+ - lib/ddtrace/configuration/dependency_resolver.rb
342
+ - lib/ddtrace/configuration/option.rb
343
+ - lib/ddtrace/configuration/option_definition.rb
344
+ - lib/ddtrace/configuration/option_definition_set.rb
345
+ - lib/ddtrace/configuration/option_set.rb
346
+ - lib/ddtrace/configuration/options.rb
347
+ - lib/ddtrace/configuration/pin_setup.rb
348
+ - lib/ddtrace/configuration/settings.rb
349
+ - lib/ddtrace/context.rb
350
+ - lib/ddtrace/context_flush.rb
351
+ - lib/ddtrace/contrib/action_pack/action_controller/instrumentation.rb
352
+ - lib/ddtrace/contrib/action_pack/action_controller/patcher.rb
353
+ - lib/ddtrace/contrib/action_pack/configuration/settings.rb
354
+ - lib/ddtrace/contrib/action_pack/ext.rb
355
+ - lib/ddtrace/contrib/action_pack/integration.rb
356
+ - lib/ddtrace/contrib/action_pack/patcher.rb
357
+ - lib/ddtrace/contrib/action_pack/utils.rb
358
+ - lib/ddtrace/contrib/action_view/configuration/settings.rb
359
+ - lib/ddtrace/contrib/action_view/ext.rb
360
+ - lib/ddtrace/contrib/action_view/instrumentation/partial_renderer.rb
361
+ - lib/ddtrace/contrib/action_view/instrumentation/template_renderer.rb
362
+ - lib/ddtrace/contrib/action_view/integration.rb
363
+ - lib/ddtrace/contrib/action_view/patcher.rb
364
+ - lib/ddtrace/contrib/action_view/utils.rb
365
+ - lib/ddtrace/contrib/active_model_serializers/configuration/settings.rb
366
+ - lib/ddtrace/contrib/active_model_serializers/event.rb
367
+ - lib/ddtrace/contrib/active_model_serializers/events.rb
368
+ - lib/ddtrace/contrib/active_model_serializers/events/render.rb
369
+ - lib/ddtrace/contrib/active_model_serializers/events/serialize.rb
370
+ - lib/ddtrace/contrib/active_model_serializers/ext.rb
371
+ - lib/ddtrace/contrib/active_model_serializers/integration.rb
372
+ - lib/ddtrace/contrib/active_model_serializers/patcher.rb
373
+ - lib/ddtrace/contrib/active_record/configuration/resolver.rb
374
+ - lib/ddtrace/contrib/active_record/configuration/settings.rb
375
+ - lib/ddtrace/contrib/active_record/event.rb
376
+ - lib/ddtrace/contrib/active_record/events.rb
377
+ - lib/ddtrace/contrib/active_record/events/instantiation.rb
378
+ - lib/ddtrace/contrib/active_record/events/sql.rb
379
+ - lib/ddtrace/contrib/active_record/ext.rb
380
+ - lib/ddtrace/contrib/active_record/integration.rb
381
+ - lib/ddtrace/contrib/active_record/patcher.rb
382
+ - lib/ddtrace/contrib/active_record/utils.rb
383
+ - lib/ddtrace/contrib/active_support/cache/instrumentation.rb
384
+ - lib/ddtrace/contrib/active_support/cache/patcher.rb
385
+ - lib/ddtrace/contrib/active_support/cache/redis.rb
386
+ - lib/ddtrace/contrib/active_support/configuration/settings.rb
387
+ - lib/ddtrace/contrib/active_support/ext.rb
388
+ - lib/ddtrace/contrib/active_support/integration.rb
389
+ - lib/ddtrace/contrib/active_support/notifications/event.rb
390
+ - lib/ddtrace/contrib/active_support/notifications/subscriber.rb
391
+ - lib/ddtrace/contrib/active_support/notifications/subscription.rb
392
+ - lib/ddtrace/contrib/active_support/patcher.rb
393
+ - lib/ddtrace/contrib/analytics.rb
394
+ - lib/ddtrace/contrib/aws/configuration/settings.rb
395
+ - lib/ddtrace/contrib/aws/ext.rb
396
+ - lib/ddtrace/contrib/aws/instrumentation.rb
397
+ - lib/ddtrace/contrib/aws/integration.rb
398
+ - lib/ddtrace/contrib/aws/parsed_context.rb
399
+ - lib/ddtrace/contrib/aws/patcher.rb
400
+ - lib/ddtrace/contrib/aws/services.rb
401
+ - lib/ddtrace/contrib/concurrent_ruby/configuration/settings.rb
402
+ - lib/ddtrace/contrib/concurrent_ruby/context_composite_executor_service.rb
403
+ - lib/ddtrace/contrib/concurrent_ruby/ext.rb
404
+ - lib/ddtrace/contrib/concurrent_ruby/future_patch.rb
405
+ - lib/ddtrace/contrib/concurrent_ruby/integration.rb
406
+ - lib/ddtrace/contrib/concurrent_ruby/patcher.rb
407
+ - lib/ddtrace/contrib/configurable.rb
408
+ - lib/ddtrace/contrib/configuration/resolver.rb
409
+ - lib/ddtrace/contrib/configuration/settings.rb
410
+ - lib/ddtrace/contrib/dalli/configuration/settings.rb
411
+ - lib/ddtrace/contrib/dalli/ext.rb
412
+ - lib/ddtrace/contrib/dalli/instrumentation.rb
413
+ - lib/ddtrace/contrib/dalli/integration.rb
414
+ - lib/ddtrace/contrib/dalli/patcher.rb
415
+ - lib/ddtrace/contrib/dalli/quantize.rb
416
+ - lib/ddtrace/contrib/delayed_job/configuration/settings.rb
417
+ - lib/ddtrace/contrib/delayed_job/ext.rb
418
+ - lib/ddtrace/contrib/delayed_job/integration.rb
419
+ - lib/ddtrace/contrib/delayed_job/patcher.rb
420
+ - lib/ddtrace/contrib/delayed_job/plugin.rb
421
+ - lib/ddtrace/contrib/elasticsearch/configuration/settings.rb
422
+ - lib/ddtrace/contrib/elasticsearch/ext.rb
423
+ - lib/ddtrace/contrib/elasticsearch/integration.rb
424
+ - lib/ddtrace/contrib/elasticsearch/patcher.rb
425
+ - lib/ddtrace/contrib/elasticsearch/quantize.rb
426
+ - lib/ddtrace/contrib/ethon/configuration/settings.rb
427
+ - lib/ddtrace/contrib/ethon/easy_patch.rb
428
+ - lib/ddtrace/contrib/ethon/ext.rb
429
+ - lib/ddtrace/contrib/ethon/integration.rb
430
+ - lib/ddtrace/contrib/ethon/multi_patch.rb
431
+ - lib/ddtrace/contrib/ethon/patcher.rb
432
+ - lib/ddtrace/contrib/excon/configuration/settings.rb
433
+ - lib/ddtrace/contrib/excon/ext.rb
434
+ - lib/ddtrace/contrib/excon/integration.rb
435
+ - lib/ddtrace/contrib/excon/middleware.rb
436
+ - lib/ddtrace/contrib/excon/patcher.rb
437
+ - lib/ddtrace/contrib/extensions.rb
438
+ - lib/ddtrace/contrib/faraday/configuration/settings.rb
439
+ - lib/ddtrace/contrib/faraday/ext.rb
440
+ - lib/ddtrace/contrib/faraday/integration.rb
441
+ - lib/ddtrace/contrib/faraday/middleware.rb
442
+ - lib/ddtrace/contrib/faraday/patcher.rb
443
+ - lib/ddtrace/contrib/faraday/rack_builder.rb
444
+ - lib/ddtrace/contrib/grape/configuration/settings.rb
445
+ - lib/ddtrace/contrib/grape/endpoint.rb
446
+ - lib/ddtrace/contrib/grape/ext.rb
447
+ - lib/ddtrace/contrib/grape/instrumentation.rb
448
+ - lib/ddtrace/contrib/grape/integration.rb
449
+ - lib/ddtrace/contrib/grape/patcher.rb
450
+ - lib/ddtrace/contrib/graphql/configuration/settings.rb
451
+ - lib/ddtrace/contrib/graphql/ext.rb
452
+ - lib/ddtrace/contrib/graphql/integration.rb
453
+ - lib/ddtrace/contrib/graphql/patcher.rb
454
+ - lib/ddtrace/contrib/grpc/configuration/settings.rb
455
+ - lib/ddtrace/contrib/grpc/datadog_interceptor.rb
456
+ - lib/ddtrace/contrib/grpc/datadog_interceptor/client.rb
457
+ - lib/ddtrace/contrib/grpc/datadog_interceptor/server.rb
458
+ - lib/ddtrace/contrib/grpc/ext.rb
459
+ - lib/ddtrace/contrib/grpc/integration.rb
460
+ - lib/ddtrace/contrib/grpc/intercept_with_datadog.rb
461
+ - lib/ddtrace/contrib/grpc/patcher.rb
462
+ - lib/ddtrace/contrib/http/circuit_breaker.rb
463
+ - lib/ddtrace/contrib/http/configuration/settings.rb
464
+ - lib/ddtrace/contrib/http/ext.rb
465
+ - lib/ddtrace/contrib/http/instrumentation.rb
466
+ - lib/ddtrace/contrib/http/integration.rb
467
+ - lib/ddtrace/contrib/http/patcher.rb
468
+ - lib/ddtrace/contrib/integration.rb
469
+ - lib/ddtrace/contrib/mongodb/configuration/settings.rb
470
+ - lib/ddtrace/contrib/mongodb/ext.rb
471
+ - lib/ddtrace/contrib/mongodb/instrumentation.rb
472
+ - lib/ddtrace/contrib/mongodb/integration.rb
473
+ - lib/ddtrace/contrib/mongodb/parsers.rb
474
+ - lib/ddtrace/contrib/mongodb/patcher.rb
475
+ - lib/ddtrace/contrib/mongodb/subscribers.rb
476
+ - lib/ddtrace/contrib/mysql2/configuration/settings.rb
477
+ - lib/ddtrace/contrib/mysql2/ext.rb
478
+ - lib/ddtrace/contrib/mysql2/instrumentation.rb
479
+ - lib/ddtrace/contrib/mysql2/integration.rb
480
+ - lib/ddtrace/contrib/mysql2/patcher.rb
481
+ - lib/ddtrace/contrib/patchable.rb
482
+ - lib/ddtrace/contrib/patcher.rb
483
+ - lib/ddtrace/contrib/racecar/configuration/settings.rb
484
+ - lib/ddtrace/contrib/racecar/event.rb
485
+ - lib/ddtrace/contrib/racecar/events.rb
486
+ - lib/ddtrace/contrib/racecar/events/batch.rb
487
+ - lib/ddtrace/contrib/racecar/events/message.rb
488
+ - lib/ddtrace/contrib/racecar/ext.rb
489
+ - lib/ddtrace/contrib/racecar/integration.rb
490
+ - lib/ddtrace/contrib/racecar/patcher.rb
491
+ - lib/ddtrace/contrib/rack/configuration/settings.rb
492
+ - lib/ddtrace/contrib/rack/ext.rb
493
+ - lib/ddtrace/contrib/rack/integration.rb
494
+ - lib/ddtrace/contrib/rack/middlewares.rb
495
+ - lib/ddtrace/contrib/rack/patcher.rb
496
+ - lib/ddtrace/contrib/rack/request_queue.rb
497
+ - lib/ddtrace/contrib/rails/configuration/settings.rb
498
+ - lib/ddtrace/contrib/rails/ext.rb
499
+ - lib/ddtrace/contrib/rails/framework.rb
500
+ - lib/ddtrace/contrib/rails/integration.rb
501
+ - lib/ddtrace/contrib/rails/middlewares.rb
502
+ - lib/ddtrace/contrib/rails/patcher.rb
503
+ - lib/ddtrace/contrib/rails/railtie.rb
504
+ - lib/ddtrace/contrib/rails/utils.rb
505
+ - lib/ddtrace/contrib/rake/configuration/settings.rb
506
+ - lib/ddtrace/contrib/rake/ext.rb
507
+ - lib/ddtrace/contrib/rake/instrumentation.rb
508
+ - lib/ddtrace/contrib/rake/integration.rb
509
+ - lib/ddtrace/contrib/rake/patcher.rb
510
+ - lib/ddtrace/contrib/redis/configuration/settings.rb
511
+ - lib/ddtrace/contrib/redis/ext.rb
512
+ - lib/ddtrace/contrib/redis/integration.rb
513
+ - lib/ddtrace/contrib/redis/patcher.rb
514
+ - lib/ddtrace/contrib/redis/quantize.rb
515
+ - lib/ddtrace/contrib/redis/tags.rb
516
+ - lib/ddtrace/contrib/registerable.rb
517
+ - lib/ddtrace/contrib/registry.rb
518
+ - lib/ddtrace/contrib/resque/configuration/settings.rb
519
+ - lib/ddtrace/contrib/resque/ext.rb
520
+ - lib/ddtrace/contrib/resque/integration.rb
521
+ - lib/ddtrace/contrib/resque/patcher.rb
522
+ - lib/ddtrace/contrib/resque/resque_job.rb
523
+ - lib/ddtrace/contrib/rest_client/configuration/settings.rb
524
+ - lib/ddtrace/contrib/rest_client/ext.rb
525
+ - lib/ddtrace/contrib/rest_client/integration.rb
526
+ - lib/ddtrace/contrib/rest_client/patcher.rb
527
+ - lib/ddtrace/contrib/rest_client/request_patch.rb
528
+ - lib/ddtrace/contrib/sequel/configuration/settings.rb
529
+ - lib/ddtrace/contrib/sequel/database.rb
530
+ - lib/ddtrace/contrib/sequel/dataset.rb
531
+ - lib/ddtrace/contrib/sequel/ext.rb
532
+ - lib/ddtrace/contrib/sequel/integration.rb
533
+ - lib/ddtrace/contrib/sequel/patcher.rb
534
+ - lib/ddtrace/contrib/sequel/utils.rb
535
+ - lib/ddtrace/contrib/shoryuken/configuration/settings.rb
536
+ - lib/ddtrace/contrib/shoryuken/ext.rb
537
+ - lib/ddtrace/contrib/shoryuken/integration.rb
538
+ - lib/ddtrace/contrib/shoryuken/patcher.rb
539
+ - lib/ddtrace/contrib/shoryuken/tracer.rb
540
+ - lib/ddtrace/contrib/sidekiq/client_tracer.rb
541
+ - lib/ddtrace/contrib/sidekiq/configuration/settings.rb
542
+ - lib/ddtrace/contrib/sidekiq/ext.rb
543
+ - lib/ddtrace/contrib/sidekiq/integration.rb
544
+ - lib/ddtrace/contrib/sidekiq/patcher.rb
545
+ - lib/ddtrace/contrib/sidekiq/server_tracer.rb
546
+ - lib/ddtrace/contrib/sidekiq/tracing.rb
547
+ - lib/ddtrace/contrib/sinatra/configuration/settings.rb
548
+ - lib/ddtrace/contrib/sinatra/env.rb
549
+ - lib/ddtrace/contrib/sinatra/ext.rb
550
+ - lib/ddtrace/contrib/sinatra/headers.rb
551
+ - lib/ddtrace/contrib/sinatra/integration.rb
552
+ - lib/ddtrace/contrib/sinatra/patcher.rb
553
+ - lib/ddtrace/contrib/sinatra/tracer.rb
554
+ - lib/ddtrace/contrib/sinatra/tracer_middleware.rb
555
+ - lib/ddtrace/contrib/sucker_punch/configuration/settings.rb
556
+ - lib/ddtrace/contrib/sucker_punch/exception_handler.rb
557
+ - lib/ddtrace/contrib/sucker_punch/ext.rb
558
+ - lib/ddtrace/contrib/sucker_punch/instrumentation.rb
559
+ - lib/ddtrace/contrib/sucker_punch/integration.rb
560
+ - lib/ddtrace/contrib/sucker_punch/patcher.rb
561
+ - lib/ddtrace/correlation.rb
562
+ - lib/ddtrace/diagnostics/health.rb
563
+ - lib/ddtrace/distributed_tracing/headers/b3.rb
564
+ - lib/ddtrace/distributed_tracing/headers/b3_single.rb
565
+ - lib/ddtrace/distributed_tracing/headers/datadog.rb
566
+ - lib/ddtrace/distributed_tracing/headers/headers.rb
567
+ - lib/ddtrace/distributed_tracing/headers/helpers.rb
568
+ - lib/ddtrace/encoding.rb
569
+ - lib/ddtrace/environment.rb
570
+ - lib/ddtrace/error.rb
571
+ - lib/ddtrace/ext/analytics.rb
572
+ - lib/ddtrace/ext/app_types.rb
573
+ - lib/ddtrace/ext/diagnostics.rb
574
+ - lib/ddtrace/ext/distributed.rb
575
+ - lib/ddtrace/ext/errors.rb
576
+ - lib/ddtrace/ext/forced_tracing.rb
577
+ - lib/ddtrace/ext/http.rb
578
+ - lib/ddtrace/ext/manual_tracing.rb
579
+ - lib/ddtrace/ext/metrics.rb
580
+ - lib/ddtrace/ext/net.rb
581
+ - lib/ddtrace/ext/priority.rb
582
+ - lib/ddtrace/ext/runtime.rb
583
+ - lib/ddtrace/ext/sql.rb
584
+ - lib/ddtrace/ext/transport.rb
585
+ - lib/ddtrace/forced_tracing.rb
586
+ - lib/ddtrace/logger.rb
587
+ - lib/ddtrace/metrics.rb
588
+ - lib/ddtrace/monkey.rb
589
+ - lib/ddtrace/opentracer.rb
590
+ - lib/ddtrace/opentracer/binary_propagator.rb
591
+ - lib/ddtrace/opentracer/carrier.rb
592
+ - lib/ddtrace/opentracer/distributed_headers.rb
593
+ - lib/ddtrace/opentracer/global_tracer.rb
594
+ - lib/ddtrace/opentracer/propagator.rb
595
+ - lib/ddtrace/opentracer/rack_propagator.rb
596
+ - lib/ddtrace/opentracer/scope.rb
597
+ - lib/ddtrace/opentracer/scope_manager.rb
598
+ - lib/ddtrace/opentracer/span.rb
599
+ - lib/ddtrace/opentracer/span_context.rb
600
+ - lib/ddtrace/opentracer/span_context_factory.rb
601
+ - lib/ddtrace/opentracer/text_map_propagator.rb
602
+ - lib/ddtrace/opentracer/thread_local_scope.rb
603
+ - lib/ddtrace/opentracer/thread_local_scope_manager.rb
604
+ - lib/ddtrace/opentracer/tracer.rb
605
+ - lib/ddtrace/patcher.rb
606
+ - lib/ddtrace/pin.rb
607
+ - lib/ddtrace/pipeline.rb
608
+ - lib/ddtrace/pipeline/span_filter.rb
609
+ - lib/ddtrace/pipeline/span_processor.rb
610
+ - lib/ddtrace/propagation/grpc_propagator.rb
611
+ - lib/ddtrace/propagation/http_propagator.rb
612
+ - lib/ddtrace/provider.rb
613
+ - lib/ddtrace/quantization/hash.rb
614
+ - lib/ddtrace/quantization/http.rb
615
+ - lib/ddtrace/runtime/cgroup.rb
616
+ - lib/ddtrace/runtime/class_count.rb
617
+ - lib/ddtrace/runtime/container.rb
618
+ - lib/ddtrace/runtime/gc.rb
619
+ - lib/ddtrace/runtime/identity.rb
620
+ - lib/ddtrace/runtime/metrics.rb
621
+ - lib/ddtrace/runtime/object_space.rb
622
+ - lib/ddtrace/runtime/socket.rb
623
+ - lib/ddtrace/runtime/thread_count.rb
624
+ - lib/ddtrace/sampler.rb
625
+ - lib/ddtrace/span.rb
626
+ - lib/ddtrace/sync_writer.rb
627
+ - lib/ddtrace/tracer.rb
628
+ - lib/ddtrace/transport/http.rb
629
+ - lib/ddtrace/transport/http/adapters/net.rb
630
+ - lib/ddtrace/transport/http/adapters/registry.rb
631
+ - lib/ddtrace/transport/http/adapters/test.rb
632
+ - lib/ddtrace/transport/http/adapters/unix_socket.rb
633
+ - lib/ddtrace/transport/http/api.rb
634
+ - lib/ddtrace/transport/http/api/endpoint.rb
635
+ - lib/ddtrace/transport/http/api/fallbacks.rb
636
+ - lib/ddtrace/transport/http/api/instance.rb
637
+ - lib/ddtrace/transport/http/api/map.rb
638
+ - lib/ddtrace/transport/http/api/spec.rb
639
+ - lib/ddtrace/transport/http/builder.rb
640
+ - lib/ddtrace/transport/http/client.rb
641
+ - lib/ddtrace/transport/http/env.rb
642
+ - lib/ddtrace/transport/http/response.rb
643
+ - lib/ddtrace/transport/http/statistics.rb
644
+ - lib/ddtrace/transport/http/traces.rb
645
+ - lib/ddtrace/transport/parcel.rb
646
+ - lib/ddtrace/transport/request.rb
647
+ - lib/ddtrace/transport/response.rb
648
+ - lib/ddtrace/transport/statistics.rb
649
+ - lib/ddtrace/transport/traces.rb
650
+ - lib/ddtrace/utils.rb
651
+ - lib/ddtrace/utils/database.rb
652
+ - lib/ddtrace/utils/time.rb
653
+ - lib/ddtrace/vendor/active_record/connection_specification.rb
654
+ - lib/ddtrace/version.rb
655
+ - lib/ddtrace/workers.rb
656
+ - lib/ddtrace/writer.rb
657
+ - tasks/release_gem.rake
658
+ homepage: https://github.com/lightstep/dd-trace-rb
659
+ licenses:
660
+ - BSD-3-Clause
661
+ metadata:
662
+ allowed_push_host: https://rubygems.org
663
+ post_install_message:
664
+ rdoc_options: []
665
+ require_paths:
666
+ - lib
667
+ required_ruby_version: !ruby/object:Gem::Requirement
668
+ requirements:
669
+ - - ">="
670
+ - !ruby/object:Gem::Version
671
+ version: 2.0.0
672
+ required_rubygems_version: !ruby/object:Gem::Requirement
673
+ requirements:
674
+ - - ">="
675
+ - !ruby/object:Gem::Version
676
+ version: '0'
677
+ requirements: []
678
+ rubygems_version: 3.0.3
679
+ signing_key:
680
+ specification_version: 4
681
+ summary: LightStep fork of dd-trace for tracing code for your Ruby applications
682
+ test_files: []