Отслеживание всех вызовов RPC на сервере C ++ gRPC

У меня есть сервер gRPC, написанный на C ++, и я хотел бы отслеживать или регистрировать все вызовы RPC к серверу, включая аргументы и ответы, если это возможно.

Реализация Go gRPC имеет очень полезную концепцию перехватчика, который может быть присоединен к клиенту или серверу. Перехватчик получает доступ не только к метаданным, но и к аргументам / ответам. Для C ++ API ничего подобного найти не могу.


person distributed    schedule 20.02.2017    source источник


Ответы (1)


А как насчет https://grpc.github.io/grpc/cpp/classgrpceptc_1 / а>?

Единственная ссылка на использование, которую я смог найти, - это вопрос SO: C ++ grpc :: экспериментальный: перехватчик как вернуть статус и сообщение от пользовательского перехватчика

РЕДАКТИРОВАТЬ: на самом деле, я думаю, что это лучший ресурс - https://github.com/grpc/grpc/blob/7bf82de9eda0aa8fecfe5edb33834f1b272be30b/test/cpp/end2end/server_interceptor_end_test.interceptors_end_server_interceptors_test_end

Я думаю, вы можете запросить сообщения запроса и ответа из methods аргумента переопределенного метода перехватчика Intercept(grpc::experimental::InterceptorBatchMethods* methods), см. Доступные методы и свойства здесь: https://grpc.github.io/grpc/cpp/classgrpcmethods1experimentalmethods1_interceptor_batch_methods.html

person Eitan H.S.    schedule 23.05.2020