Skip to content

Commit 8e6c5e1

Browse files
committed
Try otel logging emitting.
1 parent 89ed099 commit 8e6c5e1

File tree

4 files changed

+21
-5
lines changed

4 files changed

+21
-5
lines changed

interop-testing/src/main/java/io/grpc/testing/integration/XdsTestClient.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -269,7 +269,7 @@ private void run() {
269269
.enableTracing()
270270
.sdk(AutoConfiguredOpenTelemetrySdk.builder()
271271
.addPropertiesSupplier(() -> ImmutableMap.of(
272-
"otel.logs.exporter", "none",
272+
"otel.logs.exporter", "otlp",
273273
"otel.metrics.exporter", "prometheus",
274274
"otel.traces.exporter", "otlp",
275275
"otel.exporter.otlp.endpoint", "https://telemetry.googleapis.com",

interop-testing/src/main/java/io/grpc/testing/integration/XdsTestServer.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -201,7 +201,7 @@ void start() throws Exception {
201201
.enableTracing()
202202
.sdk(AutoConfiguredOpenTelemetrySdk.builder()
203203
.addPropertiesSupplier(() -> ImmutableMap.of(
204-
"otel.logs.exporter", "none",
204+
"otel.logs.exporter", "otlp",
205205
"otel.metrics.exporter", "prometheus",
206206
"otel.traces.exporter", "otlp",
207207
"otel.exporter.otlp.endpoint", "https://telemetry.googleapis.com",

opentelemetry/src/main/java/io/grpc/opentelemetry/GrpcOpenTelemetry.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -87,6 +87,9 @@ public static Builder newBuilder() {
8787

8888
private GrpcOpenTelemetry(Builder builder) {
8989
this.openTelemetrySdk = checkNotNull(builder.openTelemetrySdk, "openTelemetrySdk");
90+
openTelemetrySdk.getLogsBridge().loggerBuilder("my-instrumentation-scope")
91+
.setInstrumentationVersion("1.0.0")
92+
.build();
9093
this.meterProvider = checkNotNull(openTelemetrySdk.getMeterProvider(), "meterProvider");
9194
this.meter = this.meterProvider
9295
.meterBuilder(OpenTelemetryConstants.INSTRUMENTATION_SCOPE)

opentelemetry/src/main/java/io/grpc/opentelemetry/OpenTelemetryTracingModule.java

Lines changed: 16 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,7 @@
4242
import io.opentelemetry.api.OpenTelemetry;
4343
import io.opentelemetry.api.baggage.Baggage;
4444
import io.opentelemetry.api.common.AttributesBuilder;
45+
import io.opentelemetry.api.logs.Severity;
4546
import io.opentelemetry.api.trace.Span;
4647
import io.opentelemetry.api.trace.StatusCode;
4748
import io.opentelemetry.api.trace.Tracer;
@@ -68,7 +69,7 @@ final class OpenTelemetryTracingModule {
6869
private static final AtomicIntegerFieldUpdater<ServerTracer> streamClosedUpdater;
6970

7071
/*
71-
* When using Atomic*FieldUpdater, some Samsung Android 5.0.x devices encounter a bug in their JDK
72+
* When using Atomic*FieldUpdater, some Samsung Android 5.0.x devices encounter a bug in their JDKimport io.opentelemetry.api.logs.Severity;logsb
7273
* reflection API that triggers a NoSuchFieldException. When this occurs, we fallback to
7374
* (potentially racy) direct updates of the volatile variables.
7475
*/
@@ -97,13 +98,17 @@ final class OpenTelemetryTracingModule {
9798
private final ServerInterceptor serverSpanPropagationInterceptor =
9899
new TracingServerSpanPropagationInterceptor();
99100
private final ServerTracerFactory serverTracerFactory = new ServerTracerFactory();
101+
private final io.opentelemetry.api.logs.Logger otelLogger;
100102

101103
OpenTelemetryTracingModule(OpenTelemetry openTelemetry) {
102104
this.otelTracer = checkNotNull(openTelemetry.getTracerProvider(), "tracerProvider")
103105
.tracerBuilder(OpenTelemetryConstants.INSTRUMENTATION_SCOPE)
104106
.setInstrumentationVersion(IMPLEMENTATION_VERSION)
105107
.build();
106108
this.contextPropagators = checkNotNull(openTelemetry.getPropagators(), "contextPropagators");
109+
this.otelLogger = openTelemetry.getLogsBridge().loggerBuilder("grpc-java-client-scope")
110+
.setInstrumentationVersion("1.0.0")
111+
.build();
107112
}
108113

109114
@VisibleForTesting
@@ -116,7 +121,7 @@ Tracer getTracer() {
116121
*/
117122
@VisibleForTesting
118123
CallAttemptsTracerFactory newClientCallTracer(Span clientSpan, MethodDescriptor<?, ?> method) {
119-
return new CallAttemptsTracerFactory(clientSpan, method);
124+
return new CallAttemptsTracerFactory(clientSpan, method, otelLogger);
120125
}
121126

122127
/**
@@ -142,11 +147,14 @@ final class CallAttemptsTracerFactory extends ClientStreamTracer.Factory {
142147
volatile int callEnded;
143148
private final Span clientSpan;
144149
private final String fullMethodName;
150+
private final io.opentelemetry.api.logs.Logger otelLogger;
145151

146-
CallAttemptsTracerFactory(Span clientSpan, MethodDescriptor<?, ?> method) {
152+
CallAttemptsTracerFactory(Span clientSpan, MethodDescriptor<?, ?> method,
153+
io.opentelemetry.api.logs.Logger otelLogger) {
147154
checkNotNull(method, "method");
148155
this.fullMethodName = checkNotNull(method.getFullMethodName(), "fullMethodName");
149156
this.clientSpan = checkNotNull(clientSpan, "clientSpan");
157+
this.otelLogger = otelLogger;
150158
}
151159

152160
@Override
@@ -464,6 +472,11 @@ private void recordOutboundMessageSentEvent(Span span,
464472
attributesBuilder.put("message-size-compressed", optionalWireSize);
465473
}
466474
span.addEvent("Outbound message", attributesBuilder.build());
475+
otelLogger.logRecordBuilder().setSeverity(Severity.INFO)
476+
.setSeverityText("INFO")
477+
.setBody("outbound message event") // The main message body
478+
.setAllAttributes(attributesBuilder.build())
479+
.emit();
467480
}
468481

469482
private void recordInboundCompressedMessage(Span span, int seqNo, long optionalWireSize) {

0 commit comments

Comments
 (0)