堆栈驱动程序如何调试生产中的应用程序?
在这段时间内,服务器会停机吗?延迟是怎样的?
有什么方法可以调试“已经发生”的事件吗?我在生产中运行了一个应用程序。还有一个问题--比如说,我无法在购物车上添加一个项目,或者其他一些问题。我们能回去调试这个问题吗?还是调试实时应用程序?
发布于 2016-06-24 21:32:47
Stackdriver是一个始终打开的、完整的服务调试器。您不只是调试单个服务器/VM,而是同时调试属于同一服务的所有服务器。当条件命中时,它从单个服务器捕获调用堆栈和变量,然后取消来自所有其他服务器的快照。
Stackdriver代理不会停止进程,但会短暂地暂停线程命中快照行和条件。通常,线程暂停大约3ms来捕获~64K的信息,您的时间可能会有所不同。
Stakdriver代理是从零开始编写的,目的是优化应用程序延迟。他们使用各种技巧来避免暂停运行中的线程/服务器。(例如,数据序列化发生在线程释放之后)
Stackdriver是一个实时交互式调试器。现在确实有办法调试过去发生的事情。但是,由于它是生产调试器,所以可以在生产中设置快照位置,并等待事件再次发生。
Stackdriver的另一个可能有用的特性是日志点。这些是日志语句,您可以在考虑特定情况/条件的情况下动态插入到应用程序中。您不必进行代码更改或重新部署服务。见博客。
https://stackoverflow.com/questions/37248673
复制相似问题