• EnglishEspañol日本語한국어Português
  • Log inStart now

Rack middlewares

The Ruby agent automatically instruments Rack middlewares. If you are unfamiliar with the basics of Rack middlewares, review the resources linked by the Rails on Rack guide. Additionally, the Ruby agent provides some features via Rack middlewares:

New Relic automatically installs these middlewares for Rails and Sinatra.

Rack instrumentation

The two most common ways to configure Rack middlewares are the Rack::Builder API (most often from config.ru) and Rails' middleware stack configuration:

Viewing middleware data

You can view middleware data in APM.

Disabling Rack instrumentation

If you do not want to instrument Rack middlewares, you may disable Rack middleware instrumentation with the disable_middleware_instrumentation setting. You can also ignore specific transactions.

Installing Ruby agent middlewares manually

The Ruby agent's implementation of New Relic's cross application tracing feature uses Rack middleware instrumentation to read and write HTTP headers that are necessary to pass information between monitored applications. If you are using Sinatra, have disabled middleware instrumentation as described above, and want to use cross application tracing, you must manually add the NewRelic::Rack::AgentHooks middleware to your middleware stack.

Important

As of version 8.0.0, cross application tracing is deprecated in favor of distributed tracing. When enabled, distributed tracing is automatically configured for all rack-based apps without the need for an additional middleware.

If you would like to continue using cross application tracing, you will need to update your configuration.

Manual Rack instrumentation

Earlier versions of the Ruby agent supported manually instrumenting Rack middlewares via the NewRelic::Agent::Instrumentation::Rack module. This instrumentation has been removed and isn't guaranteed to work in Ruby agent version 4.0.0 or higher. This form of manual instrumentation is unncessary with automatic middleware instrumentation. We recommend that you remove references to this module from your code after upgrading to 3.9.0 or higher.

Copyright © 2024 New Relic Inc.

This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.