Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Jonathan Hoyt
authored and
Jonathan Hoyt
committed
Jan 14, 2009
1 parent
e4bcb78
commit 1d06c02
Showing
109 changed files
with
9,219 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,37 @@ | ||
Copyright (c) 2008 New Relic, Inc. All rights reserved. | ||
|
||
Certain inventions disclosed in this file may be claimed within | ||
patents owned or patent applications filed by New Relic, Inc. or third | ||
parties. | ||
|
||
Subject to the terms of this notice, New Relic grants you a | ||
nonexclusive, nontransferable license, without the right to | ||
sublicense, to (a) install and execute one copy of these files on any | ||
number of workstations owned or controlled by you and (b) distribute | ||
verbatim copies of these files to third parties. As a condition to the | ||
foregoing grant, you must provide this notice along with each copy you | ||
distribute and you must not remove, alter, or obscure this notice. All | ||
other use, reproduction, modification, distribution, or other | ||
exploitation of these files is strictly prohibited, except as may be set | ||
forth in a separate written license agreement between you and New | ||
Relic. The terms of any such license agreement will control over this | ||
notice. The license stated above will be automatically terminated and | ||
revoked if you exceed its scope or violate any of the terms of this | ||
notice. | ||
|
||
This License does not grant permission to use the trade names, | ||
trademarks, service marks, or product names of New Relic, except as | ||
required for reasonable and customary use in describing the origin of | ||
this file and reproducing the content of this notice. You may not | ||
mark or brand this file with any trade name, trademarks, service | ||
marks, or product names other than the original brand (if any) | ||
provided by New Relic. | ||
|
||
Unless otherwise expressly agreed by New Relic in a separate written | ||
license agreement, these files are provided AS IS, WITHOUT WARRANTY OF | ||
ANY KIND, including without any implied warranties of MERCHANTABILITY, | ||
FITNESS FOR A PARTICULAR PURPOSE, TITLE, or NON-INFRINGEMENT. As a | ||
condition to your use of these files, you are solely responsible for | ||
such use. New Relic will have no liability to you for direct, | ||
indirect, consequential, incidental, special, or punitive damages or | ||
for lost profits or data. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,93 @@ | ||
= New Relic RPM | ||
|
||
* http://www.newrelic.com | ||
|
||
New Relic RPM is a Ruby performance management system, developed by New Relic, Inc. | ||
RPM provides you with deep information about the performance of your Ruby on Rails | ||
or Merb application as it runs in production. The New Relic Agent is distributed as | ||
a either a Rails plugin or a Gem, both hosted on RubyForge. | ||
|
||
The New Relic Agent runs in one of two modes: | ||
|
||
* Developer Mode : Adds a web interface mapped to /newrelic to your application for | ||
showing detailed performance metrics on a page by page basis. | ||
|
||
* Production Mode : Low overhead instrumentation that captures detailed information | ||
on your application running in production and transmits them to rpm.newrelic.com | ||
where you can monitor them in real time. | ||
|
||
=== DEVELOPER MODE | ||
|
||
Developer mode is on by default when you run your application in the development | ||
environment (but not when it runs in other environments.) When running in | ||
developer mode, RPM will track the performance of every http request serviced | ||
by your application, and store in memory this information for the last 100 http | ||
transactions. | ||
|
||
When running in Developer Mode, the RPM will also add a few pages to | ||
your application that allow you to analyze this performance information. (Don't | ||
worry - those pages are not added to your application's routes when you run in | ||
production mode.) | ||
|
||
To view this performance information, including detailed SQL statement analysis, | ||
open '/newrelic' in your web application. For instance if you are running | ||
mongrel or thin on port 3000, enter the following into your browser: | ||
|
||
http://localhost:3000/newrelic | ||
|
||
=== PRODUCTION MODE | ||
|
||
To monitor your applications in production, create an account at | ||
http://newrelic.com/get-RPM.htm | ||
|
||
When your application runs in the production environment, the New Relic agent | ||
runs in production mode. It connects to the New Relic RPM service and sends deep | ||
performance data to the RPM service for your analysis. To view this data, login | ||
to http://rpm.newrelic.com. | ||
|
||
NOTE: You must have a valid account and license key to view this data online. | ||
When you sign up for an account at www.newrelic.com, you will be provided with a | ||
license key, as well as a default configuration file for New Relic RPM. You can | ||
either paste your license key into your existing configuration file, | ||
config/newrelic.yml, or you can replace that config file with the one included in | ||
your welcome email. | ||
|
||
== REQUIREMENTS: | ||
|
||
Ruby 1.8.6 | ||
Rails 1.2.6 or above | ||
Merb 1.0 or above | ||
|
||
== RAILS PLUG-IN INSTALL: | ||
|
||
script/plugin install http://newrelic.rubyforge.net/svn/newrelic_rpm | ||
|
||
== GEM INSTALL: | ||
|
||
sudo gem install newrelic_rpm | ||
|
||
For Rails, edit environment.rb and add to the initalizer block: | ||
|
||
config.gem "newrelic_rpm" | ||
|
||
The Developer Mode is unavailable when using the gem on Rails versions prior to 2.0. | ||
|
||
== MERB SUPPORT: | ||
|
||
To monitor a merb app install the newrelic_rpm gem and add <code>dependency 'newrelic_rpm'</code> | ||
to your init.rb file. | ||
|
||
Developer Mode not currently available in merb. | ||
|
||
== SUPPORT: | ||
|
||
Reach out to us - and to fellow RPM users - on our support forum at | ||
http://getsatisfaction.com/newrelic. We’ll share tips and tricks, answer all your | ||
questions, and announce product updates. Operators are standing by. | ||
|
||
For other support channels, see http://www.newrelic.com/support. | ||
|
||
Thank you, and may your application scale to infinity plus one. | ||
|
||
Lew Cirne, Founder and CEO | ||
New Relic, Inc. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,38 @@ | ||
require 'rubygems' | ||
require 'rake/gempackagetask' | ||
require 'lib/new_relic/version.rb' | ||
|
||
GEM_NAME = "newrelic_rpm" | ||
GEM_VERSION = NewRelic::VERSION::STRING | ||
AUTHOR = "Bill Kayser" | ||
EMAIL = "bkayser@newrelic.com" | ||
HOMEPAGE = "http://www.newrelic.com" | ||
SUMMARY = "New Relic Ruby Performance Monitoring Agent" | ||
|
||
spec = Gem::Specification.new do |s| | ||
s.rubyforge_project = 'newrelic' | ||
s.name = GEM_NAME | ||
s.version = GEM_VERSION | ||
s.platform = Gem::Platform::RUBY | ||
s.has_rdoc = true | ||
s.extra_rdoc_files = ["README", "LICENSE"] | ||
s.summary = SUMMARY | ||
s.description = s.summary | ||
s.author = AUTHOR | ||
s.email = EMAIL | ||
s.homepage = HOMEPAGE | ||
s.require_path = 'lib' | ||
s.files = %w(install.rb LICENSE README newrelic.yml Rakefile) + Dir.glob("{lib,recipes,test,ui}/**/*") | ||
|
||
end | ||
|
||
Rake::GemPackageTask.new(spec) do |pkg| | ||
pkg.gem_spec = spec | ||
end | ||
|
||
desc "Create a gemspec file" | ||
task :gemspec do | ||
File.open("#{GEM_NAME}.gemspec", "w") do |file| | ||
file.puts spec.to_ruby | ||
end | ||
end |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,29 @@ | ||
# This is the initialization for the RPM Rails plugin | ||
|
||
# If you are having problems seeing data, be sure and check the | ||
# newrelic_agent log files. | ||
# | ||
# If you can't find any log files and you don't see anything in your | ||
# application log files, try uncommenting these lines to verify | ||
# the plugin is being loaded, then contact support@newrelic.com | ||
# if you are unable to resolve the issue. | ||
|
||
# STDOUT.puts "RPM detected environment: #{NewRelic::LocalEnvironment.new}, RAILS_ENV: #{RAILS_ENV}" | ||
|
||
# Initializer for the NewRelic Agent | ||
begin | ||
# JRuby's glassfish plugin is trying to run the Initializer twice, | ||
# which isn't a good thing so we ignore subsequent invocations here. | ||
if ! defined?(::NEWRELIC_STARTED) | ||
::NEWRELIC_STARTED = "#{caller.join("\n")}" | ||
NewRelic::Config.instance.start_plugin (defined?(config) ? config : nil) | ||
else | ||
NewRelic::Config.instance.log.debug "Attempt to initialize the plugin twice!" | ||
NewRelic::Config.instance.log.debug "Original call: \n#{::NEWRELIC_STARTED}" | ||
NewRelic::Config.instance.log.debug "Here we are now: \n#{caller.join("\n")}" | ||
end | ||
rescue => e | ||
NewRelic::Config.instance.log! "Error initializing New Relic plugin (#{e})", :error | ||
NewRelic::Config.instance.log! e.backtrace.join("\n"), :error | ||
NewRelic::Config.instance.log! "Agent is disabled." | ||
end |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,37 @@ | ||
require 'ftools' | ||
require 'erb' | ||
|
||
# Install a newrelic.yml file into the local config directory. | ||
# If no such directory exists, install it in ~/.newrelic. | ||
# | ||
# If a config file already exists, print a warning and exit. | ||
# | ||
if File.directory? "config" | ||
dest_dir = "config" | ||
else | ||
dest_dir = File.join(ENV["HOME"],".newrelic") rescue nil | ||
FileUtils.mkdir(dest_dir) if dest_dir | ||
end | ||
|
||
src_config_file = File.join(File.dirname(__FILE__),"newrelic.yml") | ||
dest_config_file = File.join(dest_dir, "newrelic.yml") if dest_dir | ||
|
||
if !dest_dir | ||
STDERR.puts "Could not find a config or ~/.newrelic directory to locate the default newrelic.yml file" | ||
elsif File::exists? dest_config_file | ||
STDERR.puts "\nA config file already exists at #{dest_config_file}.\n" | ||
else | ||
generated_for_user = "" | ||
license_key = "PASTE_YOUR_KEY_HERE" | ||
yaml = ERB.new(File.read(src_config_file)).result(binding) | ||
File.open( dest_config_file, 'w' ) do |out| | ||
out.puts yaml | ||
end | ||
|
||
puts IO.read(File.join(File.dirname(__FILE__), 'README')) | ||
puts "\n--------------------------------------------------------\n" | ||
puts "Installing a default configuration file in #{dest_dir}." | ||
puts "To monitor your application in production mode, you must enter a license key." | ||
puts "See #{dest_config_file}" | ||
puts "For a license key, sign up at http://rpm.newrelic.com/signup." | ||
end |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,26 @@ | ||
require 'new_relic/version' | ||
require 'new_relic/local_environment' | ||
require 'new_relic/stats' | ||
require 'new_relic/metric_spec' | ||
require 'new_relic/metric_data' | ||
require 'new_relic/transaction_analysis' | ||
require 'new_relic/transaction_sample' | ||
require 'new_relic/noticed_error' | ||
|
||
require 'new_relic/agent/chained_call' | ||
require 'new_relic/agent/agent' | ||
require 'new_relic/agent/method_tracer' | ||
require 'new_relic/agent/synchronize' | ||
require 'new_relic/agent/worker_loop' | ||
require 'new_relic/agent/stats_engine' | ||
require 'new_relic/agent/collection_helper' | ||
require 'new_relic/agent/transaction_sampler' | ||
require 'new_relic/agent/error_collector' | ||
|
||
require 'set' | ||
require 'sync' | ||
require 'thread' | ||
|
||
module NewRelic::Agent | ||
|
||
end |
Oops, something went wrong.