newrelic_rpm 2.9.2 → 2.9.3

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


This version of newrelic_rpm might be problematic. Click here for more details.

data/CHANGELOG CHANGED
@@ -1,4 +1,8 @@
1
- v2.9.2
1
+ v2.9.3.
2
+ * Fix startup failure in Windows due to memory sampler
3
+ * Add JRuby environment information
4
+
5
+ v2.9.2.
2
6
  * change default apdex_t to 0.5 seconds
3
7
  * fix bug in deployments introduced by multi_homed setting
4
8
  * support overriding the log in the agent api
@@ -81,6 +81,10 @@ module NewRelic
81
81
  # failures.
82
82
  class IgnoreSilentlyException < StandardError; end
83
83
 
84
+ # Used for when a transaction trace or error report has too much
85
+ # data, so we reset the queue to clear the extra-large item
86
+ class PostTooBigException < IgnoreSilentlyException; end
87
+
84
88
  # Reserved for future use. Meant to represent a problem on the server side.
85
89
  class ServerError < StandardError; end
86
90
 
@@ -5,15 +5,17 @@ require 'logger'
5
5
  require 'zlib'
6
6
  require 'stringio'
7
7
 
8
- # The NewRelic Agent collects performance data from ruby applications in realtime as the
9
- # application runs, and periodically sends that data to the NewRelic server.
8
+ # The NewRelic Agent collects performance data from ruby applications
9
+ # in realtime as the application runs, and periodically sends that
10
+ # data to the NewRelic server.
10
11
  module NewRelic::Agent
11
-
12
- # The Agent is a singleton that is instantiated when the plugin is activated.
12
+
13
+ # The Agent is a singleton that is instantiated when the plugin is
14
+ # activated.
13
15
  class Agent
14
16
 
15
- # Specifies the version of the agent's communication protocol
16
- # with the NewRelic hosted site.
17
+ # Specifies the version of the agent's communication protocol with
18
+ # the NewRelic hosted site.
17
19
 
18
20
  PROTOCOL_VERSION = 5
19
21
 
@@ -34,7 +36,8 @@ module NewRelic::Agent
34
36
  end
35
37
 
36
38
  # this method makes sure that the agent is running. it's important
37
- # for passenger where processes are forked and the agent is dormant
39
+ # for passenger where processes are forked and the agent is
40
+ # dormant
38
41
  #
39
42
  def ensure_worker_thread_started
40
43
  return unless control.agent_enabled? && control.monitor_mode? && !@invalid_license
@@ -45,7 +48,7 @@ module NewRelic::Agent
45
48
  end
46
49
 
47
50
  # True if the worker thread has been started. Doesn't necessarily
48
- # mean we are connected
51
+ # mean we are connected
49
52
  def running?
50
53
  control.agent_enabled? && control.monitor_mode? && @worker_loop && @worker_loop.pid == $$
51
54
  end
@@ -63,7 +66,8 @@ module NewRelic::Agent
63
66
 
64
67
  log.debug "Starting Agent shutdown"
65
68
 
66
- # if litespeed, then ignore all future SIGUSR1 - it's litespeed trying to shut us down
69
+ # if litespeed, then ignore all future SIGUSR1 - it's
70
+ # litespeed trying to shut us down
67
71
 
68
72
  if control.dispatcher == :litespeed
69
73
  Signal.trap("SIGUSR1", "IGNORE")
@@ -129,10 +133,11 @@ module NewRelic::Agent
129
133
  def log
130
134
  NewRelic::Control.instance.log
131
135
  end
132
-
133
- # Start up the agent. This verifies that the agent_enabled? is true
134
- # and initializes the sampler based on the current controluration settings.
135
- # Then it will fire up the background thread for sending data to the server if applicable.
136
+
137
+ # Start up the agent. This verifies that the agent_enabled? is
138
+ # true and initializes the sampler based on the current
139
+ # controluration settings. Then it will fire up the background
140
+ # thread for sending data to the server if applicable.
136
141
  def start
137
142
  if started?
138
143
  control.log! "Agent Started Already!", :error
@@ -155,8 +160,10 @@ module NewRelic::Agent
155
160
 
156
161
  @record_sql = sampler_config.fetch('record_sql', :obfuscated).to_sym
157
162
 
158
- # use transaction_threshold: 4.0 to force the TT collection threshold to 4 seconds
159
- # use transaction_threshold: apdex_f to use your apdex t value multiplied by 4
163
+ # use transaction_threshold: 4.0 to force the TT collection
164
+ # threshold to 4 seconds
165
+ # use transaction_threshold: apdex_f to use your apdex t value
166
+ # multiplied by 4
160
167
  # undefined transaction_threshold defaults to 2.0
161
168
  apdex_f = 4 * NewRelic::Control.instance['apdex_t'].to_f
162
169
  @slowest_transaction_threshold = sampler_config.fetch('transaction_threshold', 2.0)
@@ -188,8 +195,9 @@ module NewRelic::Agent
188
195
  control.log! "Invalid license key: #{control.license_key}", :error
189
196
  else
190
197
  launch_worker_thread
191
- # When the VM shuts down, attempt to send a message to the server that
192
- # this agent run is stopping, assuming it has successfully connected
198
+ # When the VM shuts down, attempt to send a message to the
199
+ # server that this agent run is stopping, assuming it has
200
+ # successfully connected
193
201
  at_exit { shutdown }
194
202
  end
195
203
  end
@@ -202,19 +210,20 @@ module NewRelic::Agent
202
210
  @collector ||= control.server
203
211
  end
204
212
 
205
- # Connect to the server, and run the worker loop forever. Will not return.
213
+ # Connect to the server, and run the worker loop forever.
214
+ # Will not return.
206
215
  def run_worker_loop
207
216
 
208
- # connect to the server. this will keep retrying until successful or
209
- # it determines the license is bad.
217
+ # connect to the server. this will keep retrying until
218
+ # successful or it determines the license is bad.
210
219
  connect
211
220
 
212
221
  # We may not be connected now but keep going for dev mode
213
222
  if @connected
214
223
  begin
215
- # determine the reporting period (server based)
216
- # note if the agent attempts to report more frequently than the specified
217
- # report data, then it will be ignored.
224
+ # determine the reporting period (server based)
225
+ # note if the agent attempts to report more frequently than
226
+ # the specified report data, then it will be ignored.
218
227
 
219
228
  control.log! "Reporting performance data every #{@report_period} seconds."
220
229
  @worker_loop.add_task(@report_period) do
@@ -271,9 +280,11 @@ module NewRelic::Agent
271
280
  end
272
281
  @worker_thread['newrelic_label'] = 'Worker Loop'
273
282
 
274
- # This code should be activated to check that no dependency loading is occuring in the background thread
275
- # by stopping the foreground thread after the background thread is created. Turn on dependency loading logging
276
- # and make sure that no loading occurs.
283
+ # This code should be activated to check that no dependency
284
+ # loading is occuring in the background thread by stopping the
285
+ # foreground thread after the background thread is created. Turn
286
+ # on dependency loading logging and make sure that no loading
287
+ # occurs.
277
288
  #
278
289
  # control.log! "FINISHED AGENT INIT"
279
290
  # while true
@@ -302,12 +313,11 @@ module NewRelic::Agent
302
313
  @last_harvest_time = Time.now
303
314
  end
304
315
 
305
- # Connect to the server and validate the license.
306
- # If successful, @connected has true when finished.
307
- # If not successful, you can keep calling this.
308
- # Return false if we could not establish a connection with the
309
- # server and we should not retry, such as if there's
310
- # a bad license key.
316
+ # Connect to the server and validate the license. If successful,
317
+ # @connected has true when finished. If not successful, you can
318
+ # keep calling this. Return false if we could not establish a
319
+ # connection with the server and we should not retry, such as if
320
+ # there's a bad license key.
311
321
  def connect
312
322
  # wait a few seconds for the web server to boot, necessary in development
313
323
  connect_retry_period = 5
@@ -331,7 +341,8 @@ module NewRelic::Agent
331
341
  control.log! "Connected to NewRelic Service at #{@collector}"
332
342
  log.debug "Agent ID = #{@agent_id}."
333
343
 
334
- # Ask the server for permission to send transaction samples. determined by subscription license.
344
+ # Ask the server for permission to send transaction samples.
345
+ # determined by subscription license.
335
346
  @should_send_samples = invoke_remote :should_collect_samples, @agent_id
336
347
 
337
348
  if @should_send_samples
@@ -446,13 +457,15 @@ module NewRelic::Agent
446
457
  log.debug "#{now}: sent slowest sample (#{@agent_id}) in #{Time.now - now} seconds"
447
458
  end
448
459
 
449
- # if we succeed sending this sample, then we don't need to keep the slowest sample
450
- # around - it has been sent already and we can collect the next one
460
+ # if we succeed sending this sample, then we don't need to keep
461
+ # the slowest sample around - it has been sent already and we
462
+ # can collect the next one
451
463
  @traces = nil
452
464
 
453
- # note - exceptions are logged in invoke_remote. If an exception is encountered here,
454
- # then the slowest sample of is determined of the entire period since the last
455
- # reported sample.
465
+ # note - exceptions are logged in invoke_remote. If an
466
+ # exception is encountered here, then the slowest sample of is
467
+ # determined of the entire period since the last reported
468
+ # sample.
456
469
  end
457
470
 
458
471
  def harvest_and_send_errors
@@ -522,9 +535,10 @@ module NewRelic::Agent
522
535
  end
523
536
  rescue ForceDisconnectException => e
524
537
  log.error "RPM forced this agent to disconnect (#{e.message})\n" \
525
- "Restart this process to resume monitoring via rpm.newrelic.com."
526
- # when a disconnect is requested, stop the current thread, which is the worker thread that
527
- # gathers data and talks to the server.
538
+ "Restart this process to resume monitoring via rpm.newrelic.com."
539
+ # when a disconnect is requested, stop the current thread, which
540
+ # is the worker thread that gathers data and talks to the
541
+ # server.
528
542
  @connected = false
529
543
  Thread.exit
530
544
  rescue SystemCallError, SocketError => e
@@ -291,7 +291,11 @@ module NewRelic
291
291
  agent = NewRelic::Agent.instance
292
292
  agent.stats_engine.add_sampler NewRelic::Agent::Samplers::MongrelSampler.new if local_env.mongrel
293
293
  agent.stats_engine.add_harvest_sampler NewRelic::Agent::Samplers::CpuSampler.new unless defined? Java
294
- agent.stats_engine.add_sampler NewRelic::Agent::Samplers::MemorySampler.new
294
+ begin
295
+ agent.stats_engine.add_sampler NewRelic::Agent::Samplers::MemorySampler.new
296
+ rescue RuntimeError => e
297
+ log.error "Cannot add memory sampling: #{e}"
298
+ end
295
299
  end
296
300
 
297
301
  protected
@@ -75,6 +75,10 @@ module NewRelic
75
75
  append_environment_value('Ruby version'){ RUBY_VERSION }
76
76
  append_environment_value('Ruby platform') { RUBY_PLATFORM }
77
77
  append_environment_value('Ruby patchlevel') { RUBY_PATCHLEVEL }
78
+ if defined? Java
79
+ append_environment_value('JRuby version') { JRUBY_VERSION }
80
+ append_environment_value('Java VM version') { ENV_JAVA['java.vm.version']}
81
+ end
78
82
  append_environment_value('OS version') { `uname -v` }
79
83
  append_environment_value('OS') { `uname -s` } ||
80
84
  append_environment_value('OS') { ENV['OS'] }
@@ -3,7 +3,7 @@ module NewRelic
3
3
  module VERSION #:nodoc:
4
4
  MAJOR = 2
5
5
  MINOR = 9
6
- TINY = 2
6
+ TINY = 3
7
7
  STRING = [MAJOR, MINOR, TINY].join('.')
8
8
  end
9
9
 
data/newrelic_rpm.gemspec CHANGED
@@ -2,28 +2,27 @@
2
2
 
3
3
  Gem::Specification.new do |s|
4
4
  s.name = %q{newrelic_rpm}
5
- s.version = "2.9.2"
5
+ s.version = "2.9.3"
6
6
 
7
7
  s.required_rubygems_version = Gem::Requirement.new(">= 1.2") if s.respond_to? :required_rubygems_version=
8
8
  s.authors = ["Bill Kayser"]
9
- s.date = %q{2009-06-23}
9
+ s.date = %q{2009-07-10}
10
10
  s.description = %q{New Relic Ruby Performance Monitoring Agent}
11
11
  s.email = %q{bkayser@newrelic.com}
12
12
  s.executables = ["mongrel_rpm", "newrelic_cmd"]
13
13
  s.extra_rdoc_files = ["bin/mongrel_rpm", "bin/newrelic_cmd", "CHANGELOG", "lib/new_relic/agent/agent.rb", "lib/new_relic/agent/chained_call.rb", "lib/new_relic/agent/collection_helper.rb", "lib/new_relic/agent/error_collector.rb", "lib/new_relic/agent/instrumentation/active_merchant.rb", "lib/new_relic/agent/instrumentation/active_record_instrumentation.rb", "lib/new_relic/agent/instrumentation/controller_instrumentation.rb", "lib/new_relic/agent/instrumentation/data_mapper.rb", "lib/new_relic/agent/instrumentation/dispatcher_instrumentation.rb", "lib/new_relic/agent/instrumentation/error_instrumentation.rb", "lib/new_relic/agent/instrumentation/memcache.rb", "lib/new_relic/agent/instrumentation/merb/controller.rb", "lib/new_relic/agent/instrumentation/merb/dispatcher.rb", "lib/new_relic/agent/instrumentation/merb/errors.rb", "lib/new_relic/agent/instrumentation/passenger_instrumentation.rb", "lib/new_relic/agent/instrumentation/rails/action_controller.rb", "lib/new_relic/agent/instrumentation/rails/action_web_service.rb", "lib/new_relic/agent/instrumentation/rails/dispatcher.rb", "lib/new_relic/agent/instrumentation/rails/errors.rb", "lib/new_relic/agent/method_tracer.rb", "lib/new_relic/agent/patch_const_missing.rb", "lib/new_relic/agent/sampler.rb", "lib/new_relic/agent/samplers/cpu_sampler.rb", "lib/new_relic/agent/samplers/memory_sampler.rb", "lib/new_relic/agent/samplers/mongrel_sampler.rb", "lib/new_relic/agent/shim_agent.rb", "lib/new_relic/agent/stats_engine.rb", "lib/new_relic/agent/transaction_sampler.rb", "lib/new_relic/agent/worker_loop.rb", "lib/new_relic/agent.rb", "lib/new_relic/commands/deployments.rb", "lib/new_relic/commands/new_relic_commands.rb", "lib/new_relic/control/merb.rb", "lib/new_relic/control/rails.rb", "lib/new_relic/control/ruby.rb", "lib/new_relic/control.rb", "lib/new_relic/local_environment.rb", "lib/new_relic/merbtasks.rb", "lib/new_relic/metric_data.rb", "lib/new_relic/metric_parser/action_mailer.rb", "lib/new_relic/metric_parser/active_merchant.rb", "lib/new_relic/metric_parser/active_record.rb", "lib/new_relic/metric_parser/controller.rb", "lib/new_relic/metric_parser/controller_cpu.rb", "lib/new_relic/metric_parser/database.rb", "lib/new_relic/metric_parser/errors.rb", "lib/new_relic/metric_parser/mem_cache.rb", "lib/new_relic/metric_parser/view.rb", "lib/new_relic/metric_parser/web_service.rb", "lib/new_relic/metric_parser.rb", "lib/new_relic/metric_spec.rb", "lib/new_relic/metrics.rb", "lib/new_relic/noticed_error.rb", "lib/new_relic/rack/metric_app.rb", "lib/new_relic/rack/newrelic.ru", "lib/new_relic/rack/newrelic.yml", "lib/new_relic/rack.rb", "lib/new_relic/recipes.rb", "lib/new_relic/stats.rb", "lib/new_relic/transaction_analysis.rb", "lib/new_relic/transaction_sample.rb", "lib/new_relic/version.rb", "lib/new_relic_api.rb", "lib/newrelic_rpm.rb", "lib/tasks/all.rb", "lib/tasks/install.rake", "lib/tasks/tests.rake", "LICENSE", "README.md"]
14
14
  s.files = ["bin/mongrel_rpm", "bin/newrelic_cmd", "cert/cacert.pem", "CHANGELOG", "init.rb", "install.rb", "lib/new_relic/agent/agent.rb", "lib/new_relic/agent/chained_call.rb", "lib/new_relic/agent/collection_helper.rb", "lib/new_relic/agent/error_collector.rb", "lib/new_relic/agent/instrumentation/active_merchant.rb", "lib/new_relic/agent/instrumentation/active_record_instrumentation.rb", "lib/new_relic/agent/instrumentation/controller_instrumentation.rb", "lib/new_relic/agent/instrumentation/data_mapper.rb", "lib/new_relic/agent/instrumentation/dispatcher_instrumentation.rb", "lib/new_relic/agent/instrumentation/error_instrumentation.rb", "lib/new_relic/agent/instrumentation/memcache.rb", "lib/new_relic/agent/instrumentation/merb/controller.rb", "lib/new_relic/agent/instrumentation/merb/dispatcher.rb", "lib/new_relic/agent/instrumentation/merb/errors.rb", "lib/new_relic/agent/instrumentation/passenger_instrumentation.rb", "lib/new_relic/agent/instrumentation/rails/action_controller.rb", "lib/new_relic/agent/instrumentation/rails/action_web_service.rb", "lib/new_relic/agent/instrumentation/rails/dispatcher.rb", "lib/new_relic/agent/instrumentation/rails/errors.rb", "lib/new_relic/agent/method_tracer.rb", "lib/new_relic/agent/patch_const_missing.rb", "lib/new_relic/agent/sampler.rb", "lib/new_relic/agent/samplers/cpu_sampler.rb", "lib/new_relic/agent/samplers/memory_sampler.rb", "lib/new_relic/agent/samplers/mongrel_sampler.rb", "lib/new_relic/agent/shim_agent.rb", "lib/new_relic/agent/stats_engine.rb", "lib/new_relic/agent/transaction_sampler.rb", "lib/new_relic/agent/worker_loop.rb", "lib/new_relic/agent.rb", "lib/new_relic/commands/deployments.rb", "lib/new_relic/commands/new_relic_commands.rb", "lib/new_relic/control/merb.rb", "lib/new_relic/control/rails.rb", "lib/new_relic/control/ruby.rb", "lib/new_relic/control.rb", "lib/new_relic/local_environment.rb", "lib/new_relic/merbtasks.rb", "lib/new_relic/metric_data.rb", "lib/new_relic/metric_parser/action_mailer.rb", "lib/new_relic/metric_parser/active_merchant.rb", "lib/new_relic/metric_parser/active_record.rb", "lib/new_relic/metric_parser/controller.rb", "lib/new_relic/metric_parser/controller_cpu.rb", "lib/new_relic/metric_parser/database.rb", "lib/new_relic/metric_parser/errors.rb", "lib/new_relic/metric_parser/mem_cache.rb", "lib/new_relic/metric_parser/view.rb", "lib/new_relic/metric_parser/web_service.rb", "lib/new_relic/metric_parser.rb", "lib/new_relic/metric_spec.rb", "lib/new_relic/metrics.rb", "lib/new_relic/noticed_error.rb", "lib/new_relic/rack/metric_app.rb", "lib/new_relic/rack/newrelic.ru", "lib/new_relic/rack/newrelic.yml", "lib/new_relic/rack.rb", "lib/new_relic/recipes.rb", "lib/new_relic/stats.rb", "lib/new_relic/transaction_analysis.rb", "lib/new_relic/transaction_sample.rb", "lib/new_relic/version.rb", "lib/new_relic_api.rb", "lib/newrelic_rpm.rb", "lib/tasks/all.rb", "lib/tasks/install.rake", "lib/tasks/tests.rake", "LICENSE", "Manifest", "newrelic.yml", "Rakefile", "README.md", "recipes/newrelic.rb", "test/active_record_fixtures.rb", "test/config/newrelic.yml", "test/config/test_control.rb", "test/new_relic/agent/active_record_instrumentation_test.rb", "test/new_relic/agent/agent_test.rb", "test/new_relic/agent/agent_test_controller.rb", "test/new_relic/agent/classloader_patch_test.rb", "test/new_relic/agent/collection_helper_test.rb", "test/new_relic/agent/controller_test.rb", "test/new_relic/agent/dispatcher_instrumentation_test.rb", "test/new_relic/agent/error_collector_test.rb", "test/new_relic/agent/method_tracer_test.rb", "test/new_relic/agent/metric_data_test.rb", "test/new_relic/agent/mock_ar_connection.rb", "test/new_relic/agent/mock_scope_listener.rb", "test/new_relic/agent/stats_engine_test.rb", "test/new_relic/agent/testable_agent.rb", "test/new_relic/agent/transaction_sample_builder_test.rb", "test/new_relic/agent/transaction_sample_test.rb", "test/new_relic/agent/transaction_sampler_test.rb", "test/new_relic/agent/worker_loop_test.rb", "test/new_relic/control_test.rb", "test/new_relic/deployments_api_test.rb", "test/new_relic/environment_test.rb", "test/new_relic/metric_parser_test.rb", "test/new_relic/metric_spec_test.rb", "test/new_relic/samplers_test.rb", "test/new_relic/shim_agent_test.rb", "test/new_relic/stats_test.rb", "test/new_relic/version_number_test.rb", "test/test_helper.rb", "test/ui/newrelic_controller_test.rb", "test/ui/newrelic_helper_test.rb", "ui/controllers/newrelic_controller.rb", "ui/helpers/google_pie_chart.rb", "ui/helpers/newrelic_helper.rb", "ui/views/layouts/newrelic_default.rhtml", "ui/views/newrelic/_explain_plans.rhtml", "ui/views/newrelic/_sample.rhtml", "ui/views/newrelic/_segment.rhtml", "ui/views/newrelic/_segment_limit_message.rhtml", "ui/views/newrelic/_segment_row.rhtml", "ui/views/newrelic/_show_sample_detail.rhtml", "ui/views/newrelic/_show_sample_sql.rhtml", "ui/views/newrelic/_show_sample_summary.rhtml", "ui/views/newrelic/_sql_row.rhtml", "ui/views/newrelic/_stack_trace.rhtml", "ui/views/newrelic/_table.rhtml", "ui/views/newrelic/explain_sql.rhtml", "ui/views/newrelic/images/arrow-close.png", "ui/views/newrelic/images/arrow-open.png", "ui/views/newrelic/images/blue_bar.gif", "ui/views/newrelic/images/file_icon.png", "ui/views/newrelic/images/gray_bar.gif", "ui/views/newrelic/images/new_relic_rpm_desktop.gif", "ui/views/newrelic/index.rhtml", "ui/views/newrelic/javascript/prototype-scriptaculous.js", "ui/views/newrelic/javascript/transaction_sample.js", "ui/views/newrelic/sample_not_found.rhtml", "ui/views/newrelic/show_sample.rhtml", "ui/views/newrelic/show_source.rhtml", "ui/views/newrelic/stylesheets/style.css", "ui/views/newrelic/threads.rhtml", "newrelic_rpm.gemspec"]
15
- s.has_rdoc = true
16
15
  s.homepage = %q{http://www.newrelic.com}
17
16
  s.rdoc_options = ["--line-numbers", "--inline-source", "--title", "Newrelic_rpm", "--main", "README.md"]
18
17
  s.require_paths = ["lib"]
19
18
  s.rubyforge_project = %q{newrelic}
20
- s.rubygems_version = %q{1.3.1}
19
+ s.rubygems_version = %q{1.3.4}
21
20
  s.summary = %q{New Relic Ruby Performance Monitoring Agent}
22
21
  s.test_files = ["test/config/test_control.rb", "test/new_relic/agent/active_record_instrumentation_test.rb", "test/new_relic/agent/agent_test.rb", "test/new_relic/agent/classloader_patch_test.rb", "test/new_relic/agent/collection_helper_test.rb", "test/new_relic/agent/controller_test.rb", "test/new_relic/agent/dispatcher_instrumentation_test.rb", "test/new_relic/agent/error_collector_test.rb", "test/new_relic/agent/method_tracer_test.rb", "test/new_relic/agent/metric_data_test.rb", "test/new_relic/agent/stats_engine_test.rb", "test/new_relic/agent/transaction_sample_builder_test.rb", "test/new_relic/agent/transaction_sample_test.rb", "test/new_relic/agent/transaction_sampler_test.rb", "test/new_relic/agent/worker_loop_test.rb", "test/new_relic/control_test.rb", "test/new_relic/deployments_api_test.rb", "test/new_relic/environment_test.rb", "test/new_relic/metric_parser_test.rb", "test/new_relic/metric_spec_test.rb", "test/new_relic/samplers_test.rb", "test/new_relic/shim_agent_test.rb", "test/new_relic/stats_test.rb", "test/new_relic/version_number_test.rb", "test/test_helper.rb", "test/ui/newrelic_controller_test.rb", "test/ui/newrelic_helper_test.rb"]
23
22
 
24
23
  if s.respond_to? :specification_version then
25
24
  current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
26
- s.specification_version = 2
25
+ s.specification_version = 3
27
26
 
28
27
  if Gem::Version.new(Gem::RubyGemsVersion) >= Gem::Version.new('1.2.0') then
29
28
  s.add_development_dependency(%q<echoe>, [">= 0"])
@@ -39,10 +39,9 @@
39
39
  </div>
40
40
  <div id='footer'>
41
41
  <img width="100%" height="4" src="<%= url_for(:controller => :newrelic, :action => :image, :file => 'blue_bar.gif', :content_type => 'image/gif') %>" alt="spacer"/>
42
- <p>Crazy about Rails? Want to be a part of one of the fastest growing companies
43
- in the Rails community? <a href="http://www.newrelic.com/jobs.html" title="Learn more about what we're looking for.">We're Hiring! &raquo;</a><br />
42
+ <p>We're hiring! Check out our <%=link_to "job postings", 'http://www.newrelic.com/jobs.html' %></p>
44
43
  <a href="/newrelic">Home</a> | <a href="&#109;&#97;&#105;&#108;&#116;&#111;:&#x73;&#x75;&#x70;&#112;&#111;&#x72;&#116;&#x40;&#x6E;&#x65;&#119;&#114;&#x65;&#x6C;&#105;&#x63;&#x2E;&#99;&#x6F;&#109;?subject=&#70;&#101;&#x65;&#x64;&#x62;&#x61;&#x63;&#107;" title="">&#x46;&#x65;&#101;&#x64;&#98;&#97;&#x63;&#x6B;</a><br />
45
44
  Monitor your Rails Application in Production. <a href="http://www.newrelic.com/dev-upgrade.html">Learn more. &raquo;</a><br />
46
- &copy; 2008 New Relic. All rights reserved.</p>
45
+ &copy; 2008 - <%= Time.now.strftime('%Y') %> New Relic. All rights reserved.</p>
47
46
  </div>
48
47
  </body>
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: newrelic_rpm
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.9.2
4
+ version: 2.9.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Bill Kayser
@@ -9,7 +9,7 @@ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
11
 
12
- date: 2009-06-23 00:00:00 -07:00
12
+ date: 2009-07-10 00:00:00 -07:00
13
13
  default_executable:
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
@@ -248,6 +248,8 @@ files:
248
248
  - newrelic_rpm.gemspec
249
249
  has_rdoc: true
250
250
  homepage: http://www.newrelic.com
251
+ licenses: []
252
+
251
253
  post_install_message:
252
254
  rdoc_options:
253
255
  - --line-numbers
@@ -273,9 +275,9 @@ required_rubygems_version: !ruby/object:Gem::Requirement
273
275
  requirements: []
274
276
 
275
277
  rubyforge_project: newrelic
276
- rubygems_version: 1.3.1
278
+ rubygems_version: 1.3.4
277
279
  signing_key:
278
- specification_version: 2
280
+ specification_version: 3
279
281
  summary: New Relic Ruby Performance Monitoring Agent
280
282
  test_files:
281
283
  - test/config/test_control.rb