在哪里可以找到通过 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 服务器的传出查询或协议消息。
您可以:
- 实现您自己的函数,将调用包装到您调用的 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
定义)之后添加:
console.log('query:', script);
console.log('params:', bindings);
目前有一个 open issue about logging of ingoing messages,但可以将其开发为也包括传出消息(带参数的查询,直至协议消息)。
我正在使用 nodejs 的 gremlin-javascript 模块来查询 titan 数据库。一切工作正常,但我想监控实际访问 gremlin 服务器的内容以及我可以了解的有关该查询的任何其他信息。我已经检查了 titan 文件夹中 logs 文件夹中的 gremlin-server 日志。我在这些日志中找不到任何有用的东西。在这方面的任何帮助都将非常有用。谢谢
对于使用 gremlin-javascript 的客户端解决方案,目前没有快速简便的方法来记录发送到 Gremlin 服务器的传出查询或协议消息。
您可以:
- 实现您自己的函数,将调用包装到您调用的 Gremlin 客户端方法(通常
client.execute()
),并记录参数。如果使用 Node.js v6+,这可能是 ES2015Proxy
对象的一个很好的用例。这是最安全的非侵入性方法。 - Monkeypatch
client.prototype.messageStream
方法,以及日志参数。从 v2.3.2 开始,无论您是在执行client.execute()
还是client.stream()
,都会调用此低级方法。这更冒险也更棘手。 快速而肮脏:编辑
./node_modules/gremlin/lib/GremlinClient.js
中的源代码并在第 405 行(prototype.messageStream
定义)之后添加:console.log('query:', script); console.log('params:', bindings);
目前有一个 open issue about logging of ingoing messages,但可以将其开发为也包括传出消息(带参数的查询,直至协议消息)。