跳至內容 跳至搜尋

內建健康檢查終端點

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