wd_newrelic_rpm 3.3.4.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (264) hide show
  1. data/CHANGELOG +591 -0
  2. data/LICENSE +64 -0
  3. data/README.rdoc +179 -0
  4. data/bin/mongrel_rpm +33 -0
  5. data/bin/newrelic +13 -0
  6. data/bin/newrelic_cmd +5 -0
  7. data/cert/cacert.pem +118 -0
  8. data/cert/oldsite.pem +28 -0
  9. data/cert/site.pem +27 -0
  10. data/install.rb +9 -0
  11. data/lib/conditional_vendored_dependency_detection.rb +3 -0
  12. data/lib/conditional_vendored_metric_parser.rb +5 -0
  13. data/lib/new_relic/agent.rb +467 -0
  14. data/lib/new_relic/agent/agent.rb +1325 -0
  15. data/lib/new_relic/agent/beacon_configuration.rb +121 -0
  16. data/lib/new_relic/agent/browser_monitoring.rb +142 -0
  17. data/lib/new_relic/agent/busy_calculator.rb +99 -0
  18. data/lib/new_relic/agent/chained_call.rb +13 -0
  19. data/lib/new_relic/agent/database.rb +223 -0
  20. data/lib/new_relic/agent/error_collector.rb +251 -0
  21. data/lib/new_relic/agent/instrumentation.rb +9 -0
  22. data/lib/new_relic/agent/instrumentation/active_merchant.rb +29 -0
  23. data/lib/new_relic/agent/instrumentation/active_record.rb +137 -0
  24. data/lib/new_relic/agent/instrumentation/acts_as_solr.rb +68 -0
  25. data/lib/new_relic/agent/instrumentation/authlogic.rb +19 -0
  26. data/lib/new_relic/agent/instrumentation/controller_instrumentation.rb +443 -0
  27. data/lib/new_relic/agent/instrumentation/data_mapper.rb +238 -0
  28. data/lib/new_relic/agent/instrumentation/delayed_job_instrumentation.rb +52 -0
  29. data/lib/new_relic/agent/instrumentation/memcache.rb +80 -0
  30. data/lib/new_relic/agent/instrumentation/merb/controller.rb +41 -0
  31. data/lib/new_relic/agent/instrumentation/merb/errors.rb +29 -0
  32. data/lib/new_relic/agent/instrumentation/metric_frame.rb +353 -0
  33. data/lib/new_relic/agent/instrumentation/metric_frame/pop.rb +80 -0
  34. data/lib/new_relic/agent/instrumentation/net.rb +29 -0
  35. data/lib/new_relic/agent/instrumentation/passenger_instrumentation.rb +37 -0
  36. data/lib/new_relic/agent/instrumentation/queue_time.rb +210 -0
  37. data/lib/new_relic/agent/instrumentation/rack.rb +98 -0
  38. data/lib/new_relic/agent/instrumentation/rails/action_controller.rb +114 -0
  39. data/lib/new_relic/agent/instrumentation/rails/action_web_service.rb +42 -0
  40. data/lib/new_relic/agent/instrumentation/rails/errors.rb +42 -0
  41. data/lib/new_relic/agent/instrumentation/rails3/action_controller.rb +180 -0
  42. data/lib/new_relic/agent/instrumentation/rails3/errors.rb +37 -0
  43. data/lib/new_relic/agent/instrumentation/sinatra.rb +78 -0
  44. data/lib/new_relic/agent/instrumentation/sunspot.rb +29 -0
  45. data/lib/new_relic/agent/instrumentation/unicorn_instrumentation.rb +21 -0
  46. data/lib/new_relic/agent/method_tracer.rb +528 -0
  47. data/lib/new_relic/agent/sampler.rb +50 -0
  48. data/lib/new_relic/agent/samplers/cpu_sampler.rb +58 -0
  49. data/lib/new_relic/agent/samplers/delayed_job_lock_sampler.rb +40 -0
  50. data/lib/new_relic/agent/samplers/memory_sampler.rb +143 -0
  51. data/lib/new_relic/agent/samplers/object_sampler.rb +26 -0
  52. data/lib/new_relic/agent/shim_agent.rb +29 -0
  53. data/lib/new_relic/agent/sql_sampler.rb +286 -0
  54. data/lib/new_relic/agent/stats_engine.rb +26 -0
  55. data/lib/new_relic/agent/stats_engine/gc_profiler.rb +123 -0
  56. data/lib/new_relic/agent/stats_engine/metric_stats.rb +187 -0
  57. data/lib/new_relic/agent/stats_engine/samplers.rb +95 -0
  58. data/lib/new_relic/agent/stats_engine/transactions.rb +125 -0
  59. data/lib/new_relic/agent/transaction_info.rb +74 -0
  60. data/lib/new_relic/agent/transaction_sample_builder.rb +116 -0
  61. data/lib/new_relic/agent/transaction_sampler.rb +468 -0
  62. data/lib/new_relic/agent/worker_loop.rb +89 -0
  63. data/lib/new_relic/collection_helper.rb +77 -0
  64. data/lib/new_relic/command.rb +85 -0
  65. data/lib/new_relic/commands/deployments.rb +105 -0
  66. data/lib/new_relic/commands/install.rb +80 -0
  67. data/lib/new_relic/control.rb +46 -0
  68. data/lib/new_relic/control/class_methods.rb +53 -0
  69. data/lib/new_relic/control/configuration.rb +206 -0
  70. data/lib/new_relic/control/frameworks.rb +10 -0
  71. data/lib/new_relic/control/frameworks/external.rb +16 -0
  72. data/lib/new_relic/control/frameworks/merb.rb +31 -0
  73. data/lib/new_relic/control/frameworks/rails.rb +164 -0
  74. data/lib/new_relic/control/frameworks/rails3.rb +75 -0
  75. data/lib/new_relic/control/frameworks/ruby.rb +42 -0
  76. data/lib/new_relic/control/frameworks/sinatra.rb +20 -0
  77. data/lib/new_relic/control/instance_methods.rb +179 -0
  78. data/lib/new_relic/control/instrumentation.rb +100 -0
  79. data/lib/new_relic/control/logging_methods.rb +143 -0
  80. data/lib/new_relic/control/profiling.rb +25 -0
  81. data/lib/new_relic/control/server_methods.rb +114 -0
  82. data/lib/new_relic/data_serialization.rb +151 -0
  83. data/lib/new_relic/delayed_job_injection.rb +51 -0
  84. data/lib/new_relic/language_support.rb +73 -0
  85. data/lib/new_relic/local_environment.rb +428 -0
  86. data/lib/new_relic/merbtasks.rb +6 -0
  87. data/lib/new_relic/metric_data.rb +51 -0
  88. data/lib/new_relic/metric_spec.rb +76 -0
  89. data/lib/new_relic/metrics.rb +9 -0
  90. data/lib/new_relic/noticed_error.rb +29 -0
  91. data/lib/new_relic/rack/browser_monitoring.rb +76 -0
  92. data/lib/new_relic/rack/developer_mode.rb +268 -0
  93. data/lib/new_relic/recipes.rb +77 -0
  94. data/lib/new_relic/stats.rb +335 -0
  95. data/lib/new_relic/timer_lib.rb +27 -0
  96. data/lib/new_relic/transaction_analysis.rb +77 -0
  97. data/lib/new_relic/transaction_analysis/segment_summary.rb +49 -0
  98. data/lib/new_relic/transaction_sample.rb +261 -0
  99. data/lib/new_relic/transaction_sample/composite_segment.rb +27 -0
  100. data/lib/new_relic/transaction_sample/fake_segment.rb +9 -0
  101. data/lib/new_relic/transaction_sample/segment.rb +203 -0
  102. data/lib/new_relic/transaction_sample/summary_segment.rb +21 -0
  103. data/lib/new_relic/url_rule.rb +14 -0
  104. data/lib/new_relic/version.rb +55 -0
  105. data/lib/newrelic_rpm.rb +49 -0
  106. data/lib/tasks/all.rb +4 -0
  107. data/lib/tasks/install.rake +7 -0
  108. data/lib/tasks/tests.rake +19 -0
  109. data/newrelic.yml +265 -0
  110. data/newrelic_rpm.gemspec +312 -0
  111. data/recipes/newrelic.rb +6 -0
  112. data/test/active_record_fixtures.rb +77 -0
  113. data/test/config/newrelic.yml +48 -0
  114. data/test/config/test_control.rb +48 -0
  115. data/test/fixtures/proc_cpuinfo.txt +575 -0
  116. data/test/new_relic/agent/agent/connect_test.rb +403 -0
  117. data/test/new_relic/agent/agent/start_test.rb +255 -0
  118. data/test/new_relic/agent/agent/start_worker_thread_test.rb +153 -0
  119. data/test/new_relic/agent/agent_test.rb +140 -0
  120. data/test/new_relic/agent/agent_test_controller.rb +77 -0
  121. data/test/new_relic/agent/agent_test_controller_test.rb +382 -0
  122. data/test/new_relic/agent/apdex_from_server_test.rb +9 -0
  123. data/test/new_relic/agent/beacon_configuration_test.rb +111 -0
  124. data/test/new_relic/agent/browser_monitoring_test.rb +323 -0
  125. data/test/new_relic/agent/busy_calculator_test.rb +81 -0
  126. data/test/new_relic/agent/database_test.rb +149 -0
  127. data/test/new_relic/agent/error_collector/notice_error_test.rb +257 -0
  128. data/test/new_relic/agent/error_collector_test.rb +192 -0
  129. data/test/new_relic/agent/instrumentation/active_record_instrumentation_test.rb +576 -0
  130. data/test/new_relic/agent/instrumentation/controller_instrumentation_test.rb +34 -0
  131. data/test/new_relic/agent/instrumentation/instrumentation_test.rb +11 -0
  132. data/test/new_relic/agent/instrumentation/metric_frame/pop_test.rb +171 -0
  133. data/test/new_relic/agent/instrumentation/metric_frame_test.rb +50 -0
  134. data/test/new_relic/agent/instrumentation/net_instrumentation_test.rb +84 -0
  135. data/test/new_relic/agent/instrumentation/queue_time_test.rb +382 -0
  136. data/test/new_relic/agent/instrumentation/rack_test.rb +35 -0
  137. data/test/new_relic/agent/instrumentation/task_instrumentation_test.rb +184 -0
  138. data/test/new_relic/agent/memcache_instrumentation_test.rb +143 -0
  139. data/test/new_relic/agent/method_tracer/class_methods/add_method_tracer_test.rb +164 -0
  140. data/test/new_relic/agent/method_tracer/instance_methods/trace_execution_scoped_test.rb +234 -0
  141. data/test/new_relic/agent/method_tracer_test.rb +386 -0
  142. data/test/new_relic/agent/mock_scope_listener.rb +23 -0
  143. data/test/new_relic/agent/rpm_agent_test.rb +149 -0
  144. data/test/new_relic/agent/sampler_test.rb +19 -0
  145. data/test/new_relic/agent/shim_agent_test.rb +20 -0
  146. data/test/new_relic/agent/sql_sampler_test.rb +192 -0
  147. data/test/new_relic/agent/stats_engine/metric_stats/harvest_test.rb +150 -0
  148. data/test/new_relic/agent/stats_engine/metric_stats_test.rb +82 -0
  149. data/test/new_relic/agent/stats_engine/samplers_test.rb +99 -0
  150. data/test/new_relic/agent/stats_engine_test.rb +220 -0
  151. data/test/new_relic/agent/transaction_info_test.rb +13 -0
  152. data/test/new_relic/agent/transaction_sample_builder_test.rb +219 -0
  153. data/test/new_relic/agent/transaction_sampler_test.rb +967 -0
  154. data/test/new_relic/agent/worker_loop_test.rb +66 -0
  155. data/test/new_relic/agent_test.rb +187 -0
  156. data/test/new_relic/collection_helper_test.rb +149 -0
  157. data/test/new_relic/command/deployments_test.rb +68 -0
  158. data/test/new_relic/control/class_methods_test.rb +62 -0
  159. data/test/new_relic/control/configuration_test.rb +84 -0
  160. data/test/new_relic/control/logging_methods_test.rb +185 -0
  161. data/test/new_relic/control_test.rb +256 -0
  162. data/test/new_relic/data_serialization_test.rb +208 -0
  163. data/test/new_relic/delayed_job_injection_test.rb +16 -0
  164. data/test/new_relic/local_environment_test.rb +85 -0
  165. data/test/new_relic/metric_data_test.rb +125 -0
  166. data/test/new_relic/metric_parser/metric_parser_test.rb +11 -0
  167. data/test/new_relic/metric_spec_test.rb +95 -0
  168. data/test/new_relic/rack/all_test.rb +11 -0
  169. data/test/new_relic/rack/browser_monitoring_test.rb +142 -0
  170. data/test/new_relic/rack/developer_mode_helper_test.rb +141 -0
  171. data/test/new_relic/rack/developer_mode_test.rb +74 -0
  172. data/test/new_relic/stats_test.rb +411 -0
  173. data/test/new_relic/transaction_analysis/segment_summary_test.rb +91 -0
  174. data/test/new_relic/transaction_analysis_test.rb +121 -0
  175. data/test/new_relic/transaction_sample/composite_segment_test.rb +35 -0
  176. data/test/new_relic/transaction_sample/fake_segment_test.rb +17 -0
  177. data/test/new_relic/transaction_sample/segment_test.rb +389 -0
  178. data/test/new_relic/transaction_sample/summary_segment_test.rb +31 -0
  179. data/test/new_relic/transaction_sample_subtest_test.rb +56 -0
  180. data/test/new_relic/transaction_sample_test.rb +177 -0
  181. data/test/new_relic/version_number_test.rb +89 -0
  182. data/test/script/build_test_gem.sh +51 -0
  183. data/test/script/ci.sh +94 -0
  184. data/test/script/ci_bench.sh +52 -0
  185. data/test/test_contexts.rb +29 -0
  186. data/test/test_helper.rb +155 -0
  187. data/ui/helpers/developer_mode_helper.rb +357 -0
  188. data/ui/helpers/google_pie_chart.rb +48 -0
  189. data/ui/views/layouts/newrelic_default.rhtml +47 -0
  190. data/ui/views/newrelic/_explain_plans.rhtml +27 -0
  191. data/ui/views/newrelic/_sample.rhtml +20 -0
  192. data/ui/views/newrelic/_segment.rhtml +28 -0
  193. data/ui/views/newrelic/_segment_limit_message.rhtml +1 -0
  194. data/ui/views/newrelic/_segment_row.rhtml +12 -0
  195. data/ui/views/newrelic/_show_sample_detail.rhtml +24 -0
  196. data/ui/views/newrelic/_show_sample_sql.rhtml +24 -0
  197. data/ui/views/newrelic/_show_sample_summary.rhtml +3 -0
  198. data/ui/views/newrelic/_sql_row.rhtml +16 -0
  199. data/ui/views/newrelic/_stack_trace.rhtml +15 -0
  200. data/ui/views/newrelic/_table.rhtml +12 -0
  201. data/ui/views/newrelic/explain_sql.rhtml +43 -0
  202. data/ui/views/newrelic/file/images/arrow-close.png +0 -0
  203. data/ui/views/newrelic/file/images/arrow-open.png +0 -0
  204. data/ui/views/newrelic/file/images/blue_bar.gif +0 -0
  205. data/ui/views/newrelic/file/images/file_icon.png +0 -0
  206. data/ui/views/newrelic/file/images/gray_bar.gif +0 -0
  207. data/ui/views/newrelic/file/images/new-relic-rpm-desktop.gif +0 -0
  208. data/ui/views/newrelic/file/images/new_relic_rpm_desktop.gif +0 -0
  209. data/ui/views/newrelic/file/images/textmate.png +0 -0
  210. data/ui/views/newrelic/file/javascript/jquery-1.4.2.js +6240 -0
  211. data/ui/views/newrelic/file/javascript/transaction_sample.js +120 -0
  212. data/ui/views/newrelic/file/stylesheets/style.css +490 -0
  213. data/ui/views/newrelic/index.rhtml +71 -0
  214. data/ui/views/newrelic/sample_not_found.rhtml +2 -0
  215. data/ui/views/newrelic/show_sample.rhtml +80 -0
  216. data/ui/views/newrelic/show_source.rhtml +3 -0
  217. data/ui/views/newrelic/threads.rhtml +53 -0
  218. data/vendor/gems/dependency_detection-0.0.1.build/LICENSE +5 -0
  219. data/vendor/gems/dependency_detection-0.0.1.build/lib/dependency_detection.rb +67 -0
  220. data/vendor/gems/dependency_detection-0.0.1.build/lib/dependency_detection/version.rb +3 -0
  221. data/vendor/gems/metric_parser-0.1.0.pre1/lib/metric_parser.rb +1 -0
  222. data/vendor/gems/metric_parser-0.1.0.pre1/lib/new_relic/metric_parser.rb +64 -0
  223. data/vendor/gems/metric_parser-0.1.0.pre1/lib/new_relic/metric_parser/action_mailer.rb +14 -0
  224. data/vendor/gems/metric_parser-0.1.0.pre1/lib/new_relic/metric_parser/active_merchant.rb +31 -0
  225. data/vendor/gems/metric_parser-0.1.0.pre1/lib/new_relic/metric_parser/active_record.rb +33 -0
  226. data/vendor/gems/metric_parser-0.1.0.pre1/lib/new_relic/metric_parser/apdex.rb +89 -0
  227. data/vendor/gems/metric_parser-0.1.0.pre1/lib/new_relic/metric_parser/background_transaction.rb +7 -0
  228. data/vendor/gems/metric_parser-0.1.0.pre1/lib/new_relic/metric_parser/client.rb +46 -0
  229. data/vendor/gems/metric_parser-0.1.0.pre1/lib/new_relic/metric_parser/controller.rb +67 -0
  230. data/vendor/gems/metric_parser-0.1.0.pre1/lib/new_relic/metric_parser/controller_cpu.rb +43 -0
  231. data/vendor/gems/metric_parser-0.1.0.pre1/lib/new_relic/metric_parser/controller_ext.rb +17 -0
  232. data/vendor/gems/metric_parser-0.1.0.pre1/lib/new_relic/metric_parser/database.rb +48 -0
  233. data/vendor/gems/metric_parser-0.1.0.pre1/lib/new_relic/metric_parser/database_pool.rb +24 -0
  234. data/vendor/gems/metric_parser-0.1.0.pre1/lib/new_relic/metric_parser/dot_net.rb +28 -0
  235. data/vendor/gems/metric_parser-0.1.0.pre1/lib/new_relic/metric_parser/dot_net_parser.rb +17 -0
  236. data/vendor/gems/metric_parser-0.1.0.pre1/lib/new_relic/metric_parser/errors.rb +11 -0
  237. data/vendor/gems/metric_parser-0.1.0.pre1/lib/new_relic/metric_parser/external.rb +55 -0
  238. data/vendor/gems/metric_parser-0.1.0.pre1/lib/new_relic/metric_parser/frontend.rb +40 -0
  239. data/vendor/gems/metric_parser-0.1.0.pre1/lib/new_relic/metric_parser/gc.rb +20 -0
  240. data/vendor/gems/metric_parser-0.1.0.pre1/lib/new_relic/metric_parser/hibernate_session.rb +7 -0
  241. data/vendor/gems/metric_parser-0.1.0.pre1/lib/new_relic/metric_parser/java.rb +31 -0
  242. data/vendor/gems/metric_parser-0.1.0.pre1/lib/new_relic/metric_parser/java_parser.rb +17 -0
  243. data/vendor/gems/metric_parser-0.1.0.pre1/lib/new_relic/metric_parser/jsp.rb +34 -0
  244. data/vendor/gems/metric_parser-0.1.0.pre1/lib/new_relic/metric_parser/jsp_tag.rb +7 -0
  245. data/vendor/gems/metric_parser-0.1.0.pre1/lib/new_relic/metric_parser/mem_cache.rb +55 -0
  246. data/vendor/gems/metric_parser-0.1.0.pre1/lib/new_relic/metric_parser/metric_parser.rb +135 -0
  247. data/vendor/gems/metric_parser-0.1.0.pre1/lib/new_relic/metric_parser/orm.rb +27 -0
  248. data/vendor/gems/metric_parser-0.1.0.pre1/lib/new_relic/metric_parser/other_transaction.rb +40 -0
  249. data/vendor/gems/metric_parser-0.1.0.pre1/lib/new_relic/metric_parser/servlet.rb +7 -0
  250. data/vendor/gems/metric_parser-0.1.0.pre1/lib/new_relic/metric_parser/servlet_context_listener.rb +7 -0
  251. data/vendor/gems/metric_parser-0.1.0.pre1/lib/new_relic/metric_parser/servlet_filter.rb +7 -0
  252. data/vendor/gems/metric_parser-0.1.0.pre1/lib/new_relic/metric_parser/solr.rb +27 -0
  253. data/vendor/gems/metric_parser-0.1.0.pre1/lib/new_relic/metric_parser/solr_request_handler.rb +15 -0
  254. data/vendor/gems/metric_parser-0.1.0.pre1/lib/new_relic/metric_parser/spring.rb +54 -0
  255. data/vendor/gems/metric_parser-0.1.0.pre1/lib/new_relic/metric_parser/spring_controller.rb +6 -0
  256. data/vendor/gems/metric_parser-0.1.0.pre1/lib/new_relic/metric_parser/spring_view.rb +6 -0
  257. data/vendor/gems/metric_parser-0.1.0.pre1/lib/new_relic/metric_parser/struts_action.rb +20 -0
  258. data/vendor/gems/metric_parser-0.1.0.pre1/lib/new_relic/metric_parser/struts_result.rb +20 -0
  259. data/vendor/gems/metric_parser-0.1.0.pre1/lib/new_relic/metric_parser/version.rb +5 -0
  260. data/vendor/gems/metric_parser-0.1.0.pre1/lib/new_relic/metric_parser/view.rb +70 -0
  261. data/vendor/gems/metric_parser-0.1.0.pre1/lib/new_relic/metric_parser/web_frontend.rb +18 -0
  262. data/vendor/gems/metric_parser-0.1.0.pre1/lib/new_relic/metric_parser/web_service.rb +14 -0
  263. data/vendor/gems/metric_parser-0.1.0.pre1/lib/new_relic/metric_parser/web_transaction.rb +133 -0
  264. metadata +376 -0
@@ -0,0 +1,21 @@
1
+ require 'new_relic/transaction_sample'
2
+ require 'new_relic/transaction_sample/segment'
3
+ module NewRelic
4
+ class TransactionSample
5
+ class SummarySegment < Segment
6
+ def initialize(segment)
7
+ super segment.entry_timestamp, segment.metric_name, nil
8
+
9
+ add_segments segment.called_segments
10
+
11
+ end_trace segment.exit_timestamp
12
+ end
13
+
14
+ def add_segments(segments)
15
+ segments.collect do |segment|
16
+ SummarySegment.new(segment)
17
+ end.each {|segment| add_called_segment(segment)}
18
+ end
19
+ end
20
+ end
21
+ end
@@ -0,0 +1,14 @@
1
+ # Represents url mapping rules stored on the server. These rules should be applied
2
+ # to URLs which are not normalized into controller class/action by Rails routes.
3
+ # Insantiated strictly by Marshal.
4
+ class NewRelic::UrlRule
5
+ attr_reader :match_expression, :replacement, :eval_order, :terminate_chain
6
+
7
+ def apply url
8
+ return nil
9
+ end
10
+
11
+ class RuleSet
12
+
13
+ end
14
+ end
@@ -0,0 +1,55 @@
1
+ #!/usr/bin/ruby
2
+ module NewRelic
3
+ module VERSION #:nodoc:
4
+ MAJOR = 3
5
+ MINOR = 3
6
+ TINY = 4
7
+ BUILD = 1 # Set to nil for a release, 'beta1', 'alpha', etc for prerelease builds
8
+ STRING = [MAJOR, MINOR, TINY, BUILD].compact.join('.')
9
+ end
10
+
11
+ # Helper class for managing version comparisons
12
+ class VersionNumber
13
+ attr_reader :parts
14
+ include Comparable
15
+ def initialize(version_string)
16
+ version_string ||= '1.0.0'
17
+ @parts = version_string.split('.').map{|n| n =~ /^\d+$/ ? n.to_i : n}
18
+ end
19
+ def major_version; @parts[0]; end
20
+ def minor_version; @parts[1]; end
21
+ def tiny_version; @parts[2]; end
22
+
23
+ def <=>(other)
24
+ other = self.class.new(other) if other.is_a? String
25
+ self.class.compare(self.parts, other.parts)
26
+ end
27
+
28
+ def to_s
29
+ @parts.join(".")
30
+ end
31
+
32
+ def hash
33
+ @parts.hash
34
+ end
35
+
36
+ def eql? other
37
+ (self <=> other) == 0
38
+ end
39
+
40
+ private
41
+ def self.compare(parts1, parts2)
42
+ a, b = parts1.first, parts2.first
43
+ case
44
+ when a.nil? && b.nil? then 0
45
+ when a.nil? then b.is_a?(Fixnum) ? -1 : 1
46
+ when b.nil? then -compare(parts2, parts1)
47
+ when a.to_s == b.to_s then compare(parts1[1..-1], parts2[1..-1])
48
+ when a.is_a?(String) then b.is_a?(Fixnum) ? -1 : (a <=> b)
49
+ when b.is_a?(String) then -compare(parts2, parts1)
50
+ else # they are both fixnums, not nil
51
+ a <=> b
52
+ end
53
+ end
54
+ end
55
+ end
@@ -0,0 +1,49 @@
1
+ # == New Relic Initialization
2
+ #
3
+ # When installed as a gem, you can activate the New Relic agent one of the following ways:
4
+ #
5
+ # For Rails, add:
6
+ # config.gem 'newrelic_rpm'
7
+ # to your initialization sequence.
8
+ #
9
+ # For merb, do
10
+ # dependency 'newrelic_rpm'
11
+ # in the Merb config/init.rb
12
+ #
13
+ # For Sinatra, do
14
+ # require 'newrelic_rpm'
15
+ # after requiring 'sinatra'.
16
+ #
17
+ # For other frameworks, or to manage the agent manually, invoke NewRelic::Agent#manual_start
18
+ # directly.
19
+ #
20
+ require 'new_relic/control'
21
+ if defined?(Merb) && defined?(Merb::BootLoader)
22
+ module NewRelic
23
+ class MerbBootLoader < Merb::BootLoader
24
+ after Merb::BootLoader::ChooseAdapter
25
+ def self.run
26
+ NewRelic::Control.instance.init_plugin
27
+ end
28
+ end
29
+ end
30
+ elsif defined? Rails
31
+ if Rails.respond_to?(:version) && Rails.version =~ /^3/
32
+ module NewRelic
33
+ class Railtie < Rails::Railtie
34
+
35
+ initializer "newrelic_rpm.start_plugin" do |app|
36
+ NewRelic::Control.instance.init_plugin(:config => app.config)
37
+ end
38
+ end
39
+ end
40
+ else
41
+ # After verison 2.0 of Rails we can access the configuration directly.
42
+ # We need it to add dev mode routes after initialization finished.
43
+ config = nil
44
+ config = Rails.configuration if Rails.respond_to?(:configuration)
45
+ NewRelic::Control.instance.init_plugin :config => config
46
+ end
47
+ else
48
+ NewRelic::Control.instance.init_plugin
49
+ end
@@ -0,0 +1,4 @@
1
+ # This is required to load in task definitions from merb
2
+ Dir.glob(File.join(File.dirname(__FILE__),'*.rake')) do |file|
3
+ load file
4
+ end
@@ -0,0 +1,7 @@
1
+ # run unit tests for the NewRelic Agent
2
+ namespace :newrelic do
3
+ desc "install a default config/newrelic.yml file"
4
+ task :install do
5
+ load File.expand_path(File.join(File.dirname(__FILE__), "..", "..", "install.rb"))
6
+ end
7
+ end
@@ -0,0 +1,19 @@
1
+ # run unit tests for the NewRelic Agent
2
+ begin
3
+ require 'rake/test_task'
4
+ rescue LoadError => e
5
+ end
6
+
7
+ if defined? Rake::TestTask
8
+ namespace :test do
9
+ AGENT_HOME = File.expand_path(File.join(File.dirname(__FILE__), "..",".."))
10
+ Rake::TestTask.new(:newrelic) do |t|
11
+ t.libs << "#{AGENT_HOME}/test"
12
+ t.libs << "#{AGENT_HOME}/lib"
13
+ t.pattern = "#{AGENT_HOME}/test/**/*_test.rb"
14
+ t.verbose = true
15
+ end
16
+ Rake::Task['test:newrelic'].comment = "Run the unit tests for the Agent"
17
+ task :newrelic => :environment
18
+ end
19
+ end
@@ -0,0 +1,265 @@
1
+ #
2
+ # This file configures the New Relic Ruby Agent, New Relic monitors
3
+ # Rails applications with deep visibility and low overhead. For more
4
+ # information, visit www.newrelic.com
5
+ #
6
+ # Generated <%= Time.now.strftime('%B %d, %Y') %>, for version <%= NewRelic::VERSION::STRING %>
7
+ #
8
+ # <%= generated_for_user %>
9
+
10
+
11
+ # Here are the settings that are common to all environments
12
+ common: &default_settings
13
+ # ============================== LICENSE KEY ===============================
14
+
15
+ # You must specify the license key associated with your New Relic
16
+ # account. This key binds your Agent's data to your account in the
17
+ # New Relic service.
18
+ license_key: '<%= license_key %>'
19
+
20
+ # Agent Enabled (Rails Only)
21
+ # Use this setting to force the agent to run or not run.
22
+ # Default is 'auto' which means the agent will install and run only
23
+ # if a valid dispatcher such as Mongrel is running. This prevents
24
+ # it from running with Rake or the console. Set to false to
25
+ # completely turn the agent off regardless of the other settings.
26
+ # Valid values are true, false and auto.
27
+ #
28
+ # agent_enabled: auto
29
+
30
+ # Application Name Set this to be the name of your application as
31
+ # you'd like it show up in New Relic. The service will then auto-map
32
+ # instances of your application into an "application" on your
33
+ # dashboard page. If you want to map this instance into multiple
34
+ # apps, like "AJAX Requests" and "All UI" then specify a semicolon
35
+ # separated list of up to three distinct names, or a yaml list.
36
+ # Defaults to the capitalized RAILS_ENV or RACK_ENV (i.e.,
37
+ # Production, Staging, etc)
38
+ #
39
+ # Example:
40
+ #
41
+ # app_name:
42
+ # - Ajax Service
43
+ # - All Services
44
+ #
45
+ app_name: <%= @app_name %>
46
+
47
+ # When "true", the agent collects performance data about your
48
+ # application and reports this data to the New Relic service at
49
+ # newrelic.com. This global switch is normally overridden for each
50
+ # environment below. (formerly called 'enabled')
51
+ monitor_mode: true
52
+
53
+ # Developer mode should be off in every environment but
54
+ # development as it has very high overhead in memory.
55
+ developer_mode: false
56
+
57
+ # The newrelic agent generates its own log file to keep its logging
58
+ # information separate from that of your application. Specify its
59
+ # log level here.
60
+ log_level: info
61
+
62
+ # Optionally set the path to the log file This is expanded from the
63
+ # root directory (may be relative or absolute, e.g. 'log/' or
64
+ # '/var/log/') The agent will attempt to create this directory if it
65
+ # does not exist.
66
+ # log_file_path: 'log'
67
+
68
+ # Optionally set the name of the log file, defaults to 'newrelic_agent.log'
69
+ # log_file_name: 'newrelic_agent.log'
70
+
71
+ # The newrelic agent communicates with the service via http by
72
+ # default. If you want to communicate via https to increase
73
+ # security, then turn on SSL by setting this value to true. Note,
74
+ # this will result in increased CPU overhead to perform the
75
+ # encryption involved in SSL communication, but this work is done
76
+ # asynchronously to the threads that process your application code,
77
+ # so it should not impact response times.
78
+ ssl: false
79
+
80
+ # EXPERIMENTAL: enable verification of the SSL certificate sent by
81
+ # the server. This setting has no effect unless SSL is enabled
82
+ # above. This may block your application. Only enable it if the data
83
+ # you send us needs end-to-end verified certificates.
84
+ #
85
+ # This means we cannot cache the DNS lookup, so each request to the
86
+ # service will perform a lookup. It also means that we cannot
87
+ # use a non-blocking lookup, so in a worst case, if you have DNS
88
+ # problems, your app may block indefinitely.
89
+ # verify_certificate: true
90
+
91
+ # Set your application's Apdex threshold value with the 'apdex_t'
92
+ # setting, in seconds. The apdex_t value determines the buckets used
93
+ # to compute your overall Apdex score.
94
+ # Requests that take less than apdex_t seconds to process will be
95
+ # classified as Satisfying transactions; more than apdex_t seconds
96
+ # as Tolerating transactions; and more than four times the apdex_t
97
+ # value as Frustrating transactions.
98
+ # For more about the Apdex standard, see
99
+ # http://newrelic.com/docs/general/apdex
100
+
101
+ apdex_t: 0.5
102
+
103
+ #============================== Browser Monitoring ===============================
104
+ # New Relic Real User Monitoring gives you insight into the performance real users are
105
+ # experiencing with your website. This is accomplished by measuring the time it takes for
106
+ # your users' browsers to download and render your web pages by injecting a small amount
107
+ # of JavaScript code into the header and footer of each page.
108
+ browser_monitoring:
109
+ # By default the agent automatically injects the monitoring JavaScript
110
+ # into web pages. Set this attribute to false to turn off this behavior.
111
+ auto_instrument: true
112
+
113
+ # Proxy settings for connecting to the service.
114
+ #
115
+ # If a proxy is used, the host setting is required. Other settings
116
+ # are optional. Default port is 8080.
117
+ #
118
+ # proxy_host: hostname
119
+ # proxy_port: 8080
120
+ # proxy_user:
121
+ # proxy_pass:
122
+
123
+
124
+ # Tells transaction tracer and error collector (when enabled)
125
+ # whether or not to capture HTTP params. When true, frameworks can
126
+ # exclude HTTP parameters from being captured.
127
+ # Rails: the RoR filter_parameter_logging excludes parameters
128
+ # Java: create a config setting called "ignored_params" and set it to
129
+ # a comma separated list of HTTP parameter names.
130
+ # ex: ignored_params: credit_card, ssn, password
131
+ capture_params: false
132
+
133
+
134
+ # Transaction tracer captures deep information about slow
135
+ # transactions and sends this to the service once a
136
+ # minute. Included in the transaction is the exact call sequence of
137
+ # the transactions including any SQL statements issued.
138
+ transaction_tracer:
139
+
140
+ # Transaction tracer is enabled by default. Set this to false to
141
+ # turn it off. This feature is only available at the Professional
142
+ # and above product levels.
143
+ enabled: true
144
+
145
+ # Threshold in seconds for when to collect a transaction
146
+ # trace. When the response time of a controller action exceeds
147
+ # this threshold, a transaction trace will be recorded and sent to
148
+ # the service. Valid values are any float value, or (default)
149
+ # "apdex_f", which will use the threshold for an dissatisfying
150
+ # Apdex controller action - four times the Apdex T value.
151
+ transaction_threshold: apdex_f
152
+
153
+ # When transaction tracer is on, SQL statements can optionally be
154
+ # recorded. The recorder has three modes, "off" which sends no
155
+ # SQL, "raw" which sends the SQL statement in its original form,
156
+ # and "obfuscated", which strips out numeric and string literals
157
+ record_sql: obfuscated
158
+
159
+ # Threshold in seconds for when to collect stack trace for a SQL
160
+ # call. In other words, when SQL statements exceed this threshold,
161
+ # then capture and send the current stack trace. This is
162
+ # helpful for pinpointing where long SQL calls originate from
163
+ stack_trace_threshold: 0.500
164
+
165
+ # Determines whether the agent will capture query plans for slow
166
+ # SQL queries. Only supported in mysql and postgres. Should be
167
+ # set to false when using other adapters.
168
+ # explain_enabled: true
169
+
170
+ # Threshold for query execution time below which query plans will not
171
+ # not be captured. Relevant only when `explain_enabled` is true.
172
+ # explain_threshold: 0.5
173
+
174
+ # Error collector captures information about uncaught exceptions and
175
+ # sends them to the service for viewing
176
+ error_collector:
177
+
178
+ # Error collector is enabled by default. Set this to false to turn
179
+ # it off. This feature is only available at the Professional and above
180
+ # product levels
181
+ enabled: true
182
+
183
+ # Rails Only - tells error collector whether or not to capture a
184
+ # source snippet around the place of the error when errors are View
185
+ # related.
186
+ capture_source: true
187
+
188
+ # To stop specific errors from reporting to New Relic, set this property
189
+ # to comma separated values. Default is to ignore routing errors
190
+ # which are how 404's get triggered.
191
+ #
192
+ ignore_errors: ActionController::RoutingError
193
+
194
+ # (Advanced) Uncomment this to ensure the cpu and memory samplers
195
+ # won't run. Useful when you are using the agent to monitor an
196
+ # external resource
197
+ # disable_samplers: true
198
+
199
+ # If you aren't interested in visibility in these areas, you can
200
+ # disable the instrumentation to reduce overhead.
201
+ #
202
+ # disable_view_instrumentation: true
203
+ # disable_activerecord_instrumentation: true
204
+ # disable_memcache_instrumentation: true
205
+ # disable_dj: true
206
+
207
+ # If you're interested in capturing memcache keys as though they
208
+ # were SQL uncomment this flag. Note that this does increase
209
+ # overhead slightly on every memcached call, and can have security
210
+ # implications if your memcached keys are sensitive
211
+ # capture_memcache_keys: true
212
+
213
+ # Certain types of instrumentation such as GC stats will not work if
214
+ # you are running multi-threaded. Please let us know.
215
+ # multi_threaded = false
216
+
217
+ # Application Environments
218
+ # ------------------------------------------
219
+ # Environment specific settings are in this section.
220
+ # For Rails applications, RAILS_ENV is used to determine the environment
221
+ # For Java applications, pass -Dnewrelic.environment <environment> to set
222
+ # the environment
223
+
224
+ # NOTE if your application has other named environments, you should
225
+ # provide newrelic configuration settings for these environments here.
226
+
227
+ development:
228
+ <<: *default_settings
229
+ # Turn off communication to New Relic service in development mode (also
230
+ # 'enabled').
231
+ # NOTE: for initial evaluation purposes, you may want to temporarily
232
+ # turn the agent on in development mode.
233
+ monitor_mode: false
234
+
235
+ # Rails Only - when running in Developer Mode, the New Relic Agent will
236
+ # present performance information on the last 100 transactions you have
237
+ # executed since starting the mongrel.
238
+ # NOTE: There is substantial overhead when running in developer mode.
239
+ # Do not use for production or load testing.
240
+ developer_mode: true
241
+
242
+ # Enable textmate links
243
+ # textmate: true
244
+
245
+ test:
246
+ <<: *default_settings
247
+ # It almost never makes sense to turn on the agent when running
248
+ # unit, functional or integration tests or the like.
249
+ monitor_mode: false
250
+
251
+ # Turn on the agent in production for 24x7 monitoring. NewRelic
252
+ # testing shows an average performance impact of < 5 ms per
253
+ # transaction, you you can leave this on all the time without
254
+ # incurring any user-visible performance degradation.
255
+ production:
256
+ <<: *default_settings
257
+ monitor_mode: true
258
+
259
+ # Many applications have a staging environment which behaves
260
+ # identically to production. Support for that environment is provided
261
+ # here. By default, the staging environment has the agent turned on.
262
+ staging:
263
+ <<: *default_settings
264
+ monitor_mode: true
265
+ app_name: <%= @app_name %> (Staging)
@@ -0,0 +1,312 @@
1
+ # Generated by jeweler
2
+ # DO NOT EDIT THIS FILE DIRECTLY
3
+ # Instead, edit Jeweler::Tasks in Rakefile, and run 'rake gemspec'
4
+ # -*- encoding: utf-8 -*-
5
+
6
+ Gem::Specification.new do |s|
7
+ s.name = "wd_newrelic_rpm"
8
+ s.version = "3.3.4.1"
9
+
10
+ s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
+ s.authors = ["Bill Kayser", "Jon Guymon", "Justin George", "Darin Swanson"]
12
+ s.date = "2012-04-24"
13
+ s.description = "Weasel Diesel compatible version of rpm. 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 = ["newrelic_cmd", "mongrel_rpm", "newrelic"]
16
+ s.extra_rdoc_files = [
17
+ "CHANGELOG",
18
+ "LICENSE",
19
+ "README.rdoc",
20
+ "newrelic.yml"
21
+ ]
22
+ s.files = [
23
+ "CHANGELOG",
24
+ "LICENSE",
25
+ "README.rdoc",
26
+ "bin/mongrel_rpm",
27
+ "bin/newrelic",
28
+ "bin/newrelic_cmd",
29
+ "cert/cacert.pem",
30
+ "cert/oldsite.pem",
31
+ "cert/site.pem",
32
+ "install.rb",
33
+ "lib/conditional_vendored_dependency_detection.rb",
34
+ "lib/conditional_vendored_metric_parser.rb",
35
+ "lib/new_relic/agent.rb",
36
+ "lib/new_relic/agent/agent.rb",
37
+ "lib/new_relic/agent/beacon_configuration.rb",
38
+ "lib/new_relic/agent/browser_monitoring.rb",
39
+ "lib/new_relic/agent/busy_calculator.rb",
40
+ "lib/new_relic/agent/chained_call.rb",
41
+ "lib/new_relic/agent/database.rb",
42
+ "lib/new_relic/agent/error_collector.rb",
43
+ "lib/new_relic/agent/instrumentation.rb",
44
+ "lib/new_relic/agent/instrumentation/active_merchant.rb",
45
+ "lib/new_relic/agent/instrumentation/active_record.rb",
46
+ "lib/new_relic/agent/instrumentation/acts_as_solr.rb",
47
+ "lib/new_relic/agent/instrumentation/authlogic.rb",
48
+ "lib/new_relic/agent/instrumentation/controller_instrumentation.rb",
49
+ "lib/new_relic/agent/instrumentation/data_mapper.rb",
50
+ "lib/new_relic/agent/instrumentation/delayed_job_instrumentation.rb",
51
+ "lib/new_relic/agent/instrumentation/memcache.rb",
52
+ "lib/new_relic/agent/instrumentation/merb/controller.rb",
53
+ "lib/new_relic/agent/instrumentation/merb/errors.rb",
54
+ "lib/new_relic/agent/instrumentation/metric_frame.rb",
55
+ "lib/new_relic/agent/instrumentation/metric_frame/pop.rb",
56
+ "lib/new_relic/agent/instrumentation/net.rb",
57
+ "lib/new_relic/agent/instrumentation/passenger_instrumentation.rb",
58
+ "lib/new_relic/agent/instrumentation/queue_time.rb",
59
+ "lib/new_relic/agent/instrumentation/rack.rb",
60
+ "lib/new_relic/agent/instrumentation/rails/action_controller.rb",
61
+ "lib/new_relic/agent/instrumentation/rails/action_web_service.rb",
62
+ "lib/new_relic/agent/instrumentation/rails/errors.rb",
63
+ "lib/new_relic/agent/instrumentation/rails3/action_controller.rb",
64
+ "lib/new_relic/agent/instrumentation/rails3/errors.rb",
65
+ "lib/new_relic/agent/instrumentation/sinatra.rb",
66
+ "lib/new_relic/agent/instrumentation/sunspot.rb",
67
+ "lib/new_relic/agent/instrumentation/unicorn_instrumentation.rb",
68
+ "lib/new_relic/agent/method_tracer.rb",
69
+ "lib/new_relic/agent/sampler.rb",
70
+ "lib/new_relic/agent/samplers/cpu_sampler.rb",
71
+ "lib/new_relic/agent/samplers/delayed_job_lock_sampler.rb",
72
+ "lib/new_relic/agent/samplers/memory_sampler.rb",
73
+ "lib/new_relic/agent/samplers/object_sampler.rb",
74
+ "lib/new_relic/agent/shim_agent.rb",
75
+ "lib/new_relic/agent/sql_sampler.rb",
76
+ "lib/new_relic/agent/stats_engine.rb",
77
+ "lib/new_relic/agent/stats_engine/gc_profiler.rb",
78
+ "lib/new_relic/agent/stats_engine/metric_stats.rb",
79
+ "lib/new_relic/agent/stats_engine/samplers.rb",
80
+ "lib/new_relic/agent/stats_engine/transactions.rb",
81
+ "lib/new_relic/agent/transaction_info.rb",
82
+ "lib/new_relic/agent/transaction_sample_builder.rb",
83
+ "lib/new_relic/agent/transaction_sampler.rb",
84
+ "lib/new_relic/agent/worker_loop.rb",
85
+ "lib/new_relic/collection_helper.rb",
86
+ "lib/new_relic/command.rb",
87
+ "lib/new_relic/commands/deployments.rb",
88
+ "lib/new_relic/commands/install.rb",
89
+ "lib/new_relic/control.rb",
90
+ "lib/new_relic/control/class_methods.rb",
91
+ "lib/new_relic/control/configuration.rb",
92
+ "lib/new_relic/control/frameworks.rb",
93
+ "lib/new_relic/control/frameworks/external.rb",
94
+ "lib/new_relic/control/frameworks/merb.rb",
95
+ "lib/new_relic/control/frameworks/rails.rb",
96
+ "lib/new_relic/control/frameworks/rails3.rb",
97
+ "lib/new_relic/control/frameworks/ruby.rb",
98
+ "lib/new_relic/control/frameworks/sinatra.rb",
99
+ "lib/new_relic/control/instance_methods.rb",
100
+ "lib/new_relic/control/instrumentation.rb",
101
+ "lib/new_relic/control/logging_methods.rb",
102
+ "lib/new_relic/control/profiling.rb",
103
+ "lib/new_relic/control/server_methods.rb",
104
+ "lib/new_relic/data_serialization.rb",
105
+ "lib/new_relic/delayed_job_injection.rb",
106
+ "lib/new_relic/language_support.rb",
107
+ "lib/new_relic/local_environment.rb",
108
+ "lib/new_relic/merbtasks.rb",
109
+ "lib/new_relic/metric_data.rb",
110
+ "lib/new_relic/metric_spec.rb",
111
+ "lib/new_relic/metrics.rb",
112
+ "lib/new_relic/noticed_error.rb",
113
+ "lib/new_relic/rack/browser_monitoring.rb",
114
+ "lib/new_relic/rack/developer_mode.rb",
115
+ "lib/new_relic/recipes.rb",
116
+ "lib/new_relic/stats.rb",
117
+ "lib/new_relic/timer_lib.rb",
118
+ "lib/new_relic/transaction_analysis.rb",
119
+ "lib/new_relic/transaction_analysis/segment_summary.rb",
120
+ "lib/new_relic/transaction_sample.rb",
121
+ "lib/new_relic/transaction_sample/composite_segment.rb",
122
+ "lib/new_relic/transaction_sample/fake_segment.rb",
123
+ "lib/new_relic/transaction_sample/segment.rb",
124
+ "lib/new_relic/transaction_sample/summary_segment.rb",
125
+ "lib/new_relic/url_rule.rb",
126
+ "lib/new_relic/version.rb",
127
+ "lib/newrelic_rpm.rb",
128
+ "lib/tasks/all.rb",
129
+ "lib/tasks/install.rake",
130
+ "lib/tasks/tests.rake",
131
+ "newrelic.yml",
132
+ "newrelic_rpm.gemspec",
133
+ "recipes/newrelic.rb",
134
+ "test/active_record_fixtures.rb",
135
+ "test/config/newrelic.yml",
136
+ "test/config/test_control.rb",
137
+ "test/fixtures/proc_cpuinfo.txt",
138
+ "test/new_relic/agent/agent/connect_test.rb",
139
+ "test/new_relic/agent/agent/start_test.rb",
140
+ "test/new_relic/agent/agent/start_worker_thread_test.rb",
141
+ "test/new_relic/agent/agent_test.rb",
142
+ "test/new_relic/agent/agent_test_controller.rb",
143
+ "test/new_relic/agent/agent_test_controller_test.rb",
144
+ "test/new_relic/agent/apdex_from_server_test.rb",
145
+ "test/new_relic/agent/beacon_configuration_test.rb",
146
+ "test/new_relic/agent/browser_monitoring_test.rb",
147
+ "test/new_relic/agent/busy_calculator_test.rb",
148
+ "test/new_relic/agent/database_test.rb",
149
+ "test/new_relic/agent/error_collector/notice_error_test.rb",
150
+ "test/new_relic/agent/error_collector_test.rb",
151
+ "test/new_relic/agent/instrumentation/active_record_instrumentation_test.rb",
152
+ "test/new_relic/agent/instrumentation/controller_instrumentation_test.rb",
153
+ "test/new_relic/agent/instrumentation/instrumentation_test.rb",
154
+ "test/new_relic/agent/instrumentation/metric_frame/pop_test.rb",
155
+ "test/new_relic/agent/instrumentation/metric_frame_test.rb",
156
+ "test/new_relic/agent/instrumentation/net_instrumentation_test.rb",
157
+ "test/new_relic/agent/instrumentation/queue_time_test.rb",
158
+ "test/new_relic/agent/instrumentation/rack_test.rb",
159
+ "test/new_relic/agent/instrumentation/task_instrumentation_test.rb",
160
+ "test/new_relic/agent/memcache_instrumentation_test.rb",
161
+ "test/new_relic/agent/method_tracer/class_methods/add_method_tracer_test.rb",
162
+ "test/new_relic/agent/method_tracer/instance_methods/trace_execution_scoped_test.rb",
163
+ "test/new_relic/agent/method_tracer_test.rb",
164
+ "test/new_relic/agent/mock_scope_listener.rb",
165
+ "test/new_relic/agent/rpm_agent_test.rb",
166
+ "test/new_relic/agent/sampler_test.rb",
167
+ "test/new_relic/agent/shim_agent_test.rb",
168
+ "test/new_relic/agent/sql_sampler_test.rb",
169
+ "test/new_relic/agent/stats_engine/metric_stats/harvest_test.rb",
170
+ "test/new_relic/agent/stats_engine/metric_stats_test.rb",
171
+ "test/new_relic/agent/stats_engine/samplers_test.rb",
172
+ "test/new_relic/agent/stats_engine_test.rb",
173
+ "test/new_relic/agent/transaction_info_test.rb",
174
+ "test/new_relic/agent/transaction_sample_builder_test.rb",
175
+ "test/new_relic/agent/transaction_sampler_test.rb",
176
+ "test/new_relic/agent/worker_loop_test.rb",
177
+ "test/new_relic/agent_test.rb",
178
+ "test/new_relic/collection_helper_test.rb",
179
+ "test/new_relic/command/deployments_test.rb",
180
+ "test/new_relic/control/class_methods_test.rb",
181
+ "test/new_relic/control/configuration_test.rb",
182
+ "test/new_relic/control/logging_methods_test.rb",
183
+ "test/new_relic/control_test.rb",
184
+ "test/new_relic/data_serialization_test.rb",
185
+ "test/new_relic/delayed_job_injection_test.rb",
186
+ "test/new_relic/local_environment_test.rb",
187
+ "test/new_relic/metric_data_test.rb",
188
+ "test/new_relic/metric_parser/metric_parser_test.rb",
189
+ "test/new_relic/metric_spec_test.rb",
190
+ "test/new_relic/rack/all_test.rb",
191
+ "test/new_relic/rack/browser_monitoring_test.rb",
192
+ "test/new_relic/rack/developer_mode_helper_test.rb",
193
+ "test/new_relic/rack/developer_mode_test.rb",
194
+ "test/new_relic/stats_test.rb",
195
+ "test/new_relic/transaction_analysis/segment_summary_test.rb",
196
+ "test/new_relic/transaction_analysis_test.rb",
197
+ "test/new_relic/transaction_sample/composite_segment_test.rb",
198
+ "test/new_relic/transaction_sample/fake_segment_test.rb",
199
+ "test/new_relic/transaction_sample/segment_test.rb",
200
+ "test/new_relic/transaction_sample/summary_segment_test.rb",
201
+ "test/new_relic/transaction_sample_subtest_test.rb",
202
+ "test/new_relic/transaction_sample_test.rb",
203
+ "test/new_relic/version_number_test.rb",
204
+ "test/script/build_test_gem.sh",
205
+ "test/script/ci.sh",
206
+ "test/script/ci_bench.sh",
207
+ "test/test_contexts.rb",
208
+ "test/test_helper.rb",
209
+ "ui/helpers/developer_mode_helper.rb",
210
+ "ui/helpers/google_pie_chart.rb",
211
+ "ui/views/layouts/newrelic_default.rhtml",
212
+ "ui/views/newrelic/_explain_plans.rhtml",
213
+ "ui/views/newrelic/_sample.rhtml",
214
+ "ui/views/newrelic/_segment.rhtml",
215
+ "ui/views/newrelic/_segment_limit_message.rhtml",
216
+ "ui/views/newrelic/_segment_row.rhtml",
217
+ "ui/views/newrelic/_show_sample_detail.rhtml",
218
+ "ui/views/newrelic/_show_sample_sql.rhtml",
219
+ "ui/views/newrelic/_show_sample_summary.rhtml",
220
+ "ui/views/newrelic/_sql_row.rhtml",
221
+ "ui/views/newrelic/_stack_trace.rhtml",
222
+ "ui/views/newrelic/_table.rhtml",
223
+ "ui/views/newrelic/explain_sql.rhtml",
224
+ "ui/views/newrelic/file/images/arrow-close.png",
225
+ "ui/views/newrelic/file/images/arrow-open.png",
226
+ "ui/views/newrelic/file/images/blue_bar.gif",
227
+ "ui/views/newrelic/file/images/file_icon.png",
228
+ "ui/views/newrelic/file/images/gray_bar.gif",
229
+ "ui/views/newrelic/file/images/new-relic-rpm-desktop.gif",
230
+ "ui/views/newrelic/file/images/new_relic_rpm_desktop.gif",
231
+ "ui/views/newrelic/file/images/textmate.png",
232
+ "ui/views/newrelic/file/javascript/jquery-1.4.2.js",
233
+ "ui/views/newrelic/file/javascript/transaction_sample.js",
234
+ "ui/views/newrelic/file/stylesheets/style.css",
235
+ "ui/views/newrelic/index.rhtml",
236
+ "ui/views/newrelic/sample_not_found.rhtml",
237
+ "ui/views/newrelic/show_sample.rhtml",
238
+ "ui/views/newrelic/show_source.rhtml",
239
+ "ui/views/newrelic/threads.rhtml",
240
+ "vendor/gems/dependency_detection-0.0.1.build/LICENSE",
241
+ "vendor/gems/dependency_detection-0.0.1.build/lib/dependency_detection.rb",
242
+ "vendor/gems/dependency_detection-0.0.1.build/lib/dependency_detection/version.rb",
243
+ "vendor/gems/metric_parser-0.1.0.pre1/lib/metric_parser.rb",
244
+ "vendor/gems/metric_parser-0.1.0.pre1/lib/new_relic/metric_parser.rb",
245
+ "vendor/gems/metric_parser-0.1.0.pre1/lib/new_relic/metric_parser/action_mailer.rb",
246
+ "vendor/gems/metric_parser-0.1.0.pre1/lib/new_relic/metric_parser/active_merchant.rb",
247
+ "vendor/gems/metric_parser-0.1.0.pre1/lib/new_relic/metric_parser/active_record.rb",
248
+ "vendor/gems/metric_parser-0.1.0.pre1/lib/new_relic/metric_parser/apdex.rb",
249
+ "vendor/gems/metric_parser-0.1.0.pre1/lib/new_relic/metric_parser/background_transaction.rb",
250
+ "vendor/gems/metric_parser-0.1.0.pre1/lib/new_relic/metric_parser/client.rb",
251
+ "vendor/gems/metric_parser-0.1.0.pre1/lib/new_relic/metric_parser/controller.rb",
252
+ "vendor/gems/metric_parser-0.1.0.pre1/lib/new_relic/metric_parser/controller_cpu.rb",
253
+ "vendor/gems/metric_parser-0.1.0.pre1/lib/new_relic/metric_parser/controller_ext.rb",
254
+ "vendor/gems/metric_parser-0.1.0.pre1/lib/new_relic/metric_parser/database.rb",
255
+ "vendor/gems/metric_parser-0.1.0.pre1/lib/new_relic/metric_parser/database_pool.rb",
256
+ "vendor/gems/metric_parser-0.1.0.pre1/lib/new_relic/metric_parser/dot_net.rb",
257
+ "vendor/gems/metric_parser-0.1.0.pre1/lib/new_relic/metric_parser/dot_net_parser.rb",
258
+ "vendor/gems/metric_parser-0.1.0.pre1/lib/new_relic/metric_parser/errors.rb",
259
+ "vendor/gems/metric_parser-0.1.0.pre1/lib/new_relic/metric_parser/external.rb",
260
+ "vendor/gems/metric_parser-0.1.0.pre1/lib/new_relic/metric_parser/frontend.rb",
261
+ "vendor/gems/metric_parser-0.1.0.pre1/lib/new_relic/metric_parser/gc.rb",
262
+ "vendor/gems/metric_parser-0.1.0.pre1/lib/new_relic/metric_parser/hibernate_session.rb",
263
+ "vendor/gems/metric_parser-0.1.0.pre1/lib/new_relic/metric_parser/java.rb",
264
+ "vendor/gems/metric_parser-0.1.0.pre1/lib/new_relic/metric_parser/java_parser.rb",
265
+ "vendor/gems/metric_parser-0.1.0.pre1/lib/new_relic/metric_parser/jsp.rb",
266
+ "vendor/gems/metric_parser-0.1.0.pre1/lib/new_relic/metric_parser/jsp_tag.rb",
267
+ "vendor/gems/metric_parser-0.1.0.pre1/lib/new_relic/metric_parser/mem_cache.rb",
268
+ "vendor/gems/metric_parser-0.1.0.pre1/lib/new_relic/metric_parser/metric_parser.rb",
269
+ "vendor/gems/metric_parser-0.1.0.pre1/lib/new_relic/metric_parser/orm.rb",
270
+ "vendor/gems/metric_parser-0.1.0.pre1/lib/new_relic/metric_parser/other_transaction.rb",
271
+ "vendor/gems/metric_parser-0.1.0.pre1/lib/new_relic/metric_parser/servlet.rb",
272
+ "vendor/gems/metric_parser-0.1.0.pre1/lib/new_relic/metric_parser/servlet_context_listener.rb",
273
+ "vendor/gems/metric_parser-0.1.0.pre1/lib/new_relic/metric_parser/servlet_filter.rb",
274
+ "vendor/gems/metric_parser-0.1.0.pre1/lib/new_relic/metric_parser/solr.rb",
275
+ "vendor/gems/metric_parser-0.1.0.pre1/lib/new_relic/metric_parser/solr_request_handler.rb",
276
+ "vendor/gems/metric_parser-0.1.0.pre1/lib/new_relic/metric_parser/spring.rb",
277
+ "vendor/gems/metric_parser-0.1.0.pre1/lib/new_relic/metric_parser/spring_controller.rb",
278
+ "vendor/gems/metric_parser-0.1.0.pre1/lib/new_relic/metric_parser/spring_view.rb",
279
+ "vendor/gems/metric_parser-0.1.0.pre1/lib/new_relic/metric_parser/struts_action.rb",
280
+ "vendor/gems/metric_parser-0.1.0.pre1/lib/new_relic/metric_parser/struts_result.rb",
281
+ "vendor/gems/metric_parser-0.1.0.pre1/lib/new_relic/metric_parser/version.rb",
282
+ "vendor/gems/metric_parser-0.1.0.pre1/lib/new_relic/metric_parser/view.rb",
283
+ "vendor/gems/metric_parser-0.1.0.pre1/lib/new_relic/metric_parser/web_frontend.rb",
284
+ "vendor/gems/metric_parser-0.1.0.pre1/lib/new_relic/metric_parser/web_service.rb",
285
+ "vendor/gems/metric_parser-0.1.0.pre1/lib/new_relic/metric_parser/web_transaction.rb"
286
+ ]
287
+ s.homepage = "http://www.github.com/newrelic/rpm"
288
+ 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.3 of the Ruby Agent.\n \n"
289
+ s.rdoc_options = ["--line-numbers", "--inline-source", "--title", "New Relic Ruby Agent"]
290
+ s.require_paths = ["lib"]
291
+ s.summary = "New Relic Ruby Agent"
292
+
293
+ if s.respond_to? :specification_version then
294
+ current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
295
+ s.specification_version = 3
296
+
297
+ if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
298
+ s.add_development_dependency(%q<jeweler>, [">= 0"])
299
+ s.add_development_dependency(%q<mocha>, [">= 0"])
300
+ s.add_development_dependency(%q<shoulda>, [">= 0"])
301
+ else
302
+ s.add_dependency(%q<jeweler>, [">= 0"])
303
+ s.add_dependency(%q<mocha>, [">= 0"])
304
+ s.add_dependency(%q<shoulda>, [">= 0"])
305
+ end
306
+ else
307
+ s.add_dependency(%q<jeweler>, [">= 0"])
308
+ s.add_dependency(%q<mocha>, [">= 0"])
309
+ s.add_dependency(%q<shoulda>, [">= 0"])
310
+ end
311
+ end
312
+