內建健康檢查終端點
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