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.