2

我正在使用 nodejs 的 gremlin-javascript 模块来查询 Titan 数据库。一切正常,但我想监控实际访问 gremlin 服务器的内容以及我可以了解的有关该查询的任何其他内容。我已经检查了 titan 文件夹中的 gremlin-server 登录日志文件夹。我在这些日志中找不到任何有用的东西。在这方面的任何帮助都将非常有用。谢谢

4

1 回答 1

2

对于使用 gremlin-javascript 的客户端解决方案,目前没有快速简便的方法来记录到控制台传出查询或发送到 Gremlin 服务器的协议消息。

您可以:

  1. 实现您自己的函数,该函数包装对您调用的 Gremlin 客户端方法的调用(通常是client.execute()),并记录参数。Proxy如果使用 Node.js v6+,这可能是 ES2015对象的一个​​很好的用例。这是最安全、非侵入性的方法。
  2. Monkeypatchclient.prototype.messageStream方法,并记录参数。从 v2.3.2 开始,无论您是在做client.execute()还是client.stream(). 这是更危险和更棘手的。
  3. 又快又脏:编辑源代码./node_modules/gremlin/lib/GremlinClient.js并在第 405 行(prototype.messageStream定义)之后添加:

    console.log('query:', script);
    console.log('params:', bindings);
    

目前有一个关于记录传入消息的未解决问题,但这可以开发为也包括传出消息(带参数的查询,直至协议消息)。

于 2016-05-19T09:30:13.583 回答