feat(bqjdbc): Implement Correlated OpenTelemetry Logging Bridge#13002
feat(bqjdbc): Implement Correlated OpenTelemetry Logging Bridge#13002keshavdandeva merged 11 commits intojdbc/feature-branch-otelfrom
Conversation
There was a problem hiding this comment.
Code Review
This pull request introduces OpenTelemetry and Google Cloud Logging support for the BigQuery JDBC driver, including a new OpenTelemetryJulHandler to bridge logs and logic to suppress local logging in cloud-only mode. The review identified several critical issues regarding resource management and logging correctness: a significant handler leak occurs because new handlers are attached to a shared logger instance for every connection without being removed, the handler incorrectly logs raw message templates instead of formatted strings, and the root logger fails to clean up existing file handlers when switching to cloud-only logging.
|
/gemini review |
There was a problem hiding this comment.
Code Review
This pull request implements a logging bridge from java.util.logging to OpenTelemetry and Google Cloud Logging, including a new OpenTelemetryJulHandler and connection-specific telemetry management. Key feedback focuses on making the handler registration idempotent to avoid duplicates, ensuring global logs are not silently dropped when connection IDs are absent, and correctly formatting trace IDs for GCP correlation. Further improvements were suggested regarding exception safety during client flushing and clarifying parameter naming in the telemetry configuration logic.
1adc224
into
jdbc/feature-branch-otel
b/496678357
This PR implements the Correlated GCP Logging Bridge for the OpenTelemetry integration in the BigQuery JDBC driver. It enables bridging standard Java logs (
java.util.logging) to the OpenTelemetry Logs API, allowing users to correlate logs with distributed traces and isolate them by connection session.Changes
BigQueryDriver.java: Implemented Cloud-Only Mode matrix logic to suppress local file creation whenenableGcpLogExporter=trueandLogPathis omitted.BigQueryJdbcRootLogger.java: UpdatedsetLevelto handleLevel.OFFproperly and skip file handler creation if path is null.BigQueryConnection.java: AttachedOpenTelemetryJulHandlerto the"com.google.cloud.bigquery"namespace during initialization.OpenTelemetryJulHandler.java: Created a new handler that bridges JUL logs to OTel Logs API with context harvesting and connection ID filtering.pom.xml: Addedgoogle-cloud-loggingdependency with version3.33.0-SNAPSHOTand auto-update marker.OpenTelemetryJulHandlerTest.java: Created unit tests usingOpenTelemetryExtensionto verify log emission and filtering.