J
データベースエラーをすばやく特定して解決する
by jey3dayo
エラーを自動分類:タイムアウト、ネットワーク障害、認証エラーなど、DBエラーを5つのカテゴリに即座に判定できます。 ログから原因を読み解く::timeout、:retry、:final-failure などのサフィックスからエラーの経過を追跡し、問題箇所を素早く特定できます。 リトライ戦略を理解:どのエラーが自動リトライ対象か、どのエラーはリトライしても無駄かが一目瞭然です。 3層のレジリエンス(復旧機構)を活用:リトライが失敗してもキャッシュやフォールバック対応により、サービスが停止しない仕組みを理解できます。 PostgreSQL/D1の詳細エラーコードを解析:エラーコードから原因となったテーブルやカラムを特定し、適切な対応が取れます。 本番環境でDBエラーが発生し、原因を素早く特定したいエンジニア KeepOnのDBロジックを理解して、より堅牢な実装を心がけたい開発者 Cloudflareで動くサーバーレス環境の接続エラーに悩んでいる人 ログを見てもどのエラーが重大なのか判断できていない人 KeepOnのDB診断ナレッジベース。D1(SQLite)/PostgreSQLエラーの分類、リトライ挙動、ログパターンをカバーします。 エラー分類:classifyConnectionError()により、timeout / network / connection / auth / unknown の5分類が行われます。timeout・network・connectionはリトライ対象、auth・unknownはリトライされません。 ログ命名規則:logSpanが出力するサフィックスは、:start(処理開始)、:end(正常完了)、:error(エラー発生)、:timeout(タイムアウト)、:retry(リトライ実行)、:final-failure(全リトライ失敗)などで構成され、各ログから処理の経過が追跡できます。 3層レジリエンス:①withDbRetryでDB接続をリセットして再試行、②リトライ失敗時にキャッシュデータで応答、③タイムアウト時にnullを返してスキップという3段階の復旧機構があります。診断フローでは、ログサフィックス→error.code→リトライ有無→遅延エラーの確認→Cloudflareログとの突き合わせという手順で問題を切り分けます。
設計