Service Directory 的可观测性和调试

Cloud Service Mesh 与 Service Directory 的集成给调试带来了新的复杂性。在您的企业中,服务使用方和服务提供方可能属于不同的团队或组织。为了帮助您调试此类问题,Cloud Service Mesh 已与 Cloud Logging 和 Cloud Monitoring 集成。

例如:

  • 您有一个使用 Cloud Service Mesh 为应用网络的 checkout 服务。
  • 而 Service Directory 中有一项 payment 服务是由另一个团队(服务提供方)拥有和维护的。
  • 您希望从 checkout 服务对 payment 服务进行调用,因此您需要在 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.

后续步骤