Class: Pinot::Railtie
- Inherits:
-
Rails::Railtie
- Object
- Rails::Railtie
- Pinot::Railtie
- Defined in:
- lib/pinot/railtie.rb
Overview
Rails integration via Railtie — zero configuration required.
Automatically activated when the gem is required inside a Rails app. Just add ‘gem “pinot-client”` to your Gemfile.
What it does
-
**ActiveSupport::Notifications bridge** — every Pinot query fires a “sql.pinot” event on the AS::N bus, picked up by Rails log subscribers, Skylight, Scout APM, etc.
-
**OpenTelemetry bridge** — when the opentelemetry-api gem is present, creates “pinot.query” spans and injects W3C trace-context headers into every outbound broker request.
-
**X-Request-Id propagation** — inserts Pinot::RequestIdMiddleware into the Rack stack. The current request’s X-Request-Id is forwarded as an HTTP header on every broker call so Pinot broker logs can be correlated with application request logs.
Opting out of individual features
# config/initializers/pinot.rb
Rails.application.config.pinot.notifications = false
Rails.application.config.pinot.open_telemetry = false
Rails.application.config.pinot.request_id = false
Manual setup (non-Rails / opt-out of Railtie entirely)
require "pinot/active_support_notifications"
Pinot::ActiveSupportNotifications.install!
require "pinot/open_telemetry"
Pinot::OpenTelemetry.install!
# In your Rack middleware stack:
use Pinot::RequestIdMiddleware