【问题标题】:Where to find what queries are hitting to gremlin server via gremlin-javascript在哪里可以找到通过 gremlin-javascript 访问 gremlin 服务器的查询
【发布时间】:2016-09-15 19:12:01
【问题描述】:

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

【问题讨论】:

    标签: node.js titan gremlin gremlin-server


    【解决方案1】:

    对于使用 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,但也可以将其开发为包括传出消息(带参数的查询,直至协议消息)。

    【讨论】:

    • 再次感谢 jbmusso,选择快速而肮脏的方式来加快原型设计。
    猜你喜欢
    • 1970-01-01
    • 2019-11-08
    • 1970-01-01
    • 2016-10-05
    • 2017-09-20
    • 2017-10-16
    • 1970-01-01
    • 2016-08-28
    • 2018-12-17
    相关资源
    最近更新 更多