oneapm_rpm 1.2.0 → 1.2.1.rc
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +13 -5
- data/.gitignore +4 -0
- data/CHANGELOG.md +7 -0
- data/README.md +1 -1
- data/lib/one_apm/agent/agent/connect.rb +1 -1
- data/lib/one_apm/agent/cross_app/cross_app_tracing.rb +20 -3
- data/lib/one_apm/agent/javascript_instrumentor.rb +5 -1
- data/lib/one_apm/collector/containers/error_collector.rb +4 -3
- data/lib/one_apm/configuration/default_source.rb +19 -0
- data/lib/one_apm/configuration/server_source.rb +6 -2
- data/lib/one_apm/configuration.rb +44 -14
- data/lib/one_apm/inst/framework/sinatra.rb +1 -1
- data/lib/one_apm/inst/nosql/redis.rb +13 -3
- data/lib/one_apm/rack/browser_monitoring.rb +0 -1
- data/lib/one_apm/rack/middleware_base.rb +5 -0
- data/lib/one_apm/rack/middleware_tracing.rb +5 -3
- data/lib/one_apm/support/method_tracer/helpers.rb +4 -1
- data/lib/one_apm/transaction/class_methods.rb +5 -4
- data/lib/one_apm/transaction/metric_constants.rb +3 -1
- data/lib/one_apm/transaction.rb +5 -2
- data/lib/one_apm/version.rb +3 -2
- data/lib/oneapm_rpm.rb +1 -1
- metadata +19 -19
checksums.yaml
CHANGED
@@ -1,7 +1,15 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
|
2
|
+
!binary "U0hBMQ==":
|
3
|
+
metadata.gz: !binary |-
|
4
|
+
ZjYzNmI4ZDk2MWZkMTkzOTlmODYzNmYxMGFmMzU4MDI5NjJkMDhjMA==
|
5
|
+
data.tar.gz: !binary |-
|
6
|
+
YzQ0MGYyZjI2MGYxNzQ4ODQwYjdiZjNkYWE0ZjZiYjE0YmYwMzhhZQ==
|
5
7
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
|
8
|
+
metadata.gz: !binary |-
|
9
|
+
YTg3NmM1MWVhODgzODY0MWNkMzA5MDk0OTMzNzQ4YjY5YWViM2Y0ZmZiNGEy
|
10
|
+
ZGI3NTg1NDJkZDk4YTJkYmVkODZhZjQ2OGJlMzljNGFkNTVhNDQ2YjZhN2Q4
|
11
|
+
MDE0M2JhMmNhYWI5MTgwMzY0MzFiMjkxOGFiZTA0NDlmZDk2NjU=
|
12
|
+
data.tar.gz: !binary |-
|
13
|
+
YzYwZTk5OGNjNTMzZmI0ZWM0M2ZkNWQ1NzBjMjY2ZjdhYTI5NjNiMWIyODlh
|
14
|
+
NTgwYzZlZDA0ZGJlNjllNTc2Mzk1OTQ4NzlkODJmMWVmMzYxMWQ2Y2Q1ZTdm
|
15
|
+
YmMwN2E4MTI0Njk2Zjk0YzhhMWRmNzVlZWEwNGFjYzBmMDM3ZDY=
|
data/.gitignore
CHANGED
data/CHANGELOG.md
ADDED
data/README.md
CHANGED
@@ -98,7 +98,7 @@ module OneApm
|
|
98
98
|
|
99
99
|
OneApm::Manager.logger.debug "Server provided config: #{config_data.inspect}"
|
100
100
|
server_config = OneApm::Configuration::ServerSource.new(config_data, OneApm::Manager.config)
|
101
|
-
OneApm::Manager.config.
|
101
|
+
OneApm::Manager.config.update_config(server_config)
|
102
102
|
log_connection!(config_data) if @service
|
103
103
|
|
104
104
|
@transaction_rules = OneApm::Support::RulesEngine.create_transaction_rules(config_data)
|
@@ -108,9 +108,8 @@ module OneApm
|
|
108
108
|
metrics = metrics_for(request, response)
|
109
109
|
scoped_metric = metrics.pop
|
110
110
|
|
111
|
-
stats_engine.record_scoped_and_unscoped_metrics(
|
112
|
-
|
113
|
-
|
111
|
+
stats_engine.record_scoped_and_unscoped_metrics(state, scoped_metric, metrics, duration, nil, &cross_app_run_time_block(response, duration))
|
112
|
+
|
114
113
|
# If we don't have segment, something failed during start_trace so
|
115
114
|
# the current segment isn't the HTTP call it should have been.
|
116
115
|
if segment
|
@@ -214,6 +213,7 @@ module OneApm
|
|
214
213
|
|
215
214
|
if response && response_is_crossapp?( response )
|
216
215
|
begin
|
216
|
+
metrics.delete_if{|m| m == "External/#{request.host}/all"}
|
217
217
|
metrics.concat metrics_for_crossapp_response( request, response )
|
218
218
|
rescue => err
|
219
219
|
# Fall back to regular metrics if there's a problem with x-process metrics
|
@@ -331,6 +331,23 @@ module OneApm
|
|
331
331
|
# This is here for when that inevitably comes back to haunt us.
|
332
332
|
end
|
333
333
|
|
334
|
+
def cross_app_run_time_block response, res_time
|
335
|
+
run_time_block = nil
|
336
|
+
if response && response_is_crossapp?( response )
|
337
|
+
xp_id, txn_name, _q_time, run_time, _req_len, _ = extract_appdata( response )
|
338
|
+
run_time_block = Proc.new do |stats|
|
339
|
+
stats.call_count += 1
|
340
|
+
stats.total_call_time += res_time
|
341
|
+
stats.total_exclusive_time += run_time
|
342
|
+
stats.min_call_time = res_time
|
343
|
+
stats.max_call_time = res_time
|
344
|
+
stats.sum_of_squares += res_time**2
|
345
|
+
stats
|
346
|
+
end
|
347
|
+
end
|
348
|
+
run_time_block
|
349
|
+
end
|
350
|
+
|
334
351
|
end
|
335
352
|
end
|
336
353
|
end
|
@@ -101,7 +101,11 @@ module OneApm
|
|
101
101
|
end
|
102
102
|
|
103
103
|
def browser_timing_loader
|
104
|
-
|
104
|
+
if Manager.config[:'browser_monitoring.is_js_text']
|
105
|
+
html_safe_if_needed("\n<script type=\"text/javascript\">#{Manager.config[:js_agent_loader]}</script>")
|
106
|
+
else
|
107
|
+
html_safe_if_needed("\n<script type=\"text/javascript\" src=\"#{Manager.config[:js_agent_loader]}\"></script>")
|
108
|
+
end
|
105
109
|
end
|
106
110
|
|
107
111
|
def browser_timing_config(state)
|
@@ -30,15 +30,16 @@ module OneApm
|
|
30
30
|
OneApm::Manager.config.register_callback(:'error_collector.enabled') do |config_enabled|
|
31
31
|
OneApm::Manager.logger.debug "Errors will #{config_enabled ? '' : 'not '}be sent to the OneApm service."
|
32
32
|
end
|
33
|
-
OneApm::Manager.config.register_callback(:'error_collector.ignore_errors') do |
|
34
|
-
initialize_ignored_errors(
|
33
|
+
OneApm::Manager.config.register_callback(:'error_collector.ignore_errors') do |client_config_errors, server_config_errors|
|
34
|
+
initialize_ignored_errors("#{client_config_errors},#{server_config_errors}")
|
35
35
|
end
|
36
36
|
end
|
37
37
|
|
38
38
|
def initialize_ignored_errors(ignore_errors)
|
39
39
|
@ignore.clear
|
40
40
|
ignore_errors = ignore_errors.split(",") if ignore_errors.is_a? String
|
41
|
-
ignore_errors.
|
41
|
+
ignore_errors.map(&:strip!)
|
42
|
+
ignore_errors.uniq!
|
42
43
|
ignore(ignore_errors)
|
43
44
|
end
|
44
45
|
|
@@ -766,6 +766,12 @@ module OneApm
|
|
766
766
|
:type => Boolean,
|
767
767
|
:description => 'Enable or disable HTTPS instrumentation by JavaScript agent on HTTP pages.'
|
768
768
|
},
|
769
|
+
:'browser_monitoring.is_js_text' => {
|
770
|
+
:default => false,
|
771
|
+
:public => true,
|
772
|
+
:type => Boolean,
|
773
|
+
:description => 'Enable or disable insert js agent as text'
|
774
|
+
},
|
769
775
|
:js_agent_loader => {
|
770
776
|
:default => '',
|
771
777
|
:public => false,
|
@@ -1024,6 +1030,19 @@ module OneApm
|
|
1024
1030
|
:public => true,
|
1025
1031
|
:type => Boolean,
|
1026
1032
|
:description => 'enable standalone mode of event_machine'
|
1033
|
+
},
|
1034
|
+
:'redis.ignore_commands' => {
|
1035
|
+
:default => [],
|
1036
|
+
:allow_nil => true,
|
1037
|
+
:public => true,
|
1038
|
+
:type => Array,
|
1039
|
+
:description => 'A list of redis commands that will be ignore.'
|
1040
|
+
},
|
1041
|
+
:disable_rails_middleware => {
|
1042
|
+
:default => true,
|
1043
|
+
:public => true,
|
1044
|
+
:type => Boolean,
|
1045
|
+
:description => 'Defines whether the agent will wrap middlewares which are installed Rails.'
|
1027
1046
|
}
|
1028
1047
|
}.freeze
|
1029
1048
|
end
|
@@ -15,7 +15,7 @@ module OneApm
|
|
15
15
|
end
|
16
16
|
end
|
17
17
|
|
18
|
-
if hash['browser_monitoring']
|
18
|
+
if hash['browser_monitoring'] && hash['browser_monitoring']['transform']
|
19
19
|
hash['browser_monitoring']['auto_instrument'] = hash['browser_monitoring']['transform']
|
20
20
|
end
|
21
21
|
|
@@ -23,9 +23,13 @@ module OneApm
|
|
23
23
|
self[:web_transactions_apdex] = hash.delete('web_transactions_apdex')
|
24
24
|
end
|
25
25
|
|
26
|
+
if hash['error_collector']
|
27
|
+
hash['error_collector']['ignore_errors.direction'] = :append
|
28
|
+
end
|
29
|
+
|
26
30
|
dotted_hash = OneApm::Support::DottedHash.new(hash).to_hash
|
27
31
|
apply_feature_gates(dotted_hash, existing_config)
|
28
|
-
|
32
|
+
|
29
33
|
super(dotted_hash)
|
30
34
|
end
|
31
35
|
|
@@ -86,11 +86,24 @@ module OneApm
|
|
86
86
|
log_config(:remove, source)
|
87
87
|
end
|
88
88
|
|
89
|
-
def replace_or_add_config
|
89
|
+
def replace_or_add_config source
|
90
|
+
configure(source) do
|
91
|
+
invoke_callbacks(:add, source)
|
92
|
+
:add
|
93
|
+
end
|
94
|
+
end
|
95
|
+
|
96
|
+
def update_config source
|
97
|
+
configure(source) do
|
98
|
+
_invoke_callbacks_(source)
|
99
|
+
:update
|
100
|
+
end
|
101
|
+
end
|
102
|
+
|
103
|
+
def configure source
|
90
104
|
source.freeze
|
91
105
|
was_finished = finished_configuring?
|
92
|
-
|
93
|
-
invoke_callbacks(:add, source)
|
106
|
+
operation = yield
|
94
107
|
case source
|
95
108
|
when HighSecuritySource then @high_security_source = source
|
96
109
|
when EnvironmentSource then @environment_source = source
|
@@ -101,10 +114,8 @@ module OneApm
|
|
101
114
|
else
|
102
115
|
OneApm::Manager.logger.warn("Invalid config format; config will be ignored: #{source}")
|
103
116
|
end
|
104
|
-
|
105
117
|
reset_cache
|
106
|
-
log_config(
|
107
|
-
|
118
|
+
log_config(operation, source)
|
108
119
|
notify_finished_configuring if !was_finished && finished_configuring?
|
109
120
|
end
|
110
121
|
|
@@ -165,22 +176,41 @@ module OneApm
|
|
165
176
|
proc.call(@cache[key])
|
166
177
|
end
|
167
178
|
|
168
|
-
def
|
179
|
+
def _invoke_callbacks_ source
|
180
|
+
return unless source
|
181
|
+
@directions = directions(source)
|
182
|
+
source.keys.each do |key|
|
183
|
+
_callbacks_(@directions[key], source, key)
|
184
|
+
end
|
185
|
+
end
|
186
|
+
|
187
|
+
def invoke_callbacks direction, source
|
169
188
|
return unless source
|
170
189
|
source.keys.each do |key|
|
190
|
+
_callbacks_(direction, source, key)
|
191
|
+
end
|
192
|
+
end
|
171
193
|
|
172
|
-
|
173
|
-
|
174
|
-
|
175
|
-
|
176
|
-
|
177
|
-
|
178
|
-
|
194
|
+
def _callbacks_ direction, source, key
|
195
|
+
if @cache[key] != source[key]
|
196
|
+
@callbacks[key].each do |proc|
|
197
|
+
case direction
|
198
|
+
when :add then proc.call(source[key])
|
199
|
+
when :append then proc.call(@cache[key], source[key])
|
200
|
+
else proc.call(@cache[key])
|
179
201
|
end
|
180
202
|
end
|
181
203
|
end
|
182
204
|
end
|
183
205
|
|
206
|
+
def directions source
|
207
|
+
h = Hash.new{|h, k| h[k] = :add}
|
208
|
+
source.each do |key, value|
|
209
|
+
h[key] = source[:"#{key}.direction"].to_sym if source[:"#{key}.direction"]
|
210
|
+
end
|
211
|
+
h
|
212
|
+
end
|
213
|
+
|
184
214
|
def notify_finished_configuring
|
185
215
|
OneApm::Manager.agent.events.notify(:finished_configuring)
|
186
216
|
end
|
@@ -137,7 +137,7 @@ module OneApm
|
|
137
137
|
|
138
138
|
def dispatch_with_oneapm
|
139
139
|
request_params = get_request_params
|
140
|
-
filtered_params = OneApm::Support::ParameterFiltering
|
140
|
+
filtered_params = OneApm::Support::ParameterFiltering.apply_filters(request.env, request_params || {})
|
141
141
|
|
142
142
|
name = TransactionNamer.initial_transaction_name(request)
|
143
143
|
perform_action_with_oneapm_trace(:category => :sinatra,
|
@@ -21,14 +21,14 @@ LibraryDetection.defer do
|
|
21
21
|
# +raw_call_command+.
|
22
22
|
|
23
23
|
call_method = ::Redis::Client.new.respond_to?(:call) ? :call : :raw_call_command
|
24
|
-
|
24
|
+
|
25
25
|
def call_with_oneapm_trace(*args, &blk)
|
26
26
|
method_name = args[0].is_a?(Array) ? args[0][0] : args[0]
|
27
|
+
filtered_command = filter method_name
|
27
28
|
callback = proc do |result, metric, elapsed|
|
28
29
|
_send_to_one_apm(args, elapsed)
|
29
30
|
end
|
30
|
-
|
31
|
-
OneApm::Agent::Datastore.wrap("Redis", method_name, nil, callback) do
|
31
|
+
OneApm::Agent::Datastore.wrap("Redis", filtered_command, nil, callback) do
|
32
32
|
call_without_oneapm_trace(*args, &blk)
|
33
33
|
end
|
34
34
|
end
|
@@ -78,6 +78,16 @@ LibraryDetection.defer do
|
|
78
78
|
end
|
79
79
|
OneApm::Agent::Datastore.notice_statement(args.inspect, elapsed)
|
80
80
|
end
|
81
|
+
|
82
|
+
def filter command
|
83
|
+
need_filtered = OneApm::Manager.config[:'redis.ignore_commands'].map(&:to_s).include?(command.to_s)
|
84
|
+
if need_filtered
|
85
|
+
OneApm::Manager.logger.debug "filter command: #{command}"
|
86
|
+
nil
|
87
|
+
else
|
88
|
+
command
|
89
|
+
end
|
90
|
+
end
|
81
91
|
end
|
82
92
|
end
|
83
93
|
end
|
@@ -55,13 +55,15 @@ module OneApm::Rack
|
|
55
55
|
first_middleware = note_transaction_started(env)
|
56
56
|
|
57
57
|
state = OneApm::TransactionState.tl_get
|
58
|
-
|
59
58
|
begin
|
60
|
-
|
61
|
-
|
59
|
+
options = build_transaction_options(env, first_middleware)
|
60
|
+
current_transaction = OneApm::Transaction.start(state, category, options)
|
62
61
|
|
62
|
+
events.notify(:before_call, env) if first_middleware
|
63
63
|
result = (target == self) ? traced_call(env) : target.call(env)
|
64
64
|
|
65
|
+
current_transaction.ignore_frames << options[:transaction_name] if respond_to?(:middleware_ignore?) && middleware_ignore?
|
66
|
+
|
65
67
|
capture_http_response_code(state, result)
|
66
68
|
events.notify(:after_call, env, result) if first_middleware
|
67
69
|
|
@@ -39,7 +39,10 @@ module OneApm
|
|
39
39
|
stack = state.traced_method_stack
|
40
40
|
create_metrics = options.has_key?(:metric) ? options[:metric] : true
|
41
41
|
frame = stack.pop_frame(state, expected_frame, first_name, t1, create_metrics)
|
42
|
-
|
42
|
+
unless create_metrics
|
43
|
+
OneApm::Manager.logger.log_once :debug, "Ignore trace frame: #{first_name}"
|
44
|
+
return
|
45
|
+
end
|
43
46
|
|
44
47
|
duration = t1 - t0
|
45
48
|
exclusive = duration - frame.children_time
|
@@ -15,8 +15,7 @@ module OneApm
|
|
15
15
|
def start(state, category, options)
|
16
16
|
category ||= :controller
|
17
17
|
txn = state.current_transaction
|
18
|
-
|
19
|
-
if txn
|
18
|
+
if txn
|
20
19
|
txn.create_nested_frame(state, category, options)
|
21
20
|
else
|
22
21
|
txn = start_new_transaction(state, category, options)
|
@@ -30,7 +29,6 @@ module OneApm
|
|
30
29
|
|
31
30
|
def stop(state, end_time=Time.now)
|
32
31
|
txn = state.current_transaction
|
33
|
-
|
34
32
|
if txn.nil?
|
35
33
|
OneApm::Manager.logger.error(Transaction::FAILED_TO_STOP_MESSAGE)
|
36
34
|
return
|
@@ -38,6 +36,9 @@ module OneApm
|
|
38
36
|
|
39
37
|
nested_frame = txn.frame_stack.pop
|
40
38
|
|
39
|
+
options = Transaction::NESTED_TRACE_STOP_OPTIONS
|
40
|
+
options = Transaction::TRACE_IGNORE_OPTIONS if !txn.ignore_frames.empty? && txn.ignore_frames.include?(nested_frame.name)
|
41
|
+
|
41
42
|
if txn.frame_stack.empty?
|
42
43
|
txn.stop(state, end_time, nested_frame)
|
43
44
|
state.reset
|
@@ -56,7 +57,7 @@ module OneApm
|
|
56
57
|
nested_name,
|
57
58
|
summary_metrics,
|
58
59
|
nested_frame,
|
59
|
-
|
60
|
+
options,
|
60
61
|
end_time.to_f)
|
61
62
|
end
|
62
63
|
|
@@ -33,7 +33,9 @@ module OneApm
|
|
33
33
|
|
34
34
|
TRACE_OPTIONS_SCOPED = {:metric => true, :scoped_metric => true}.freeze
|
35
35
|
TRACE_OPTIONS_UNSCOPED = {:metric => true, :scoped_metric => false}.freeze
|
36
|
-
|
36
|
+
|
37
|
+
TRACE_IGNORE_OPTIONS = {:metric => false}.freeze
|
38
|
+
|
37
39
|
UNKNOWN_METRIC = '(unknown)'.freeze
|
38
40
|
|
39
41
|
FAILED_TO_STOP_MESSAGE = "Failed during Transaction.stop because there is no current transaction"
|
data/lib/one_apm/transaction.rb
CHANGED
@@ -34,7 +34,8 @@ module OneApm
|
|
34
34
|
:jruby_cpu_start,
|
35
35
|
:process_cpu_start,
|
36
36
|
:http_response_code,
|
37
|
-
:request
|
37
|
+
:request,
|
38
|
+
:ignore_frames
|
38
39
|
|
39
40
|
attr_reader :database_metric_name,
|
40
41
|
:guid,
|
@@ -69,6 +70,7 @@ module OneApm
|
|
69
70
|
@ignore_this_transaction = false
|
70
71
|
@ignore_apdex = false
|
71
72
|
@ignore_enduser = false
|
73
|
+
@ignore_frames = options[:ignore_frames] || []
|
72
74
|
end
|
73
75
|
|
74
76
|
def start(state)
|
@@ -96,6 +98,8 @@ module OneApm
|
|
96
98
|
trace_options = TRACE_OPTIONS_UNSCOPED
|
97
99
|
end
|
98
100
|
|
101
|
+
trace_options = TRACE_IGNORE_OPTIONS if !ignore_frames.empty? && ignore_frames.include?(outermost_frame.name)
|
102
|
+
|
99
103
|
# These metrics are recorded here instead of in record_summary_metrics
|
100
104
|
# in order to capture the exclusive time associated with the outer-most
|
101
105
|
# TT node.
|
@@ -231,7 +235,6 @@ module OneApm
|
|
231
235
|
if options[:filtered_params] && !options[:filtered_params].empty?
|
232
236
|
@filtered_params = options[:filtered_params]
|
233
237
|
end
|
234
|
-
|
235
238
|
frame_stack.push OneApm::Support::MethodTracer::Helpers.trace_execution_scoped_header(state, Time.now.to_f)
|
236
239
|
name_last_frame(options[:transaction_name])
|
237
240
|
|
data/lib/one_apm/version.rb
CHANGED
data/lib/oneapm_rpm.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: oneapm_rpm
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.2.
|
4
|
+
version: 1.2.1.rc
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- oneapm
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-
|
11
|
+
date: 2015-09-14 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rake
|
@@ -28,14 +28,14 @@ dependencies:
|
|
28
28
|
name: minitest
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
31
|
-
- -
|
31
|
+
- - ~>
|
32
32
|
- !ruby/object:Gem::Version
|
33
33
|
version: '4.7'
|
34
34
|
type: :development
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
|
-
- -
|
38
|
+
- - ~>
|
39
39
|
- !ruby/object:Gem::Version
|
40
40
|
version: '4.7'
|
41
41
|
- !ruby/object:Gem::Dependency
|
@@ -56,14 +56,14 @@ dependencies:
|
|
56
56
|
name: minitest-focus
|
57
57
|
requirement: !ruby/object:Gem::Requirement
|
58
58
|
requirements:
|
59
|
-
- -
|
59
|
+
- - ~>
|
60
60
|
- !ruby/object:Gem::Version
|
61
61
|
version: '1.1'
|
62
62
|
type: :development
|
63
63
|
prerelease: false
|
64
64
|
version_requirements: !ruby/object:Gem::Requirement
|
65
65
|
requirements:
|
66
|
-
- -
|
66
|
+
- - ~>
|
67
67
|
- !ruby/object:Gem::Version
|
68
68
|
version: '1.1'
|
69
69
|
- !ruby/object:Gem::Dependency
|
@@ -84,56 +84,56 @@ dependencies:
|
|
84
84
|
name: mocha
|
85
85
|
requirement: !ruby/object:Gem::Requirement
|
86
86
|
requirements:
|
87
|
-
- -
|
87
|
+
- - ~>
|
88
88
|
- !ruby/object:Gem::Version
|
89
89
|
version: 0.13.0
|
90
90
|
type: :development
|
91
91
|
prerelease: false
|
92
92
|
version_requirements: !ruby/object:Gem::Requirement
|
93
93
|
requirements:
|
94
|
-
- -
|
94
|
+
- - ~>
|
95
95
|
- !ruby/object:Gem::Version
|
96
96
|
version: 0.13.0
|
97
97
|
- !ruby/object:Gem::Dependency
|
98
98
|
name: rails
|
99
99
|
requirement: !ruby/object:Gem::Requirement
|
100
100
|
requirements:
|
101
|
-
- -
|
101
|
+
- - ~>
|
102
102
|
- !ruby/object:Gem::Version
|
103
103
|
version: '3.2'
|
104
104
|
type: :development
|
105
105
|
prerelease: false
|
106
106
|
version_requirements: !ruby/object:Gem::Requirement
|
107
107
|
requirements:
|
108
|
-
- -
|
108
|
+
- - ~>
|
109
109
|
- !ruby/object:Gem::Version
|
110
110
|
version: '3.2'
|
111
111
|
- !ruby/object:Gem::Dependency
|
112
112
|
name: pry
|
113
113
|
requirement: !ruby/object:Gem::Requirement
|
114
114
|
requirements:
|
115
|
-
- -
|
115
|
+
- - ~>
|
116
116
|
- !ruby/object:Gem::Version
|
117
117
|
version: 0.9.12
|
118
118
|
type: :development
|
119
119
|
prerelease: false
|
120
120
|
version_requirements: !ruby/object:Gem::Requirement
|
121
121
|
requirements:
|
122
|
-
- -
|
122
|
+
- - ~>
|
123
123
|
- !ruby/object:Gem::Version
|
124
124
|
version: 0.9.12
|
125
125
|
- !ruby/object:Gem::Dependency
|
126
126
|
name: hometown
|
127
127
|
requirement: !ruby/object:Gem::Requirement
|
128
128
|
requirements:
|
129
|
-
- -
|
129
|
+
- - ~>
|
130
130
|
- !ruby/object:Gem::Version
|
131
131
|
version: 0.2.5
|
132
132
|
type: :development
|
133
133
|
prerelease: false
|
134
134
|
version_requirements: !ruby/object:Gem::Requirement
|
135
135
|
requirements:
|
136
|
-
- -
|
136
|
+
- - ~>
|
137
137
|
- !ruby/object:Gem::Version
|
138
138
|
version: 0.2.5
|
139
139
|
- !ruby/object:Gem::Dependency
|
@@ -212,8 +212,9 @@ executables: []
|
|
212
212
|
extensions: []
|
213
213
|
extra_rdoc_files: []
|
214
214
|
files:
|
215
|
-
-
|
216
|
-
-
|
215
|
+
- .gitignore
|
216
|
+
- .rubocop.yml
|
217
|
+
- CHANGELOG.md
|
217
218
|
- Gemfile
|
218
219
|
- Guardfile
|
219
220
|
- LICENSE
|
@@ -490,12 +491,12 @@ require_paths:
|
|
490
491
|
- lib
|
491
492
|
required_ruby_version: !ruby/object:Gem::Requirement
|
492
493
|
requirements:
|
493
|
-
- -
|
494
|
+
- - ! '>='
|
494
495
|
- !ruby/object:Gem::Version
|
495
496
|
version: 1.8.7
|
496
497
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
497
498
|
requirements:
|
498
|
-
- -
|
499
|
+
- - ! '>='
|
499
500
|
- !ruby/object:Gem::Version
|
500
501
|
version: 1.3.5
|
501
502
|
requirements: []
|
@@ -505,4 +506,3 @@ signing_key:
|
|
505
506
|
specification_version: 4
|
506
507
|
summary: OneApm Ruby Agent
|
507
508
|
test_files: []
|
508
|
-
has_rdoc:
|