6161import com .google .devtools .cloudtrace .v1 .ListTracesRequest ;
6262import com .google .devtools .cloudtrace .v1 .Trace ;
6363import com .google .spanner .v1 .ResultSetStats ;
64+ import io .opentelemetry .api .GlobalOpenTelemetry ;
6465import io .opentelemetry .api .incubator .trace .ExtendedTracer ;
6566import io .opentelemetry .api .trace .Span ;
6667import io .opentelemetry .api .trace .Tracer ;
8081import java .util .Collections ;
8182import java .util .List ;
8283import java .util .concurrent .ThreadLocalRandom ;
84+ import java .util .concurrent .TimeUnit ;
8385import org .junit .AfterClass ;
8486import org .junit .Before ;
8587import org .junit .BeforeClass ;
@@ -116,12 +118,12 @@ public static void setUpDatabase() {
116118 env .getTestHelper ().createTestDatabase (Dialect .POSTGRESQL , Collections .emptyList ());
117119 postgreSQLClient = env .getTestHelper ().getDatabaseClient (postgreSQLDatabase );
118120 }
121+ setupOpenTelemetry ();
119122 }
120123
121- @ BeforeClass
122124 public static void setupOpenTelemetry () {
123125 assumeFalse ("This test requires credentials" , EmulatorSpannerHelper .isUsingEmulator ());
124-
126+ // GlobalOpenTelemetry.set(openTelemetry);
125127 SpannerOptions options = env .getTestHelper ().getOptions ();
126128 TraceConfiguration .Builder traceConfigurationBuilder = TraceConfiguration .builder ();
127129 if (options .getCredentials () != null ) {
@@ -144,15 +146,26 @@ public static void setupOpenTelemetry() {
144146 .build ())
145147 .setPropagators (ContextPropagators .create (W3CTraceContextPropagator .getInstance ()))
146148 .build ();
147- options .toBuilder ().setOpenTelemetry (openTelemetry ).setEnableEndToEndTracing (true ).build ();
149+ SpannerOptions .enableOpenTelemetryTraces ();
150+ options .toBuilder ()
151+ .setOpenTelemetry (openTelemetry )
152+ .setEnableApiTracing (true )
153+ .setEnableEndToEndTracing (true ).build ();
148154 // TODO: Remove when the bug in OpenTelemetry that has SdkTracer implement ExtendedTracer,
149155 // which is only available in the incubator project.
150156 ExtendedTracer ignore = (ExtendedTracer ) openTelemetry .getTracer ("foo" );
151157 }
152158
159+ public static void closeOpenTelemetry () {
160+ if (openTelemetry != null ) {
161+ openTelemetry .close ();
162+ }
163+ }
164+
153165 @ AfterClass
154166 public static void teardown () {
155167 ConnectionOptions .closeSpanner ();
168+ closeOpenTelemetry ();
156169 }
157170
158171 @ Before
@@ -192,7 +205,7 @@ public void simple() throws InterruptedException, IOException {
192205 }
193206
194207 private void assertTrace () throws IOException , InterruptedException {
195- com . google . protobuf . Timestamp timestamp = Timestamp . now ().toProto ( );
208+ openTelemetry . getSdkTracerProvider (). forceFlush ().join ( 10 , TimeUnit . SECONDS );
196209 TraceServiceSettings settings =
197210 env .getTestHelper ().getOptions ().getCredentials () == null
198211 ? TraceServiceSettings .newBuilder ().build ()
0 commit comments