跳至内容 跳至搜索

内置的健康检查端点

Rails 还内置了一个健康检查端点,可通过 /up 路径访问。如果应用程序在没有异常的情况下启动,此端点将返回 200 状态码,否则返回 500 状态码。

在生产环境中,许多应用程序都需要向上游报告其状态,无论是向将在出现问题时呼叫工程师的正常运行时间监视器,还是用于确定 Pod 健康状况的负载均衡器或 Kubernetes 控制器。此健康检查旨在成为一个一刀切的解决方案,适用于多种情况。

虽然任何新生成的 Rails 应用程序都将在 /up 处拥有健康检查,但您可以在 "config/routes.rb" 中将路径配置为任何您想要的名称。

Rails.application.routes.draw do
  get "healthz" => "rails/health#show", as: :rails_health_check
end

健康检查现在可以通过 /healthz 路径访问。

注意:此端点不反映您应用程序所有依赖项的状态,例如数据库或 Redis 集群。如果您有应用程序特定的需求,请将 "rails/health#show" 替换为您自己的控制器操作。

请仔细考虑您要检查的内容,因为它可能会导致由于第三方服务出现故障而导致您的应用程序被重新启动。理想情况下,您应该设计您的应用程序以优雅地处理这些故障。

方法
S

实例公共方法

show()

# File railties/lib/rails/health_controller.rb, line 40
def show
  render_up
end