Где узнать, какие запросы попадают на сервер Gremlin через gremlin-javascript

Я использую модуль gremlin-javascript nodejs для запроса базы данных титанов. Все работает нормально, но я хочу следить за тем, что на самом деле происходит с сервером гремлинов, и за всем, что я могу узнать об этом запросе. Я уже проверил журнал gremlin-server в папке logs внутри папки titan. Я не могу найти ничего полезного в этих журналах. Любая помощь в этом отношении будет чрезвычайно полезной. спасибо


person palash kulshreshtha    schedule 19.05.2016    source источник


Ответы (1)


Для решения на стороне клиента с помощью gremlin-javascript в настоящее время нет быстрого и простого способа регистрировать в консоли исходящие запросы или протокольные сообщения, отправляемые на сервер Gremlin.

Вы можете:

  1. Реализуйте свою собственную функцию, которая упаковывает вызовы вызываемых вами клиентских методов Gremlin (обычно client.execute()) и регистрирует аргументы. При использовании Node.js v6+ это может быть хорошим вариантом использования объекта Proxy ES2015. Это самый безопасный, ненавязчивый подход.
  2. Monkeypatch метод client.prototype.messageStream и параметры журнала. Начиная с версии 2.3.2, этот низкоуровневый метод вызывается независимо от того, делаете ли вы client.execute() или client.stream(). Это рискованнее и хитрее.
  3. Быстро и грязно: отредактируйте исходный код в ./node_modules/gremlin/lib/GremlinClient.js и добавьте это после строки 405 (определение prototype.messageStream):

    console.log('query:', script);
    console.log('params:', bindings);
    

В настоящее время существует открытая проблема с ведением журнала входящих сообщений, но ее можно было бы доработать, включив также исходящие сообщения (запросы с параметрами, вплоть до протокольных сообщений).

person jbmusso    schedule 19.05.2016
comment
еще раз спасибо jbmusso, выбрав быстрый и грязный вариант для более быстрого прототипирования. - person palash kulshreshtha; 19.05.2016