rails-tracer 0.4.3 → 0.5.0

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 62a69e8a77d0cfb988e13b5f133c63889952db0c
4
- data.tar.gz: 0b9ff703a9b38e02bbf7815379b5708140d04d64
3
+ metadata.gz: '06269da122bd03c82b26096c0b049ae6dac8101d'
4
+ data.tar.gz: 5e978290f38de0332dd6a664ee63a59e9e2e31b4
5
5
  SHA512:
6
- metadata.gz: 78932784bc5a6cf6f73471c5725f698ac42ebcf94623021c7ecbfe78b9e6319d37a7d3e14103bea1641e0ba807527404f84eb84bf41405f20e49bc30b8b8098a
7
- data.tar.gz: 0ffe2b8adff7e3562ba7c810bec9a70b7556a10019a38b33384727cefacecd60f8d4c4a1d93010f5d216379cc551b3d14b2184b02ad4fd37aa59fab4f92a188e
6
+ metadata.gz: 627b4b5330b4d183fc5ab62996ada35ed02c39cab486dc17a10fae38848c372221c00bed4d2586da2786d30360ff97f29a8005a1268651c12278efe385ba4a93
7
+ data.tar.gz: cb4ae564a91f7220464a433fdfbd1f6b67ef1c55592e62c362bc38b62f0fbbc7010af33dcfd672fc612c1aadad3564e1fc3bba4c77082b14f6821c7c9f526a54
data/.gitignore CHANGED
@@ -8,5 +8,8 @@
8
8
  /spec/reports/
9
9
  /tmp/
10
10
 
11
+ # Appraisal
12
+ *.gemfile.lock
13
+
11
14
  # rspec failure tracking
12
15
  .rspec_status
File without changes
@@ -4,6 +4,21 @@ rvm:
4
4
  - 2.2
5
5
  - 2.3
6
6
  - 2.4
7
+ gemfile:
8
+ - gemfiles/rails_32.gemfile
9
+ - gemfiles/rails_40.gemfile
10
+ - gemfiles/rails_41.gemfile
11
+ - gemfiles/rails_42.gemfile
12
+ - gemfiles/rails_50.gemfile
13
+ - gemfiles/rails_51.gemfile
14
+ matrix:
15
+ exclude:
16
+ - rvm: 2.4
17
+ gemfile: gemfiles/rails_32.gemfile
18
+ - rvm: 2.4
19
+ gemfile: gemfiles/rails_40.gemfile
20
+ - rvm: 2.4
21
+ gemfile: gemfiles/rails_41.gemfile
7
22
  before_install:
8
23
  - gem install bundler -v 1.15.3
9
24
  services:
@@ -0,0 +1,24 @@
1
+ appraise "rails-32" do
2
+ gem "rails", "~> 3.2.0"
3
+ gem 'test-unit', '~> 3.0'
4
+ end
5
+
6
+ appraise "rails-40" do
7
+ gem "rails", "~> 4.0.0"
8
+ end
9
+
10
+ appraise "rails-41" do
11
+ gem "rails", "~> 4.1.0"
12
+ end
13
+
14
+ appraise "rails-42" do
15
+ gem "rails", "~> 4.2.0"
16
+ end
17
+
18
+ appraise "rails-50" do
19
+ gem "rails", "~> 5.0.0"
20
+ end
21
+
22
+ appraise "rails-51" do
23
+ gem "rails", "~> 5.1.0"
24
+ end
data/README.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # OpenTracing Rails Instrumentation
2
2
 
3
- This gem is an attempt to introduce OpenTracing instrumentation into Rails. It's in a very early stage.
3
+ This gem is an attempt to introduce OpenTracing instrumentation into Rails. It's in an early stage.
4
4
 
5
5
  The following instrumentation is supported:
6
6
 
@@ -24,6 +24,30 @@ Or install it yourself as:
24
24
 
25
25
  $ gem install rails-tracer
26
26
 
27
+ ## Rails::Tracer
28
+
29
+ The library hooks up into Rails using `ActiveSupport::Notifications`, and instruments all previously mentioned modules.
30
+ To enable instrumentation, you can either use sub-tracers directly (see sections below) or global `Rails::Tracer` which
31
+ will enabled all of them (except for Rack/ActionDispatch instrumentation).
32
+
33
+ ### Configuration Options
34
+
35
+ * `tracer: OpenTracing::Tracer` an OT compatible tracer. Default `OpenTracing.global_tracer`
36
+ * `active_span: boolean` an active span provider. Default: `nil`.
37
+ * `active_record: boolean` whether to enable `ActiveRecord` instrumentation. Default: `true`.
38
+ * `active_support_cache: boolean` whether to enable `ActionDispatch::Cache` instrumentation. Default: `true`.
39
+ * `dalli: boolean` if set to `true` you will hook up into `Dalli` low-level details. Default: `false`.
40
+ * `rack: boolean` whether to enable extended `Rack` instrumentation. Default: `false`.
41
+ * `middlewares: ActionDispatch::MiddlewareStack` a middlewares stack. Default: `Rails.configuration.middleware`.
42
+
43
+ ### Usage
44
+
45
+ ```ruby
46
+ require 'rails/tracer'
47
+
48
+ Rails::Tracer.instrument
49
+ ```
50
+
27
51
  ## ActionDispatch
28
52
 
29
53
  When you use `rack-tracer`, the generated operation name corresponds to the request's http method e.g. GET, POST etc.
@@ -41,6 +65,14 @@ Rails.configuration.middleware.use(Rack::Tracer)
41
65
  Rails.configuration.middleware.insert_after(Rack::Tracer, Rails::Rack::Tracer)
42
66
  ```
43
67
 
68
+ or simpler
69
+
70
+ ```ruby
71
+ Rails::Rack::Tracer.instrument
72
+ ```
73
+
74
+ optionally you can pass `tracer` argument to `instrument` method.
75
+
44
76
  ## ActiveRecord
45
77
 
46
78
  The library hooks up into Rails using `ActiveSupport::Notifications`, and instruments all `ActiveRecord` query.
@@ -120,9 +152,29 @@ read("user-1")
120
152
 
121
153
  ## Development
122
154
 
123
- After checking out the repo, run `bin/setup` to install dependencies. Then, run `rake spec` to run the tests. You can also run `bin/console` for an interactive prompt that will allow you to experiment.
155
+ After checking out the repo, install dependencies.
156
+
157
+ ```
158
+ bundle install
159
+ appraisal install
160
+ ```
161
+
162
+ The tests depends on having memcached running locally within docker container. It means you need to install docker, and docker-compose first.
163
+ Once you're done to run the containers:
164
+
165
+ ```
166
+ docker-compose up -d
167
+ ```
168
+
169
+ Then, to run tests for all appraisals:
170
+
171
+ ```
172
+ appraisal bundle exec rspec spec
173
+ ```
174
+
175
+ You can also run `bin/console` for an interactive prompt that will allow you to experiment.
124
176
 
125
- To install this gem onto your local machine, run `bundle exec rake install`. To release a new version, update the version number in `version.rb`, and then run `bundle exec rake release`, which will create a git tag for the version, push git commits and tags, and push the `.gem` file to [rubygems.org](https://rubygems.org).
177
+ To release a new version, update the version number in `version.rb`, and then run `bundle exec rake release`, which will create a git tag for the version, push git commits and tags, and push the `.gem` file to [rubygems.org](https://rubygems.org).
126
178
 
127
179
  ## Contributing
128
180
 
data/Rakefile CHANGED
@@ -1,3 +1,5 @@
1
+ require "rubygems"
2
+ require "bundler/setup"
1
3
  require "bundler/gem_tasks"
2
4
  require "rspec/core/rake_task"
3
5
 
@@ -0,0 +1,2 @@
1
+ ---
2
+ BUNDLE_RETRY: "1"
@@ -0,0 +1,11 @@
1
+ # This file was generated by Appraisal
2
+
3
+ source "https://rubygems.org"
4
+
5
+ gem "pry"
6
+ gem "pry-stack_explorer"
7
+ gem "pry-byebug"
8
+ gem "rails", "~> 3.2.0"
9
+ gem "test-unit", "~> 3.0"
10
+
11
+ gemspec path: "../"
@@ -0,0 +1,10 @@
1
+ # This file was generated by Appraisal
2
+
3
+ source "https://rubygems.org"
4
+
5
+ gem "pry"
6
+ gem "pry-stack_explorer"
7
+ gem "pry-byebug"
8
+ gem "rails", "~> 5.1.3"
9
+
10
+ gemspec path: "../"
@@ -0,0 +1,10 @@
1
+ # This file was generated by Appraisal
2
+
3
+ source "https://rubygems.org"
4
+
5
+ gem "pry"
6
+ gem "pry-stack_explorer"
7
+ gem "pry-byebug"
8
+ gem "rails", "~> 4.0.0"
9
+
10
+ gemspec path: "../"
@@ -0,0 +1,10 @@
1
+ # This file was generated by Appraisal
2
+
3
+ source "https://rubygems.org"
4
+
5
+ gem "pry"
6
+ gem "pry-stack_explorer"
7
+ gem "pry-byebug"
8
+ gem "rails", "~> 4.1.0"
9
+
10
+ gemspec path: "../"
@@ -0,0 +1,10 @@
1
+ # This file was generated by Appraisal
2
+
3
+ source "https://rubygems.org"
4
+
5
+ gem "pry"
6
+ gem "pry-stack_explorer"
7
+ gem "pry-byebug"
8
+ gem "rails", "~> 4.2.0"
9
+
10
+ gemspec path: "../"
@@ -0,0 +1,10 @@
1
+ # This file was generated by Appraisal
2
+
3
+ source "https://rubygems.org"
4
+
5
+ gem "pry"
6
+ gem "pry-stack_explorer"
7
+ gem "pry-byebug"
8
+ gem "rails", "~> 5.1.3"
9
+
10
+ gemspec path: "../"
@@ -0,0 +1,10 @@
1
+ # This file was generated by Appraisal
2
+
3
+ source "https://rubygems.org"
4
+
5
+ gem "pry"
6
+ gem "pry-stack_explorer"
7
+ gem "pry-byebug"
8
+ gem "rails", "~> 5.0.0"
9
+
10
+ gemspec path: "../"
@@ -0,0 +1,10 @@
1
+ # This file was generated by Appraisal
2
+
3
+ source "https://rubygems.org"
4
+
5
+ gem "pry"
6
+ gem "pry-stack_explorer"
7
+ gem "pry-byebug"
8
+ gem "rails", "~> 5.1.0"
9
+
10
+ gemspec path: "../"
@@ -0,0 +1 @@
1
+ require 'rails/tracer'
@@ -4,10 +4,23 @@ module ActiveRecord
4
4
 
5
5
  class << self
6
6
  def instrument(tracer: OpenTracing.global_tracer, active_span: nil)
7
- ::ActiveSupport::Notifications.subscribe('sql.active_record') do |*args|
7
+ clear_subscribers
8
+ @subscriber = ::ActiveSupport::Notifications.subscribe('sql.active_record') do |*args|
8
9
  ActiveRecord::Tracer.sql(tracer: tracer, active_span: active_span, args: args)
9
10
  end
11
+
12
+ self
13
+ end
14
+
15
+ def disable
16
+ if @subscriber
17
+ ActiveSupport::Notifications.unsubscribe(@subscriber)
18
+ @subscriber = nil
19
+ end
20
+
21
+ self
10
22
  end
23
+ alias :clear_subscribers :disable
11
24
 
12
25
  def sql(tracer: OpenTracing.global_tracer, active_span: nil, args:)
13
26
  _, start, finish, _, payload = *args
@@ -20,7 +33,9 @@ module ActiveRecord
20
33
  cached: payload.fetch(:cached, false),
21
34
  connection_id: payload.fetch(:connection_id))
22
35
 
23
- Rails::Tracer::SpanHelpers.set_error(span, payload[:exception_object]) if payload[:exception]
36
+ if payload[:exception]
37
+ Rails::Tracer::SpanHelpers.set_error(span, payload[:exception_object] || payload[:exception])
38
+ end
24
39
 
25
40
  span.finish(end_time: finish)
26
41
  end
@@ -0,0 +1,11 @@
1
+ module ActiveSupport
2
+ module Cache
3
+ class Store
4
+ # See the PR https://github.com/rails/rails/pull/15943/files
5
+ # In order to make the instrumentation to work we need to override the original implementation
6
+ def self.instrument
7
+ true
8
+ end
9
+ end
10
+ end
11
+ end
@@ -0,0 +1,24 @@
1
+ module ActiveSupport
2
+ module Cache
3
+ module Tracer
4
+ class << self
5
+ def start_span(operation_name, tracer: OpenTracing.global_tracer, active_span: nil, start_time: Time.now, event:, **fields)
6
+ span = tracer.start_span(operation_name,
7
+ child_of: active_span.respond_to?(:call) ? active_span.call : active_span,
8
+ start_time: start_time,
9
+ tags: {
10
+ 'component' => 'ActiveSupport::Cache',
11
+ 'span.kind' => 'client',
12
+ 'cache.key' => fields.fetch(:key, 'unknown')
13
+ })
14
+
15
+ if event == 'read'
16
+ span.set_tag('cache.hit', fields.fetch(:hit, false))
17
+ end
18
+
19
+ span
20
+ end
21
+ end
22
+ end
23
+ end
24
+ end
@@ -0,0 +1,62 @@
1
+ module ActiveSupport
2
+ module Cache
3
+ module Tracer
4
+ class Subscriber
5
+ attr_reader :tracer, :active_span, :event, :operation_name
6
+
7
+ def initialize(tracer: OpenTracing.global_tracer, active_span: nil, event:)
8
+ @tracer = tracer
9
+ @active_span = active_span
10
+ @event = event
11
+ @operation_name = "cache.#{event}"
12
+ end
13
+
14
+ # For compatibility with Rails 3.2
15
+ def call(*args)
16
+ _, start, finish, _, payload = *args
17
+
18
+ span = Tracer.start_span(operation_name,
19
+ event: event,
20
+ tracer: tracer,
21
+ active_span: active_span,
22
+ start_time: start,
23
+ **payload)
24
+
25
+ if payload[:exception]
26
+ Rails::Tracer::SpanHelpers.set_error(span, payload[:exception_object] || payload[:exception])
27
+ end
28
+
29
+ span.finish(end_time: finish)
30
+ end
31
+
32
+ def start(name, _, payload)
33
+ span = tracer.start_span(operation_name,
34
+ child_of: active_span.respond_to?(:call) ? active_span.call : active_span,
35
+ tags: {
36
+ 'component' => 'ActiveSupport::Cache',
37
+ 'span.kind' => 'client'
38
+ })
39
+
40
+ payload[:__OT_SPAN__] = span
41
+ end
42
+
43
+ def finish(name, _, payload)
44
+ span = payload[:__OT_SPAN__]
45
+ return unless span
46
+
47
+ span.set_tag('cache.key', payload.fetch(:key, 'unknown'))
48
+
49
+ if event == 'read'
50
+ span.set_tag('cache.hit', payload.fetch(:hit, false))
51
+ end
52
+
53
+ if payload[:exception]
54
+ Rails::Tracer::SpanHelpers.set_error(span, payload[:exception_object] || payload[:exception])
55
+ end
56
+
57
+ span.finish
58
+ end
59
+ end
60
+ end
61
+ end
62
+ end
@@ -1,22 +1,37 @@
1
+ require 'rails/active_support/cache/core_ext'
2
+ require 'rails/active_support/cache/manual_tracer'
3
+ require 'rails/active_support/cache/subscriber'
4
+
1
5
  module ActiveSupport
2
6
  module Cache
3
7
  module Tracer
4
8
  class << self
5
- # TODO: In Rails 4.0+ it's possible to subscribe to start events
6
9
  def instrument(tracer: OpenTracing.global_tracer, active_span: nil, dalli: false)
10
+ clear_subscribers
7
11
  events = %w(read write generate delete clear)
8
- events.each do |event|
9
- ActiveSupport::Notifications.subscribe("cache_#{event}.active_support") do |*args|
10
- ActiveSupport::Cache::Tracer.instrument_event(tracer: tracer,
11
- active_span: active_span,
12
- event: event,
13
- args: args)
14
- end
12
+ @subscribers = events.map do |event|
13
+ subscriber = ActiveSupport::Cache::Tracer::Subscriber.new(tracer: tracer,
14
+ active_span: active_span,
15
+ event: event)
16
+ ActiveSupport::Notifications.subscribe("cache_#{event}.active_support", subscriber)
15
17
  end
16
18
 
17
19
  instrument_dalli(tracer: tracer, active_span: active_span) if dalli
20
+
21
+ self
18
22
  end
19
23
 
24
+ def disable
25
+ if @subscribers
26
+ @subscribers.each { |subscriber| ActiveSupport::Notifications.unsubscribe(subscriber) }
27
+ @subscribers.clear
28
+ end
29
+
30
+ self
31
+ end
32
+
33
+ alias :clear_subscribers :disable
34
+
20
35
  def instrument_dalli(tracer:, active_span:)
21
36
  return unless defined?(ActiveSupport::Cache::DalliStore)
22
37
  require 'rails/active_support/cache/dalli_tracer'
@@ -34,39 +49,6 @@ module ActiveSupport
34
49
  loggers = [tracing_logger, Dalli.logger].compact
35
50
  Dalli.logger = Tracing::CompositeLogger.new(*loggers)
36
51
  end
37
-
38
- def instrument_event(tracer: OpenTracing.global_tracer, active_span: nil, event:, args:)
39
- _, start, finish, _, payload = *args
40
-
41
- span = start_span("cache.#{event}",
42
- event: event,
43
- tracer: tracer,
44
- active_span: active_span,
45
- start_time: start,
46
- **payload)
47
-
48
-
49
- Rails::Tracer::SpanHelpers.set_error(span, payload[:exception_object]) if payload[:exception]
50
-
51
- span.finish(end_time: finish)
52
- end
53
-
54
- def start_span(operation_name, tracer: OpenTracing.global_tracer, active_span: nil, start_time: Time.now, event:, **fields)
55
- span = tracer.start_span(operation_name,
56
- child_of: active_span.respond_to?(:call) ? active_span.call : active_span,
57
- start_time: start_time,
58
- tags: {
59
- 'component' => 'ActiveSupport::Cache',
60
- 'span.kind' => 'client',
61
- 'cache.key' => fields.fetch(:key, 'unknown')
62
- })
63
-
64
- if event == 'read'
65
- span.set_tag('cache.hit', fields.fetch(:hit, false))
66
- end
67
-
68
- span
69
- end
70
52
  end
71
53
  end
72
54
  end
@@ -1,6 +1,27 @@
1
1
  module Rails
2
2
  module Rack
3
3
  class Tracer
4
+ class << self
5
+ def instrument(tracer: OpenTracing.global_tracer, middlewares: Rails.configuration.middleware)
6
+ return unless defined?(::Rack::Tracer)
7
+ @owns_all_middlewares = false
8
+ unless middlewares.include?(::Rack::Tracer)
9
+ middlewares.use(::Rack::Tracer, tracer: tracer)
10
+ @owns_all_middlewares = true
11
+ end
12
+ middlewares.insert_after(::Rack::Tracer, Rails::Rack::Tracer)
13
+ end
14
+
15
+ def disable(middlewares: Rails.configuration.middleware)
16
+ middlewares.delete(Rails::Rack::Tracer)
17
+ if @owns_all_middlewares
18
+ middlewares.delete(::Rack::Tracer)
19
+ @owns_all_middlewares = false
20
+ end
21
+ rescue
22
+ end
23
+ end
24
+
4
25
  def initialize(app)
5
26
  @app = app
6
27
  end
@@ -4,7 +4,14 @@ module Rails
4
4
  class << self
5
5
  def set_error(span, exception)
6
6
  span.set_tag('error', true)
7
- span.log(event: 'error', :'error.object' => exception)
7
+
8
+ case exception
9
+ when Array
10
+ exception_class, exception_message = exception
11
+ span.log(event: 'error', :'error.kind' => exception_class, message: exception_message)
12
+ when Exception
13
+ span.log(event: 'error', :'error.object' => exception)
14
+ end
8
15
  end
9
16
  end
10
17
  end
@@ -2,3 +2,24 @@ require "rails/span_helpers"
2
2
  require "rails/rack/tracer"
3
3
  require "rails/active_record/tracer"
4
4
  require "rails/active_support/cache/tracer"
5
+
6
+ module Rails
7
+ module Tracer
8
+ class << self
9
+ def instrument(tracer: OpenTracing.global_tracer, active_span: nil,
10
+ rack: false, middlewares: Rails.configuration.middleware,
11
+ active_record: true,
12
+ active_support_cache: true, dalli: false)
13
+ Rails::Rack::Tracer.instrument(tracer: tracer, middlewares: middlewares) if rack
14
+ ActiveRecord::Tracer.instrument(tracer: tracer, active_span: active_span) if active_record
15
+ ActiveSupport::Cache::Tracer.instrument(tracer: tracer, active_span: active_span, dalli: dalli) if active_support_cache
16
+ end
17
+
18
+ def disable
19
+ ActiveRecord::Tracer.disable
20
+ ActiveSupport::Cache::Tracer.disable
21
+ Rails::Rack::Tracer.disable
22
+ end
23
+ end
24
+ end
25
+ end
@@ -4,7 +4,7 @@ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
4
 
5
5
  Gem::Specification.new do |spec|
6
6
  spec.name = "rails-tracer"
7
- spec.version = "0.4.3"
7
+ spec.version = "0.5.0"
8
8
  spec.authors = ["iaintshine"]
9
9
  spec.email = ["bodziomista@gmail.com"]
10
10
 
@@ -26,7 +26,6 @@ Gem::Specification.new do |spec|
26
26
  spec.add_dependency "rack-tracer", "~> 0.3.0"
27
27
  spec.add_dependency "method-tracer", "~> 1.1"
28
28
 
29
- spec.add_development_dependency "rails", "~> 5.1.3"
30
29
  spec.add_development_dependency "sqlite3"
31
30
  spec.add_development_dependency "puma", "~> 3.7"
32
31
  spec.add_development_dependency "rspec-rails", "~> 3.6"
@@ -35,10 +34,11 @@ Gem::Specification.new do |spec|
35
34
  spec.add_development_dependency "tracing-logger", "~> 1.0"
36
35
  spec.add_development_dependency "test-tracer", "~> 1.1"
37
36
  spec.add_development_dependency "tracing-matchers", "~> 1.0"
37
+ spec.add_development_dependency "spanmanager", "~> 0.3.0"
38
38
  spec.add_development_dependency "bundler", "~> 1.15"
39
39
  spec.add_development_dependency "rake", "~> 10.0"
40
40
  spec.add_development_dependency "rspec", "~> 3.0"
41
- spec.add_development_dependency "rack", "~> 2.0"
42
41
  spec.add_development_dependency "simplecov"
43
42
  spec.add_development_dependency "simplecov-console"
43
+ spec.add_development_dependency "appraisal"
44
44
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rails-tracer
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.3
4
+ version: 0.5.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - iaintshine
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2017-09-03 00:00:00.000000000 Z
11
+ date: 2017-09-07 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: opentracing
@@ -52,20 +52,6 @@ dependencies:
52
52
  - - "~>"
53
53
  - !ruby/object:Gem::Version
54
54
  version: '1.1'
55
- - !ruby/object:Gem::Dependency
56
- name: rails
57
- requirement: !ruby/object:Gem::Requirement
58
- requirements:
59
- - - "~>"
60
- - !ruby/object:Gem::Version
61
- version: 5.1.3
62
- type: :development
63
- prerelease: false
64
- version_requirements: !ruby/object:Gem::Requirement
65
- requirements:
66
- - - "~>"
67
- - !ruby/object:Gem::Version
68
- version: 5.1.3
69
55
  - !ruby/object:Gem::Dependency
70
56
  name: sqlite3
71
57
  requirement: !ruby/object:Gem::Requirement
@@ -178,6 +164,20 @@ dependencies:
178
164
  - - "~>"
179
165
  - !ruby/object:Gem::Version
180
166
  version: '1.0'
167
+ - !ruby/object:Gem::Dependency
168
+ name: spanmanager
169
+ requirement: !ruby/object:Gem::Requirement
170
+ requirements:
171
+ - - "~>"
172
+ - !ruby/object:Gem::Version
173
+ version: 0.3.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.3.0
181
181
  - !ruby/object:Gem::Dependency
182
182
  name: bundler
183
183
  requirement: !ruby/object:Gem::Requirement
@@ -221,21 +221,21 @@ dependencies:
221
221
  - !ruby/object:Gem::Version
222
222
  version: '3.0'
223
223
  - !ruby/object:Gem::Dependency
224
- name: rack
224
+ name: simplecov
225
225
  requirement: !ruby/object:Gem::Requirement
226
226
  requirements:
227
- - - "~>"
227
+ - - ">="
228
228
  - !ruby/object:Gem::Version
229
- version: '2.0'
229
+ version: '0'
230
230
  type: :development
231
231
  prerelease: false
232
232
  version_requirements: !ruby/object:Gem::Requirement
233
233
  requirements:
234
- - - "~>"
234
+ - - ">="
235
235
  - !ruby/object:Gem::Version
236
- version: '2.0'
236
+ version: '0'
237
237
  - !ruby/object:Gem::Dependency
238
- name: simplecov
238
+ name: simplecov-console
239
239
  requirement: !ruby/object:Gem::Requirement
240
240
  requirements:
241
241
  - - ">="
@@ -249,7 +249,7 @@ dependencies:
249
249
  - !ruby/object:Gem::Version
250
250
  version: '0'
251
251
  - !ruby/object:Gem::Dependency
252
- name: simplecov-console
252
+ name: appraisal
253
253
  requirement: !ruby/object:Gem::Requirement
254
254
  requirements:
255
255
  - - ">="
@@ -271,8 +271,9 @@ extra_rdoc_files: []
271
271
  files:
272
272
  - ".gitignore"
273
273
  - ".rspec"
274
- - ".ruby-verison"
274
+ - ".ruby-version"
275
275
  - ".travis.yml"
276
+ - Appraisals
276
277
  - CHANGELOG.md
277
278
  - Gemfile
278
279
  - LICENSE
@@ -281,8 +282,21 @@ files:
281
282
  - bin/console
282
283
  - bin/setup
283
284
  - docker-compose.yml
285
+ - gemfiles/.bundle/config
286
+ - gemfiles/rails_32.gemfile
287
+ - gemfiles/rails_4.gemfile
288
+ - gemfiles/rails_40.gemfile
289
+ - gemfiles/rails_41.gemfile
290
+ - gemfiles/rails_42.gemfile
291
+ - gemfiles/rails_5.gemfile
292
+ - gemfiles/rails_50.gemfile
293
+ - gemfiles/rails_51.gemfile
294
+ - lib/rails-tracer.rb
284
295
  - lib/rails/active_record/tracer.rb
296
+ - lib/rails/active_support/cache/core_ext.rb
285
297
  - lib/rails/active_support/cache/dalli_tracer.rb
298
+ - lib/rails/active_support/cache/manual_tracer.rb
299
+ - lib/rails/active_support/cache/subscriber.rb
286
300
  - lib/rails/active_support/cache/tracer.rb
287
301
  - lib/rails/rack/tracer.rb
288
302
  - lib/rails/span_helpers.rb