当你的应用没有正常运行时,你该怎么办?
拜读此篇博客!
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等可以接收度量和日志数的工具会很有用处。比如它可以告诉你当内存在按照一定速率持续增长,不加以处理最重会使容器崩溃。你也可以安装一些应用级别的监控系统,比如DATADOG 和 New 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?