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