コンテンツにスキップ

ディープ Ping

メソッド

RESTメソッドを採用しています。

HTTPメソッド

GET: 包括的ヘルスチェック(データベース接続テスト付き)

命名規則

クエリパラメータとノードの命名を統一し、可読性を向上させるため、リクエスト時のURIとJSON内のノードにはsnake_caseを使用します。

リクエストとレスポンス

ヘッダー

メタ情報はレスポンスボディではなく、HTTPヘッダーに設定されます。

リクエストヘッダー

  • Accept
  • Accept-language

レスポンスヘッダー

  • Content-Type

包括的ヘルスチェック

URI

GET /v1/ping/deep

レスポンス

レスポンスはJSONです。

{
  "message": "Database connection successful"
}

レスポンスフィールド

名前 型 説明
message string データベース接続成功メッセージ

認証

このエンドポイントは認証不要です。

例外処理

例外処理のステータスコードは以下の通りです。

説明 ステータスコード ステータス名
内部サーバーエラー 500 Internal Server Error
データベースが利用不可 503 Service Unavailable

処理フロー

  1. テストデータベースクエリを実行
  2. 接続とレスポンスを検証
  3. クエリが成功した場合、成功メッセージを返却
  4. データベースに到達できない場合、エラーを返却

データベースチェック

  • 軽量なSELECTクエリを実行
  • 接続プールのヘルスを検証
  • データベースの応答性をテスト
  • 接続エラーをキャッチ

使用例

  • Kubernetes readinessプローブ
  • デプロイメント検証
  • データベースヘルスモニタリング
  • 接続問題のトラブルシューティング

ヘルスチェック戦略

浅いチェック (/v1/ping)

  • 高速、依存関係なし
  • アプリケーションが動作していることを確認
  • livenessチェックに適している
  • レスポンス時間: < 10ms

深いチェック (/v1/ping/deep)

  • 重要な依存関係をテスト
  • システム全体のヘルスを確認
  • readinessチェックに適している
  • レスポンス時間: < 100ms

詳細フローチャート

flowchart TD
    Start([GET /ping/deep]) --> TestQuery[テストDBクエリ実行]
    TestQuery --> QueryOK{成功?}
    QueryOK -->|NG| Err500[500 Internal Error<br/>DB接続失敗]
    QueryOK -->|OK| Success[200 OK<br/>DB healthy]