在单机程序的开发中,单步调试的能力对于程序的开发中的除错是十分重要的。然而,在分布式系统下,单步调试变的难以使用,许多情况下程序员都只能依赖日志进行除错。

本节介绍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代码。

首先,需要对使用的数据库提供本地支持。

  1. 如果使用了mysql,则需要本地安装mysql。
  2. 如果使用了mongodb,则需要本地安装mongodb。
  3. 如果使用了redis,则需要本地安装redis,并启动。
  4. 使用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即将提供直接线上远程调试的能力!敬请期待!

results matching ""

    No results matching ""