Statusseite und Uptime-Monitoring für Rails-Anwendungen
Überwache Rails-Controller, Active-Record-Verbindungen, Sidekiq-Queues und Redis. Hübsche Statusseite oder eigene über unsere API.
Drei Wege für eine Statusseite für Ruby on Rails
Wähle die Kontrolltiefe — kein Code, Low-Code oder Full Headless.
Gehostet
Ruby on Rails-Endpoint hinzufügen, CNAME auf status.deinedomain.com zeigen, fertig. In 5 Minuten.
Headless
Public API nutzen, eigene UI direkt in der Ruby on Rails-App bauen. Volle Kontrolle über Design und Branding.
API ansehenEingebettete Badges
SVG-Uptime- und -Status-Badges in README oder Landing Page einbauen. Aktualisiert sich alle 5 Minuten.
Diesen Health-Endpoint in deine Ruby on Rails-App einfügen
Kopieren, einfügen, PulseAPI auf die URL richten. 200 gesund, 503 degradiert.
class HealthController < ApplicationController
skip_before_action :authenticate_user!, raise: false
def show
checks = {
database: active_record_ok? ? "ok" : "fail",
cache: cache_ok? ? "ok" : "fail",
sidekiq: sidekiq_ok? ? "ok" : "fail",
}
healthy = checks.values.all? { |v| v == "ok" }
render json: { status: healthy ? "healthy" : "degraded", **checks },
status: healthy ? 200 : 503
end
private
def active_record_ok?
ActiveRecord::Base.connection.execute("SELECT 1") && true
rescue StandardError
false
end
def cache_ok?
Rails.cache.write("health:probe", "1", expires_in: 5.seconds)
Rails.cache.read("health:probe") == "1"
rescue StandardError
false
end
def sidekiq_ok?
Sidekiq.redis { |c| c.ping == "PONG" }
rescue StandardError
false
end
endVerdrahten mit `get "/health", to: "health#show"` in routes.rb. CSRF, Auth und 401-werfende Middleware überspringen.
Was in Ruby on Rails-Apps kaputt geht — und wie man es fängt
Still wachsende Sidekiq-Queues
Ein festhängender Worker lässt die Queue explodieren, während die App weiter serviert. Queue-Depth-Endpoint und Threshold-Alert.
N+1-Regressionen
Ein vergessenes .includes() kann Response Time verzehnfachen. Response-Time-Assertions fangen das in der ersten Minute nach Deploy.
Leerer Connection-Pool
Lange Queries blockieren den Pool. Health-Endpoint mit kurzem Timeout zeigt das Problem, bevor ActionCable Nutzer verliert.
Statusseite gefällt dir nicht? Bau sie in Ruby on Rails selbst.
Unsere API liefert dieselben Daten wie unsere gehostete UI. Volle OpenAPI-Spec unter api.pulseapi.tech/docs.
require "net/http"
require "json"
class StatusController < ApplicationController
def show
uri = URI("https://api.pulseapi.tech/status/acme")
@data = JSON.parse(Net::HTTP.get(uri))
end
endRuby on Rails-Monitoring — FAQ
Funktioniert mit Rails, Sinatra, Hanami oder Padrino?
Ja. Monitoring läuft auf HTTP-Ebene — Framework ist egal.
Wie überwache ich eine Sidekiq-Queue?
Controller-Action, die Queue-Tiefe zurückgibt, Alert über Threshold. PulseAPI unterstützt JSON-Path: `$.queue_depth < 100`.
Funktioniert mit Heroku, Fly.io und Render?
Ja, und mit jedem Deployment. PulseAPI braucht nur eine öffentliche URL.
Kann ich die Statusseite in die Rails-App einbetten?
Ja. Aus einem Controller Public API treffen, Template rendern, oder turbo_frame mit server-rendered Partial.
Deine Ruby on Rails-App in 5 Minuten überwachen
Kostenloser Tarif. Keine Kreditkarte. Endpoint hinzufügen, Alerts erhalten.