diff --git a/java-bigquery-jdbc/pom.xml b/java-bigquery-jdbc/pom.xml index 152924230b26..ca886227ac68 100644 --- a/java-bigquery-jdbc/pom.xml +++ b/java-bigquery-jdbc/pom.xml @@ -83,6 +83,10 @@ org.apache.httpcomponents.*:* io.grpc:* + + io.opentelemetry.contrib:opentelemetry-gcp-auth-extension + io.opentelemetry:opentelemetry-exporter-otlp + @@ -424,6 +428,16 @@ opentelemetry-sdk-testing test + + io.opentelemetry + opentelemetry-sdk-logs + test + + + io.opentelemetry + opentelemetry-sdk-trace + test + com.google.cloud google-cloud-trace diff --git a/java-bigquery-jdbc/src/main/java/com/google/cloud/bigquery/jdbc/BigQueryJdbcOpenTelemetry.java b/java-bigquery-jdbc/src/main/java/com/google/cloud/bigquery/jdbc/BigQueryJdbcOpenTelemetry.java index 1995a4d330e4..5f35c9cde510 100644 --- a/java-bigquery-jdbc/src/main/java/com/google/cloud/bigquery/jdbc/BigQueryJdbcOpenTelemetry.java +++ b/java-bigquery-jdbc/src/main/java/com/google/cloud/bigquery/jdbc/BigQueryJdbcOpenTelemetry.java @@ -140,7 +140,7 @@ private BigQueryJdbcOpenTelemetry() {} })); } - public static void ensureGlobalHandlerAttached() { + public static synchronized void ensureGlobalHandlerAttached() { Logger logger = Logger.getLogger(BIGQUERY_NAMESPACE); boolean present = false; for (Handler h : logger.getHandlers()) { diff --git a/java-bigquery-jdbc/src/test/java/com/google/cloud/bigquery/jdbc/BigQueryJdbcLoggingBaseTest.java b/java-bigquery-jdbc/src/test/java/com/google/cloud/bigquery/jdbc/BigQueryJdbcLoggingBaseTest.java index 2196363663fb..450b07a65ba8 100644 --- a/java-bigquery-jdbc/src/test/java/com/google/cloud/bigquery/jdbc/BigQueryJdbcLoggingBaseTest.java +++ b/java-bigquery-jdbc/src/test/java/com/google/cloud/bigquery/jdbc/BigQueryJdbcLoggingBaseTest.java @@ -30,10 +30,12 @@ public abstract class BigQueryJdbcLoggingBaseTest extends BigQueryJdbcBaseTest { private Handler handler; private Logger logger; private long threadId; + private java.util.logging.Level originalLevel; @BeforeEach public void setUpLogValidator() { logger = BigQueryJdbcRootLogger.getRootLogger(); + originalLevel = logger.getLevel(); logger.setLevel(java.util.logging.Level.ALL); capturedLogs.clear(); threadId = Thread.currentThread().getId(); @@ -59,6 +61,7 @@ public void close() throws SecurityException {} public void tearDownLogValidator() { if (logger != null && handler != null) { logger.removeHandler(handler); + logger.setLevel(originalLevel); } } diff --git a/java-bigquery-jdbc/src/test/java/com/google/cloud/bigquery/jdbc/OpenTelemetryJulHandlerTest.java b/java-bigquery-jdbc/src/test/java/com/google/cloud/bigquery/jdbc/OpenTelemetryJulHandlerTest.java index 7f5f841511dd..e923dd011778 100644 --- a/java-bigquery-jdbc/src/test/java/com/google/cloud/bigquery/jdbc/OpenTelemetryJulHandlerTest.java +++ b/java-bigquery-jdbc/src/test/java/com/google/cloud/bigquery/jdbc/OpenTelemetryJulHandlerTest.java @@ -44,9 +44,11 @@ public class OpenTelemetryJulHandlerTest { static final OpenTelemetryExtension otelTesting = OpenTelemetryExtension.create(); private static final Logger logger = Logger.getLogger("com.google.cloud.bigquery"); + private java.util.logging.Level originalLevel; @BeforeEach public void setUp() { + originalLevel = logger.getLevel(); logger.setLevel(java.util.logging.Level.ALL); BigQueryJdbcOpenTelemetry.ensureGlobalHandlerAttached(); } @@ -56,6 +58,7 @@ public void tearDown() { BigQueryJdbcOpenTelemetry.unregisterConnection("test-uuid"); BigQueryJdbcOpenTelemetry.unregisterConnection("wrong-uuid"); BigQueryJdbcOpenTelemetry.unregisterConnection("gcp-uuid"); + logger.setLevel(originalLevel); } @Test diff --git a/java-bigquery-jdbc/src/test/java/com/google/cloud/bigquery/jdbc/PerConnectionFileHandlerTest.java b/java-bigquery-jdbc/src/test/java/com/google/cloud/bigquery/jdbc/PerConnectionFileHandlerTest.java index fda5112703fd..a1149733b113 100644 --- a/java-bigquery-jdbc/src/test/java/com/google/cloud/bigquery/jdbc/PerConnectionFileHandlerTest.java +++ b/java-bigquery-jdbc/src/test/java/com/google/cloud/bigquery/jdbc/PerConnectionFileHandlerTest.java @@ -45,12 +45,15 @@ public class PerConnectionFileHandlerTest { private PerConnectionFileHandler handler; private BigQueryConnection mockConnection; + private Level originalLevel; @BeforeEach public void setUp() { handler = new PerConnectionFileHandler(tempDir.toString(), Level.INFO); mockConnection = Mockito.mock(BigQueryConnection.class); BigQueryJdbcMdc.clear(); + originalLevel = BigQueryJdbcRootLogger.getRootLogger().getLevel(); + BigQueryJdbcRootLogger.getRootLogger().setLevel(Level.ALL); } @AfterEach @@ -59,6 +62,7 @@ public void tearDown() { handler.close(); } BigQueryJdbcMdc.clear(); + BigQueryJdbcRootLogger.getRootLogger().setLevel(originalLevel); } private Optional findLogFile(String suffix) throws IOException {