ghazel-newrelic_rpm 3.1.0.1 → 3.4.0.2
Sign up to get free protection for your applications and to get access to all the features.
- data/CHANGELOG +120 -35
- data/LICENSE +29 -2
- data/README.rdoc +2 -2
- data/bin/mongrel_rpm +0 -0
- data/bin/newrelic +0 -0
- data/bin/newrelic_cmd +0 -0
- data/lib/new_relic/agent.rb +50 -38
- data/lib/new_relic/agent/agent.rb +459 -337
- data/lib/new_relic/agent/beacon_configuration.rb +71 -11
- data/lib/new_relic/agent/browser_monitoring.rb +73 -14
- data/lib/new_relic/agent/busy_calculator.rb +11 -3
- data/lib/new_relic/agent/chained_call.rb +2 -2
- data/lib/new_relic/agent/database.rb +223 -0
- data/lib/new_relic/agent/error_collector.rb +231 -183
- data/lib/new_relic/agent/instrumentation.rb +2 -2
- data/lib/new_relic/agent/instrumentation/active_merchant.rb +10 -2
- data/lib/new_relic/agent/instrumentation/active_record.rb +138 -0
- data/lib/new_relic/agent/instrumentation/acts_as_solr.rb +7 -1
- data/lib/new_relic/agent/instrumentation/authlogic.rb +6 -0
- data/lib/new_relic/agent/instrumentation/controller_instrumentation.rb +46 -14
- data/lib/new_relic/agent/instrumentation/data_mapper.rb +8 -2
- data/lib/new_relic/agent/instrumentation/delayed_job_instrumentation.rb +11 -3
- data/lib/new_relic/agent/instrumentation/memcache.rb +49 -25
- data/lib/new_relic/agent/instrumentation/merb/controller.rb +7 -2
- data/lib/new_relic/agent/instrumentation/merb/errors.rb +7 -1
- data/lib/new_relic/agent/instrumentation/metric_frame.rb +31 -4
- data/lib/new_relic/agent/instrumentation/metric_frame/pop.rb +1 -5
- data/lib/new_relic/agent/instrumentation/net.rb +8 -2
- data/lib/new_relic/agent/instrumentation/passenger_instrumentation.rb +5 -2
- data/lib/new_relic/agent/instrumentation/queue_time.rb +1 -1
- data/lib/new_relic/agent/instrumentation/rails/action_controller.rb +66 -35
- data/lib/new_relic/agent/instrumentation/rails/action_web_service.rb +7 -1
- data/lib/new_relic/agent/instrumentation/rails/errors.rb +7 -1
- data/lib/new_relic/agent/instrumentation/rails3/action_controller.rb +121 -1
- data/lib/new_relic/agent/instrumentation/rails3/errors.rb +7 -1
- data/lib/new_relic/agent/instrumentation/rainbows_instrumentation.rb +21 -0
- data/lib/new_relic/agent/instrumentation/resque.rb +80 -0
- data/lib/new_relic/agent/instrumentation/sinatra.rb +46 -20
- data/lib/new_relic/agent/instrumentation/sunspot.rb +6 -0
- data/lib/new_relic/agent/instrumentation/unicorn_instrumentation.rb +7 -2
- data/lib/new_relic/agent/method_tracer.rb +205 -99
- data/lib/new_relic/agent/new_relic_service.rb +221 -0
- data/lib/new_relic/agent/pipe_channel_manager.rb +161 -0
- data/lib/new_relic/agent/pipe_service.rb +54 -0
- data/lib/new_relic/agent/samplers/delayed_job_sampler.rb +89 -0
- data/lib/new_relic/agent/samplers/memory_sampler.rb +6 -7
- data/lib/new_relic/agent/shim_agent.rb +5 -5
- data/lib/new_relic/agent/sql_sampler.rb +282 -0
- data/lib/new_relic/agent/stats_engine.rb +2 -0
- data/lib/new_relic/agent/stats_engine/gc_profiler.rb +123 -0
- data/lib/new_relic/agent/stats_engine/metric_stats.rb +35 -30
- data/lib/new_relic/agent/stats_engine/samplers.rb +10 -4
- data/lib/new_relic/agent/stats_engine/transactions.rb +28 -87
- data/lib/new_relic/agent/transaction_info.rb +74 -0
- data/lib/new_relic/agent/transaction_sample_builder.rb +18 -3
- data/lib/new_relic/agent/transaction_sampler.rb +108 -20
- data/lib/new_relic/agent/worker_loop.rb +14 -6
- data/lib/new_relic/collection_helper.rb +19 -11
- data/lib/new_relic/command.rb +1 -1
- data/lib/new_relic/commands/deployments.rb +2 -2
- data/lib/new_relic/commands/install.rb +2 -13
- data/lib/new_relic/control.rb +2 -3
- data/lib/new_relic/control/class_methods.rb +12 -6
- data/lib/new_relic/control/configuration.rb +57 -8
- data/lib/new_relic/control/frameworks.rb +10 -0
- data/lib/new_relic/control/frameworks/external.rb +4 -4
- data/lib/new_relic/control/frameworks/merb.rb +2 -1
- data/lib/new_relic/control/frameworks/rails.rb +35 -22
- data/lib/new_relic/control/frameworks/rails3.rb +12 -7
- data/lib/new_relic/control/frameworks/ruby.rb +5 -5
- data/lib/new_relic/control/frameworks/sinatra.rb +1 -4
- data/lib/new_relic/control/instance_methods.rb +38 -12
- data/lib/new_relic/control/instrumentation.rb +23 -4
- data/lib/new_relic/control/logging_methods.rb +70 -15
- data/lib/new_relic/control/server_methods.rb +22 -9
- data/lib/new_relic/delayed_job_injection.rb +16 -3
- data/lib/new_relic/helper.rb +21 -0
- data/lib/new_relic/language_support.rb +95 -0
- data/lib/new_relic/local_environment.rb +92 -48
- data/lib/new_relic/metric_data.rb +7 -2
- data/lib/new_relic/metric_spec.rb +12 -9
- data/lib/new_relic/noticed_error.rb +6 -1
- data/lib/new_relic/rack/browser_monitoring.rb +18 -19
- data/lib/new_relic/rack/developer_mode.rb +3 -2
- data/lib/new_relic/recipes.rb +8 -4
- data/lib/new_relic/stats.rb +17 -60
- data/lib/new_relic/transaction_analysis.rb +2 -1
- data/lib/new_relic/transaction_analysis/segment_summary.rb +4 -2
- data/lib/new_relic/transaction_sample.rb +60 -75
- data/lib/new_relic/transaction_sample/segment.rb +31 -79
- data/lib/new_relic/version.rb +2 -2
- data/lib/newrelic_rpm.rb +1 -1
- data/newrelic.yml +2 -2
- data/newrelic_rpm.gemspec +46 -54
- data/test/active_record_fixtures.rb +3 -3
- data/test/config/newrelic.yml +1 -1
- data/test/fixtures/proc_cpuinfo.txt +575 -0
- data/test/new_relic/agent/agent/connect_test.rb +128 -25
- data/test/new_relic/agent/agent/start_test.rb +9 -94
- data/test/new_relic/agent/agent/start_worker_thread_test.rb +2 -4
- data/test/new_relic/agent/agent_test.rb +51 -78
- data/test/new_relic/agent/agent_test_controller.rb +1 -1
- data/test/new_relic/agent/agent_test_controller_test.rb +49 -33
- data/test/new_relic/agent/beacon_configuration_test.rb +12 -5
- data/test/new_relic/agent/browser_monitoring_test.rb +99 -50
- data/test/new_relic/agent/database_test.rb +161 -0
- data/test/new_relic/agent/error_collector_test.rb +47 -23
- data/test/new_relic/agent/instrumentation/active_record_instrumentation_test.rb +96 -42
- data/test/new_relic/agent/instrumentation/controller_instrumentation_test.rb +0 -2
- data/test/new_relic/agent/instrumentation/instrumentation_test.rb +1 -1
- data/test/new_relic/agent/instrumentation/metric_frame/pop_test.rb +3 -11
- data/test/new_relic/agent/instrumentation/net_instrumentation_test.rb +9 -9
- data/test/new_relic/agent/instrumentation/queue_time_test.rb +6 -11
- data/test/new_relic/agent/memcache_instrumentation_test.rb +54 -18
- data/test/new_relic/agent/method_tracer/class_methods/add_method_tracer_test.rb +1 -1
- data/test/new_relic/agent/method_tracer/instance_methods/trace_execution_scoped_test.rb +1 -1
- data/test/new_relic/agent/method_tracer_test.rb +3 -2
- data/test/new_relic/agent/new_relic_service_test.rb +151 -0
- data/test/new_relic/agent/pipe_channel_manager_test.rb +114 -0
- data/test/new_relic/agent/pipe_service_test.rb +113 -0
- data/test/new_relic/agent/rpm_agent_test.rb +4 -31
- data/test/new_relic/agent/sql_sampler_test.rb +192 -0
- data/test/new_relic/agent/stats_engine/metric_stats_test.rb +19 -18
- data/test/new_relic/agent/stats_engine_test.rb +41 -6
- data/test/new_relic/agent/transaction_info_test.rb +13 -0
- data/test/new_relic/agent/transaction_sample_builder_test.rb +27 -4
- data/test/new_relic/agent/transaction_sampler_test.rb +68 -46
- data/test/new_relic/agent/worker_loop_test.rb +3 -3
- data/test/new_relic/agent_test.rb +242 -0
- data/test/new_relic/collection_helper_test.rb +50 -28
- data/test/new_relic/control/configuration_test.rb +77 -0
- data/test/new_relic/control/logging_methods_test.rb +49 -21
- data/test/new_relic/control_test.rb +115 -54
- data/test/new_relic/delayed_job_injection_test.rb +21 -0
- data/test/new_relic/fake_collector.rb +210 -0
- data/test/new_relic/fake_service.rb +44 -0
- data/test/new_relic/local_environment_test.rb +14 -1
- data/test/new_relic/metric_parser/metric_parser_test.rb +11 -0
- data/test/new_relic/rack/browser_monitoring_test.rb +84 -23
- data/test/new_relic/rack/developer_mode_helper_test.rb +141 -0
- data/test/new_relic/rack/developer_mode_test.rb +31 -0
- data/test/new_relic/stats_test.rb +3 -18
- data/test/new_relic/transaction_analysis/segment_summary_test.rb +14 -0
- data/test/new_relic/transaction_analysis_test.rb +3 -3
- data/test/new_relic/transaction_sample/segment_test.rb +15 -80
- data/test/new_relic/transaction_sample_test.rb +25 -18
- data/test/script/build_test_gem.sh +51 -0
- data/test/script/ci.sh +140 -0
- data/test/script/ci_agent-tests_runner.sh +82 -0
- data/test/script/ci_bench.sh +52 -0
- data/test/script/ci_multiverse_runner.sh +63 -0
- data/test/test_contexts.rb +1 -0
- data/test/test_helper.rb +18 -5
- data/ui/helpers/developer_mode_helper.rb +14 -8
- data/ui/helpers/google_pie_chart.rb +0 -1
- data/ui/views/newrelic/index.rhtml +2 -2
- data/vendor/gems/dependency_detection-0.0.1.build/LICENSE +4 -18
- data/vendor/gems/dependency_detection-0.0.1.build/lib/dependency_detection.rb +10 -0
- data/vendor/gems/metric_parser-0.1.0.pre1/lib/new_relic/metric_parser/mem_cache.rb +11 -11
- data/vendor/gems/metric_parser-0.1.0.pre1/lib/new_relic/metric_parser/metric_parser.rb +17 -4
- data/vendor/gems/metric_parser-0.1.0.pre1/lib/new_relic/metric_parser/view.rb +4 -0
- metadata +50 -36
- data/lib/new_relic/agent/instrumentation/rails/active_record_instrumentation.rb +0 -108
- data/lib/new_relic/agent/instrumentation/rails3/active_record_instrumentation.rb +0 -112
- data/lib/new_relic/agent/samplers/delayed_job_lock_sampler.rb +0 -40
- data/lib/new_relic/data_serialization.rb +0 -84
- data/lib/new_relic/histogram.rb +0 -91
- data/lib/new_relic/rack/metric_app.rb +0 -65
- data/lib/new_relic/rack/mongrel_rpm.ru +0 -28
- data/lib/new_relic/rack/newrelic.yml +0 -27
- data/lib/new_relic/rack_app.rb +0 -6
- data/test/new_relic/data_serialization_test.rb +0 -70
- data/vendor/gems/dependency_detection-0.0.1.build/README +0 -0
- data/vendor/gems/metric_parser-0.1.0.pre1/LICENSE +0 -0
- data/vendor/gems/metric_parser-0.1.0.pre1/README +0 -0
@@ -15,11 +15,13 @@ module NewRelic
|
|
15
15
|
@metric_name = metric_name || '<unknown>'
|
16
16
|
@segment_id = segment_id || object_id
|
17
17
|
end
|
18
|
-
|
18
|
+
|
19
|
+
# sets the final timestamp on a segment to indicate the exit
|
20
|
+
# point of the segment
|
19
21
|
def end_trace(timestamp)
|
20
22
|
@exit_timestamp = timestamp
|
21
23
|
end
|
22
|
-
|
24
|
+
|
23
25
|
def add_called_segment(s)
|
24
26
|
@called_segments ||= []
|
25
27
|
@called_segments << s
|
@@ -30,7 +32,7 @@ module NewRelic
|
|
30
32
|
to_debug_str(0)
|
31
33
|
end
|
32
34
|
|
33
|
-
def to_json
|
35
|
+
def to_json(options={})
|
34
36
|
hash = {
|
35
37
|
:entry_timestamp => @entry_timestamp,
|
36
38
|
:exit_timestamp => @exit_timestamp,
|
@@ -95,12 +97,15 @@ module NewRelic
|
|
95
97
|
end
|
96
98
|
d
|
97
99
|
end
|
100
|
+
|
98
101
|
def count_segments
|
99
102
|
count = 1
|
100
103
|
called_segments.each { | seg | count += seg.count_segments }
|
101
104
|
count
|
102
105
|
end
|
103
|
-
|
106
|
+
|
107
|
+
# Walk through the tree and truncate the segments in a
|
108
|
+
# depth-first manner
|
104
109
|
def truncate(max)
|
105
110
|
return 1 unless @called_segments
|
106
111
|
total, self.called_segments = truncate_each_child(max - 1)
|
@@ -148,6 +153,21 @@ module NewRelic
|
|
148
153
|
end
|
149
154
|
end
|
150
155
|
|
156
|
+
# call the provided block for this segment and each
|
157
|
+
# of the called segments while keeping track of nested segments
|
158
|
+
def each_segment_with_nest_tracking(&block)
|
159
|
+
summary = block.call self
|
160
|
+
summary.current_nest_count += 1 if summary
|
161
|
+
|
162
|
+
if @called_segments
|
163
|
+
@called_segments.each do |segment|
|
164
|
+
segment.each_segment_with_nest_tracking(&block)
|
165
|
+
end
|
166
|
+
end
|
167
|
+
|
168
|
+
summary.current_nest_count -= 1 if summary
|
169
|
+
end
|
170
|
+
|
151
171
|
def find_segment(id)
|
152
172
|
return self if @segment_id == id
|
153
173
|
called_segments.each do |segment|
|
@@ -156,88 +176,20 @@ module NewRelic
|
|
156
176
|
end
|
157
177
|
nil
|
158
178
|
end
|
159
|
-
|
160
|
-
# Perform this in the runtime environment of a managed
|
161
|
-
# application, to explain the sql statement(s) executed within a
|
162
|
-
# segment of a transaction sample. Returns an array of
|
163
|
-
# explanations (which is an array rows consisting of an array of
|
164
|
-
# strings for each column returned by the the explain query)
|
165
|
-
# Note this happens only for statements whose execution time
|
166
|
-
# exceeds a threshold (e.g. 500ms) and only within the slowest
|
167
|
-
# transaction in a report period, selected for shipment to New
|
168
|
-
# Relic
|
179
|
+
|
169
180
|
def explain_sql
|
170
|
-
|
171
|
-
|
172
|
-
statements = sql.split(";\n")
|
173
|
-
statements.map! do |statement|
|
174
|
-
# a small sleep to make sure we yield back to the parent
|
175
|
-
# thread regularly, if there are many explains
|
176
|
-
sleep(0.0001)
|
177
|
-
explain_statement(statement, params[:connection_config])
|
178
|
-
end
|
179
|
-
statements.compact!
|
180
|
-
statements
|
181
|
-
end
|
182
|
-
|
183
|
-
def explain_statement(statement, config)
|
184
|
-
if is_select?(statement)
|
185
|
-
handle_exception_in_explain do
|
186
|
-
connection = NewRelic::TransactionSample.get_connection(config)
|
187
|
-
process_resultset(connection.execute("EXPLAIN #{statement}")) if connection
|
188
|
-
end
|
189
|
-
end
|
181
|
+
NewRelic::Agent::Database.explain_sql(params[:sql],
|
182
|
+
params[:connection_config])
|
190
183
|
end
|
191
|
-
|
192
|
-
def
|
193
|
-
|
194
|
-
# system-defined field separator character
|
195
|
-
first_word, rest_of_statement = statement.split($;, 2)
|
196
|
-
(first_word.upcase == 'SELECT')
|
197
|
-
end
|
198
|
-
|
199
|
-
def process_resultset(items)
|
200
|
-
# The resultset type varies for different drivers. Only thing you can count on is
|
201
|
-
# that it implements each. Also: can't use select_rows because the native postgres
|
202
|
-
# driver doesn't know that method.
|
203
|
-
|
204
|
-
if items.respond_to?(:each)
|
205
|
-
rows = []
|
206
|
-
items.each do |row|
|
207
|
-
columns = []
|
208
|
-
row.each do |column|
|
209
|
-
columns << column.to_s
|
210
|
-
end
|
211
|
-
rows << columns
|
212
|
-
end
|
213
|
-
rows
|
214
|
-
else
|
215
|
-
[items]
|
216
|
-
end
|
217
|
-
end
|
218
|
-
|
219
|
-
|
220
|
-
def handle_exception_in_explain
|
221
|
-
yield
|
222
|
-
rescue Exception => e
|
223
|
-
begin
|
224
|
-
# guarantees no throw from explain_sql
|
225
|
-
NewRelic::Control.instance.log.error("Error getting explain plan: #{e.message}")
|
226
|
-
NewRelic::Control.instance.log.debug(e.backtrace.join("\n"))
|
227
|
-
rescue Exception
|
228
|
-
# double exception. throw up your hands
|
229
|
-
end
|
184
|
+
|
185
|
+
def obfuscated_sql
|
186
|
+
NewRelic::Agent::Database.obfuscate_sql(params[:sql])
|
230
187
|
end
|
231
|
-
|
232
|
-
|
188
|
+
|
233
189
|
def params=(p)
|
234
190
|
@params = p
|
235
191
|
end
|
236
192
|
|
237
|
-
def obfuscated_sql
|
238
|
-
TransactionSample.obfuscate_sql(params[:sql])
|
239
|
-
end
|
240
|
-
|
241
193
|
def called_segments=(segments)
|
242
194
|
@called_segments = segments
|
243
195
|
end
|
data/lib/new_relic/version.rb
CHANGED
@@ -2,9 +2,9 @@
|
|
2
2
|
module NewRelic
|
3
3
|
module VERSION #:nodoc:
|
4
4
|
MAJOR = 3
|
5
|
-
MINOR =
|
5
|
+
MINOR = 4
|
6
6
|
TINY = 0
|
7
|
-
BUILD =
|
7
|
+
BUILD = 1 # Set to nil for a release, 'beta1', 'alpha', etc for prerelease builds
|
8
8
|
STRING = [MAJOR, MINOR, TINY, BUILD].compact.join('.')
|
9
9
|
end
|
10
10
|
|
data/lib/newrelic_rpm.rb
CHANGED
data/newrelic.yml
CHANGED
@@ -63,7 +63,7 @@ common: &default_settings
|
|
63
63
|
# root directory (may be relative or absolute, e.g. 'log/' or
|
64
64
|
# '/var/log/') The agent will attempt to create this directory if it
|
65
65
|
# does not exist.
|
66
|
-
# log_file_path: 'log
|
66
|
+
# log_file_path: 'log'
|
67
67
|
|
68
68
|
# Optionally set the name of the log file, defaults to 'newrelic_agent.log'
|
69
69
|
# log_file_name: 'newrelic_agent.log'
|
@@ -96,7 +96,7 @@ common: &default_settings
|
|
96
96
|
# as Tolerating transactions; and more than four times the apdex_t
|
97
97
|
# value as Frustrating transactions.
|
98
98
|
# For more about the Apdex standard, see
|
99
|
-
# http://
|
99
|
+
# http://newrelic.com/docs/general/apdex
|
100
100
|
|
101
101
|
apdex_t: 0.5
|
102
102
|
|
data/newrelic_rpm.gemspec
CHANGED
@@ -1,24 +1,18 @@
|
|
1
1
|
# Generated by jeweler
|
2
2
|
# DO NOT EDIT THIS FILE DIRECTLY
|
3
|
-
# Instead, edit Jeweler::Tasks in Rakefile, and run
|
3
|
+
# Instead, edit Jeweler::Tasks in Rakefile, and run the gemspec command
|
4
4
|
# -*- encoding: utf-8 -*-
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
|
-
s.name =
|
8
|
-
s.version = "3.
|
7
|
+
s.name = "ghazel-newrelic_rpm"
|
8
|
+
s.version = "3.4.0.2"
|
9
9
|
|
10
|
-
s.required_rubygems_version = Gem::Requirement.new("
|
11
|
-
s.authors = ["Bill Kayser", "Justin George"]
|
12
|
-
s.date =
|
13
|
-
s.description =
|
14
|
-
|
15
|
-
|
16
|
-
in production. The New Relic Ruby Agent is dual-purposed as a either a
|
17
|
-
Gem or plugin, hosted on
|
18
|
-
http://github.com/newrelic/rpm/
|
19
|
-
}
|
20
|
-
s.email = %q{support@newrelic.com}
|
21
|
-
s.executables = ["newrelic_cmd", "newrelic", "mongrel_rpm"]
|
10
|
+
s.required_rubygems_version = Gem::Requirement.new("> 1.3.1") if s.respond_to? :required_rubygems_version=
|
11
|
+
s.authors = ["Bill Kayser", "Jon Guymon", "Justin George", "Darin Swanson"]
|
12
|
+
s.date = "2012-06-25"
|
13
|
+
s.description = "New Relic is a performance management system, developed by New Relic,\nInc (http://www.newrelic.com). New Relic provides you with deep\ninformation about the performance of your web application as it runs\nin production. The New Relic Ruby Agent is dual-purposed as a either a\nGem or plugin, hosted on\nhttp://github.com/newrelic/rpm/\n"
|
14
|
+
s.email = "support@newrelic.com"
|
15
|
+
s.executables = ["mongrel_rpm", "newrelic", "newrelic_cmd"]
|
22
16
|
s.extra_rdoc_files = [
|
23
17
|
"CHANGELOG",
|
24
18
|
"LICENSE",
|
@@ -44,9 +38,11 @@ http://github.com/newrelic/rpm/
|
|
44
38
|
"lib/new_relic/agent/browser_monitoring.rb",
|
45
39
|
"lib/new_relic/agent/busy_calculator.rb",
|
46
40
|
"lib/new_relic/agent/chained_call.rb",
|
41
|
+
"lib/new_relic/agent/database.rb",
|
47
42
|
"lib/new_relic/agent/error_collector.rb",
|
48
43
|
"lib/new_relic/agent/instrumentation.rb",
|
49
44
|
"lib/new_relic/agent/instrumentation/active_merchant.rb",
|
45
|
+
"lib/new_relic/agent/instrumentation/active_record.rb",
|
50
46
|
"lib/new_relic/agent/instrumentation/acts_as_solr.rb",
|
51
47
|
"lib/new_relic/agent/instrumentation/authlogic.rb",
|
52
48
|
"lib/new_relic/agent/instrumentation/controller_instrumentation.rb",
|
@@ -63,25 +59,31 @@ http://github.com/newrelic/rpm/
|
|
63
59
|
"lib/new_relic/agent/instrumentation/rack.rb",
|
64
60
|
"lib/new_relic/agent/instrumentation/rails/action_controller.rb",
|
65
61
|
"lib/new_relic/agent/instrumentation/rails/action_web_service.rb",
|
66
|
-
"lib/new_relic/agent/instrumentation/rails/active_record_instrumentation.rb",
|
67
62
|
"lib/new_relic/agent/instrumentation/rails/errors.rb",
|
68
63
|
"lib/new_relic/agent/instrumentation/rails3/action_controller.rb",
|
69
|
-
"lib/new_relic/agent/instrumentation/rails3/active_record_instrumentation.rb",
|
70
64
|
"lib/new_relic/agent/instrumentation/rails3/errors.rb",
|
65
|
+
"lib/new_relic/agent/instrumentation/resque.rb",
|
71
66
|
"lib/new_relic/agent/instrumentation/sinatra.rb",
|
72
67
|
"lib/new_relic/agent/instrumentation/sunspot.rb",
|
73
68
|
"lib/new_relic/agent/instrumentation/unicorn_instrumentation.rb",
|
69
|
+
"lib/new_relic/agent/instrumentation/rainbows_instrumentation.rb",
|
74
70
|
"lib/new_relic/agent/method_tracer.rb",
|
71
|
+
"lib/new_relic/agent/new_relic_service.rb",
|
72
|
+
"lib/new_relic/agent/pipe_channel_manager.rb",
|
73
|
+
"lib/new_relic/agent/pipe_service.rb",
|
75
74
|
"lib/new_relic/agent/sampler.rb",
|
76
75
|
"lib/new_relic/agent/samplers/cpu_sampler.rb",
|
77
|
-
"lib/new_relic/agent/samplers/
|
76
|
+
"lib/new_relic/agent/samplers/delayed_job_sampler.rb",
|
78
77
|
"lib/new_relic/agent/samplers/memory_sampler.rb",
|
79
78
|
"lib/new_relic/agent/samplers/object_sampler.rb",
|
80
79
|
"lib/new_relic/agent/shim_agent.rb",
|
80
|
+
"lib/new_relic/agent/sql_sampler.rb",
|
81
81
|
"lib/new_relic/agent/stats_engine.rb",
|
82
|
+
"lib/new_relic/agent/stats_engine/gc_profiler.rb",
|
82
83
|
"lib/new_relic/agent/stats_engine/metric_stats.rb",
|
83
84
|
"lib/new_relic/agent/stats_engine/samplers.rb",
|
84
85
|
"lib/new_relic/agent/stats_engine/transactions.rb",
|
86
|
+
"lib/new_relic/agent/transaction_info.rb",
|
85
87
|
"lib/new_relic/agent/transaction_sample_builder.rb",
|
86
88
|
"lib/new_relic/agent/transaction_sampler.rb",
|
87
89
|
"lib/new_relic/agent/worker_loop.rb",
|
@@ -92,6 +94,7 @@ http://github.com/newrelic/rpm/
|
|
92
94
|
"lib/new_relic/control.rb",
|
93
95
|
"lib/new_relic/control/class_methods.rb",
|
94
96
|
"lib/new_relic/control/configuration.rb",
|
97
|
+
"lib/new_relic/control/frameworks.rb",
|
95
98
|
"lib/new_relic/control/frameworks/external.rb",
|
96
99
|
"lib/new_relic/control/frameworks/merb.rb",
|
97
100
|
"lib/new_relic/control/frameworks/rails.rb",
|
@@ -103,9 +106,9 @@ http://github.com/newrelic/rpm/
|
|
103
106
|
"lib/new_relic/control/logging_methods.rb",
|
104
107
|
"lib/new_relic/control/profiling.rb",
|
105
108
|
"lib/new_relic/control/server_methods.rb",
|
106
|
-
"lib/new_relic/data_serialization.rb",
|
107
109
|
"lib/new_relic/delayed_job_injection.rb",
|
108
|
-
"lib/new_relic/
|
110
|
+
"lib/new_relic/helper.rb",
|
111
|
+
"lib/new_relic/language_support.rb",
|
109
112
|
"lib/new_relic/local_environment.rb",
|
110
113
|
"lib/new_relic/merbtasks.rb",
|
111
114
|
"lib/new_relic/metric_data.rb",
|
@@ -114,10 +117,6 @@ http://github.com/newrelic/rpm/
|
|
114
117
|
"lib/new_relic/noticed_error.rb",
|
115
118
|
"lib/new_relic/rack/browser_monitoring.rb",
|
116
119
|
"lib/new_relic/rack/developer_mode.rb",
|
117
|
-
"lib/new_relic/rack/metric_app.rb",
|
118
|
-
"lib/new_relic/rack/mongrel_rpm.ru",
|
119
|
-
"lib/new_relic/rack/newrelic.yml",
|
120
|
-
"lib/new_relic/rack_app.rb",
|
121
120
|
"lib/new_relic/recipes.rb",
|
122
121
|
"lib/new_relic/stats.rb",
|
123
122
|
"lib/new_relic/timer_lib.rb",
|
@@ -140,6 +139,7 @@ http://github.com/newrelic/rpm/
|
|
140
139
|
"test/active_record_fixtures.rb",
|
141
140
|
"test/config/newrelic.yml",
|
142
141
|
"test/config/test_control.rb",
|
142
|
+
"test/fixtures/proc_cpuinfo.txt",
|
143
143
|
"test/new_relic/agent/agent/connect_test.rb",
|
144
144
|
"test/new_relic/agent/agent/start_test.rb",
|
145
145
|
"test/new_relic/agent/agent/start_worker_thread_test.rb",
|
@@ -150,6 +150,7 @@ http://github.com/newrelic/rpm/
|
|
150
150
|
"test/new_relic/agent/beacon_configuration_test.rb",
|
151
151
|
"test/new_relic/agent/browser_monitoring_test.rb",
|
152
152
|
"test/new_relic/agent/busy_calculator_test.rb",
|
153
|
+
"test/new_relic/agent/database_test.rb",
|
153
154
|
"test/new_relic/agent/error_collector/notice_error_test.rb",
|
154
155
|
"test/new_relic/agent/error_collector_test.rb",
|
155
156
|
"test/new_relic/agent/instrumentation/active_record_instrumentation_test.rb",
|
@@ -166,27 +167,38 @@ http://github.com/newrelic/rpm/
|
|
166
167
|
"test/new_relic/agent/method_tracer/instance_methods/trace_execution_scoped_test.rb",
|
167
168
|
"test/new_relic/agent/method_tracer_test.rb",
|
168
169
|
"test/new_relic/agent/mock_scope_listener.rb",
|
170
|
+
"test/new_relic/agent/new_relic_service_test.rb",
|
171
|
+
"test/new_relic/agent/pipe_channel_manager_test.rb",
|
172
|
+
"test/new_relic/agent/pipe_service_test.rb",
|
169
173
|
"test/new_relic/agent/rpm_agent_test.rb",
|
170
174
|
"test/new_relic/agent/sampler_test.rb",
|
171
175
|
"test/new_relic/agent/shim_agent_test.rb",
|
176
|
+
"test/new_relic/agent/sql_sampler_test.rb",
|
172
177
|
"test/new_relic/agent/stats_engine/metric_stats/harvest_test.rb",
|
173
178
|
"test/new_relic/agent/stats_engine/metric_stats_test.rb",
|
174
179
|
"test/new_relic/agent/stats_engine/samplers_test.rb",
|
175
180
|
"test/new_relic/agent/stats_engine_test.rb",
|
181
|
+
"test/new_relic/agent/transaction_info_test.rb",
|
176
182
|
"test/new_relic/agent/transaction_sample_builder_test.rb",
|
177
183
|
"test/new_relic/agent/transaction_sampler_test.rb",
|
178
184
|
"test/new_relic/agent/worker_loop_test.rb",
|
185
|
+
"test/new_relic/agent_test.rb",
|
179
186
|
"test/new_relic/collection_helper_test.rb",
|
180
187
|
"test/new_relic/command/deployments_test.rb",
|
181
188
|
"test/new_relic/control/class_methods_test.rb",
|
189
|
+
"test/new_relic/control/configuration_test.rb",
|
182
190
|
"test/new_relic/control/logging_methods_test.rb",
|
183
191
|
"test/new_relic/control_test.rb",
|
184
|
-
"test/new_relic/
|
192
|
+
"test/new_relic/delayed_job_injection_test.rb",
|
193
|
+
"test/new_relic/fake_collector.rb",
|
194
|
+
"test/new_relic/fake_service.rb",
|
185
195
|
"test/new_relic/local_environment_test.rb",
|
186
196
|
"test/new_relic/metric_data_test.rb",
|
197
|
+
"test/new_relic/metric_parser/metric_parser_test.rb",
|
187
198
|
"test/new_relic/metric_spec_test.rb",
|
188
199
|
"test/new_relic/rack/all_test.rb",
|
189
200
|
"test/new_relic/rack/browser_monitoring_test.rb",
|
201
|
+
"test/new_relic/rack/developer_mode_helper_test.rb",
|
190
202
|
"test/new_relic/rack/developer_mode_test.rb",
|
191
203
|
"test/new_relic/stats_test.rb",
|
192
204
|
"test/new_relic/transaction_analysis/segment_summary_test.rb",
|
@@ -198,6 +210,11 @@ http://github.com/newrelic/rpm/
|
|
198
210
|
"test/new_relic/transaction_sample_subtest_test.rb",
|
199
211
|
"test/new_relic/transaction_sample_test.rb",
|
200
212
|
"test/new_relic/version_number_test.rb",
|
213
|
+
"test/script/build_test_gem.sh",
|
214
|
+
"test/script/ci.sh",
|
215
|
+
"test/script/ci_agent-tests_runner.sh",
|
216
|
+
"test/script/ci_bench.sh",
|
217
|
+
"test/script/ci_multiverse_runner.sh",
|
201
218
|
"test/test_contexts.rb",
|
202
219
|
"test/test_helper.rb",
|
203
220
|
"ui/helpers/developer_mode_helper.rb",
|
@@ -232,11 +249,8 @@ http://github.com/newrelic/rpm/
|
|
232
249
|
"ui/views/newrelic/show_source.rhtml",
|
233
250
|
"ui/views/newrelic/threads.rhtml",
|
234
251
|
"vendor/gems/dependency_detection-0.0.1.build/LICENSE",
|
235
|
-
"vendor/gems/dependency_detection-0.0.1.build/README",
|
236
252
|
"vendor/gems/dependency_detection-0.0.1.build/lib/dependency_detection.rb",
|
237
253
|
"vendor/gems/dependency_detection-0.0.1.build/lib/dependency_detection/version.rb",
|
238
|
-
"vendor/gems/metric_parser-0.1.0.pre1/LICENSE",
|
239
|
-
"vendor/gems/metric_parser-0.1.0.pre1/README",
|
240
254
|
"vendor/gems/metric_parser-0.1.0.pre1/lib/metric_parser.rb",
|
241
255
|
"vendor/gems/metric_parser-0.1.0.pre1/lib/new_relic/metric_parser.rb",
|
242
256
|
"vendor/gems/metric_parser-0.1.0.pre1/lib/new_relic/metric_parser/action_mailer.rb",
|
@@ -281,35 +295,13 @@ http://github.com/newrelic/rpm/
|
|
281
295
|
"vendor/gems/metric_parser-0.1.0.pre1/lib/new_relic/metric_parser/web_service.rb",
|
282
296
|
"vendor/gems/metric_parser-0.1.0.pre1/lib/new_relic/metric_parser/web_transaction.rb"
|
283
297
|
]
|
284
|
-
s.homepage =
|
285
|
-
s.post_install_message =
|
286
|
-
|
287
|
-
|
288
|
-
Developer Mode is now a Rack middleware.
|
289
|
-
|
290
|
-
Developer Mode is no longer available in Rails 2.1 and earlier.
|
291
|
-
However, starting in version 2.12 you can use Developer Mode in any
|
292
|
-
Rack based framework, in addition to Rails. To install developer mode
|
293
|
-
in a non-Rails application, just add NewRelic::Rack::DeveloperMode to
|
294
|
-
your middleware stack.
|
295
|
-
|
296
|
-
If you are using JRuby, we recommend using at least version 1.4 or
|
297
|
-
later because of issues with the implementation of the timeout library.
|
298
|
-
|
299
|
-
Refer to the README.md file for more information.
|
300
|
-
|
301
|
-
Please see http://github.com/newrelic/rpm/blob/master/CHANGELOG
|
302
|
-
for a complete description of the features and enhancements available
|
303
|
-
in version 3.1 of the Ruby Agent.
|
304
|
-
|
305
|
-
}
|
306
|
-
s.rdoc_options = ["--line-numbers", "--inline-source", "--title", "New Relic Ruby Agent"]
|
298
|
+
s.homepage = "http://www.github.com/newrelic/rpm"
|
299
|
+
s.post_install_message = "\nPLEASE NOTE:\n\nDeveloper Mode is now a Rack middleware.\n\nDeveloper Mode is no longer available in Rails 2.1 and earlier.\nHowever, starting in version 2.12 you can use Developer Mode in any\nRack based framework, in addition to Rails. To install developer mode\nin a non-Rails application, just add NewRelic::Rack::DeveloperMode to\nyour middleware stack.\n\nIf you are using JRuby, we recommend using at least version 1.4 or \nlater because of issues with the implementation of the timeout library.\n\nRefer to the README.md file for more information.\n\nPlease see http://github.com/newrelic/rpm/blob/master/CHANGELOG\nfor a complete description of the features and enhancements available\nin version 3.4 of the Ruby Agent.\n \n"
|
300
|
+
s.rdoc_options = ["--charset=UTF-8", "--line-numbers", "--inline-source", "--title", "New Relic Ruby Agent"]
|
307
301
|
s.require_paths = ["lib"]
|
308
|
-
s.
|
309
|
-
s.summary = %q{New Relic Ruby Agent}
|
302
|
+
s.summary = "New Relic Ruby Agent"
|
310
303
|
|
311
304
|
if s.respond_to? :specification_version then
|
312
|
-
current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
|
313
305
|
s.specification_version = 3
|
314
306
|
|
315
307
|
if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
|
@@ -12,7 +12,7 @@ module ActiveRecordFixtures
|
|
12
12
|
ActiveRecordFixtures::Order.teardown
|
13
13
|
begin
|
14
14
|
super
|
15
|
-
rescue
|
15
|
+
rescue => e
|
16
16
|
end
|
17
17
|
end
|
18
18
|
class Order < ActiveRecord::Base
|
@@ -30,7 +30,7 @@ module ActiveRecordFixtures
|
|
30
30
|
|
31
31
|
def self.check_for_table
|
32
32
|
connection.table_exists?(self.table_name)
|
33
|
-
rescue
|
33
|
+
rescue => e
|
34
34
|
false
|
35
35
|
end
|
36
36
|
|
@@ -66,7 +66,7 @@ module ActiveRecordFixtures
|
|
66
66
|
end
|
67
67
|
def self.check_for_table
|
68
68
|
connection.table_exists?(self.table_name) && connection.table_exists?('orders_shipments')
|
69
|
-
rescue
|
69
|
+
rescue => e
|
70
70
|
false
|
71
71
|
end
|
72
72
|
|