ls-trace 0.1.1

Sign up to get free protection for your applications and to get access to all the features.
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: []