Class: OpenCensus::Trace::Integrations::Rails

  • Object
show all
Defined in:


Rails Integration

This Railtie automatically sets up OpenCensus for a Rails server:

  • It wraps all requests in spans, using the RackMiddleware integration.
  • It wraps common events (ActiveRecord database calls, ActionView renders, etc) in subspans.


This Railtie exposes the OpenCensus configuration on the opencensus key of the Rails configuration. So you can, for example, set:

config.opencensus.trace.default_max_attributes = 64

Configuring ActiveSupport Notifications

This Railtie also provides a notifications configuration that supports the following fields:

  • events An array of strings indicating the events that will trigger the creation of spans. The default value is DEFAULT_NOTIFICATION_EVENTS.
  • attribute_namespace A string that will be prepended to all attributes copied from the event payload. Defaults to "rails/"

You can access these in the notifications subconfiguration under the trace configuration. For example:

OpenCensus::Trace.config do |config|
  config.notifications.attribute_namespace = "myapp/"

Or, using Rails:

config.opencensus.trace.notifications.attribute_namespace = "myapp/"

Configuring Middleware Placement

By default, the Railtie places the OpenCensus middleware at the end of the middleware stack. This means it will measure your application code but not the effect of other middleware, including middlware that is part of the Rails stack or any custom middleware you have installed. If you would rather place the middleware at the beginning of the stack where it surrounds all other middleware, set the this configuration:

OpenCensus::Trace.config do |config|
  config.middleware_placement = :begin

Or, using Rails:

config.opencensus.trace.middleware_placement = :begin

This effectively causes the Railtie to use unshift rather than use to add the OpenCensus middleware to the middleware stack. You may also set this configuration to an existing middleware class to cause the OpenCensus middleware to be inserted before that middleware in the stack. For example:

OpenCensus::Trace.config do |config|
  config.middleware_placement = ::Rails::Rack::Logger

Or, using Rails:

config.opencensus.trace.middleware_placement = ::Rails::Rack::Logger

Constant Summary collapse


The ActiveSupport notifications that will be reported as spans by default. To change this list, update the value of the configuration.