关于 node.js:在哪里可以找到通过 gremlin-javascript 访问 gremlin 服务器的查询

Where to find what queries are hitting to gremlin server via gremlin-javascript

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


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

你可以:

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

    1
    2
    console.log('query:', script);
    console.log('params:', bindings);
  • 目前有一个关于记录传入消息的未解决问题,但可以开发该问题以包括传出消息(带参数的查询,直至协议消息)。