skywalking agent NOT support java-grpc high versions

134 views Asked by At

I'm use latest skywalking agent(currently is 8.13.0), found trace span NOT reported for grpc 1.43.2 or 1.51.0 but reports for java-grpc 1.29.0 version.

Environment:

  1. The app test source code is offical java-grpc example project: HelloworldServer and HelloWorldClient
  2. invoke example's gRPC SayHello and watch the application tracing result in wkywalking web page.

With some research, found NettyClientStreamInstrumentation use fixed version for grpc netty 1.33.0

/**
 * Intercept constructor to obtain server IP.
 * grpc Low version(eg:1.6.0): use io.grpc.netty.NettyClientStream.
 * grpc High version(eg:1.33.1): use io.grpc.netty.shaded.io.grpc.netty.NettyClientStream.
 */
public class NettyClientStreamInstrumentation extends ClassInstanceMethodsEnhancePluginDefine {
...

But I'm not sure if it make effect for trace report.

There are some questions hope consult:

  1. Is the code limit grpc report?
  2. which java-grpc version support has tested?
  3. how can I make sure the agent report or not report trace span?

thanks

2

There are 2 answers

8
Sheng Wu On

I am not following. Are you upgrading the gRPC dependency in agent codebase?

2
Ivy Yifei Zhuang On

grpc-java itself supports OpenCensus based tracing, that is for grpc internal events, e.g. a grpc message is sent or received, and retry attempts. (https://github.com/grpc/grpc-java/blob/master/census/src/main/java/io/grpc/census/CensusTracingModule.java) It is unclear that the grpc tracing is enable or not in the agent.

The agent may have its own tracing instrumentation for its own requests.

So it is unclear you had question bout grpc-census tracing or the application's tracing. But it is unlikely that NettyClientStreamInstrumentation affects the tracing generation itself.

When the span report is not generated, it also could be that the span/trace exporter config is not correct.