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
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
Ensure that you have working NewRelic instrumentation. Add the newrelic-grape
gem. That's it.
Set disable_grape
in newrelic.yml
or ENV['DISABLE_NEW_RELIC_GRAPE']
to disable instrumentation.
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.
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
- Fork it
- Create your feature branch (
git checkout -b my-new-feature
) - Update
CHANGELOG.md
describing 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