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

Latest commit

 

History

History
84 lines (53 loc) · 2.65 KB

README.md

File metadata and controls

84 lines (53 loc) · 2.65 KB

NewRelic::Grape

NewRelic has already officially support grape, see more here

Build Status

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

  1. Fork it
  2. Create your feature branch (git checkout -b my-new-feature)
  3. Update CHANGELOG.md describing your changes
  4. Commit your changes (git commit -am 'Add some feature')
  5. Push to the branch (git push origin my-new-feature)
  6. Create new Pull Request