From cf4f9ea21eee4c260ab4be4ccfe57d277fde90de Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Mon, 29 Apr 2024 16:46:19 +0000 Subject: [PATCH 1/5] chore(main): release 2.39.1-SNAPSHOT (#2217) :robot: I have created a release *beep* *boop* --- ### Updating meta-information for bleeding-edge SNAPSHOT release. --- This PR was generated with [Release Please](https://togithub.com/googleapis/release-please). See [documentation](https://togithub.com/googleapis/release-please#release-please). --- google-cloud-bigtable-bom/pom.xml | 18 +++++++++--------- google-cloud-bigtable-deps-bom/pom.xml | 2 +- google-cloud-bigtable-emulator-core/pom.xml | 4 ++-- google-cloud-bigtable-emulator/pom.xml | 10 +++++----- google-cloud-bigtable/pom.xml | 10 +++++----- .../com/google/cloud/bigtable/Version.java | 2 +- grpc-google-cloud-bigtable-admin-v2/pom.xml | 8 ++++---- grpc-google-cloud-bigtable-v2/pom.xml | 8 ++++---- pom.xml | 12 ++++++------ proto-google-cloud-bigtable-admin-v2/pom.xml | 8 ++++---- proto-google-cloud-bigtable-v2/pom.xml | 8 ++++---- samples/snapshot/pom.xml | 2 +- test-proxy/pom.xml | 4 ++-- versions.txt | 14 +++++++------- 14 files changed, 55 insertions(+), 55 deletions(-) diff --git a/google-cloud-bigtable-bom/pom.xml b/google-cloud-bigtable-bom/pom.xml index a0c573a020..77b87a55a8 100644 --- a/google-cloud-bigtable-bom/pom.xml +++ b/google-cloud-bigtable-bom/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigtable-bom - 2.39.0 + 2.39.1-SNAPSHOT pom com.google.cloud @@ -63,42 +63,42 @@ com.google.cloud google-cloud-bigtable - 2.39.0 + 2.39.1-SNAPSHOT com.google.cloud google-cloud-bigtable-emulator - 0.176.0 + 0.176.1-SNAPSHOT com.google.cloud google-cloud-bigtable-emulator-core - 0.176.0 + 0.176.1-SNAPSHOT com.google.api.grpc grpc-google-cloud-bigtable-admin-v2 - 2.39.0 + 2.39.1-SNAPSHOT com.google.api.grpc grpc-google-cloud-bigtable-v2 - 2.39.0 + 2.39.1-SNAPSHOT com.google.api.grpc proto-google-cloud-bigtable-admin-v2 - 2.39.0 + 2.39.1-SNAPSHOT com.google.api.grpc proto-google-cloud-bigtable-v2 - 2.39.0 + 2.39.1-SNAPSHOT com.google.cloud google-cloud-bigtable-stats - 2.39.0 + 2.39.1-SNAPSHOT diff --git a/google-cloud-bigtable-deps-bom/pom.xml b/google-cloud-bigtable-deps-bom/pom.xml index d70d90adce..11acad1f9d 100644 --- a/google-cloud-bigtable-deps-bom/pom.xml +++ b/google-cloud-bigtable-deps-bom/pom.xml @@ -13,7 +13,7 @@ com.google.cloud google-cloud-bigtable-deps-bom - 2.39.0 + 2.39.1-SNAPSHOT pom diff --git a/google-cloud-bigtable-emulator-core/pom.xml b/google-cloud-bigtable-emulator-core/pom.xml index bda611ffad..4f9f2bd8dc 100644 --- a/google-cloud-bigtable-emulator-core/pom.xml +++ b/google-cloud-bigtable-emulator-core/pom.xml @@ -7,11 +7,11 @@ google-cloud-bigtable-parent com.google.cloud - 2.39.0 + 2.39.1-SNAPSHOT google-cloud-bigtable-emulator-core - 0.176.0 + 0.176.1-SNAPSHOT A Java wrapper for the Cloud Bigtable emulator. diff --git a/google-cloud-bigtable-emulator/pom.xml b/google-cloud-bigtable-emulator/pom.xml index 541ddfd242..a206f2b758 100644 --- a/google-cloud-bigtable-emulator/pom.xml +++ b/google-cloud-bigtable-emulator/pom.xml @@ -5,7 +5,7 @@ 4.0.0 google-cloud-bigtable-emulator - 0.176.0 + 0.176.1-SNAPSHOT Google Cloud Java - Bigtable Emulator https://github.com/googleapis/java-bigtable @@ -14,7 +14,7 @@ com.google.cloud google-cloud-bigtable-parent - 2.39.0 + 2.39.1-SNAPSHOT scm:git:git@github.com:googleapis/java-bigtable.git @@ -81,14 +81,14 @@ com.google.cloud google-cloud-bigtable-deps-bom - 2.39.0 + 2.39.1-SNAPSHOT pom import com.google.cloud google-cloud-bigtable-bom - 2.39.0 + 2.39.1-SNAPSHOT pom import @@ -99,7 +99,7 @@ com.google.cloud google-cloud-bigtable-emulator-core - 0.176.0 + 0.176.1-SNAPSHOT diff --git a/google-cloud-bigtable/pom.xml b/google-cloud-bigtable/pom.xml index 418d408cbf..25b579492a 100644 --- a/google-cloud-bigtable/pom.xml +++ b/google-cloud-bigtable/pom.xml @@ -2,7 +2,7 @@ 4.0.0 google-cloud-bigtable - 2.39.0 + 2.39.1-SNAPSHOT jar Google Cloud Bigtable https://github.com/googleapis/java-bigtable @@ -12,11 +12,11 @@ com.google.cloud google-cloud-bigtable-parent - 2.39.0 + 2.39.1-SNAPSHOT - 2.39.0 + 2.39.1-SNAPSHOT google-cloud-bigtable @@ -47,14 +47,14 @@ com.google.cloud google-cloud-bigtable-deps-bom - 2.39.0 + 2.39.1-SNAPSHOT pom import com.google.cloud google-cloud-bigtable-bom - 2.39.0 + 2.39.1-SNAPSHOT pom import diff --git a/google-cloud-bigtable/src/main/java/com/google/cloud/bigtable/Version.java b/google-cloud-bigtable/src/main/java/com/google/cloud/bigtable/Version.java index abe7e99cdb..cfb6dede0f 100644 --- a/google-cloud-bigtable/src/main/java/com/google/cloud/bigtable/Version.java +++ b/google-cloud-bigtable/src/main/java/com/google/cloud/bigtable/Version.java @@ -20,6 +20,6 @@ @InternalApi("For internal use only") public final class Version { // {x-version-update-start:google-cloud-bigtable:current} - public static String VERSION = "2.39.0"; + public static String VERSION = "2.39.1-SNAPSHOT"; // {x-version-update-end} } diff --git a/grpc-google-cloud-bigtable-admin-v2/pom.xml b/grpc-google-cloud-bigtable-admin-v2/pom.xml index f0797849e2..24626b9ad7 100644 --- a/grpc-google-cloud-bigtable-admin-v2/pom.xml +++ b/grpc-google-cloud-bigtable-admin-v2/pom.xml @@ -4,13 +4,13 @@ 4.0.0 com.google.api.grpc grpc-google-cloud-bigtable-admin-v2 - 2.39.0 + 2.39.1-SNAPSHOT grpc-google-cloud-bigtable-admin-v2 GRPC library for grpc-google-cloud-bigtable-admin-v2 com.google.cloud google-cloud-bigtable-parent - 2.39.0 + 2.39.1-SNAPSHOT @@ -18,14 +18,14 @@ com.google.cloud google-cloud-bigtable-deps-bom - 2.39.0 + 2.39.1-SNAPSHOT pom import com.google.cloud google-cloud-bigtable-bom - 2.39.0 + 2.39.1-SNAPSHOT pom import diff --git a/grpc-google-cloud-bigtable-v2/pom.xml b/grpc-google-cloud-bigtable-v2/pom.xml index 894bfa0143..471564257a 100644 --- a/grpc-google-cloud-bigtable-v2/pom.xml +++ b/grpc-google-cloud-bigtable-v2/pom.xml @@ -4,13 +4,13 @@ 4.0.0 com.google.api.grpc grpc-google-cloud-bigtable-v2 - 2.39.0 + 2.39.1-SNAPSHOT grpc-google-cloud-bigtable-v2 GRPC library for grpc-google-cloud-bigtable-v2 com.google.cloud google-cloud-bigtable-parent - 2.39.0 + 2.39.1-SNAPSHOT @@ -18,14 +18,14 @@ com.google.cloud google-cloud-bigtable-deps-bom - 2.39.0 + 2.39.1-SNAPSHOT pom import com.google.cloud google-cloud-bigtable-bom - 2.39.0 + 2.39.1-SNAPSHOT pom import diff --git a/pom.xml b/pom.xml index 8d06d4aef8..9d927fd0cb 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ google-cloud-bigtable-parent pom - 2.39.0 + 2.39.1-SNAPSHOT Google Cloud Bigtable Parent https://github.com/googleapis/java-bigtable @@ -153,27 +153,27 @@ com.google.api.grpc proto-google-cloud-bigtable-v2 - 2.39.0 + 2.39.1-SNAPSHOT com.google.api.grpc proto-google-cloud-bigtable-admin-v2 - 2.39.0 + 2.39.1-SNAPSHOT com.google.api.grpc grpc-google-cloud-bigtable-v2 - 2.39.0 + 2.39.1-SNAPSHOT com.google.api.grpc grpc-google-cloud-bigtable-admin-v2 - 2.39.0 + 2.39.1-SNAPSHOT com.google.cloud google-cloud-bigtable - 2.39.0 + 2.39.1-SNAPSHOT diff --git a/proto-google-cloud-bigtable-admin-v2/pom.xml b/proto-google-cloud-bigtable-admin-v2/pom.xml index 226fa0471e..b401504491 100644 --- a/proto-google-cloud-bigtable-admin-v2/pom.xml +++ b/proto-google-cloud-bigtable-admin-v2/pom.xml @@ -4,13 +4,13 @@ 4.0.0 com.google.api.grpc proto-google-cloud-bigtable-admin-v2 - 2.39.0 + 2.39.1-SNAPSHOT proto-google-cloud-bigtable-admin-v2 PROTO library for proto-google-cloud-bigtable-admin-v2 com.google.cloud google-cloud-bigtable-parent - 2.39.0 + 2.39.1-SNAPSHOT @@ -18,14 +18,14 @@ com.google.cloud google-cloud-bigtable-deps-bom - 2.39.0 + 2.39.1-SNAPSHOT pom import com.google.cloud google-cloud-bigtable-bom - 2.39.0 + 2.39.1-SNAPSHOT pom import diff --git a/proto-google-cloud-bigtable-v2/pom.xml b/proto-google-cloud-bigtable-v2/pom.xml index d8f7a63e81..1e4a5f7ae2 100644 --- a/proto-google-cloud-bigtable-v2/pom.xml +++ b/proto-google-cloud-bigtable-v2/pom.xml @@ -4,13 +4,13 @@ 4.0.0 com.google.api.grpc proto-google-cloud-bigtable-v2 - 2.39.0 + 2.39.1-SNAPSHOT proto-google-cloud-bigtable-v2 PROTO library for proto-google-cloud-bigtable-v2 com.google.cloud google-cloud-bigtable-parent - 2.39.0 + 2.39.1-SNAPSHOT @@ -18,14 +18,14 @@ com.google.cloud google-cloud-bigtable-deps-bom - 2.39.0 + 2.39.1-SNAPSHOT pom import com.google.cloud google-cloud-bigtable-bom - 2.39.0 + 2.39.1-SNAPSHOT pom import diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index e00e06f4fb..1a4bb60d45 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -28,7 +28,7 @@ com.google.cloud google-cloud-bigtable - 2.39.0 + 2.39.1-SNAPSHOT diff --git a/test-proxy/pom.xml b/test-proxy/pom.xml index 224bd59471..75d41585ad 100644 --- a/test-proxy/pom.xml +++ b/test-proxy/pom.xml @@ -12,11 +12,11 @@ google-cloud-bigtable-parent com.google.cloud - 2.39.0 + 2.39.1-SNAPSHOT - 2.39.0 + 2.39.1-SNAPSHOT diff --git a/versions.txt b/versions.txt index acfdf7e910..14590ca054 100644 --- a/versions.txt +++ b/versions.txt @@ -1,10 +1,10 @@ # Format: # module:released-version:current-version -google-cloud-bigtable:2.39.0:2.39.0 -grpc-google-cloud-bigtable-admin-v2:2.39.0:2.39.0 -grpc-google-cloud-bigtable-v2:2.39.0:2.39.0 -proto-google-cloud-bigtable-admin-v2:2.39.0:2.39.0 -proto-google-cloud-bigtable-v2:2.39.0:2.39.0 -google-cloud-bigtable-emulator:0.176.0:0.176.0 -google-cloud-bigtable-emulator-core:0.176.0:0.176.0 +google-cloud-bigtable:2.39.0:2.39.1-SNAPSHOT +grpc-google-cloud-bigtable-admin-v2:2.39.0:2.39.1-SNAPSHOT +grpc-google-cloud-bigtable-v2:2.39.0:2.39.1-SNAPSHOT +proto-google-cloud-bigtable-admin-v2:2.39.0:2.39.1-SNAPSHOT +proto-google-cloud-bigtable-v2:2.39.0:2.39.1-SNAPSHOT +google-cloud-bigtable-emulator:0.176.0:0.176.1-SNAPSHOT +google-cloud-bigtable-emulator-core:0.176.0:0.176.1-SNAPSHOT From 7145864868b3f7df69f9b2db7a822f9faf903f33 Mon Sep 17 00:00:00 2001 From: Igor Bernstein Date: Mon, 29 Apr 2024 15:34:17 -0400 Subject: [PATCH 2/5] fix: remove stale module from bom (#2218) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Change-Id: I903aa34db7114bf410eaef179de6506cebc0e108 Thank you for opening a Pull Request! Before submitting your PR, there are a few things you can do to make sure it goes smoothly: - [ ] Make sure to open an issue as a [bug/issue](https://togithub.com/googleapis/java-bigtable/issues/new/choose) before writing your code! That way we can discuss the change, evaluate designs, and agree on the general idea - [ ] Ensure the tests and linter pass - [ ] Code coverage does not decrease (if any source code was changed) - [ ] Appropriate docs were updated (if necessary) - [ ] Rollback plan is reviewed and LGTMed - [ ] All new data plane features have a completed end to end testing plan Fixes # ☕️ If you write sample code, please follow the [samples format]( https://togithub.com/GoogleCloudPlatform/java-docs-samples/blob/main/SAMPLE_FORMAT.md). --- README.md | 6 +++--- google-cloud-bigtable-bom/pom.xml | 5 ----- 2 files changed, 3 insertions(+), 8 deletions(-) diff --git a/README.md b/README.md index 50df561219..94dc8df686 100644 --- a/README.md +++ b/README.md @@ -57,13 +57,13 @@ implementation 'com.google.cloud:google-cloud-bigtable' If you are using Gradle without BOM, add this to your dependencies: ```Groovy -implementation 'com.google.cloud:google-cloud-bigtable:2.38.0' +implementation 'com.google.cloud:google-cloud-bigtable:2.39.0' ``` If you are using SBT, add this to your dependencies: ```Scala -libraryDependencies += "com.google.cloud" % "google-cloud-bigtable" % "2.38.0" +libraryDependencies += "com.google.cloud" % "google-cloud-bigtable" % "2.39.0" ``` @@ -541,7 +541,7 @@ Java is a registered trademark of Oracle and/or its affiliates. [kokoro-badge-link-5]: http://storage.googleapis.com/cloud-devrel-public/java/badges/java-bigtable/java11.html [stability-image]: https://img.shields.io/badge/stability-stable-green [maven-version-image]: https://img.shields.io/maven-central/v/com.google.cloud/google-cloud-bigtable.svg -[maven-version-link]: https://central.sonatype.com/artifact/com.google.cloud/google-cloud-bigtable/2.38.0 +[maven-version-link]: https://central.sonatype.com/artifact/com.google.cloud/google-cloud-bigtable/2.39.0 [authentication]: https://github.com/googleapis/google-cloud-java#authentication [auth-scopes]: https://developers.google.com/identity/protocols/oauth2/scopes [predefined-iam-roles]: https://cloud.google.com/iam/docs/understanding-roles#predefined_roles diff --git a/google-cloud-bigtable-bom/pom.xml b/google-cloud-bigtable-bom/pom.xml index 77b87a55a8..d0bb5ddb6f 100644 --- a/google-cloud-bigtable-bom/pom.xml +++ b/google-cloud-bigtable-bom/pom.xml @@ -95,11 +95,6 @@ proto-google-cloud-bigtable-v2 2.39.1-SNAPSHOT - - com.google.cloud - google-cloud-bigtable-stats - 2.39.1-SNAPSHOT - From 26d5437903d5a611f079bb659ca5924227f0aae9 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Tue, 30 Apr 2024 18:38:23 +0200 Subject: [PATCH 3/5] chore(deps): update dependency com.google.cloud:google-cloud-bigtable to v2.39.0 (#2219) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit [![Mend Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [com.google.cloud:google-cloud-bigtable](https://togithub.com/googleapis/java-bigtable) | `2.38.0` -> `2.39.0` | [![age](https://developer.mend.io/api/mc/badges/age/maven/com.google.cloud:google-cloud-bigtable/2.39.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/maven/com.google.cloud:google-cloud-bigtable/2.39.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/maven/com.google.cloud:google-cloud-bigtable/2.38.0/2.39.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/maven/com.google.cloud:google-cloud-bigtable/2.38.0/2.39.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | --- ### Release Notes
googleapis/java-bigtable (com.google.cloud:google-cloud-bigtable) ### [`v2.39.0`](https://togithub.com/googleapis/java-bigtable/blob/HEAD/CHANGELOG.md#2390-2024-04-29) [Compare Source](https://togithub.com/googleapis/java-bigtable/compare/v2.38.0...v2.39.0) ##### Features - Admin API changes for databoost ([#​2181](https://togithub.com/googleapis/java-bigtable/issues/2181)) ([3b1886b](https://togithub.com/googleapis/java-bigtable/commit/3b1886bea79525505e41124b41985f37c490c97e)) ##### Dependencies - Update dependency com.google.cloud:gapic-libraries-bom to v1.36.0 ([#​2215](https://togithub.com/googleapis/java-bigtable/issues/2215)) ([5a9259e](https://togithub.com/googleapis/java-bigtable/commit/5a9259e3c861f1ed13c84e0bb024ddda3e1dc147)) - Update shared dependencies ([#​2190](https://togithub.com/googleapis/java-bigtable/issues/2190)) ([3f37d8d](https://togithub.com/googleapis/java-bigtable/commit/3f37d8da8b51a3fea56d1c462b9500ee2c244973))
--- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, check this box --- This PR has been generated by [Mend Renovate](https://www.mend.io/free-developer-tools/renovate/). View repository job log [here](https://developer.mend.io/github/googleapis/java-bigtable). --- README.md | 2 +- samples/install-without-bom/pom.xml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 94dc8df686..645d26193c 100644 --- a/README.md +++ b/README.md @@ -42,7 +42,7 @@ If you are using Maven without the BOM, add this to your dependencies: com.google.cloud google-cloud-bigtable - 2.38.0 + 2.39.0 ``` diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index 39a64063ea..08f58f1149 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -29,7 +29,7 @@ com.google.cloud google-cloud-bigtable - 2.38.0 + 2.39.0 From 1f9f1698339ae470d821963e1037e0132016d216 Mon Sep 17 00:00:00 2001 From: Reza Karegar Date: Tue, 7 May 2024 22:32:18 -0400 Subject: [PATCH 4/5] fix: batch time series data when exporting client-side metric (#2222) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Batch time series data when exporting client-side metric to fix issue with too many distinct resources. * Apply cleanups based on the comments. * Revert export code changes to diagnose integration test failures. * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md --------- Co-authored-by: Owl Bot --- README.md | 2 +- .../BigtableCloudMonitoringExporter.java | 49 +++++++----- .../BigtableCloudMonitoringExporterTest.java | 76 +++++++++++++++++++ 3 files changed, 107 insertions(+), 20 deletions(-) diff --git a/README.md b/README.md index 645d26193c..8985acbec5 100644 --- a/README.md +++ b/README.md @@ -50,7 +50,7 @@ If you are using Maven without the BOM, add this to your dependencies: If you are using Gradle 5.x or later, add this to your dependencies: ```Groovy -implementation platform('com.google.cloud:libraries-bom:26.37.0') +implementation platform('com.google.cloud:libraries-bom:26.38.0') implementation 'com.google.cloud:google-cloud-bigtable' ``` diff --git a/google-cloud-bigtable/src/main/java/com/google/cloud/bigtable/data/v2/stub/metrics/BigtableCloudMonitoringExporter.java b/google-cloud-bigtable/src/main/java/com/google/cloud/bigtable/data/v2/stub/metrics/BigtableCloudMonitoringExporter.java index 9c88aa62a2..f6a2527302 100644 --- a/google-cloud-bigtable/src/main/java/com/google/cloud/bigtable/data/v2/stub/metrics/BigtableCloudMonitoringExporter.java +++ b/google-cloud-bigtable/src/main/java/com/google/cloud/bigtable/data/v2/stub/metrics/BigtableCloudMonitoringExporter.java @@ -42,6 +42,7 @@ import com.google.common.base.MoreObjects; import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableSet; +import com.google.common.collect.Iterables; import com.google.common.util.concurrent.MoreExecutors; import com.google.monitoring.v3.CreateTimeSeriesRequest; import com.google.monitoring.v3.ProjectName; @@ -53,6 +54,7 @@ import io.opentelemetry.sdk.metrics.data.MetricData; import io.opentelemetry.sdk.metrics.export.MetricExporter; import java.io.IOException; +import java.util.ArrayList; import java.util.Arrays; import java.util.Collection; import java.util.List; @@ -85,6 +87,10 @@ public final class BigtableCloudMonitoringExporter implements MetricExporter { private static final String APPLICATION_RESOURCE_PROJECT_ID = "project_id"; + // This the quota limit from Cloud Monitoring. More details in + // https://cloud.google.com/monitoring/quotas#custom_metrics_quotas. + private static final int EXPORT_BATCH_SIZE_LIMIT = 200; + private final MetricServiceClient client; private final String bigtableProjectId; @@ -216,19 +222,12 @@ private CompletableResultCode exportBigtableResourceMetrics(Collection future = - this.client.createServiceTimeSeriesCallable().futureCall(bigtableRequest); + ApiFuture> future = exportTimeSeries(projectName, bigtableTimeSeries); CompletableResultCode bigtableExportCode = new CompletableResultCode(); ApiFutures.addCallback( future, - new ApiFutureCallback() { + new ApiFutureCallback>() { @Override public void onFailure(Throwable throwable) { if (bigtableExportFailureLogged.compareAndSet(false, true)) { @@ -245,7 +244,7 @@ public void onFailure(Throwable throwable) { } @Override - public void onSuccess(Empty empty) { + public void onSuccess(List emptyList) { // When an export succeeded reset the export failure flag to false so if there's a // transient failure it'll be logged. bigtableExportFailureLogged.set(false); @@ -290,22 +289,17 @@ private CompletableResultCode exportApplicationResourceMetrics( // Construct the request. The project id will be the project id of the detected monitored // resource. - ApiFuture gceOrGkeFuture; + ApiFuture> gceOrGkeFuture; CompletableResultCode exportCode = new CompletableResultCode(); try { ProjectName projectName = ProjectName.of(applicationResource.getLabelsOrThrow(APPLICATION_RESOURCE_PROJECT_ID)); - CreateTimeSeriesRequest request = - CreateTimeSeriesRequest.newBuilder() - .setName(projectName.toString()) - .addAllTimeSeries(timeSeries) - .build(); - gceOrGkeFuture = this.client.createServiceTimeSeriesCallable().futureCall(request); + gceOrGkeFuture = exportTimeSeries(projectName, timeSeries); ApiFutures.addCallback( gceOrGkeFuture, - new ApiFutureCallback() { + new ApiFutureCallback>() { @Override public void onFailure(Throwable throwable) { if (applicationExportFailureLogged.compareAndSet(false, true)) { @@ -322,7 +316,7 @@ public void onFailure(Throwable throwable) { } @Override - public void onSuccess(Empty empty) { + public void onSuccess(List emptyList) { // When an export succeeded reset the export failure flag to false so if there's a // transient failure it'll be logged. applicationExportFailureLogged.set(false); @@ -341,6 +335,23 @@ public void onSuccess(Empty empty) { return exportCode; } + private ApiFuture> exportTimeSeries( + ProjectName projectName, List timeSeries) { + List> batchResults = new ArrayList<>(); + + for (List batch : Iterables.partition(timeSeries, EXPORT_BATCH_SIZE_LIMIT)) { + CreateTimeSeriesRequest req = + CreateTimeSeriesRequest.newBuilder() + .setName(projectName.toString()) + .addAllTimeSeries(batch) + .build(); + ApiFuture f = this.client.createServiceTimeSeriesCallable().futureCall(req); + batchResults.add(f); + } + + return ApiFutures.allAsList(batchResults); + } + @Override public CompletableResultCode flush() { if (lastExportCode != null) { diff --git a/google-cloud-bigtable/src/test/java/com/google/cloud/bigtable/data/v2/stub/metrics/BigtableCloudMonitoringExporterTest.java b/google-cloud-bigtable/src/test/java/com/google/cloud/bigtable/data/v2/stub/metrics/BigtableCloudMonitoringExporterTest.java index a0b9c058dc..81629e2d9d 100644 --- a/google-cloud-bigtable/src/test/java/com/google/cloud/bigtable/data/v2/stub/metrics/BigtableCloudMonitoringExporterTest.java +++ b/google-cloud-bigtable/src/test/java/com/google/cloud/bigtable/data/v2/stub/metrics/BigtableCloudMonitoringExporterTest.java @@ -50,7 +50,9 @@ import io.opentelemetry.sdk.metrics.internal.data.ImmutableMetricData; import io.opentelemetry.sdk.metrics.internal.data.ImmutableSumData; import io.opentelemetry.sdk.resources.Resource; +import java.util.ArrayList; import java.util.Arrays; +import java.util.Collection; import org.junit.After; import org.junit.Before; import org.junit.Rule; @@ -220,6 +222,80 @@ public void testExportingHistogramData() { assertThat(timeSeries.getPoints(0).getInterval().getEndTime().getNanos()).isEqualTo(endEpoch); } + @Test + public void testExportingSumDataInBatches() { + ArgumentCaptor argumentCaptor = + ArgumentCaptor.forClass(CreateTimeSeriesRequest.class); + + UnaryCallable mockCallable = mock(UnaryCallable.class); + when(mockMetricServiceStub.createServiceTimeSeriesCallable()).thenReturn(mockCallable); + ApiFuture future = ApiFutures.immediateFuture(Empty.getDefaultInstance()); + when(mockCallable.futureCall(argumentCaptor.capture())).thenReturn(future); + + long startEpoch = 10; + long endEpoch = 15; + + Collection toExport = new ArrayList<>(); + for (int i = 0; i < 250; i++) { + Attributes testAttributes = + Attributes.builder() + .put(BIGTABLE_PROJECT_ID_KEY, projectId) + .put(INSTANCE_ID_KEY, instanceId) + .put(TABLE_ID_KEY, tableId + i) + .put(CLUSTER_ID_KEY, cluster) + .put(ZONE_ID_KEY, zone) + .put(APP_PROFILE_KEY, appProfileId) + .build(); + LongPointData longPointData = + ImmutableLongPointData.create(startEpoch, endEpoch, testAttributes, i); + + MetricData longData = + ImmutableMetricData.createLongSum( + resource, + scope, + "bigtable.googleapis.com/internal/client/retry_count", + "description", + "1", + ImmutableSumData.create( + true, AggregationTemporality.CUMULATIVE, ImmutableList.of(longPointData))); + toExport.add(longData); + } + + exporter.export(toExport); + + assertThat(argumentCaptor.getAllValues()).hasSize(2); + CreateTimeSeriesRequest firstRequest = argumentCaptor.getAllValues().get(0); + CreateTimeSeriesRequest secondRequest = argumentCaptor.getAllValues().get(1); + + assertThat(firstRequest.getTimeSeriesList()).hasSize(200); + assertThat(secondRequest.getTimeSeriesList()).hasSize(50); + + for (int i = 0; i < 250; i++) { + TimeSeries timeSeries; + if (i < 200) { + timeSeries = firstRequest.getTimeSeriesList().get(i); + } else { + timeSeries = secondRequest.getTimeSeriesList().get(i - 200); + } + + assertThat(timeSeries.getResource().getLabelsMap()) + .containsExactly( + BIGTABLE_PROJECT_ID_KEY.getKey(), projectId, + INSTANCE_ID_KEY.getKey(), instanceId, + TABLE_ID_KEY.getKey(), tableId + i, + CLUSTER_ID_KEY.getKey(), cluster, + ZONE_ID_KEY.getKey(), zone); + + assertThat(timeSeries.getMetric().getLabelsMap()).hasSize(2); + assertThat(timeSeries.getMetric().getLabelsMap()) + .containsAtLeast(APP_PROFILE_KEY.getKey(), appProfileId, CLIENT_UID_KEY.getKey(), taskId); + assertThat(timeSeries.getPoints(0).getValue().getInt64Value()).isEqualTo(i); + assertThat(timeSeries.getPoints(0).getInterval().getStartTime().getNanos()) + .isEqualTo(startEpoch); + assertThat(timeSeries.getPoints(0).getInterval().getEndTime().getNanos()).isEqualTo(endEpoch); + } + } + @Test public void testTimeSeriesForMetricWithGceOrGkeResource() { String gceProjectId = "fake-gce-project"; From 54e6ffb367bcbc91c80e41ce91bda04c70bce6eb Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Wed, 8 May 2024 12:04:19 -0400 Subject: [PATCH 5/5] chore(main): release 2.39.1 (#2220) Co-authored-by: release-please[bot] <55107282+release-please[bot]@users.noreply.github.com> --- CHANGELOG.md | 8 ++++++++ google-cloud-bigtable-bom/pom.xml | 16 ++++++++-------- google-cloud-bigtable-deps-bom/pom.xml | 2 +- google-cloud-bigtable-emulator-core/pom.xml | 4 ++-- google-cloud-bigtable-emulator/pom.xml | 10 +++++----- google-cloud-bigtable/pom.xml | 10 +++++----- .../java/com/google/cloud/bigtable/Version.java | 2 +- grpc-google-cloud-bigtable-admin-v2/pom.xml | 8 ++++---- grpc-google-cloud-bigtable-v2/pom.xml | 8 ++++---- pom.xml | 12 ++++++------ proto-google-cloud-bigtable-admin-v2/pom.xml | 8 ++++---- proto-google-cloud-bigtable-v2/pom.xml | 8 ++++---- samples/snapshot/pom.xml | 2 +- test-proxy/pom.xml | 4 ++-- versions.txt | 14 +++++++------- 15 files changed, 62 insertions(+), 54 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 122f68bef5..65c5ed4d4f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,13 @@ # Changelog +## [2.39.1](https://github.com/googleapis/java-bigtable/compare/v2.39.0...v2.39.1) (2024-05-08) + + +### Bug Fixes + +* Batch time series data when exporting client-side metric ([#2222](https://github.com/googleapis/java-bigtable/issues/2222)) ([1f9f169](https://github.com/googleapis/java-bigtable/commit/1f9f1698339ae470d821963e1037e0132016d216)) +* Remove stale module from bom ([#2218](https://github.com/googleapis/java-bigtable/issues/2218)) ([7145864](https://github.com/googleapis/java-bigtable/commit/7145864868b3f7df69f9b2db7a822f9faf903f33)) + ## [2.39.0](https://github.com/googleapis/java-bigtable/compare/v2.38.0...v2.39.0) (2024-04-29) diff --git a/google-cloud-bigtable-bom/pom.xml b/google-cloud-bigtable-bom/pom.xml index d0bb5ddb6f..42f118e9b5 100644 --- a/google-cloud-bigtable-bom/pom.xml +++ b/google-cloud-bigtable-bom/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigtable-bom - 2.39.1-SNAPSHOT + 2.39.1 pom com.google.cloud @@ -63,37 +63,37 @@ com.google.cloud google-cloud-bigtable - 2.39.1-SNAPSHOT + 2.39.1 com.google.cloud google-cloud-bigtable-emulator - 0.176.1-SNAPSHOT + 0.176.1 com.google.cloud google-cloud-bigtable-emulator-core - 0.176.1-SNAPSHOT + 0.176.1 com.google.api.grpc grpc-google-cloud-bigtable-admin-v2 - 2.39.1-SNAPSHOT + 2.39.1 com.google.api.grpc grpc-google-cloud-bigtable-v2 - 2.39.1-SNAPSHOT + 2.39.1 com.google.api.grpc proto-google-cloud-bigtable-admin-v2 - 2.39.1-SNAPSHOT + 2.39.1 com.google.api.grpc proto-google-cloud-bigtable-v2 - 2.39.1-SNAPSHOT + 2.39.1
diff --git a/google-cloud-bigtable-deps-bom/pom.xml b/google-cloud-bigtable-deps-bom/pom.xml index 11acad1f9d..2220a5d76d 100644 --- a/google-cloud-bigtable-deps-bom/pom.xml +++ b/google-cloud-bigtable-deps-bom/pom.xml @@ -13,7 +13,7 @@ com.google.cloud google-cloud-bigtable-deps-bom - 2.39.1-SNAPSHOT + 2.39.1 pom diff --git a/google-cloud-bigtable-emulator-core/pom.xml b/google-cloud-bigtable-emulator-core/pom.xml index 4f9f2bd8dc..7120c2941c 100644 --- a/google-cloud-bigtable-emulator-core/pom.xml +++ b/google-cloud-bigtable-emulator-core/pom.xml @@ -7,11 +7,11 @@ google-cloud-bigtable-parent com.google.cloud - 2.39.1-SNAPSHOT + 2.39.1 google-cloud-bigtable-emulator-core - 0.176.1-SNAPSHOT + 0.176.1 A Java wrapper for the Cloud Bigtable emulator. diff --git a/google-cloud-bigtable-emulator/pom.xml b/google-cloud-bigtable-emulator/pom.xml index a206f2b758..943d4d0828 100644 --- a/google-cloud-bigtable-emulator/pom.xml +++ b/google-cloud-bigtable-emulator/pom.xml @@ -5,7 +5,7 @@ 4.0.0 google-cloud-bigtable-emulator - 0.176.1-SNAPSHOT + 0.176.1 Google Cloud Java - Bigtable Emulator https://github.com/googleapis/java-bigtable @@ -14,7 +14,7 @@ com.google.cloud google-cloud-bigtable-parent - 2.39.1-SNAPSHOT + 2.39.1 scm:git:git@github.com:googleapis/java-bigtable.git @@ -81,14 +81,14 @@ com.google.cloud google-cloud-bigtable-deps-bom - 2.39.1-SNAPSHOT + 2.39.1 pom import com.google.cloud google-cloud-bigtable-bom - 2.39.1-SNAPSHOT + 2.39.1 pom import @@ -99,7 +99,7 @@ com.google.cloud google-cloud-bigtable-emulator-core - 0.176.1-SNAPSHOT + 0.176.1 diff --git a/google-cloud-bigtable/pom.xml b/google-cloud-bigtable/pom.xml index 25b579492a..8a5e4ea870 100644 --- a/google-cloud-bigtable/pom.xml +++ b/google-cloud-bigtable/pom.xml @@ -2,7 +2,7 @@ 4.0.0 google-cloud-bigtable - 2.39.1-SNAPSHOT + 2.39.1 jar Google Cloud Bigtable https://github.com/googleapis/java-bigtable @@ -12,11 +12,11 @@ com.google.cloud google-cloud-bigtable-parent - 2.39.1-SNAPSHOT + 2.39.1 - 2.39.1-SNAPSHOT + 2.39.1 google-cloud-bigtable @@ -47,14 +47,14 @@ com.google.cloud google-cloud-bigtable-deps-bom - 2.39.1-SNAPSHOT + 2.39.1 pom import com.google.cloud google-cloud-bigtable-bom - 2.39.1-SNAPSHOT + 2.39.1 pom import diff --git a/google-cloud-bigtable/src/main/java/com/google/cloud/bigtable/Version.java b/google-cloud-bigtable/src/main/java/com/google/cloud/bigtable/Version.java index cfb6dede0f..2e4945eceb 100644 --- a/google-cloud-bigtable/src/main/java/com/google/cloud/bigtable/Version.java +++ b/google-cloud-bigtable/src/main/java/com/google/cloud/bigtable/Version.java @@ -20,6 +20,6 @@ @InternalApi("For internal use only") public final class Version { // {x-version-update-start:google-cloud-bigtable:current} - public static String VERSION = "2.39.1-SNAPSHOT"; + public static String VERSION = "2.39.1"; // {x-version-update-end} } diff --git a/grpc-google-cloud-bigtable-admin-v2/pom.xml b/grpc-google-cloud-bigtable-admin-v2/pom.xml index 24626b9ad7..3b6c7cc53c 100644 --- a/grpc-google-cloud-bigtable-admin-v2/pom.xml +++ b/grpc-google-cloud-bigtable-admin-v2/pom.xml @@ -4,13 +4,13 @@ 4.0.0 com.google.api.grpc grpc-google-cloud-bigtable-admin-v2 - 2.39.1-SNAPSHOT + 2.39.1 grpc-google-cloud-bigtable-admin-v2 GRPC library for grpc-google-cloud-bigtable-admin-v2 com.google.cloud google-cloud-bigtable-parent - 2.39.1-SNAPSHOT + 2.39.1 @@ -18,14 +18,14 @@ com.google.cloud google-cloud-bigtable-deps-bom - 2.39.1-SNAPSHOT + 2.39.1 pom import com.google.cloud google-cloud-bigtable-bom - 2.39.1-SNAPSHOT + 2.39.1 pom import diff --git a/grpc-google-cloud-bigtable-v2/pom.xml b/grpc-google-cloud-bigtable-v2/pom.xml index 471564257a..5005c5e1a6 100644 --- a/grpc-google-cloud-bigtable-v2/pom.xml +++ b/grpc-google-cloud-bigtable-v2/pom.xml @@ -4,13 +4,13 @@ 4.0.0 com.google.api.grpc grpc-google-cloud-bigtable-v2 - 2.39.1-SNAPSHOT + 2.39.1 grpc-google-cloud-bigtable-v2 GRPC library for grpc-google-cloud-bigtable-v2 com.google.cloud google-cloud-bigtable-parent - 2.39.1-SNAPSHOT + 2.39.1 @@ -18,14 +18,14 @@ com.google.cloud google-cloud-bigtable-deps-bom - 2.39.1-SNAPSHOT + 2.39.1 pom import com.google.cloud google-cloud-bigtable-bom - 2.39.1-SNAPSHOT + 2.39.1 pom import diff --git a/pom.xml b/pom.xml index 9d927fd0cb..ab150b4c27 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ google-cloud-bigtable-parent pom - 2.39.1-SNAPSHOT + 2.39.1 Google Cloud Bigtable Parent https://github.com/googleapis/java-bigtable @@ -153,27 +153,27 @@ com.google.api.grpc proto-google-cloud-bigtable-v2 - 2.39.1-SNAPSHOT + 2.39.1 com.google.api.grpc proto-google-cloud-bigtable-admin-v2 - 2.39.1-SNAPSHOT + 2.39.1 com.google.api.grpc grpc-google-cloud-bigtable-v2 - 2.39.1-SNAPSHOT + 2.39.1 com.google.api.grpc grpc-google-cloud-bigtable-admin-v2 - 2.39.1-SNAPSHOT + 2.39.1 com.google.cloud google-cloud-bigtable - 2.39.1-SNAPSHOT + 2.39.1 diff --git a/proto-google-cloud-bigtable-admin-v2/pom.xml b/proto-google-cloud-bigtable-admin-v2/pom.xml index b401504491..96a34f4561 100644 --- a/proto-google-cloud-bigtable-admin-v2/pom.xml +++ b/proto-google-cloud-bigtable-admin-v2/pom.xml @@ -4,13 +4,13 @@ 4.0.0 com.google.api.grpc proto-google-cloud-bigtable-admin-v2 - 2.39.1-SNAPSHOT + 2.39.1 proto-google-cloud-bigtable-admin-v2 PROTO library for proto-google-cloud-bigtable-admin-v2 com.google.cloud google-cloud-bigtable-parent - 2.39.1-SNAPSHOT + 2.39.1 @@ -18,14 +18,14 @@ com.google.cloud google-cloud-bigtable-deps-bom - 2.39.1-SNAPSHOT + 2.39.1 pom import com.google.cloud google-cloud-bigtable-bom - 2.39.1-SNAPSHOT + 2.39.1 pom import diff --git a/proto-google-cloud-bigtable-v2/pom.xml b/proto-google-cloud-bigtable-v2/pom.xml index 1e4a5f7ae2..198f2c507f 100644 --- a/proto-google-cloud-bigtable-v2/pom.xml +++ b/proto-google-cloud-bigtable-v2/pom.xml @@ -4,13 +4,13 @@ 4.0.0 com.google.api.grpc proto-google-cloud-bigtable-v2 - 2.39.1-SNAPSHOT + 2.39.1 proto-google-cloud-bigtable-v2 PROTO library for proto-google-cloud-bigtable-v2 com.google.cloud google-cloud-bigtable-parent - 2.39.1-SNAPSHOT + 2.39.1 @@ -18,14 +18,14 @@ com.google.cloud google-cloud-bigtable-deps-bom - 2.39.1-SNAPSHOT + 2.39.1 pom import com.google.cloud google-cloud-bigtable-bom - 2.39.1-SNAPSHOT + 2.39.1 pom import diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 1a4bb60d45..d09b9359da 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -28,7 +28,7 @@ com.google.cloud google-cloud-bigtable - 2.39.1-SNAPSHOT + 2.39.1 diff --git a/test-proxy/pom.xml b/test-proxy/pom.xml index 75d41585ad..c0f022bd3f 100644 --- a/test-proxy/pom.xml +++ b/test-proxy/pom.xml @@ -12,11 +12,11 @@ google-cloud-bigtable-parent com.google.cloud - 2.39.1-SNAPSHOT + 2.39.1 - 2.39.1-SNAPSHOT + 2.39.1 diff --git a/versions.txt b/versions.txt index 14590ca054..441693355d 100644 --- a/versions.txt +++ b/versions.txt @@ -1,10 +1,10 @@ # Format: # module:released-version:current-version -google-cloud-bigtable:2.39.0:2.39.1-SNAPSHOT -grpc-google-cloud-bigtable-admin-v2:2.39.0:2.39.1-SNAPSHOT -grpc-google-cloud-bigtable-v2:2.39.0:2.39.1-SNAPSHOT -proto-google-cloud-bigtable-admin-v2:2.39.0:2.39.1-SNAPSHOT -proto-google-cloud-bigtable-v2:2.39.0:2.39.1-SNAPSHOT -google-cloud-bigtable-emulator:0.176.0:0.176.1-SNAPSHOT -google-cloud-bigtable-emulator-core:0.176.0:0.176.1-SNAPSHOT +google-cloud-bigtable:2.39.1:2.39.1 +grpc-google-cloud-bigtable-admin-v2:2.39.1:2.39.1 +grpc-google-cloud-bigtable-v2:2.39.1:2.39.1 +proto-google-cloud-bigtable-admin-v2:2.39.1:2.39.1 +proto-google-cloud-bigtable-v2:2.39.1:2.39.1 +google-cloud-bigtable-emulator:0.176.1:0.176.1 +google-cloud-bigtable-emulator-core:0.176.1:0.176.1