谷歌云Stackdriver与变更管理工具全解析
1. 应用延迟调查
在删除待办事项时,虽未抛出错误,但操作似乎不必要地缓慢。删除待办事项的往返涉及多个步骤:浏览器向 todos-frontend
发出API调用, todos-frontend
将请求转发给 todos-backend
, todos-backend
再在Cloud SQL上执行操作。延迟可能来自这些步骤中的任何一个。
要进行调查,可按以下步骤操作:
1. 打开Stackdriver Trace UI,点击“Trace list”标签。
2. Stackdriver Trace列表提供了所有跟踪的网络调用及其各自延迟的高级视图。点击其中一个跟踪,将显示跟踪中涉及的每个步骤(跨度)的细分,以及有关服务和网络调用上下文的任何相关信息(注释)。
3. 查看待办事项服务的跟踪列表,会发现一些API调用明显比其他调用花费的时间长得多。点击其中一个跟踪,会发现延迟源是 todos-backend
服务。
4. 从跟踪的跨度可以看出,延迟始于 delete-todo
跨度开始之后,但在按ID删除数据库调用之前。因此,可以排除数据库是问题的原因。快速查看 TodoController
类中的 delete-todo
方法,会发现另一个错误,即不必要的 thread.sleep()
。