Skip to content

Commit

Permalink
Add peer.service to grpc javaagent instrumentation (#3357)
Browse files Browse the repository at this point in the history
  • Loading branch information
Mateusz Rzeszutek committed Jun 19, 2021
1 parent 9e763d6 commit ab70872
Show file tree
Hide file tree
Showing 2 changed files with 34 additions and 13 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -8,24 +8,43 @@
import io.grpc.ClientInterceptor;
import io.grpc.Context;
import io.grpc.ServerInterceptor;
import io.grpc.Status;
import io.opentelemetry.api.GlobalOpenTelemetry;
import io.opentelemetry.instrumentation.api.config.Config;
import io.opentelemetry.instrumentation.grpc.v1_6.GrpcRequest;
import io.opentelemetry.instrumentation.grpc.v1_6.GrpcTracing;
import io.opentelemetry.instrumentation.grpc.v1_6.GrpcTracingBuilder;
import io.opentelemetry.instrumentation.grpc.v1_6.internal.ContextStorageBridge;
import io.opentelemetry.javaagent.instrumentation.api.instrumenter.PeerServiceAttributesExtractor;

// Holds singleton references.
public final class GrpcSingletons {
private static final GrpcTracing TRACING =
GrpcTracing.newBuilder(GlobalOpenTelemetry.get())
.setCaptureExperimentalSpanAttributes(
Config.get()
.getBooleanProperty(
"otel.instrumentation.grpc.experimental-span-attributes", false))
.build();

public static final ClientInterceptor CLIENT_INTERCEPTOR = TRACING.newClientInterceptor();
public static final ClientInterceptor CLIENT_INTERCEPTOR;

public static final ServerInterceptor SERVER_INTERCEPTOR = TRACING.newServerInterceptor();
public static final ServerInterceptor SERVER_INTERCEPTOR;

public static final Context.Storage STORAGE = new ContextStorageBridge();

static {
GrpcTracingBuilder builder =
GrpcTracing.newBuilder(GlobalOpenTelemetry.get())
.setCaptureExperimentalSpanAttributes(
Config.get()
.getBooleanProperty(
"otel.instrumentation.grpc.experimental-span-attributes", false));

PeerServiceAttributesExtractor<GrpcRequest, Status> peerServiceExtractor =
PeerServiceAttributesExtractor.createUsingReflection(
"io.opentelemetry.instrumentation.grpc.v1_6.GrpcNetAttributesExtractor");
if (peerServiceExtractor != null) {
builder.addAttributeExtractor(peerServiceExtractor);
}

GrpcTracing tracing = builder.build();
CLIENT_INTERCEPTOR = tracing.newClientInterceptor();
SERVER_INTERCEPTOR = tracing.newServerInterceptor();
}

private GrpcSingletons() {}
}
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@
import java.net.SocketAddress;
import org.checkerframework.checker.nullness.qual.Nullable;

final class GrpcRequest {
public final class GrpcRequest {

private final MethodDescriptor<?, ?> method;
@Nullable private final Metadata metadata;
Expand All @@ -26,15 +26,17 @@ final class GrpcRequest {
this.remoteAddress = remoteAddress;
}

MethodDescriptor<?, ?> getMethod() {
public MethodDescriptor<?, ?> getMethod() {
return method;
}

Metadata getMetadata() {
@Nullable
public Metadata getMetadata() {
return metadata;
}

SocketAddress getRemoteAddress() {
@Nullable
public SocketAddress getRemoteAddress() {
return remoteAddress;
}

Expand Down

0 comments on commit ab70872

Please sign in to comment.