Service Directory によるオブザーバビリティとデバッグ
Cloud Service Mesh と Service Directory を統合すると、デバッグがより複雑になります。ビジネスにおいて、サービス ユーザーとサービス プロデューサーが別々のチームや組織に所属している場合があります。このような問題のデバッグに役立つように、Cloud Service Mesh は Cloud Logging および Cloud Monitoring と統合されています。
次に例を示します。
- アプリケーション ネットワーキングに Cloud Service Mesh を使用する
checkout
サービスがあります。 - Service Directory には、異なるチーム(サービス プロデューサー)が所有して管理する
payment
サービスがあります。 payment
サービスをcheckout
サービスから呼び出すために、Cloud Service Mesh で新しいバックエンド サービスを作成するとします。このバックエンド サービスは、Service Directory を使用してサービス ディスカバリを行い、payment
サービスに接続します。
このモデルでは、Service Directory でホストされている payment
サービスをサービス プロデューサーが削除または変更する場合があります。サービス プロデューサーは payment
サービスを所有しているため、このような変更を行うことができます。ただし、payment
サービスが削除されると、サービス ディスカバリは機能しなくなります。
ロギング
Cloud Service Mesh は、Service Directory サービスに接続されているバックエンド サービスを解決する際に、Service Directory からエンドポイントのリストを取得します。サービスが Service Directory から削除されている場合、Cloud Service Mesh はエンドポイントを取得しません。このような場合、ログエントリが Logging に追加されます。このログエントリは、次の情報で構成されています。
- バックエンド サービス名
- Service Directory 名
- メッセージ:
Service Directory returned 0 endpoints for this service.
この情報は問題のデバッグに役立ちます。事前対策としてアラートを設定することもできます。
モニタリング
ロギングの場合と同様に、Cloud Service Mesh は Monitoring と統合して指標を生成します。Cloud Service Mesh は、バックエンド サービスごとに次の指標を Monitoring に追加します。
- バックエンド サービス名
- このバックエンド サービスに関連付けられ、Cloud Service Mesh のクライアントと共有されているエンドポイントの数
Cloud Service Mesh のクライアントは、エンドポイントのないバックエンド サービスにはトラフィックを送信できません。
Google Cloud コンソール
Service Directory サービスが削除され、そのサービスへのアタッチメントが Cloud Service Mesh バックエンド サービスに存在している場合、Google Cloud コンソールには次の警告が表示されます。The attached
Service Directory service could not be found.
次のステップ
- Cloud Service Mesh と Service Directory の統合について確認する。
- 統合の設定方法を確認する。
- Service Directory のオブザーバビリティについて確認する。