Service Directory 的可观测性和调试

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

例如:

  • 您有一项 checkout 服务使用 Cloud Service Mesh 提供应用网络控制。
  • 而 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.

后续步骤