Skip to content
This repository has been archived by the owner on Apr 1, 2020. It is now read-only.

Commit

Permalink
added basic test which doesn't currently test much
Browse files Browse the repository at this point in the history
  • Loading branch information
Karl committed May 15, 2010
1 parent 8e6fafe commit 93db12d
Show file tree
Hide file tree
Showing 4 changed files with 187 additions and 4 deletions.
4 changes: 3 additions & 1 deletion lib/rpm_contrib/instrumentation/mongoid.rb
Original file line number Original file line Diff line number Diff line change
@@ -1,4 +1,5 @@
if defined?(::MongoMapper) && !NewRelic::Control.instance['disable_mongodb'] debugger
if defined?(::Mongoid) && !NewRelic::Control.instance['disable_mongodb']


module Mongoid #:nodoc: module Mongoid #:nodoc:
module Document module Document
Expand All @@ -20,6 +21,7 @@ module RPMContrib::Instrumentation
module Mongoid module Mongoid
def included(model) def included(model)
model.metaclass.class_eval do model.metaclass.class_eval do
puts "adding mongoid method tracers for #{model.name}"
add_method_tracer :create, 'Database/#{self.name}/create' add_method_tracer :create, 'Database/#{self.name}/create'
add_method_tracer :create!, 'Database/#{self.name}/create!' add_method_tracer :create!, 'Database/#{self.name}/create!'
add_method_tracer :delete_all, 'Database/#{self.name}/delete_all' add_method_tracer :delete_all, 'Database/#{self.name}/delete_all'
Expand Down
175 changes: 175 additions & 0 deletions newrelic.yml
Original file line number Original file line Diff line number Diff line change
@@ -0,0 +1,175 @@
#
# This file configures the NewRelic RPM Agent, NewRelic RPM monitors Rails
# applications with deep visibility and low overhead. For more information,
# visit www.newrelic.com.
#
# This configuration file is custom generated for rpm_config
#
# here are the settings that are common to all environments
common: &default_settings
# ============================== LICENSE KEY ===============================
# You must specify the licence key associated with your New Relic account.
# This key binds your Agent's data to your account in the New Relic RPM service.
license_key: 'test'

# Application Name
# Set this to be the name of your application as you'd like it show up in RPM.
# RPM will then auto-map instances of your application into a RPM "application"
# on your home dashboard page. This setting does not prevent you from manually
# defining applications.
app_name: rpm_config

# When 'enabled' is turned on, the agent collects performance data
# by inserting lightweight tracers on key methods inside the rails
# framework and asynchronously aggregating and reporting this
# performance data to the NewRelic RPM service at newrelic.com.
enabled: false

# The newrelic agent generates its own log file to keep its logging
# information separate from that of your application. Specify its
# log level here.
log_level: info

# The newrelic agent communicates with the RPM service via http by
# default. If you want to communicate via https to increase
# security, then turn on SSL by setting this value to true. Note,
# this will result in increased CPU overhead to perform the
# encryption involved in SSL communication, but this work is done
# asynchronously to the threads that process your application code,
# so it should not impact response times.
ssl: false

# EXPERIMENTAL: enable verification of the SSL certificate sent by
# the server. This setting has no effect unless SSL is enabled
# above. This may block your application. Only enable it if the data
# you send us needs end-to-end verified certificates.
#
# This means we cannot cache the DNS lookup, so each request to the
# RPM service will perform a lookup. It also means that we cannot
# use a non-blocking lookup, so in a worst case, if you have DNS
# problems, your app may block indefinitely.
# verify_certificate: true

# Set your application's Apdex threshold value with the 'apdex_t'
# setting, in seconds. The apdex_t value determines the buckets used
# to compute your overall Apdex score.
# Requests that take less than apdex_t seconds to process will be
# classified as Satisfying transactions; more than apdex_t seconds
# as Tolerating transactions; and more than four times the apdex_t
# value as Frustrating transactions.
# For more about the Apdex standard, see
# http://support.newrelic.com/faqs/general/apdex

apdex_t: 0.5

# Proxy settings for connecting to the RPM server.
#
# If a proxy is used, the host setting is required. Other settings
# are optional. Default port is 8080.
#
# proxy_host: hostname
# proxy_port: 8080
# proxy_user:
# proxy_pass:


# Tells transaction tracer and error collector (when enabled)
# whether or not to capture HTTP params. When true, the RoR
# filter_parameter_logging mechanism is used so that sensitive
# parameters are not recorded
capture_params: false


# Transaction tracer captures deep information about slow
# transactions and sends this to the RPM service once a
# minute. Included in the transaction is the exact call sequence of
# the transactions including any SQL statements issued.
transaction_tracer:

# Transaction tracer is enabled by default. Set this to false to
# turn it off. This feature is only available at the Silver and
# above product levels.
enabled: true

# Threshold in seconds for when to collect a transaction
# trace. When the response time of a controller action exceeds
# this threshold, a transaction trace will be recorded and sent to
# RPM. Valid values are any float value, or (default) "apdex_f",
# which will use the threshold for an dissatisfying Apdex
# controller action - four times the Apdex T value.
transaction_threshold: apdex_f

# When transaction tracer is on, SQL statements can optionally be
# recorded. The recorder has three modes, "off" which sends no
# SQL, "raw" which sends the SQL statement in its original form,
# and "obfuscated", which strips out numeric and string literals
record_sql: obfuscated

# Threshold in seconds for when to collect stack trace for a SQL
# call. In other words, when SQL statements exceed this threshold,
# then capture and send to RPM the current stack trace. This is
# helpful for pinpointing where long SQL calls originate from
stack_trace_threshold: 0.500

# Error collector captures information about uncaught exceptions and
# sends them to RPM for viewing
error_collector:

# Error collector is enabled by default. Set this to false to turn
# it off. This feature is only available at the Silver and above
# product levels
enabled: true

# Tells error collector whether or not to capture a source snippet
# around the place of the error when errors are View related.
capture_source: true

# To stop specific errors from reporting to RPM, set this property
# to comma separated values
#
#ignore_errors: ActionController::RoutingError, ...

# (Advanced) Uncomment this to ensure the cpu and memory samplers
# won't run. Useful when you are using the agent to monitor an
# external resource
# disable_samplers: true

# override default settings based on your application's environment

# NOTE if your application has other named environments, you should
# provide newrelic conifguration settings for these enviromnents here.

development:
<<: *default_settings
# Turn off communication to RPM service in development mode.
# NOTE: for initial evaluation purposes, you may want to temporarily
# turn the agent on in development mode.
enabled: false

# When running in Developer Mode, the New Relic Agent will present
# performance information on the last 100 transactions you have
# executed since starting the mongrel. to view this data, go to
# http://localhost:3000/newrelic
developer: true

test:
<<: *default_settings
# it almost never makes sense to turn on the agent when running
# unit, functional or integration tests or the like.
enabled: false

# Turn on the agent in production for 24x7 monitoring. NewRelic
# testing shows an average performance impact of < 5 ms per
# transaction, you you can leave this on all the time without
# incurring any user-visible performance degredation.
production:
<<: *default_settings
enabled: true

# many applications have a staging environment which behaves
# identically to production. Support for that environment is provided
# here. By default, the staging environment has the agent turned on.
staging:
<<: *default_settings
enabled: true
app_name: rpm_config
3 changes: 2 additions & 1 deletion test/helper.rb
Original file line number Original file line Diff line number Diff line change
Expand Up @@ -3,8 +3,9 @@


$LOAD_PATH.unshift(File.dirname(__FILE__)) $LOAD_PATH.unshift(File.dirname(__FILE__))
$LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib')) $LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
require 'newrelic_rpm'
require 'rpm_contrib' require 'rpm_contrib'
require 'newrelic_rpm'



class Test::Unit::TestCase class Test::Unit::TestCase
end end
Expand Down
9 changes: 7 additions & 2 deletions test/mongoid_test.rb
Original file line number Original file line Diff line number Diff line change
@@ -1,5 +1,11 @@
require "#{File.dirname(__FILE__)}/helper" require "#{File.dirname(__FILE__)}/helper"
require 'mongoid' require 'mongoid'
require "#{File.dirname(__FILE__)}/../lib/rpm_contrib/instrumentation/mongoid"


Mongoid.configure do |config|
config.master = Mongo::Connection.new.db('animals')
end


class Dog class Dog
include Mongoid::Document include Mongoid::Document
Expand All @@ -24,8 +30,7 @@ def teardown


# Fake test # Fake test
def test_fail def test_fail
Dog.create!(:name=>'rover')


# To change this template use File | Settings | File Templates.
fail("Not implemented")
end end
end end

0 comments on commit 93db12d

Please sign in to comment.