Измерение пропускной способности gRPC на поток - PullRequest
0 голосов
/ 18 мая 2018

У меня есть служба gRPC , написанная на Go, которая имеет очень длинные запущенные потоки.Я хочу измерить использование сети / полосы пропускания для каждого потока и сделать эту информацию доступной для Прометей .

Я обнаружил grpc.StreamServerInterceptor, но из того, что я собираю,он не дает вам доступа к маршалловому сообщению (которое мне нужно выяснить, по размеру).

Есть это стороннее промежуточное ПО, которое я нашел, но оно не похожеэкспортировать любую информацию, связанную с сетью.

1 Ответ

0 голосов
/ 19 мая 2018

Вы можете установить stats.Handler на обоих серверах gRPC и клиентов .Вы можете поместить любые нужные вам метки в контекст, который вы им предоставите.

gRPC затем вызовет метод вашего обработчика HandleRPC с помощью stats.OutPayload или stats.InPayload, содержащее сообщение (необработанное и закодированное), его несжатый и длина проводов и временную метку.

Это все в исходном коде .

...