# Issues with Ruby elastic-apm gem when used with Grape

**URL:** <https://discuss.elastic.co/t/issues-with-ruby-elastic-apm-gem-when-used-with-grape/235881>\
**Category:** APM\
**Tags:** ruby\
**Created:** [June 5, 2020, 2:43am UTC](https://discuss.elastic.co/t/issues-with-ruby-elastic-apm-gem-when-used-with-grape/235881 "2020-06-05T02:43:51Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![alilland](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/alilland/32/29729_2.png) [@alilland](https://discuss.elastic.co/u/alilland)\
**Post date:** [June 5, 2020, 2:43am UTC](https://discuss.elastic.co/t/issues-with-ruby-elastic-apm-gem-when-used-with-grape/235881/1 "2020-06-05T02:43:52Z")

</div>

Im getting an error message `NameError: uninitialized constant ElasticAPM::Grape`

it looks like there is a check for if constants exist, so the below should not have reported `nil` according to line 46 on this file [https://github.com/elastic/apm-agent-ruby/blob/c96d6fc99e9392d398c18c070b5f8d8b818e82a4/lib/elastic\_apm.rb](https://github.com/elastic/apm-agent-ruby/blob/c96d6fc99e9392d398c18c070b5f8d8b818e82a4/lib/elastic_apm.rb)

**[config.ru](http://config.ru)**:

```ruby
## ...
require 'elastic-apm'
p defined?(::Grape) # => "constant"
p defined?(::Sinatra) # => "constant"
p defined?(::ElasticAPM) # => "constant"
p defined?(::ElasticAPM::Sinatra) # => nil
p defined?(::ElasticAPM::Grape) # => nil

## CORS
use Rack::Cors do
  allow do
    ## ...
  end
end

## map each app to a root url
app_roots = Rack::URLMap.new(
  '/' => AppCore::API,
  '/app_two' => AppTwo::API,
  '/app_three' => AppThree::API
)

## ...

if ENV['RACK_ENV'] != 'production'
  config = YAML.safe_load(File.read('./config/elastic_apm.yml'))
  ElasticAPM::Grape.start(AppCore::API, config)
  ElasticAPM::Grape.start(AppTwo::API, config)
  ElasticAPM::Grape.start(AppThree::API, config)
end

run Rack::Cascade.new [app_roots]

```

**APM Agent language and version** :  
Ruby 2.6.5

**Installed Gems** :

```ruby
gem 'awesome_print'
gem 'aws-sdk', require: ['aws-sdk-s3', 'aws-sdk-ses']
gem 'bitly', '~> 1.1.2'
gem 'bunny', '>= 2.9.2'
gem 'carrierwave'
gem 'carrierwave-aws'
gem 'carrierwave-mongoid', require: 'carrierwave/mongoid'
gem 'dotenv'
gem 'elastic-apm', '~> 1.0'
gem 'elasticsearch', '~> 6.1.0'
gem 'faraday', '~> 0.17.1'
gem 'faraday_middleware'
gem 'faraday_middleware-aws-sigv4', require: 'faraday_middleware/aws_sigv4'
gem 'geocoder'
gem 'gibberish'
gem 'grape'
gem 'grape-entity'
gem 'haml'
gem 'hashie'
gem 'humanize'
gem 'jwe', '0.4.0'
gem 'jwt', '2.2.1'
gem 'kaminari', '~> 1.0'
gem 'kaminari-mongoid', '~> 1.0'
gem 'lob'
gem 'mini_magick'
gem 'monetize'
gem 'money'
gem 'mongoid', '~> 6.4'
gem 'mongoid-encrypted-fields'
gem 'mustache'
gem 'phone'
gem 'postmark', '1.14.0'
gem 'prawn'
gem 'prawn-table'
gem 'pry'
gem 'puma'
gem 'rack'
gem 'rack-contrib'
gem 'rack-cors'
gem 'rack-test'
gem 'rake'
gem 'redis'
gem 'rest-client', require: 'rest_client'
gem 'rspec'
gem 'rubyXL'
gem 'sanitize', '~> 4.5.0'
gem 'sneakers'
gem 'sinatra'
gem 'symmetric-encryption', '~> 3.9.1'
gem 'tux'
gem 'twilio-ruby'

```

---

<div class="post-metadata">

**Author:** ![Emily\_Stolfo](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/emily_stolfo/32/55017_2.png) [@Emily\_Stolfo](https://discuss.elastic.co/u/Emily_Stolfo)\
**Post date:** [June 8, 2020, 11:16am UTC](https://discuss.elastic.co/t/issues-with-ruby-elastic-apm-gem-when-used-with-grape/235881/2 "2020-06-08T11:16:51Z")

</div>

I'm sorry you're having trouble using the APM ruby agent with Grape. As you've noted in the source code, if `::Grape` is defined, the agent will load the `ElasticAPM::Grape` module. So it's not clear from the `config.ru` why that's not happening.  
Is there something special you're doing to require the grape gem? Can you check if the `::Grape` is defined before you require the `elastic-apm` gem? In your Gemfile, do you have `require: false` for the `grape` gem, by any chance?

---

<div class="post-metadata">

**Author:** ![system](https://us1.discourse-cdn.com/elastic/original/3X/1/a/1ac57faf039f6b580b3f104ef42a2a89e41014de.png) [@system](https://discuss.elastic.co/u/system)\
**Post date:** [June 29, 2020, 7:16am UTC](https://discuss.elastic.co/t/issues-with-ruby-elastic-apm-gem-when-used-with-grape/235881/3 "2020-06-29T07:16:58Z")

</div>

This topic was automatically closed 20 days after the last reply. New replies are no longer allowed.
