こんにちは。Cosmos DB サポートチームの星井と申します。
本記事では アプリケーションから Cosmos DB に繋がらない場合、問題が Cosmos DB サービス側に起因するか否かの切り分け方法をご案内します。
なお SDK 観点の確認は Cosmos DB for NoSQL についての案内となっています。
Cosmos DB の可用性の確認
Azure ポータルの Cosmos DB 管理画面から、
分析情報>可用性タブ にて、 Cosmos DB アカウントの可用性が確認可能です。
サービスの可用性の値が 100% を下回っている場合、 Cosmos DB サービスで問題が発生している状況です。
数分間以上この状態が継続している場合、後述の Azure の状態 で問題が発生しているかご確認ください。
次の方法で Azure サポートまでお問い合わせ可能です。
Azure サービスの状態確認
Azure の状態 にて、 Azure サービスの状態をリージョンごとに確認することが可能です。
「Databases」>「Azure Cosmos DB」の行にて、ご利用中のリージョンにチェック以外のマークがついている場合、当該リージョンの Cosmos DB サービスで何らかの問題が発生している可能性があります。
問題が発生しているサービス・リージョンの障害情報は随時 Azure の状態 で情報を提供しております。
警告
Azure サービスの状態はリージョン全体で問題が発生している場合に更新されます。個別の Cosmos DB アカウントが不調な場合は、まず Cosmos DB の可用性をご確認ください。
Cosmos DB サービスのメトリクスやログの確認
Cosmos DB の分析情報や診断情報を用いて、エラー原因の切り分けをすることが可能です。
Cosmos DB サービスに問題がある場合に発生し得るエラーの切り分け方法について、詳細は以下の公開記事に記述されています。
- Azure Cosmos DB の要求率が大きすぎる (429) 例外を診断してトラブルシューティングする
- Azure Cosmos DB の要求タイムアウト例外の問題を診断してトラブルシューティングする
Cosmos DB SDK が出力しているエラーコードの確認
アプリケーションにて Cosmos DB .NET/Java SDK を利用している場合、エラーコードやエラーメッセージ、診断情報を用いて問題の詳細な切り分けが可能です。
各種エラーに応じた問題の切り分け方法の詳細は、以下の公開記事に記載されています。
.NET SDK
- Azure Cosmos DB サービス利用不可の例外を診断してトラブルシューティングする
- Azure Cosmos DB .NET SDK の要求タイムアウト例外を診断してトラブルシューティングする
Java SDK
- Azure Cosmos DB Java v4 SDK サービス利用不可の例外を診断してトラブルシューティングする
- Azure Cosmos DB Java v4 SDK の要求タイムアウト例外を診断してトラブルシューティングする
Note
Cosmos DB .NET/Java SDK は、診断情報として接続先のレプリカ情報や、詳細なエラーコード、クライアント側のリソース情報(CPU やメモリの使用率)も含めて出力します。
全てのリクエストについて診断情報をログに記録するのはパフォーマンスの関係上非推奨ですが、エラーが発生した場合や応答に時間がかかった場合、これをログに記録しておくことをお勧めします。
お問い合わせに際して
Cosmos DB サポートへのお問い合わせに際し、以下の弊チームブログに記載の情報を提供くださいますと、より迅速に調査を進めることが可能になります。
Note
アプリケーション側の情報も合わせて提供いただけますと、問題の原因の早期切り分けに有用です。
まとめ
最後までお読みくださりありがとうございました。この記事では、アプリケーションが Cosmos DB for NoSQL に接続できない場合において、原因が Cosmos DB サービスにあるかの判別方法をご案内させていただきました。
Cosmos DB に関するトラブルが発生してしまった際のご参考になりましたら幸いです。
ご不明な点がございましたら、お気軽に上記サポート窓口までお問い合わせください。よろしくお願いいたします。
※本情報の内容(添付文書、リンク先などを含む)は、作成日時点でのものであり、予告なく変更される場合があります。