在单机程序的开发中,单步调试的能力对于程序的开发中的除错是十分重要的。然而,在分布式系统下,单步调试变的难以使用,许多情况下程序员都只能依赖日志进行除错。
本节介绍bucky的问题诊断与调试技巧。bucky创新性的以call chain作为分布式系统里类似进程一样的抽象,并基于call chain提供了易于使用的日志系统。同时,bucky也提供了全本地模式的开发支持,让程序员们可以实现All in one的调试
体验。更近一步,bucky还提供了远程调试的能力。多种方式的调试/除错支持,让使用bucky开发高可用分布式系统如虎添翼。
日志查看
登陆 www.buckycloud.com 后进入app控制台,可以查看app对应的如下信息:
- 资源监控
- 全局knowledges信息,点击
k管理查看。 - 已经发布到bucky cloud的XARPackage信息,点击
r管理查看。 - 日志工具,包括
- 崩溃日志
- 实时日志
- 历史日志
本地调试
bucky支持全本地模式调试XARPackage代码。
首先,需要对使用的数据库提供本地支持。
- 如果使用了mysql,则需要本地安装mysql。
- 如果使用了mongodb,则需要本地安装mongodb。
- 如果使用了redis,则需要本地安装redis,并启动。
- 使用
bucky config -localdebug配置对应的用户名、密码。
其次,使用如下命令本地执行代码:
bucky debug -main test/account/test_account.js
如果想使用Visual Studio Code调试器来调试,可以通过-vscode选项获得准备好的配置信息:
bucky debug -main test/account/test_account.js -vscode
可以得到如下的Visual Studio Code配置参数:
{
"type": "node",
"request": "launch",
"name": "local-debug",
"program": "/usr/local/lib/node_modules/buckyos/tools/node_loader.js",
"args": [
"/usr/local/lib/node_modules/buckyos/tools/node_loader.js",
"-main",
"/Users/admin/tmp/test/account/test_account.js",
"-app",
"/Users/admin/tmp/dist/bucky/bucky_meta.json",
"-packages_dir",
"/Users/admin/tmp/dist/bucky",
"-local_debug",
"/Users/admin/tmp/dist/bucky/knowledges.json"
],
"cwd": "/Users/admin/tmp/test"
}
使用Visual Studio Code打开HelloBucky目录,配置launch.json的configurations节点,添加上述配置后,即可F5本地调试代码, 可以在src/account/account.js里下断点。
远程调试
// bucky即将提供直接线上远程调试的能力!敬请期待!