rails-tracer 0.4.3 → 0.5.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.gitignore +3 -0
- data/{.ruby-verison → .ruby-version} +0 -0
- data/.travis.yml +15 -0
- data/Appraisals +24 -0
- data/README.md +55 -3
- data/Rakefile +2 -0
- data/gemfiles/.bundle/config +2 -0
- data/gemfiles/rails_32.gemfile +11 -0
- data/gemfiles/rails_4.gemfile +10 -0
- data/gemfiles/rails_40.gemfile +10 -0
- data/gemfiles/rails_41.gemfile +10 -0
- data/gemfiles/rails_42.gemfile +10 -0
- data/gemfiles/rails_5.gemfile +10 -0
- data/gemfiles/rails_50.gemfile +10 -0
- data/gemfiles/rails_51.gemfile +10 -0
- data/lib/rails-tracer.rb +1 -0
- data/lib/rails/active_record/tracer.rb +17 -2
- data/lib/rails/active_support/cache/core_ext.rb +11 -0
- data/lib/rails/active_support/cache/manual_tracer.rb +24 -0
- data/lib/rails/active_support/cache/subscriber.rb +62 -0
- data/lib/rails/active_support/cache/tracer.rb +23 -41
- data/lib/rails/rack/tracer.rb +21 -0
- data/lib/rails/span_helpers.rb +8 -1
- data/lib/rails/tracer.rb +21 -0
- data/rails-tracer.gemspec +3 -3
- metadata +38 -24
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: '06269da122bd03c82b26096c0b049ae6dac8101d'
|
4
|
+
data.tar.gz: 5e978290f38de0332dd6a664ee63a59e9e2e31b4
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 627b4b5330b4d183fc5ab62996ada35ed02c39cab486dc17a10fae38848c372221c00bed4d2586da2786d30360ff97f29a8005a1268651c12278efe385ba4a93
|
7
|
+
data.tar.gz: cb4ae564a91f7220464a433fdfbd1f6b67ef1c55592e62c362bc38b62f0fbbc7010af33dcfd672fc612c1aadad3564e1fc3bba4c77082b14f6821c7c9f526a54
|
data/.gitignore
CHANGED
File without changes
|
data/.travis.yml
CHANGED
@@ -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:
|
data/Appraisals
ADDED
@@ -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
|
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,
|
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
|
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
data/lib/rails-tracer.rb
ADDED
@@ -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
|
-
|
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
|
-
|
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.
|
9
|
-
ActiveSupport::
|
10
|
-
|
11
|
-
|
12
|
-
|
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
|
data/lib/rails/rack/tracer.rb
CHANGED
@@ -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
|
data/lib/rails/span_helpers.rb
CHANGED
@@ -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
|
-
|
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
|
data/lib/rails/tracer.rb
CHANGED
@@ -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
|
data/rails-tracer.gemspec
CHANGED
@@ -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.
|
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
|
+
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-
|
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:
|
224
|
+
name: simplecov
|
225
225
|
requirement: !ruby/object:Gem::Requirement
|
226
226
|
requirements:
|
227
|
-
- - "
|
227
|
+
- - ">="
|
228
228
|
- !ruby/object:Gem::Version
|
229
|
-
version: '
|
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: '
|
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:
|
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-
|
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
|