Página de estado y monitoreo de uptime para apps Rails
Monitorea controladores Rails, Active Record, colas Sidekiq y Redis. Página de estado bonita o construye la tuya vía API.
Tres formas de lanzar una página de estado para Ruby on Rails
Elige el nivel de control que necesitas — sin código, low-code o headless completo.
Alojado
Añade tu endpoint Ruby on Rails, apunta un CNAME a status.tudominio.com, listo. Funciona en 5 minutos.
Headless
Usa nuestra API pública para construir tu propia UI dentro de tu app Ruby on Rails. Control total sobre diseño y marca.
Ver la APIBadges embebidos
Coloca badges SVG de uptime y estado en tu README o landing page. Se actualizan cada 5 minutos.
Pega este health endpoint en tu app Ruby on Rails
Copia, pega, apunta PulseAPI a la URL. Devuelve 200 sano, 503 degradado.
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
endConéctalo con `get "/health", to: "health#show"` en routes.rb. Salta CSRF, auth y middleware que daría 401 al monitor.
Qué se rompe en apps Ruby on Rails — y cómo detectarlo
Colas Sidekiq creciendo en silencio
Un worker atascado deja la cola creciendo mientras la app sirve tráfico. Expón queue-depth y alerta sobre un umbral.
Regresiones N+1
Un .includes() faltante puede multiplicar x10 el tiempo de respuesta. Las aserciones lo detectan en el primer minuto post-deploy.
Inanición del pool de conexiones
Queries largos bloquean el pool y las peticiones se acumulan. Un health con timeout rápido lo revela antes de que ActionCable pierda usuarios.
¿No te gusta nuestra página de estado? Construye la tuya en Ruby on Rails.
Nuestra API devuelve los mismos datos que consume nuestra UI alojada. Spec OpenAPI completa en 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
endMonitoreo Ruby on Rails — FAQ
¿Funciona con Rails, Sinatra, Hanami o Padrino?
Sí. El monitoreo es a nivel HTTP — el framework no importa.
¿Cómo monitoreo una cola Sidekiq?
Devuelve la profundidad actual desde una action y alerta sobre un umbral. PulseAPI soporta JSON-path: `$.queue_depth < 100` funciona.
¿Funciona con Heroku, Fly.io y Render?
Sí, y con cualquier deployment. PulseAPI solo necesita una URL pública.
¿Puedo embeber la página de estado dentro de la app Rails?
Sí. Llama la API pública desde un controlador, renderiza un template, o usa un turbo_frame con un partial server-rendered.
Empieza a monitorear tu app Ruby on Rails en 5 minutos
Plan gratuito. Sin tarjeta. Añade tu endpoint y recibe alertas cuando falle.