跳至内容 跳至搜索

内置健康检查端点

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 38
def show
  render_up
end