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.
Files changed (175) hide show
  1. data/CHANGELOG +120 -35
  2. data/LICENSE +29 -2
  3. data/README.rdoc +2 -2
  4. data/bin/mongrel_rpm +0 -0
  5. data/bin/newrelic +0 -0
  6. data/bin/newrelic_cmd +0 -0
  7. data/lib/new_relic/agent.rb +50 -38
  8. data/lib/new_relic/agent/agent.rb +459 -337
  9. data/lib/new_relic/agent/beacon_configuration.rb +71 -11
  10. data/lib/new_relic/agent/browser_monitoring.rb +73 -14
  11. data/lib/new_relic/agent/busy_calculator.rb +11 -3
  12. data/lib/new_relic/agent/chained_call.rb +2 -2
  13. data/lib/new_relic/agent/database.rb +223 -0
  14. data/lib/new_relic/agent/error_collector.rb +231 -183
  15. data/lib/new_relic/agent/instrumentation.rb +2 -2
  16. data/lib/new_relic/agent/instrumentation/active_merchant.rb +10 -2
  17. data/lib/new_relic/agent/instrumentation/active_record.rb +138 -0
  18. data/lib/new_relic/agent/instrumentation/acts_as_solr.rb +7 -1
  19. data/lib/new_relic/agent/instrumentation/authlogic.rb +6 -0
  20. data/lib/new_relic/agent/instrumentation/controller_instrumentation.rb +46 -14
  21. data/lib/new_relic/agent/instrumentation/data_mapper.rb +8 -2
  22. data/lib/new_relic/agent/instrumentation/delayed_job_instrumentation.rb +11 -3
  23. data/lib/new_relic/agent/instrumentation/memcache.rb +49 -25
  24. data/lib/new_relic/agent/instrumentation/merb/controller.rb +7 -2
  25. data/lib/new_relic/agent/instrumentation/merb/errors.rb +7 -1
  26. data/lib/new_relic/agent/instrumentation/metric_frame.rb +31 -4
  27. data/lib/new_relic/agent/instrumentation/metric_frame/pop.rb +1 -5
  28. data/lib/new_relic/agent/instrumentation/net.rb +8 -2
  29. data/lib/new_relic/agent/instrumentation/passenger_instrumentation.rb +5 -2
  30. data/lib/new_relic/agent/instrumentation/queue_time.rb +1 -1
  31. data/lib/new_relic/agent/instrumentation/rails/action_controller.rb +66 -35
  32. data/lib/new_relic/agent/instrumentation/rails/action_web_service.rb +7 -1
  33. data/lib/new_relic/agent/instrumentation/rails/errors.rb +7 -1
  34. data/lib/new_relic/agent/instrumentation/rails3/action_controller.rb +121 -1
  35. data/lib/new_relic/agent/instrumentation/rails3/errors.rb +7 -1
  36. data/lib/new_relic/agent/instrumentation/rainbows_instrumentation.rb +21 -0
  37. data/lib/new_relic/agent/instrumentation/resque.rb +80 -0
  38. data/lib/new_relic/agent/instrumentation/sinatra.rb +46 -20
  39. data/lib/new_relic/agent/instrumentation/sunspot.rb +6 -0
  40. data/lib/new_relic/agent/instrumentation/unicorn_instrumentation.rb +7 -2
  41. data/lib/new_relic/agent/method_tracer.rb +205 -99
  42. data/lib/new_relic/agent/new_relic_service.rb +221 -0
  43. data/lib/new_relic/agent/pipe_channel_manager.rb +161 -0
  44. data/lib/new_relic/agent/pipe_service.rb +54 -0
  45. data/lib/new_relic/agent/samplers/delayed_job_sampler.rb +89 -0
  46. data/lib/new_relic/agent/samplers/memory_sampler.rb +6 -7
  47. data/lib/new_relic/agent/shim_agent.rb +5 -5
  48. data/lib/new_relic/agent/sql_sampler.rb +282 -0
  49. data/lib/new_relic/agent/stats_engine.rb +2 -0
  50. data/lib/new_relic/agent/stats_engine/gc_profiler.rb +123 -0
  51. data/lib/new_relic/agent/stats_engine/metric_stats.rb +35 -30
  52. data/lib/new_relic/agent/stats_engine/samplers.rb +10 -4
  53. data/lib/new_relic/agent/stats_engine/transactions.rb +28 -87
  54. data/lib/new_relic/agent/transaction_info.rb +74 -0
  55. data/lib/new_relic/agent/transaction_sample_builder.rb +18 -3
  56. data/lib/new_relic/agent/transaction_sampler.rb +108 -20
  57. data/lib/new_relic/agent/worker_loop.rb +14 -6
  58. data/lib/new_relic/collection_helper.rb +19 -11
  59. data/lib/new_relic/command.rb +1 -1
  60. data/lib/new_relic/commands/deployments.rb +2 -2
  61. data/lib/new_relic/commands/install.rb +2 -13
  62. data/lib/new_relic/control.rb +2 -3
  63. data/lib/new_relic/control/class_methods.rb +12 -6
  64. data/lib/new_relic/control/configuration.rb +57 -8
  65. data/lib/new_relic/control/frameworks.rb +10 -0
  66. data/lib/new_relic/control/frameworks/external.rb +4 -4
  67. data/lib/new_relic/control/frameworks/merb.rb +2 -1
  68. data/lib/new_relic/control/frameworks/rails.rb +35 -22
  69. data/lib/new_relic/control/frameworks/rails3.rb +12 -7
  70. data/lib/new_relic/control/frameworks/ruby.rb +5 -5
  71. data/lib/new_relic/control/frameworks/sinatra.rb +1 -4
  72. data/lib/new_relic/control/instance_methods.rb +38 -12
  73. data/lib/new_relic/control/instrumentation.rb +23 -4
  74. data/lib/new_relic/control/logging_methods.rb +70 -15
  75. data/lib/new_relic/control/server_methods.rb +22 -9
  76. data/lib/new_relic/delayed_job_injection.rb +16 -3
  77. data/lib/new_relic/helper.rb +21 -0
  78. data/lib/new_relic/language_support.rb +95 -0
  79. data/lib/new_relic/local_environment.rb +92 -48
  80. data/lib/new_relic/metric_data.rb +7 -2
  81. data/lib/new_relic/metric_spec.rb +12 -9
  82. data/lib/new_relic/noticed_error.rb +6 -1
  83. data/lib/new_relic/rack/browser_monitoring.rb +18 -19
  84. data/lib/new_relic/rack/developer_mode.rb +3 -2
  85. data/lib/new_relic/recipes.rb +8 -4
  86. data/lib/new_relic/stats.rb +17 -60
  87. data/lib/new_relic/transaction_analysis.rb +2 -1
  88. data/lib/new_relic/transaction_analysis/segment_summary.rb +4 -2
  89. data/lib/new_relic/transaction_sample.rb +60 -75
  90. data/lib/new_relic/transaction_sample/segment.rb +31 -79
  91. data/lib/new_relic/version.rb +2 -2
  92. data/lib/newrelic_rpm.rb +1 -1
  93. data/newrelic.yml +2 -2
  94. data/newrelic_rpm.gemspec +46 -54
  95. data/test/active_record_fixtures.rb +3 -3
  96. data/test/config/newrelic.yml +1 -1
  97. data/test/fixtures/proc_cpuinfo.txt +575 -0
  98. data/test/new_relic/agent/agent/connect_test.rb +128 -25
  99. data/test/new_relic/agent/agent/start_test.rb +9 -94
  100. data/test/new_relic/agent/agent/start_worker_thread_test.rb +2 -4
  101. data/test/new_relic/agent/agent_test.rb +51 -78
  102. data/test/new_relic/agent/agent_test_controller.rb +1 -1
  103. data/test/new_relic/agent/agent_test_controller_test.rb +49 -33
  104. data/test/new_relic/agent/beacon_configuration_test.rb +12 -5
  105. data/test/new_relic/agent/browser_monitoring_test.rb +99 -50
  106. data/test/new_relic/agent/database_test.rb +161 -0
  107. data/test/new_relic/agent/error_collector_test.rb +47 -23
  108. data/test/new_relic/agent/instrumentation/active_record_instrumentation_test.rb +96 -42
  109. data/test/new_relic/agent/instrumentation/controller_instrumentation_test.rb +0 -2
  110. data/test/new_relic/agent/instrumentation/instrumentation_test.rb +1 -1
  111. data/test/new_relic/agent/instrumentation/metric_frame/pop_test.rb +3 -11
  112. data/test/new_relic/agent/instrumentation/net_instrumentation_test.rb +9 -9
  113. data/test/new_relic/agent/instrumentation/queue_time_test.rb +6 -11
  114. data/test/new_relic/agent/memcache_instrumentation_test.rb +54 -18
  115. data/test/new_relic/agent/method_tracer/class_methods/add_method_tracer_test.rb +1 -1
  116. data/test/new_relic/agent/method_tracer/instance_methods/trace_execution_scoped_test.rb +1 -1
  117. data/test/new_relic/agent/method_tracer_test.rb +3 -2
  118. data/test/new_relic/agent/new_relic_service_test.rb +151 -0
  119. data/test/new_relic/agent/pipe_channel_manager_test.rb +114 -0
  120. data/test/new_relic/agent/pipe_service_test.rb +113 -0
  121. data/test/new_relic/agent/rpm_agent_test.rb +4 -31
  122. data/test/new_relic/agent/sql_sampler_test.rb +192 -0
  123. data/test/new_relic/agent/stats_engine/metric_stats_test.rb +19 -18
  124. data/test/new_relic/agent/stats_engine_test.rb +41 -6
  125. data/test/new_relic/agent/transaction_info_test.rb +13 -0
  126. data/test/new_relic/agent/transaction_sample_builder_test.rb +27 -4
  127. data/test/new_relic/agent/transaction_sampler_test.rb +68 -46
  128. data/test/new_relic/agent/worker_loop_test.rb +3 -3
  129. data/test/new_relic/agent_test.rb +242 -0
  130. data/test/new_relic/collection_helper_test.rb +50 -28
  131. data/test/new_relic/control/configuration_test.rb +77 -0
  132. data/test/new_relic/control/logging_methods_test.rb +49 -21
  133. data/test/new_relic/control_test.rb +115 -54
  134. data/test/new_relic/delayed_job_injection_test.rb +21 -0
  135. data/test/new_relic/fake_collector.rb +210 -0
  136. data/test/new_relic/fake_service.rb +44 -0
  137. data/test/new_relic/local_environment_test.rb +14 -1
  138. data/test/new_relic/metric_parser/metric_parser_test.rb +11 -0
  139. data/test/new_relic/rack/browser_monitoring_test.rb +84 -23
  140. data/test/new_relic/rack/developer_mode_helper_test.rb +141 -0
  141. data/test/new_relic/rack/developer_mode_test.rb +31 -0
  142. data/test/new_relic/stats_test.rb +3 -18
  143. data/test/new_relic/transaction_analysis/segment_summary_test.rb +14 -0
  144. data/test/new_relic/transaction_analysis_test.rb +3 -3
  145. data/test/new_relic/transaction_sample/segment_test.rb +15 -80
  146. data/test/new_relic/transaction_sample_test.rb +25 -18
  147. data/test/script/build_test_gem.sh +51 -0
  148. data/test/script/ci.sh +140 -0
  149. data/test/script/ci_agent-tests_runner.sh +82 -0
  150. data/test/script/ci_bench.sh +52 -0
  151. data/test/script/ci_multiverse_runner.sh +63 -0
  152. data/test/test_contexts.rb +1 -0
  153. data/test/test_helper.rb +18 -5
  154. data/ui/helpers/developer_mode_helper.rb +14 -8
  155. data/ui/helpers/google_pie_chart.rb +0 -1
  156. data/ui/views/newrelic/index.rhtml +2 -2
  157. data/vendor/gems/dependency_detection-0.0.1.build/LICENSE +4 -18
  158. data/vendor/gems/dependency_detection-0.0.1.build/lib/dependency_detection.rb +10 -0
  159. data/vendor/gems/metric_parser-0.1.0.pre1/lib/new_relic/metric_parser/mem_cache.rb +11 -11
  160. data/vendor/gems/metric_parser-0.1.0.pre1/lib/new_relic/metric_parser/metric_parser.rb +17 -4
  161. data/vendor/gems/metric_parser-0.1.0.pre1/lib/new_relic/metric_parser/view.rb +4 -0
  162. metadata +50 -36
  163. data/lib/new_relic/agent/instrumentation/rails/active_record_instrumentation.rb +0 -108
  164. data/lib/new_relic/agent/instrumentation/rails3/active_record_instrumentation.rb +0 -112
  165. data/lib/new_relic/agent/samplers/delayed_job_lock_sampler.rb +0 -40
  166. data/lib/new_relic/data_serialization.rb +0 -84
  167. data/lib/new_relic/histogram.rb +0 -91
  168. data/lib/new_relic/rack/metric_app.rb +0 -65
  169. data/lib/new_relic/rack/mongrel_rpm.ru +0 -28
  170. data/lib/new_relic/rack/newrelic.yml +0 -27
  171. data/lib/new_relic/rack_app.rb +0 -6
  172. data/test/new_relic/data_serialization_test.rb +0 -70
  173. data/vendor/gems/dependency_detection-0.0.1.build/README +0 -0
  174. data/vendor/gems/metric_parser-0.1.0.pre1/LICENSE +0 -0
  175. 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
- # Walk through the tree and truncate the segments
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
- sql = params[:sql]
171
- return nil unless sql && params[:connection_config]
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 is_select?(statement)
193
- # split the string into at most two segments on the
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
@@ -2,9 +2,9 @@
2
2
  module NewRelic
3
3
  module VERSION #:nodoc:
4
4
  MAJOR = 3
5
- MINOR = 1
5
+ MINOR = 4
6
6
  TINY = 0
7
- BUILD = nil #'0' # Set to nil for a release, 'beta1', 'alpha', etc for prerelease builds
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
@@ -18,7 +18,7 @@
18
18
  # directly.
19
19
  #
20
20
  require 'new_relic/control'
21
- if defined? Merb
21
+ if defined?(Merb) && defined?(Merb::BootLoader)
22
22
  module NewRelic
23
23
  class MerbBootLoader < Merb::BootLoader
24
24
  after Merb::BootLoader::ChooseAdapter
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://support.newrelic.com/faqs/general/apdex
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 'rake gemspec'
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 = %q{ghazel-newrelic_rpm}
8
- s.version = "3.1.0.1"
7
+ s.name = "ghazel-newrelic_rpm"
8
+ s.version = "3.4.0.2"
9
9
 
10
- s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
- s.authors = ["Bill Kayser", "Justin George"]
12
- s.date = %q{2011-06-15}
13
- s.description = %q{New Relic is a performance management system, developed by New Relic,
14
- Inc (http://www.newrelic.com). New Relic provides you with deep
15
- information about the performance of your web application as it runs
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/delayed_job_lock_sampler.rb",
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/histogram.rb",
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/data_serialization_test.rb",
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 = %q{http://www.github.com/newrelic/rpm}
285
- s.post_install_message = %q{
286
- PLEASE NOTE:
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.rubygems_version = %q{1.3.6}
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 Exception => e
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 Exception => e
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 Exception => e
69
+ rescue => e
70
70
  false
71
71
  end
72
72