Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
14 changes: 14 additions & 0 deletions java-bigquery-jdbc/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -83,6 +83,10 @@
<ignoredUsedUndeclaredDependency>org.apache.httpcomponents.*:*</ignoredUsedUndeclaredDependency>
<ignoredUsedUndeclaredDependency>io.grpc:*</ignoredUsedUndeclaredDependency>
</ignoredUsedUndeclaredDependencies>
<ignoredUnusedDeclaredDependencies>
<ignoredUnusedDeclaredDependency>io.opentelemetry.contrib:opentelemetry-gcp-auth-extension</ignoredUnusedDeclaredDependency>
<ignoredUnusedDeclaredDependency>io.opentelemetry:opentelemetry-exporter-otlp</ignoredUnusedDeclaredDependency>
</ignoredUnusedDeclaredDependencies>
</configuration>
</plugin>
<plugin>
Expand Down Expand Up @@ -424,6 +428,16 @@
<artifactId>opentelemetry-sdk-testing</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>io.opentelemetry</groupId>
<artifactId>opentelemetry-sdk-logs</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>io.opentelemetry</groupId>
<artifactId>opentelemetry-sdk-trace</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>com.google.cloud</groupId>
<artifactId>google-cloud-trace</artifactId>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,7 @@
import java.util.Objects;
import java.util.concurrent.Callable;
import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.locks.ReentrantLock;
import java.util.logging.Handler;
import java.util.logging.Logger;

Expand Down Expand Up @@ -119,6 +120,7 @@ static class TelemetryConfig {

private static final ConcurrentHashMap<String, TelemetryConfig> connectionConfigs =
new ConcurrentHashMap<>();
private static final ReentrantLock lock = new ReentrantLock();

private BigQueryJdbcOpenTelemetry() {}

Expand All @@ -141,16 +143,21 @@ private BigQueryJdbcOpenTelemetry() {}
}

public static void ensureGlobalHandlerAttached() {
Logger logger = Logger.getLogger(BIGQUERY_NAMESPACE);
boolean present = false;
for (Handler h : logger.getHandlers()) {
if (h instanceof OpenTelemetryJulHandler) {
present = true;
break;
lock.lock();
try {
Logger logger = Logger.getLogger(BIGQUERY_NAMESPACE);
boolean present = false;
for (Handler h : logger.getHandlers()) {
if (h instanceof OpenTelemetryJulHandler) {
present = true;
break;
}
}
}
if (!present) {
logger.addHandler(new OpenTelemetryJulHandler());
if (!present) {
logger.addHandler(new OpenTelemetryJulHandler());
}
} finally {
lock.unlock();
}
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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();
Expand All @@ -59,6 +61,7 @@ public void close() throws SecurityException {}
public void tearDownLogValidator() {
if (logger != null && handler != null) {
logger.removeHandler(handler);
logger.setLevel(originalLevel);
}
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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();
}
Expand All @@ -56,6 +58,7 @@ public void tearDown() {
BigQueryJdbcOpenTelemetry.unregisterConnection("test-uuid");
BigQueryJdbcOpenTelemetry.unregisterConnection("wrong-uuid");
BigQueryJdbcOpenTelemetry.unregisterConnection("gcp-uuid");
logger.setLevel(originalLevel);
}

@Test
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand All @@ -59,6 +62,7 @@ public void tearDown() {
handler.close();
}
BigQueryJdbcMdc.clear();
BigQueryJdbcRootLogger.getRootLogger().setLevel(originalLevel);
}

private Optional<Path> findLogFile(String suffix) throws IOException {
Expand Down
Loading