📝
Rails に Health Check 用エンドポイントを追加
はじめに
Rails コンテナの監視用に、Health Check Endpoint が欲しくなったので、追加しました。
候補としては、
- Rails ver.7.1で導入されたDefaultの機能 を使う
- okcomputer gem を導入する
の 2 つが挙がりましたが、今回は okcomputer gem を導入します。
なぜ okcomputer にしたかというと、
- 今回導入予定のアプリケーションは Version が足りていないこと
- okcomputer の方が高機能であること
- Health Check 機能であれば将来的に何か問題が発生しても移行が簡単であること
などの理由があります。
Okcomputer を導入する
実施した作業手順は下記となります。
-
Gemfile に追記
gem 'okcomputer'
-
bundle install を実行
-
config/initializers/okcomputer.rb
を追加OkComputer.mount_at = 'healthz' # Path 変更 OkComputer.logger = Rails.logger # logger 設定
-
日本語対応のため、
config/locales/okcomputer_ja.yml
を追加
locale の設定は、okcomputer.en.yml を参考にしました。ja: okcomputer: check: passed: "%{registrant_name}: PASSED %{message} (%{time})" failed: "%{registrant_name}: FAILED %{message} (%{time})"
-
動作確認
/healthz
,/healthz/all
,/healthz/default
,/healthz/database
などに接続し、正常に動作していることを確認しました。
おわりに
導入から設定まで、非常に簡単でした。
参考
Rails で利用できる Health Check API 系の Gem である okcomputer について #Rails - Qiita
GitHub - sportngin/okcomputer: Provides a health-check endpoint to your Ruby on Rails apps.
Discussion