内置健康检查端点
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() 链接
来源:show | 在 GitHub 上
# File railties/lib/rails/health_controller.rb, line 38 def show render_up end