- Notifications
You must be signed in to change notification settings - Fork 129
feat(bigquery): Integrate Otel in client lib #3747
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/OpenTelemetryHelper.java Outdated Show resolved Hide resolved
google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java Outdated Show resolved Hide resolved
PhongChuong left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
In the case you are not aware. There are 2 additional locations where we perform network calls in TableDataWriteChannel.java and Job.java.
Yes, I wanted to keep this PR scoped to just the BigQueryImpl file (though with the refactor that has changed). I was planning to include the calls in TableDataWriteChannel.java and Job.java in a separate PR with a few other methods, such as runWithRetries to make it easier to review and reason about. |
shollyman left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
My biggest worry with this is the attribute structure here. This PR appears to define every field of every of every API as it's own attribute, which means we're more likely to introduce conflicts for users trying to filter based on attributes downstream.
This leads me to two questions:
- should we be putting the full contents of the responses into attributes, vs a more constrained approach (critical fields like identifiers, status, etc)?
- if we do want to capture the API response, should it just be stringified as a single attribute?
|
| My 2 cents regarding attributes: On a side note, I think we should also clearly state that "Span names and attributes are subject to change without notice" to allow us the flexibility to change the structure as needed.
|
google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryOptions.java Show resolved Hide resolved
google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryImpl.java Outdated Show resolved Hide resolved
google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryImpl.java Outdated Show resolved Hide resolved
google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/TableInfo.java Outdated Show resolved Hide resolved
| I've cleaned up the attributes that we are collecting by removing some fields that are not very useful in debugging. I also added in attributes for language and "db.name" to make the tracing more consistent with python. I've updated the span naming pattern to be more descriptive. I think it's a good idea to include "Span names and attributes are subject to change without notice", but that seems like it would better to put in the docs rather than the code. What do you guys think? |
google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryImpl.java Show resolved Hide resolved
google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryImpl.java Show resolved Hide resolved
google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryImpl.java Outdated Show resolved Hide resolved
google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryImpl.java Show resolved Hide resolved
google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryImpl.java Show resolved Hide resolved
google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryOptions.java Show resolved Hide resolved
google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/DatasetId.java Outdated Show resolved Hide resolved
PhongChuong left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks for all the changes.
@shollyman , can you take a look at the attributes to see if we missed anything?
shollyman left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I continue to be wary of replicating many of the API response fields in the span attributes, favoring the "less is more" approach, but I can be convinced otherwise.
google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryImpl.java Outdated Show resolved Hide resolved
google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/JobId.java Show resolved Hide resolved
google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/InsertAllRequest.java Outdated Show resolved Hide resolved
google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/JobInfo.java Outdated Show resolved Hide resolved
google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryImpl.java Show resolved Hide resolved
| I've gone through and removed most attributes that we were collecting before, keeping mainly just the OP identifiers and time information such as creationTime, lastModifiedTime, etc. Let me know if you think we should shave off any more |
shollyman left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Did some more reading, two other considerations for these attributes (which may require a lot of callsite touches):
-
Should the attributes be namespaced so it's clear they're fields from the BQ API? Right now they're just single term attributes and could conflict with other telemetry.
-
I believe otel attribute conventions are snake case rather than camel, so we may want to revisit the multi word attributes.
| .getOpenTelemetryTracer() | ||
| .spanBuilder("com.google.cloud.bigquery.BigQuery.createJob") | ||
| .setAllAttributes(jobInfo.getJobId().getOtelAttributes()) | ||
| .setAttribute("status", getFieldAsString(jobInfo.getStatus())) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
status is a submessage. Should we just report status fields individually? status.state (pending/running/done), and error presence in the job?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Sounds good to me, though I've decided to move those attributes to the Job class instead since during the create() function, job.status() is not yet populated. The field would always be set to null and thus be practically useless for debugging.
| getOptions() | ||
| .getOpenTelemetryTracer() | ||
| .spanBuilder("com.google.cloud.bigquery.BigQuery.listDatasets") | ||
| .setAttribute("projectId", projectId) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
minor: worth pulling the current page token into an attribute alongside the project for the list RPCs? It'll be visible in the HTTP request below it as part of the URL.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
If the page token is supplied as a DatasetListOption, it will already be captured in an attribute here. I agree that adding the page token as an attribute is a good idea, though I think it would be better suited to the http layer rather than the interface.
| Attributes attributes = Attributes.builder().build(); | ||
| for (Field field : this.getFields()) { | ||
| attributes = | ||
| attributes.toBuilder().put("Field: " + field.getName(), field.toString()).build(); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Do we want BQ schema in the otel attributes at all?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
It is likely overkill, I went ahead and removed the schema from the attributes.
| I renamed all the attributes to be snake case and gave them namespace prefixes to remove any overloading of attributes. I went with the namespace "bq" and created further namespaces depending on the objects, such as "bq.dataset", "bq.table", "bq.query", etc. Let me know if you think a different namespace style would be better. |
shollyman left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks for slogging through all this!
* test: fix benchmark test missing maven configuration (googleapis#3596) * deps: update github/codeql-action action to v2.27.9 (googleapis#3608) * chore(deps): update dependency com.google.cloud:google-cloud-bigquery to v2.45.0 (googleapis#3612) * deps: update dependency com.google.oauth-client:google-oauth-client-java6 to v1.37.0 (googleapis#3614) * deps: update dependency com.google.oauth-client:google-oauth-client-jetty to v1.37.0 (googleapis#3615) * deps: update dependency com.google.api.grpc:proto-google-cloud-bigqueryconnection-v1 to v2.57.0 (googleapis#3617) * chore(deps): update dependency com.google.cloud:google-cloud-bigqueryconnection to v2.57.0 (googleapis#3616) * deps: update dependency com.google.cloud:google-cloud-datacatalog-bom to v1.61.0 (googleapis#3618) * chore(deps): update dependency com.google.cloud:google-cloud-bigtable to v2.51.0 (googleapis#3619) * feat(bigquery): support IAM conditions in datasets in Java client. (googleapis#3602) * feat(bigquery): support IAM conditions in datasets in Java client. * Fix formatting * Account for possible null condition field in Acl. * Add toString() method to Acl.Expr object. Use service account in integration test instead of hardcoded personal account. Change Database API calls to only have one branch, toggling only the access policy version in a conditional. * Change Acl.User to be default google credentials in IT test * fix formatting * Add Acl.Expr builder. Fix review nits. * fix formatting * deps: update actions/upload-artifact action to v4.5.0 (googleapis#3620) * deps: update github/codeql-action action to v2.28.0 (googleapis#3621) * deps: update dependency com.google.apis:google-api-services-bigquery to v2-rev20241222-2.0.0 (googleapis#3623) * fix: NPE when reading BigQueryResultSet from empty tables (googleapis#3627) * fix: NPE when reading BigQueryResultSet from empty tables * Add unittests * fix(test): Force usage of ReadAPI (googleapis#3625) * deps: update dependency com.google.cloud:sdk-platform-java-config to v3.41.1 (googleapis#3628) * test(deps): update dependency com.google.cloud:google-cloud-storage to v2.47.0 (googleapis#3629) * chore(deps): update dependency com.google.cloud:google-cloud-bigqueryconnection to v2.58.0 (googleapis#3630) * deps: update dependency com.google.api.grpc:proto-google-cloud-bigqueryconnection-v1 to v2.58.0 (googleapis#3631) * deps: update dependency com.google.cloud:google-cloud-datacatalog-bom to v1.62.0 (googleapis#3632) * deps: update actions/upload-artifact action to v4.6.0 (googleapis#3633) * chore(deps): update dependency com.google.cloud:google-cloud-bigquerystorage-bom to v3.11.1 (googleapis#3636) * chore(main): release 2.46.0 (googleapis#3613) Co-authored-by: release-please[bot] <55107282+release-please[bot]@users.noreply.github.com> * deps: update github/codeql-action action to v2.28.1 (googleapis#3637) * chore(deps): update dependency com.google.cloud:google-cloud-bigquery to v2.46.0 (googleapis#3640) * chore(deps): update dependency com.google.cloud:google-cloud-bigtable to v2.51.1 (googleapis#3638) * chore(main): release 2.46.1-SNAPSHOT (googleapis#3639) Co-authored-by: release-please[bot] <55107282+release-please[bot]@users.noreply.github.com> * fix(bigquery): Remove ReadAPI bypass in executeSelect() (googleapis#3624) * fix(bigquery): Remove ReadAPI bypass in executeSelect() for fast query requests. * Enable fast query and read API. Move readAPI condition check from getExecuteSelectResponse() to queryRpc(). This allows fast query to be used with ReadAPI. * Check for null for fast query results.getTotalRows() * Remove test file. * Add internal query state to keep track of ReadAPI usage. A Boolean field is added to keep track of whether or not the high throughput ReadAPI is used. This is mostly for testing to avoid another regression in the future. * Move tests into IT test file * Fix formatting changes. Again :/ * Add VisibleForTesting Annotation * fix: Close bq read client (googleapis#3644) * Shutdown bqReadClient after high throughput read * Code formatted to google-java-format * deps: update dependency com.google.apis:google-api-services-bigquery to v2-rev20250112-2.0.0 (googleapis#3651) * test(deps): update dependency com.google.cloud:google-cloud-storage to v2.48.0 (googleapis#3654) * deps: update dependency com.google.cloud:sdk-platform-java-config to v3.42.0 (googleapis#3653) * feat(bigquery): Support resource tags for datasets in java client (googleapis#3647) * feat(bigquery): Support resource tags for datasets in java client * add method to clirr-ignored-diff file * Try Acl permissions to grant tag permissions * Add exception to func signature * Remove IT tests * chore(deps): update dependency com.google.cloud:google-cloud-bigquerystorage-bom to v3.11.2 (googleapis#3656) * chore(main): release 2.47.0 (googleapis#3643) Co-authored-by: release-please[bot] <55107282+release-please[bot]@users.noreply.github.com> * chore(deps): update dependency com.google.cloud:google-cloud-bigquery to v2.47.0 (googleapis#3658) * chore(deps): update dependency com.google.cloud:google-cloud-bigqueryconnection to v2.59.0 (googleapis#3659) * deps: update dependency com.google.api.grpc:proto-google-cloud-bigqueryconnection-v1 to v2.59.0 (googleapis#3660) * deps: update dependency com.google.cloud:google-cloud-datacatalog-bom to v1.63.0 (googleapis#3661) * feat: implement wasNull for BigQueryResultSet (googleapis#3650) * feat: implement wasNull for BigQueryResultSet * feat: implement wasNull for BigQueryResultSet * feat: implement wasNull for BigQueryResultSet * feat: implement wasNull for BigQueryResultSet * feat: implement wasNull for BigQueryResultSet * feat: implement wasNull for BigQueryResultSet * feat: implement wasNull for BigQueryResultSet * chore(main): release 2.47.1-SNAPSHOT (googleapis#3657) Co-authored-by: release-please[bot] <55107282+release-please[bot]@users.noreply.github.com> * chore(deps): update dependency com.google.cloud:google-cloud-bigtable to v2.51.2 (googleapis#3665) * test(deps): update dependency com.google.cloud:google-cloud-storage to v2.48.1 (googleapis#3666) * deps: update dependency com.google.apis:google-api-services-bigquery to v2-rev20250128-2.0.0 (googleapis#3667) * deps: update dependency com.google.cloud:sdk-platform-java-config to v3.43.0 (googleapis#3669) * docs: update CONTRIBUTING.md for users without branch permissions (googleapis#3670) * test(deps): update dependency com.google.cloud:google-cloud-storage to v2.48.2 (googleapis#3674) * chore(deps): update dependency com.google.cloud:google-cloud-bigquerystorage-bom to v3.11.3 (googleapis#3675) * chore(main): release 2.48.0 (googleapis#3663) Co-authored-by: release-please[bot] <55107282+release-please[bot]@users.noreply.github.com> * chore(main): release 2.48.1-SNAPSHOT (googleapis#3677) Co-authored-by: release-please[bot] <55107282+release-please[bot]@users.noreply.github.com> * chore(deps): update dependency com.google.cloud:google-cloud-bigquery to v2.48.0 (googleapis#3678) * chore(deps): update dependency com.google.cloud:google-cloud-bigqueryconnection to v2.60.0 (googleapis#3679) * deps: update dependency com.google.api.grpc:proto-google-cloud-bigqueryconnection-v1 to v2.60.0 (googleapis#3680) * deps: update dependency com.google.cloud:google-cloud-datacatalog-bom to v1.64.0 (googleapis#3681) * chore(deps): update dependency com.google.cloud:google-cloud-bigtable to v2.52.0 (googleapis#3684) * deps: update dependency com.google.oauth-client:google-oauth-client-java6 to v1.38.0 (googleapis#3685) * deps: update dependency com.google.oauth-client:google-oauth-client-jetty to v1.38.0 (googleapis#3686) * deps: update dependency com.google.apis:google-api-services-bigquery to v2-rev20250216-2.0.0 (googleapis#3688) * build(deps): update dependency org.apache.maven.plugins:maven-compiler-plugin to v3.14.0 (googleapis#3689) * deps: update ossf/scorecard-action action to v2.4.1 (googleapis#3690) * deps: update actions/upload-artifact action to v4.6.1 (googleapis#3691) * deps: update dependency com.google.cloud:sdk-platform-java-config to v3.44.0 (googleapis#3694) * chore(deps): update dependency com.google.cloud:google-cloud-bigquerystorage-bom to v3.11.4 (googleapis#3695) * test(deps): update dependency com.google.cloud:google-cloud-storage to v2.49.0 (googleapis#3696) * chore(main): release 2.48.1 (googleapis#3682) Co-authored-by: release-please[bot] <55107282+release-please[bot]@users.noreply.github.com> * build(deps): update dependency org.apache.maven.plugins:maven-project-info-reports-plugin to v3.9.0 (googleapis#3698) * build(deps): update dependency org.apache.maven.plugins:maven-deploy-plugin to v3.1.4 (googleapis#3699) * chore(deps): update dependency com.google.cloud:google-cloud-bigquery to v2.48.1 (googleapis#3700) * chore(main): release 2.48.2-SNAPSHOT (googleapis#3697) Co-authored-by: release-please[bot] <55107282+release-please[bot]@users.noreply.github.com> * chore(deps): update dependency com.google.cloud:google-cloud-bigqueryconnection to v2.61.0 (googleapis#3702) * deps: update dependency com.google.cloud:google-cloud-datacatalog-bom to v1.65.0 (googleapis#3704) * feat: next release from main branch is 2.49.0 (googleapis#3706) * chore(deps): update dependency com.google.cloud:google-cloud-bigtable to v2.53.0 (googleapis#3707) * deps: update dependency com.google.api.grpc:proto-google-cloud-bigqueryconnection-v1 to v2.61.0 (googleapis#3703) * chore(deps): update dependency com.google.cloud:google-cloud-bigtable to v2.54.0 (googleapis#3709) * deps: update dependency com.google.oauth-client:google-oauth-client-java6 to v1.39.0 (googleapis#3710) * deps: update dependency com.google.oauth-client:google-oauth-client-jetty to v1.39.0 (googleapis#3711) * feat(bigquery): Implement getArray in BigQueryResultImpl (googleapis#3693) * Implement getArray in BigQueryResultImpl * deps: update dependency com.google.apis:google-api-services-bigquery to v2-rev20250216-2.0.0 (googleapis#3688) * build(deps): update dependency org.apache.maven.plugins:maven-compiler-plugin to v3.14.0 (googleapis#3689) * deps: update ossf/scorecard-action action to v2.4.1 (googleapis#3690) * deps: update actions/upload-artifact action to v4.6.1 (googleapis#3691) * Remove public from BigQueryResultSet class def * Remove INTEGER_ARRAY_FIELD_LIST from IT test file * Add ReadApi IT test * Try old IT test values * Convert Time objects to strings for comparison * Fix Formatting --------- Co-authored-by: Mend Renovate <bot@renovateapp.com> * deps: update dependency node to v22 (googleapis#3713) * docs: update error handling comment to be more precise in samples (googleapis#3712) * docs: update error handling comment to be more precise in samples * style * style * update comment * ignoredUnusedDeclaredDependencies * revert wrong commit/PR push ignoredUnusedDeclaredDependencies * deps: exclude io.netty:netty-common from org.apache.arrow:arrow-memor… (googleapis#3715) * deps: exclude io.netty:netty-common from org.apache.arrow:arrow-memory-netty * use dep version override instead of exclusion * use dep version override instead of exclusion * ignoredUnusedDeclaredDependencies * fix: retry ExceptionHandler not retrying on IOException (googleapis#3668) * fix: retry ExceptionHandler not retrying on IOException due to exception translation * fix: retry ExceptionHandler not retrying on IOException due to exception translation * fix: retry ExceptionHandler not retrying on IOException due to exception translation * fix: retry ExceptionHandler not retrying on IOException due to exception translation * fix: retry ExceptionHandler not retrying on IOException due to exception translation * cast to HttpBigQueryRpc * cast to HttpBigQueryRpc * fix BigQueryRpc mocks in unit tests * fix clirr check and format * fix clirr * fix clirr * refactor HttpBigQueryRpc.write * refactor HttpBigQueryRpc.write * refactor ConnectionImpl HttpBigQueryRpc call * refactor ConnectionImpl HttpBigQueryRpc call * refactor create table * refactor create table * refactor BigQueryImpl * refactor ConnectionImpl * add missing unit test for BigQueryImpl deleteJob * add tests to validate retry on BIGQUERY_EXCEPTION_HANDLER * handle exception wrapping/unwrapping with new methods * update runWithRetries to use BigQuery ruWithRetries to correctly handle thrown IOExceptions * fix unit test * add unit tests for retry in TableDataWriteChannel * remove unnecessary null check * fix unit test where null is returned in mocks causing errors * deps: update dependency com.google.cloud:sdk-platform-java-config to v3.45.1 (googleapis#3714) * chore(deps): update dependency com.google.cloud:google-cloud-bigtable to v2.55.0 (googleapis#3718) * deps: update netty.version to v4.1.119.final (googleapis#3717) * test(deps): update dependency com.google.cloud:google-cloud-storage to v2.50.0 (googleapis#3719) * deps: update dependency com.google.apis:google-api-services-bigquery to v2-rev20250302-2.0.0 (googleapis#3720) * chore(deps): update dependency com.google.cloud:google-cloud-bigtable to v2.56.0 (googleapis#3722) * chore(deps): update dependency com.google.cloud:google-cloud-bigtable to v2.56.0 (googleapis#3722) * deps: update dependency com.google.apis:google-api-services-bigquery to v2-rev20250313-2.0.0 (googleapis#3723) * chore(deps): update dependency com.google.cloud:google-cloud-bigquerystorage-bom to v3.12.0 (googleapis#3728) * deps: update dependency com.google.cloud:google-cloud-datacatalog-bom to v1.66.0 (googleapis#3727) * deps: update dependency com.google.api.grpc:proto-google-cloud-bigqueryconnection-v1 to v2.62.0 (googleapis#3726) * chore(deps): update dependency com.google.cloud:google-cloud-bigqueryconnection to v2.62.0 (googleapis#3725) * deps: update actions/upload-artifact action to v4.6.2 (googleapis#3724) * deps: update actions/upload-artifact action to v4.6.2 (googleapis#3724) * chore(main): release 2.49.0 (googleapis#3705) Co-authored-by: release-please[bot] <55107282+release-please[bot]@users.noreply.github.com> * chore: group pull requests from one google-cloud-java release (googleapis#3730) Fixes: b/404966938. * chore(main): release 2.49.1-SNAPSHOT (googleapis#3732) Co-authored-by: release-please[bot] <55107282+release-please[bot]@users.noreply.github.com> * chore(deps): update dependency com.google.cloud:google-cloud-bigquery to v2.49.0 (googleapis#3733) * chore(deps): update dependency com.google.cloud:google-cloud-bigtable to v2.57.0 (googleapis#3738) * fix: Add labels to converter for listTables method (googleapis#3735) (googleapis#3736) * chore(deps): update dependency com.google.cloud:google-cloud-bigtable to v2.57.1 (googleapis#3740) * chore(deps): update dependency com.google.cloud:google-cloud-bigtable to v2.57.3 (googleapis#3743) * deps: update netty.version to v4.2.0.final (googleapis#3745) * deps: update dependency com.google.cloud:sdk-platform-java-config to v3.46.0 (googleapis#3753) * deps: update dependency com.google.cloud:sdk-platform-java-config to v3.46.0 * chore: use latest formatter in lint check * chore: use java 17 in linter job * chore: format java source files --------- Co-authored-by: Diego Marquez <diegomarquezp@google.com> * build: introduce testing infra for GraalVM "C" (googleapis#3751) * build: introduce testing infra for GraalVM "C" * chore: use nightly jobs * chore: delete nightly jobs * chore: update images to the latest * chore(main): release 2.49.1 (googleapis#3739) Co-authored-by: release-please[bot] <55107282+release-please[bot]@users.noreply.github.com> * deps: update dependency com.google.cloud:sdk-platform-java-config to v3.46.2 (googleapis#3756) * chore(deps): update dependency com.google.cloud:google-cloud-bigquerystorage-bom to v3.13.0 (googleapis#3759) * chore(main): release 2.49.2-SNAPSHOT (googleapis#3757) Co-authored-by: release-please[bot] <55107282+release-please[bot]@users.noreply.github.com> * chore(main): release 2.49.2 (googleapis#3761) Co-authored-by: release-please[bot] <55107282+release-please[bot]@users.noreply.github.com> * feat: add WRITE_TRUNCATE_DATA as an enum value for write disposition (googleapis#3752) * feat: add WRITE_TRUNCATE_DATA as an enum value for write disposition For existing tables, WRITE_TRUNCATE_DATA preserves schema/constraints and replaces data. internal issue: b/406848221 * formatting * deps: update dependency com.google.apis:google-api-services-bigquery to v2-rev20250404-2.0.0 (googleapis#3754) * test(deps): update dependency com.google.cloud:google-cloud-storage to v2.51.0 (googleapis#3755) * chore(deps): update dependency com.google.cloud:google-cloud-bigquery to v2.49.2 (googleapis#3758) * chore(deps): update dependency com.google.cloud:google-cloud-bigtable to v2.58.1 (googleapis#3764) * test(deps): update dependency com.google.cloud:google-cloud-storage to v2.52.0 (googleapis#3765) * chore(main): release 2.49.3-SNAPSHOT (googleapis#3762) Co-authored-by: release-please[bot] <55107282+release-please[bot]@users.noreply.github.com> * feat(bigquery): Add support for reservation field in jobs. (googleapis#3768) * deps: update dependency com.google.api.grpc:proto-google-cloud-bigqueryconnection-v1 to v2.63.0 (googleapis#3770) * deps: update dependency com.google.apis:google-api-services-bigquery to v2-rev20250427-2.0.0 (googleapis#3773) * deps: update dependency com.google.cloud:sdk-platform-java-config to v3.46.3 (googleapis#3772) * test(deps): update dependency com.google.cloud:google-cloud-storage to v2.52.1 (googleapis#3771) * chore(deps): update dependency com.google.cloud:google-cloud-bigquerystorage-bom to v3.13.1 (googleapis#3777) * fix: fix graalvm native test B (googleapis#3775) * fix: fix graalvm native test B * fix: add gax testlib to java-bigquery This includes the necessary build-time initialization flags (see [properties file](https://github.com/googleapis/sdk-platform-java/blob/1eb107d1c09d8a2182fe0f550bf23e3ca3ac414f/gax-java/gax/src/test/resources/META-INF/native-image/com.google.api/gax/native-image.properties) * chore: add gax testlib to dependency analyzer exemptions * chore: fix gax package reference * chore: convert tabs to spaces * chore: add presubmit checks for graalvm * chore: restore integration job after testing * chore: restore return code in integration test * chore(config): migrate config renovate.json (googleapis#3778) * deps: update dependency com.google.cloud:sdk-platform-java-config to v3.47.0 (googleapis#3779) * chore(deps): update dependency com.google.cloud:google-cloud-bigquerystorage-bom to v3.14.0 (googleapis#3781) * chore(main): release 2.50.0 (googleapis#3766) Co-authored-by: release-please[bot] <55107282+release-please[bot]@users.noreply.github.com> * docs(bigquery): Update TableResult.getTotalRows() docstring (googleapis#3785) * chore(main): release 2.50.1-SNAPSHOT (googleapis#3784) Co-authored-by: release-please[bot] <55107282+release-please[bot]@users.noreply.github.com> * deps: update netty.version to v4.2.1.final (googleapis#3780) * chore(deps): update dependency com.google.cloud:google-cloud-bigquery to v2.50.0 (googleapis#3786) * chore(deps): update dependency com.google.cloud:google-cloud-bigtable to v2.58.2 (googleapis#3788) * test(deps): update dependency com.google.cloud:google-cloud-storage to v2.52.2 (googleapis#3782) * deps: update dependency com.google.cloud:sdk-platform-java-config to v3.48.0 (googleapis#3790) * chore(deps): update dependency com.google.cloud:google-cloud-bigquerystorage-bom to v3.14.1 (googleapis#3792) * chore(main): release 2.50.1 (googleapis#3789) Co-authored-by: release-please[bot] <55107282+release-please[bot]@users.noreply.github.com> * feat(bigquery): job creation mode GA (googleapis#3804) * feat(bigquery): job creation mode GA * deprecate query preview * Update samples * rename snippet to job optional * fix style * rename sample test * feat(bigquery): Support Fine Grained ACLs for Datasets (googleapis#3803) * feat(bigquery): Support Fine Grained ACLs for Datasets * fix style * Change enum strings to uppercase * add unspecified enum option * chore(deps): update google cloud java monorepo updates (googleapis#3769) * deps: update dependency com.google.api.grpc:proto-google-cloud-bigqueryconnection-v1 to v2.65.0 (googleapis#3787) * chore(deps): update dependency com.google.cloud:google-cloud-bigtable to v2.59.0 (googleapis#3793) * deps: update dependency com.google.apis:google-api-services-bigquery to v2-rev20250511-2.0.0 (googleapis#3794) * chore(main): release 2.50.2-SNAPSHOT (googleapis#3796) Co-authored-by: release-please[bot] <55107282+release-please[bot]@users.noreply.github.com> * refactor(bigquery): Clean up sample test resources, fix comments (googleapis#3823) * refactor(bigquery): Clean up sample test resources, fix comments * fix style * test: temporarily disable flaky bot for graalvm IT (googleapis#3833) There is a known issue with graalvm IT being very flaky (b/422746465). Disabling flaky bot to reduce the noise until we investigate the issue further. * deps: rollback netty.version to v4.1.119.Final (googleapis#3827) * deps: update dependency com.google.cloud:sdk-platform-java-config to v3.49.0 (googleapis#3811) * chore(deps): update dependency com.google.cloud:google-cloud-bigquerystorage-bom to v3.15.0 (googleapis#3831) * chore(main): release 2.51.0 (googleapis#3826) Co-authored-by: release-please[bot] <55107282+release-please[bot]@users.noreply.github.com> * feat(bigquery): Integrate Otel in client lib (googleapis#3747) * feat(bigquery): Integrate Otel in client lib * Refactor Otel code into separate file * Add copyright comment * fix style * remove unused dependencies * remove unused test dependencies * fix dependency issue * fix it test * refactor out OtelHelper class * change test name to start with lowercase * change datasetId key to dataset * remove OtelHelper class * Clean up attribute values * Add spans to query and listPartitions * remove extraneous attributes * add attribute namespaces, change to snake_case * Resolve merge conflict * change previewEnable to JobCreationMode * fix style * fix(bigquery): Add MY_VIEW_DATASET_NAME_TEST_ to resource clean up sample (googleapis#3838) * deps: update dependency com.google.api.grpc:proto-google-cloud-bigqueryconnection-v1 to v2.66.0 (googleapis#3835) * chore(deps): update google cloud java monorepo updates (googleapis#3834) * build: include arrow dependency suggested compiler flags (googleapis#3844) * build: include arrow dependency suggested compiler flags This follows https://arrow.apache.org/docs/java/install.html, where we add the indicated `--add-opens` flag. This is meant to follow from googleapis#3811 (comment) * fix: only activate on JDK 9+ * chore(deps): update dependency com.google.cloud:libraries-bom to v26.62.0 (googleapis#3848) * chore(deps): update dependency com.google.cloud:google-cloud-bigtable to v2.60.0 (googleapis#3836) * deps: update dependency io.opentelemetry:opentelemetry-bom to v1.51.0 (googleapis#3840) * chore(main): release 2.51.1-SNAPSHOT (googleapis#3839) Co-authored-by: release-please[bot] <55107282+release-please[bot]@users.noreply.github.com> * deps: update ossf/scorecard-action action to v2.4.2 (googleapis#3810) * chore(deps): update dependency com.google.cloud:google-cloud-bigquery to v2.51.0 (googleapis#3797) * test(deps): update dependency com.google.cloud:google-cloud-storage to v2.53.0 (googleapis#3798) * build(deps): update dependency org.codehaus.mojo:build-helper-maven-plugin to v3.6.1 (googleapis#3830) * deps: remove version declaration of open-telemetry-bom (googleapis#3855) * chore(deps): update dependency com.google.cloud:google-cloud-bigquerystorage-bom to v3.15.2 (googleapis#3852) * deps: update dependency com.google.cloud:sdk-platform-java-config to v3.49.2 (googleapis#3853) * test(deps): update dependency com.google.cloud:google-cloud-storage to v2.53.1 (googleapis#3856) * feat(bigquery): Integrate Otel into retries, jobs, and more (googleapis#3842) * feat(bigquery): Integrate Otel into retries, jobs, and tableDataWriteChannel * Add justification for changing func signature * fix ignored-differences syntax * fix ignored-differences syntax...again * update IT tests * Remove config and algorithm from retry span * remove otel support from connection interface * chore(deps): update google cloud java monorepo updates (googleapis#3857) * deps: update dependency com.google.api.grpc:proto-google-cloud-bigqueryconnection-v1 to v2.68.0 (googleapis#3858) * deps: update dependency com.google.cloud:sdk-platform-java-config to v3.50.0 (googleapis#3861) * chore(config): migrate config renovate.json (googleapis#3862) * chore(deps): update dependency com.google.cloud:google-cloud-bigquerystorage-bom to v3.15.3 (googleapis#3863) * chore(main): release 2.52.0 (googleapis#3849) Co-authored-by: release-please[bot] <55107282+release-please[bot]@users.noreply.github.com> * chore(main): release 2.52.1-SNAPSHOT (googleapis#3864) Co-authored-by: release-please[bot] <55107282+release-please[bot]@users.noreply.github.com> * feat(bigquery): Add OpenTelemetry support to BQ rpcs (googleapis#3860) * feat(bigquery): Add OpenTelemetry support to BQ rpcs * remove oauth and access token attributes * Capture repsponse ids in attributes * Fix attribute name scoping typos * chore(deps): update dependency com.google.cloud:google-cloud-bigquery to v2.52.0 (googleapis#3865) * test(deps): update dependency com.google.cloud:google-cloud-storage to v2.53.2 (googleapis#3868) * deps: update dependency com.google.api.grpc:proto-google-cloud-bigqueryconnection-v1 to v2.69.0 (googleapis#3870) * chore(deps): update google cloud java monorepo updates (googleapis#3869) * chore(deps): update dependency com.google.cloud:google-cloud-bigtable to v2.61.0 (googleapis#3871) * deps: update dependency com.google.apis:google-api-services-bigquery to v2-rev20250615-2.0.0 (googleapis#3872) * feat(bigquery): Add support for custom timezones and timestamps (googleapis#3859) * feat(bigquery): Add support for custom timezones and timestamps * update ignored-diff * fix data -> date typo * Add enums for SourceColumnMatch * Change null markers test names * change enums to StringEnumValue * chore(deps): update dependency com.google.cloud:libraries-bom to v26.63.0 (googleapis#3874) * docs: update maven format command (googleapis#3877) * deps: update dependency com.google.cloud:sdk-platform-java-config to v3.50.1 (googleapis#3878) * fix: load jobs preserve ascii control characters configuration (googleapis#3876) * fix: load jobs preserve ascii control characters configuration * fix lint * fix NPE * fix NPE * feat: next release from main branch is 2.53.0 (googleapis#3879) * chore(deps): update dependency com.google.cloud:google-cloud-bigquerystorage-bom to v3.16.0 (googleapis#3884) * chore(main): release 2.53.0 (googleapis#3866) Co-authored-by: release-please[bot] <55107282+release-please[bot]@users.noreply.github.com> * chore(main): release 2.53.1-SNAPSHOT (googleapis#3886) Co-authored-by: release-please[bot] <55107282+release-please[bot]@users.noreply.github.com> * chore(deps): update dependency com.google.cloud:google-cloud-bigquery to v2.53.0 (googleapis#3887) * deps: update dependency com.google.api.grpc:proto-google-cloud-bigqueryconnection-v1 to v2.70.0 (googleapis#3890) * chore(deps): update dependency com.google.cloud:google-cloud-bigtable to v2.62.0 (googleapis#3894) * chore(deps): update dependency com.google.cloud:libraries-bom to v26.64.0 (googleapis#3895) * chore: create LTS branch 2.51.x (googleapis#3896) * chore(deps): update google cloud java monorepo updates (googleapis#3889) * feat(bigquery): Add OpenTelemetry Samples (googleapis#3899) * feat(bigquery): Add OpenTelemetry Samples * Add dependencies to pom files * fix style * Fix dependencies, clean up sample * Add sample without parent span * Fix copy/paste error * Remove reference to global otel object * Replace custom exporter with logging exporter * Add logging exporter dep to snapshot and without-bom * Generate random strings for ds names * feat(bigquery): Add custom console exporter to samples * fix style, remove comments * test(deps): update dependency com.google.cloud:google-cloud-storage to v2.53.3 (googleapis#3882) * feat(bigquery): Add otel metrics to request headers (googleapis#3900) * deps: update dependency io.opentelemetry:opentelemetry-api to v1.52.0 (googleapis#3902) * deps: update dependency io.opentelemetry:opentelemetry-bom to v1.52.0 (googleapis#3903) * deps: update dependency io.opentelemetry:opentelemetry-context to v1.52.0 (googleapis#3904) * deps: update dependency io.opentelemetry:opentelemetry-exporter-logging to v1.52.0 (googleapis#3905) * deps: update dependency com.google.apis:google-api-services-bigquery to v2-rev20250706-2.0.0 (googleapis#3910) * chore(samples): update sample open telemetry dep to reduce # of renov… (googleapis#3911) * chore(samples): update sample open telemetry dep to reduce # of renovate-bot PRs * fix extra dep * deps: update dependency com.google.cloud:sdk-platform-java-config to v3.50.2 (googleapis#3901) * chore(deps): update dependency com.google.cloud:google-cloud-bigquerystorage-bom to v3.16.1 (googleapis#3912) * chore(main): release 2.54.0 (googleapis#3892) Co-authored-by: release-please[bot] <55107282+release-please[bot]@users.noreply.github.com> * chore(main): release 2.54.1-SNAPSHOT (googleapis#3919) Co-authored-by: release-please[bot] <55107282+release-please[bot]@users.noreply.github.com> * fix: adapt graalvm config to arrow update (googleapis#3928) * fix: adapt graalvm config to arrow update Fixes googleapis#3926 * fix: use right branch * chore: include pom changes from debug branch, add more configs * deps: update dependency com.google.cloud:sdk-platform-java-config to v3.51.0 (googleapis#3924) * chore(deps): update dependency com.google.cloud:google-cloud-bigquerystorage-bom to v3.16.2 (googleapis#3927) * chore(main): release 2.54.1 (googleapis#3929) Co-authored-by: release-please[bot] <55107282+release-please[bot]@users.noreply.github.com> * deps: update dependency com.google.cloud:sdk-platform-java-config to v3.52.0 (googleapis#3939) * chore(main): release 2.54.2-SNAPSHOT (googleapis#3936) Co-authored-by: release-please[bot] <55107282+release-please[bot]@users.noreply.github.com> * chore(deps): update google cloud java monorepo updates (googleapis#3915) * chore(deps): update dependency com.google.cloud:google-cloud-bigquerystorage-bom to v3.16.3 (googleapis#3943) * chore(main): release 2.54.2 (googleapis#3940) Co-authored-by: release-please[bot] <55107282+release-please[bot]@users.noreply.github.com> * feat(bigquery): Add custom ExceptionHandler to BigQueryOptions (googleapis#3937) * feat(bigquery): Add custom ExceptionHandler to BigQueryOptions * add default project id to tests * Add dummy project id to tests * Remove defaultInstance() from test * add option to specify retry algo instead of just abortOn/retryOn * fix formatting * remove custom exception handler from bq options * chore(main): release 2.54.3-SNAPSHOT (googleapis#3944) Co-authored-by: release-please[bot] <55107282+release-please[bot]@users.noreply.github.com> * deps: update dependency com.google.cloud:sdk-platform-java-config to v3.52.1 (googleapis#3952) * deps: update dependency com.google.cloud:google-cloud-bigquerystorage-bom to v3.17.0 (googleapis#3954) * chore(main): release 2.55.0 (googleapis#3947) Co-authored-by: release-please[bot] <55107282+release-please[bot]@users.noreply.github.com> * chore: Ignore PR limites in renovate.json (googleapis#3956) * deps: update dependency com.google.cloud:sdk-platform-java-config to v3.52.2 (googleapis#3964) * Merge pull request googleapis#3967 from googleapis/java-bigquery Squash and merge * Merge pull request googleapis#3955 from googleapis/java-bigquery Squash and merge * Merge pull request googleapis#3968 from googleapis/java-bigquery Squash and merge * deps: update dependency com.google.cloud:sdk-platform-java-config to v3.52.3 (googleapis#3971) * chore(main): release 2.55.2-SNAPSHOT (googleapis#3969) Co-authored-by: release-please[bot] <55107282+release-please[bot]@users.noreply.github.com> * chore(deps): update dependency com.google.cloud:google-cloud-bigquerystorage-bom to v3.17.2 (googleapis#3975) * chore(main): release 2.55.2 (googleapis#3977) Co-authored-by: release-please[bot] <55107282+release-please[bot]@users.noreply.github.com> * chore: add JDK 25 to the CI (googleapis#3974) * deps: update dependency com.google.cloud:sdk-platform-java-config to v3.53.0 (googleapis#3980) * chore(deps): update dependency com.google.cloud:google-cloud-bigquerystorage-bom to v3.17.3 (googleapis#3983) * chore(main): release 2.55.3-SNAPSHOT (googleapis#3978) Co-authored-by: release-please[bot] <55107282+release-please[bot]@users.noreply.github.com> * chore(main): release 2.55.3 (googleapis#3984) Co-authored-by: release-please[bot] <55107282+release-please[bot]@users.noreply.github.com> * chore(main): release 2.55.4-SNAPSHOT (googleapis#3985) Co-authored-by: release-please[bot] <55107282+release-please[bot]@users.noreply.github.com> * deps: update dependency com.google.apis:google-api-services-bigquery to v2-rev20251012-2.0.0 (googleapis#3923) * feat: new queryWithTimeout method for customer-side wait (googleapis#3995) * feat: new queryNoWait method * Rename method to queryWithTimeout * rename to queryWithTimeout() * lint * lint * add tests * Update clirr ignore * chore: grant write access to @googleapis/cloud-java-team-teamsync (googleapis#3999) * chore: grant write access to @googleapis/cloud-java-team-teamsync * Update CODEOWNERS to simplify ownership rules Removed specific ownership for handwritten Java libraries. * deps: update dependency com.google.cloud:sdk-platform-java-config to v3.54.1 (googleapis#3994) * chore(deps): update dependency com.google.cloud:google-cloud-bigquerystorage-bom to v3.18.0 (googleapis#3998) Co-authored-by: Diego Marquez <diegomarquezp@google.com> * chore(main): release 2.56.0 (googleapis#3996) Co-authored-by: release-please[bot] <55107282+release-please[bot]@users.noreply.github.com> * ENG-686: fix build --------- Co-authored-by: Phong Chuong <147636638+PhongChuong@users.noreply.github.com> Co-authored-by: Mend Renovate <bot@renovateapp.com> Co-authored-by: Liam <44932470+whuffman36@users.noreply.github.com> Co-authored-by: Oleksandr Shevchenko <oleksandr.shevchenko@datarobot.com> Co-authored-by: release-please[bot] <55107282+release-please[bot]@users.noreply.github.com> Co-authored-by: Naung Nine <naung.nine@gmail.com> Co-authored-by: ldetmer <1771267+ldetmer@users.noreply.github.com> Co-authored-by: Mike Eltsufin <meltsufin@google.com> Co-authored-by: Tomasz Łoś <tloszabno@gmail.com> Co-authored-by: Diego Marquez <diegomarquezp@google.com> Co-authored-by: shollyman <shollyman@google.com> Co-authored-by: Jin Seop Kim <jinseop@google.com> Co-authored-by: Blake Li <blakeli@google.com> Co-authored-by: Mridula <66699525+mpeddada1@users.noreply.github.com> Co-authored-by: Kirill Logachev <logachev.k@gmail.com>
Adds OpenTelemetry tracing into the BigQueryImpl class, enabling in the following methods:
This is one PR of several to fully integrate OTel into the client library, broken up into chunks to make review easier.