Skip to content

Conversation

@whuffman36
Copy link
Contributor

@whuffman36 whuffman36 commented Apr 8, 2025

Adds OpenTelemetry tracing into the BigQueryImpl class, enabling in the following methods:

  • (Dataset, Table, Job, Routine) Create
  • (Dataset, Table, Job, Routine, Model, IamPolicy) Get
  • (Dataset, Table, Job, Routine, Model, IamPolicy) Update
  • (Dataset, Table, Routine, Model) Delete
  • List (Datasets, Tables, Jobs, Routines, Models)
  • Job Cancel
  • insertAll
  • testIamMethods
  • queryRpc
  • getQueryResults

This is one PR of several to fully integrate OTel into the client library, broken up into chunks to make review easier.

@product-auto-label product-auto-label bot added size: m Pull request size is medium. api: bigquery Issues related to the googleapis/java-bigquery API. labels Apr 8, 2025
@product-auto-label product-auto-label bot added size: xl Pull request size is extra large. and removed size: m Pull request size is medium. labels Apr 29, 2025
@whuffman36 whuffman36 marked this pull request as ready for review April 29, 2025 19:24
@whuffman36 whuffman36 requested review from a team as code owners April 29, 2025 19:24
@whuffman36 whuffman36 requested review from PhongChuong, shollyman and suzmue and removed request for suzmue April 29, 2025 19:24
Copy link
Contributor

@PhongChuong PhongChuong left a 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.

@whuffman36
Copy link
Contributor Author

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.

Copy link
Contributor

@shollyman shollyman left a 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:

  1. should we be putting the full contents of the responses into attributes, vs a more constrained approach (critical fields like identifiers, status, etc)?
  2. if we do want to capture the API response, should it just be stringified as a single attribute?
@whuffman36
Copy link
Contributor Author

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:

  1. should we be putting the full contents of the responses into attributes, vs a more constrained approach (critical fields like identifiers, status, etc)?
  2. if we do want to capture the API response, should it just be stringified as a single attribute?
  1. I'm of the opinion that since tracing is opt-in and meant to make debugging easier, the more visibility into the data the better. It's better to have visibility into the full contents and not need it than it is to want that visibility and not have it. What do you think?
  2. I'm not convinced we should be capturing the response, as it essentially just passed to the user. The user can decide to capture or log the response once received outside of the library code. This design was to capture just the inputs to the API calls. That being said, I think stringifying a response as a single attribute makes the attribute harder to parse and read when debugging, which can defeat the purpose of creating a better debug system.
@PhongChuong
Copy link
Contributor

My 2 cents regarding attributes:
Recall that we have 2 layers for the span. The upper level interface (BigQueryImpl.java, Job.java, etc.) and the HttpBigQueryRpc level. I believe we should capture the request and response (not in this PR). Specifically, it should be captured as a request/response* attribute at the HttpBigQueryRpc level. For the interface level (this PR), we should capture any metadata information that would help with debugging any issue that may arise and we should capture it in a structured manner so it is visible. Specifically, attributes in the options are great as they are rarely captured elsewhere. Meanwhile, we can be a little more selective with datatype attributes (TableId vs all the fields in TableInfo). And if needed, then the request attribute can be used to deep dive.

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.

  • For certain responses such as table row data, we probably won't want to capture those values.
@whuffman36
Copy link
Contributor Author

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?

PhongChuong
PhongChuong previously approved these changes May 12, 2025
Copy link
Contributor

@PhongChuong PhongChuong left a 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?

Copy link
Contributor

@shollyman shollyman left a 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.

@whuffman36
Copy link
Contributor Author

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

Copy link
Contributor

@shollyman shollyman left a 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()))
Copy link
Contributor

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?

Copy link
Contributor Author

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)
Copy link
Contributor

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.

Copy link
Contributor Author

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();
Copy link
Contributor

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?

Copy link
Contributor Author

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.

@whuffman36
Copy link
Contributor Author

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.

PhongChuong
PhongChuong previously approved these changes Jun 4, 2025
Copy link
Contributor

@shollyman shollyman left a 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!

@whuffman36 whuffman36 merged commit 6e3e07a into main Jun 9, 2025
21 of 22 checks passed
@whuffman36 whuffman36 deleted the otel branch June 9, 2025 17:30
Talakh added a commit to metricinsights/java-bigquery that referenced this pull request Nov 19, 2025
* 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>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

api: bigquery Issues related to the googleapis/java-bigquery API. size: xl Pull request size is extra large.

3 participants