1768432821
2026-01-14 22:49:00
Go サービスはどこでもエラーを返すため、私は以前、Go サービスは「適切なエラー処理」を行っていると考えていました。
それから私は、すべてのインシデントが同じように始まるオンコールローテーションに参加しました。
- ユーザーがタイムアウトになりました。
- ダッシュボードには p99 の急上昇が表示されました。
- ログには次のように書かれていました。
failed。
「製品サービスへの連絡に失敗した」わけではありません。
「行のスキャンに失敗しました」ではありません。
「DBの待機中にコンテキストの期限を超えた」ではありません。
ただ… failed。
技術的には正しい。運用的には役に立たない。
この記事では、Go エラー処理の実際のサービス ガイドについて説明します。
- どうやって 包む エラーが発生したためコンテキストを維持
- いつ使用するか センチネルエラー 対タイプ
- どうやって 分類する エラー (タイムアウト、見つからない、不正なリクエスト)
- 何をするか ログ (そしてログに記録しないもの)ので、インシデントの解決が迅速化されます
#実際のサービスでの #エラー処理