I am using gremlin-javascript module of nodejs to query titan database. Everything is working fine but I want to monitor what is actually hitting the gremlin server and anything else that i can get to know about that query. I already checked the gremlin-server log in logs folder inside the titan folder . I can not find anything of use in those logs. Any help in this regard will be extremely useful. thanks
1 Answers
2
votes
For a client side solution with gremlin-javascript, there is currently no quick and easy way to log to the console outgoing queries or protocol messages sent to Gremlin Server.
You could either:
- Implement your own function that wraps calls to the Gremlin client methods you call (typically
client.execute()
), and logs arguments. If using Node.js v6+, this could be a nice use case for an ES2015Proxy
object. This is the safest, non intrusive approach. - Monkeypatch the
client.prototype.messageStream
method, and log parameters. As of v2.3.2, this low level method gets called whether you're doingclient.execute()
orclient.stream()
. This is riskier and trickier. Quick and dirty: edit the source code in
./node_modules/gremlin/lib/GremlinClient.js
and add this after line 405 (prototype.messageStream
definition):console.log('query:', script); console.log('params:', bindings);
There's currently an open issue about logging of ingoing messages but this could be developed to include outgoing messages as well (queries with parameters, down to protocol messages).