NewRelic::Grape
December 8, 2015 ยท View on GitHub
NewRelic has already officially support grape, see more here
NewRelic instrumentation for the Grape API DSL, inspired by this blog post.
If you use newrelic_rpm < 3.9.0, please use newrelic-grape 1.4.x If you use newrelic_rpm >= 3.9.0, please use newrelic-grape >= 2.0.0
Please note: newrelic_rpm 3.9.8 is incompatible! A fix was included in 3.9.9.
Installation
Add this line to your application's Gemfile:
gem 'newrelic-grape'
And then execute:
$ bundle
Or install it yourself as:
$ gem install newrelic-grape
If you're using Rails, make sure that you've told rack to start the agent for Grape:
# config.ru
require ::File.expand_path('../config/environment', __FILE__)
# You need to manually start the agent
NewRelic::Agent.manual_start
run YourApplication::Application
Usage
Ensure that you have working NewRelic instrumentation. Add the newrelic-grape gem. That's it.
Disabling Instrumentation
Set disable_grape in newrelic.yml or ENV['DISABLE_NEW_RELIC_GRAPE'] to disable instrumentation.
Testing
This gem naturally works in NewRelic developer mode. For more information see the NewRelic Developer Documentation.
To ensure instrumentation in tests, check that perform_action_with_newrelic_trace is invoked on an instance of NewRelic::Agent::Instrumentation::Grape when calling your API.
RSpec
describe NewRelic::Agent::Instrumentation::Grape do
it "traces" do
NewRelic::Agent::Instrumentation::Grape
.any_instance
.should_receive(:perform_action_with_newrelic_trace)
.and_yield
get "/ping"
response.status.should == 200
end
end
Demos
Contributing
- Fork it
- Create your feature branch (
git checkout -b my-new-feature) - Update
CHANGELOG.mddescribing your changes - Commit your changes (
git commit -am 'Add some feature') - Push to the branch (
git push origin my-new-feature) - Create new Pull Request