当你的应用没有正常运行时,你该怎么办?

拜读此篇博客!

Stark & Wayne 团队总结了一些在Cloud Foundry (CF) 中调试应用的经验。

日志

日志通常是最好的入手点。应用的任何标准输出或者错误都会在cf log 的输出中得到显示。如果你在cf log输出中没有看到应用的日志,请确保你使用标准输出而不是输出到日志文件。

cf logs <APP> --recent  

事件

应用的容器瘫痪,停止工作,重启等都会触发事件。事件在帮助你和日志中的一些内容进行关联方面很有用。

cf events <APP>  

在此链接中有几个CF调试的命令行Troubleshooting Application Deployment and Health.

远程登录到 Diego 容器

如果容器开起了SSH特性(可以通过命令行开启),你可以远程登录到Diego容器进行调试。如果你直接进行Docker容器推送(而不是依靠buildpacks), 你可以任意添加你想要的诊断工具,比如strace, lsof, jconsol 等等。

cf ssh <APP>  

监控

安装类似MQTT等可以接收度量和日志数的工具会很有用处。比如它可以告诉你当内存在按照一定速率持续增长,不加以处理最重会使容器崩溃。你也可以安装一些应用级别的监控系统,比如DATADOGNew Relic

HTTP跟踪

当你只需要知道应用的CLI与远程的API通信的状况,HTTP跟踪也是一个可用的调试方式。

我们实现了一个叫做gotcha的应用工具,它可以作为一个MiTM代理放在测试单元和远程HTTP终端之间使用。工具本身可以在 starkandwayne/gotcha找到, 如何使用这款工具可以在博客capture-http-requests-to-your-cloud-foundry中找到。

调试不同类型应用的技巧

你运行的应用类型是什么?什么语言?什么架构? 你可能会发现下面的工具很有用。

Java和Ruby 应用

如果你使用Eclipse写Java或者Ruby应用,你可能会在 How to Remotely Debug Cloud Foundry Apps找到有用的信息。

Node 应用

这篇博客 Debugging node apps running on Cloud Foundry会很有帮助.

To read the English version, please click:How to Debug Your Apps in Cloud Foundry?