在哪里可以找到通过 gremlin-javascript 访问 gremlin 服务器的查询

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

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

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

您可以:

  1. 实现您自己的函数,将调用包装到您调用的 Gremlin 客户端方法(通常 client.execute()),并记录参数。如果使用 Node.js v6+,这可能是 ES2015 Proxy 对象的一个​​很好的用例。这是最安全的非侵入性方法。
  2. Monkeypatch client.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);
    

目前有一个 open issue about logging of ingoing messages,但可以将其开发为也包括传出消息(带参数的查询,直至协议消息)。