Skip to content

interop: enable OpenTelemetry tracing support in Java interop client …#12910

Draft
AgraVator wants to merge 2 commits into
grpc:masterfrom
AgraVator:otel-interop-test-suite
Draft

interop: enable OpenTelemetry tracing support in Java interop client …#12910
AgraVator wants to merge 2 commits into
grpc:masterfrom
AgraVator:otel-interop-test-suite

Conversation

@AgraVator

@AgraVator AgraVator commented Jul 14, 2026

Copy link
Copy Markdown
Contributor

interop: Enable OpenTelemetry Tracing Support in Java Interop Client and Server

Summary

This PR adds OpenTelemetry Tracing support to the grpc-java interop client and server binaries (TestServiceClient and TestServiceServer), completing Java support for the gRPC OpenTelemetry Tracing Interop Test Plan.

Key Changes

  • Dependencies (gradle/libs.versions.toml & interop-testing/build.gradle):
    • Added OpenTelemetry autoconfigure SDK (opentelemetry-sdk-extension-autoconfigure) and OTLP exporter (opentelemetry-exporter-otlp:1.63.0) to interop dependencies.
  • Client & Server Instrumentation (TestServiceClient.java & TestServiceServer.java):
    • Added --enable_opentelemetry boolean command-line option.
    • Initialized AutoConfiguredOpenTelemetrySdk with GrpcTraceBinContextPropagator for context propagation compatibility (grpc-trace-bin).
    • Globally registered GrpcOpenTelemetry.
    • Wrapped OpenTelemetry SDK shutdown (openTelemetrySdk.close()) in try-finally blocks to guarantee span flushing upon process exit.
  • Code Style & Checkstyle:
    • Adjusted import orders and line length boundaries (<100 characters) to pass checkstyle verification cleanly.

Verification Done

  • Java Client $\leftrightarrow$ Java Server: PASSED
  • Java Client $\leftrightarrow$ C++ Server: PASSED
  • C++ Client $\leftrightarrow$ Java Server: PASSED
  • Verified build and checkstyle:
./gradlew :grpc-interop-testing:checkstyleMain
./gradlew :grpc-interop-testing:installDist -x test
python3 test/cpp/interop/run_otel_interop_test.py --client java --server java

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant