Skip to content
This repository was archived by the owner on Apr 7, 2026. It is now read-only.

Commit 94ad5a8

Browse files
committed
Merge branch 'main' into PR #4026 to update
2 parents 79ec3cd + 866a8c2 commit 94ad5a8

34 files changed

Lines changed: 1847 additions & 220 deletions

File tree

.github/release-please.yml

Lines changed: 27 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -2,26 +2,30 @@ releaseType: java-yoshi
22
bumpMinorPreMajor: true
33
handleGHRelease: true
44
branches:
5-
- branch: 3.3.x
6-
- branch: 4.0.x
7-
- branch: 5.2.x
8-
- branch: 6.4.4-sp
9-
releaseType: java-lts
10-
- branch: 6.14.x
11-
releaseType: java-backport
12-
- branch: 6.23.x
13-
- branch: 6.33.x
14-
- branch: 6.55.x
15-
releaseType: java-backport
16-
- branch: 6.67.x
17-
releaseType: java-backport
18-
- branch: 6.66.x
19-
releaseType: java-backport
20-
- branch: 6.88.x
21-
releaseType: java-backport
22-
- branch: 6.96.x
23-
releaseType: java-backport
24-
- branch: 6.95.x
25-
releaseType: java-backport
26-
- branch: protobuf-4.x-rc
27-
manifest: true
5+
- branch: 3.3.x
6+
- branch: 4.0.x
7+
- branch: 5.2.x
8+
- branch: 6.4.4-sp
9+
releaseType: java-lts
10+
- branch: 6.14.x
11+
releaseType: java-backport
12+
- branch: 6.23.x
13+
- branch: 6.33.x
14+
- branch: 6.55.x
15+
releaseType: java-backport
16+
- branch: 6.67.x
17+
releaseType: java-backport
18+
- branch: 6.66.x
19+
releaseType: java-backport
20+
- branch: 6.88.x
21+
releaseType: java-backport
22+
- branch: 6.96.x
23+
releaseType: java-backport
24+
- branch: 6.95.x
25+
releaseType: java-backport
26+
- branch: protobuf-4.x-rc
27+
manifest: true
28+
- releaseType: java-backport
29+
bumpMinorPreMajor: true
30+
handleGHRelease: true
31+
branch: 6.109.x

.github/sync-repo-settings.yaml

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -217,6 +217,24 @@ branchProtectionRules:
217217
- units-with-multiplexed-session (11)
218218
- unmanaged_dependency_check
219219
- library_generation
220+
- pattern: 6.109.x
221+
isAdminEnforced: true
222+
requiredApprovingReviewCount: 1
223+
requiresCodeOwnerReviews: true
224+
requiresStrictStatusChecks: false
225+
requiredStatusCheckContexts:
226+
- dependencies (17)
227+
- lint
228+
- javadoc
229+
- units (8)
230+
- units (11)
231+
- 'Kokoro - Test: Integration'
232+
- cla/google
233+
- checkstyle
234+
- compile (8)
235+
- compile (11)
236+
- unmanaged_dependency_check
237+
- library_generation
220238
permissionRules:
221239
- team: yoshi-admins
222240
permission: admin

.github/workflows/unmanaged_dependency_check.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,6 @@ jobs:
1717
# repository
1818
.kokoro/build.sh
1919
- name: Unmanaged dependency check
20-
uses: googleapis/sdk-platform-java/java-shared-dependencies/unmanaged-dependency-check@google-cloud-shared-dependencies/v3.56.0
20+
uses: googleapis/sdk-platform-java/java-shared-dependencies/unmanaged-dependency-check@google-cloud-shared-dependencies/v3.56.1
2121
with:
2222
bom-path: google-cloud-spanner-bom/pom.xml

CHANGELOG.md

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,26 @@
11
# Changelog
22

3+
## [6.110.0](https://github.com/googleapis/java-spanner/compare/v6.109.0...v6.110.0) (2026-02-11)
4+
5+
6+
### Features
7+
8+
* Add gRPC A66/A94 metrics ([#4333](https://github.com/googleapis/java-spanner/issues/4333)) ([485c700](https://github.com/googleapis/java-spanner/commit/485c70046e3e67dac899011580f9c350bdb31a6d))
9+
* ClientContext and secure parameters support ([#4316](https://github.com/googleapis/java-spanner/issues/4316)) ([6356ef2](https://github.com/googleapis/java-spanner/commit/6356ef2ce1ef87898e7bc4a6bc11174f629a9b5b))
10+
* Next release from main branch is 6.110.0 ([#4338](https://github.com/googleapis/java-spanner/issues/4338)) ([95ac7a7](https://github.com/googleapis/java-spanner/commit/95ac7a71463bfca4bb22f2e4ae61da97b97169ce))
11+
* **spanner:** Include cache updates into the ResultSet response ([aa53a43](https://github.com/googleapis/java-spanner/commit/aa53a43bdce6f4215fea8695837ad2c538598896))
12+
13+
14+
### Bug Fixes
15+
16+
* **deps:** Update the Java code generator (gapic-generator-java) to 2.66.1 ([aa53a43](https://github.com/googleapis/java-spanner/commit/aa53a43bdce6f4215fea8695837ad2c538598896))
17+
* Preserve channel configurator for grpc-gcp and add opt-out for gcp OTel metrics ([#4329](https://github.com/googleapis/java-spanner/issues/4329)) ([2565137](https://github.com/googleapis/java-spanner/commit/25651378831fcd98ef48802872fe82a42cfa4942))
18+
19+
20+
### Dependencies
21+
22+
* Update dependency com.google.cloud:sdk-platform-java-config to v3.56.1 ([#4331](https://github.com/googleapis/java-spanner/issues/4331)) ([2fd403f](https://github.com/googleapis/java-spanner/commit/2fd403f3c994b1b038e876be6e58ecadf731d848))
23+
324
## [6.109.0](https://github.com/googleapis/java-spanner/compare/v6.108.0...v6.109.0) (2026-02-02)
425

526

README.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -56,13 +56,13 @@ implementation 'com.google.cloud:google-cloud-spanner'
5656
If you are using Gradle without BOM, add this to your dependencies:
5757

5858
```Groovy
59-
implementation 'com.google.cloud:google-cloud-spanner:6.109.0'
59+
implementation 'com.google.cloud:google-cloud-spanner:6.110.0'
6060
```
6161

6262
If you are using SBT, add this to your dependencies:
6363

6464
```Scala
65-
libraryDependencies += "com.google.cloud" % "google-cloud-spanner" % "6.109.0"
65+
libraryDependencies += "com.google.cloud" % "google-cloud-spanner" % "6.110.0"
6666
```
6767

6868
## Authentication
@@ -549,7 +549,7 @@ Java is a registered trademark of Oracle and/or its affiliates.
549549
[javadocs]: https://cloud.google.com/java/docs/reference/google-cloud-spanner/latest/history
550550
[stability-image]: https://img.shields.io/badge/stability-stable-green
551551
[maven-version-image]: https://img.shields.io/maven-central/v/com.google.cloud/google-cloud-spanner.svg
552-
[maven-version-link]: https://central.sonatype.com/artifact/com.google.cloud/google-cloud-spanner/6.109.0
552+
[maven-version-link]: https://central.sonatype.com/artifact/com.google.cloud/google-cloud-spanner/6.110.0
553553
[authentication]: https://github.com/googleapis/google-cloud-java#authentication
554554
[auth-scopes]: https://developers.google.com/identity/protocols/oauth2/scopes
555555
[predefined-iam-roles]: https://cloud.google.com/iam/docs/understanding-roles#predefined_roles

benchmarks/pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@
2424
<parent>
2525
<groupId>com.google.cloud</groupId>
2626
<artifactId>google-cloud-spanner-parent</artifactId>
27-
<version>6.109.0</version><!-- {x-version-update:google-cloud-spanner:current} -->
27+
<version>6.110.0</version><!-- {x-version-update:google-cloud-spanner:current} -->
2828
</parent>
2929

3030
<properties>

google-cloud-spanner-bom/pom.xml

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -3,12 +3,12 @@
33
<modelVersion>4.0.0</modelVersion>
44
<groupId>com.google.cloud</groupId>
55
<artifactId>google-cloud-spanner-bom</artifactId>
6-
<version>6.109.0</version><!-- {x-version-update:google-cloud-spanner:current} -->
6+
<version>6.110.0</version><!-- {x-version-update:google-cloud-spanner:current} -->
77
<packaging>pom</packaging>
88
<parent>
99
<groupId>com.google.cloud</groupId>
1010
<artifactId>sdk-platform-java-config</artifactId>
11-
<version>3.56.0</version>
11+
<version>3.56.1</version>
1212
</parent>
1313

1414
<name>Google Cloud Spanner BOM</name>
@@ -53,43 +53,43 @@
5353
<dependency>
5454
<groupId>com.google.cloud</groupId>
5555
<artifactId>google-cloud-spanner</artifactId>
56-
<version>6.109.0</version><!-- {x-version-update:google-cloud-spanner:current} -->
56+
<version>6.110.0</version><!-- {x-version-update:google-cloud-spanner:current} -->
5757
</dependency>
5858
<dependency>
5959
<groupId>com.google.cloud</groupId>
6060
<artifactId>google-cloud-spanner</artifactId>
6161
<type>test-jar</type>
62-
<version>6.109.0</version><!-- {x-version-update:google-cloud-spanner:current} -->
62+
<version>6.110.0</version><!-- {x-version-update:google-cloud-spanner:current} -->
6363
</dependency>
6464
<dependency>
6565
<groupId>com.google.api.grpc</groupId>
6666
<artifactId>grpc-google-cloud-spanner-v1</artifactId>
67-
<version>6.109.0</version><!-- {x-version-update:grpc-google-cloud-spanner-v1:current} -->
67+
<version>6.110.0</version><!-- {x-version-update:grpc-google-cloud-spanner-v1:current} -->
6868
</dependency>
6969
<dependency>
7070
<groupId>com.google.api.grpc</groupId>
7171
<artifactId>grpc-google-cloud-spanner-admin-instance-v1</artifactId>
72-
<version>6.109.0</version><!-- {x-version-update:grpc-google-cloud-spanner-admin-instance-v1:current} -->
72+
<version>6.110.0</version><!-- {x-version-update:grpc-google-cloud-spanner-admin-instance-v1:current} -->
7373
</dependency>
7474
<dependency>
7575
<groupId>com.google.api.grpc</groupId>
7676
<artifactId>grpc-google-cloud-spanner-admin-database-v1</artifactId>
77-
<version>6.109.0</version><!-- {x-version-update:grpc-google-cloud-spanner-admin-database-v1:current} -->
77+
<version>6.110.0</version><!-- {x-version-update:grpc-google-cloud-spanner-admin-database-v1:current} -->
7878
</dependency>
7979
<dependency>
8080
<groupId>com.google.api.grpc</groupId>
8181
<artifactId>proto-google-cloud-spanner-admin-instance-v1</artifactId>
82-
<version>6.109.0</version><!-- {x-version-update:proto-google-cloud-spanner-admin-instance-v1:current} -->
82+
<version>6.110.0</version><!-- {x-version-update:proto-google-cloud-spanner-admin-instance-v1:current} -->
8383
</dependency>
8484
<dependency>
8585
<groupId>com.google.api.grpc</groupId>
8686
<artifactId>proto-google-cloud-spanner-v1</artifactId>
87-
<version>6.109.0</version><!-- {x-version-update:proto-google-cloud-spanner-v1:current} -->
87+
<version>6.110.0</version><!-- {x-version-update:proto-google-cloud-spanner-v1:current} -->
8888
</dependency>
8989
<dependency>
9090
<groupId>com.google.api.grpc</groupId>
9191
<artifactId>proto-google-cloud-spanner-admin-database-v1</artifactId>
92-
<version>6.109.0</version><!-- {x-version-update:proto-google-cloud-spanner-admin-database-v1:current} -->
92+
<version>6.110.0</version><!-- {x-version-update:proto-google-cloud-spanner-admin-database-v1:current} -->
9393
</dependency>
9494
</dependencies>
9595
</dependencyManagement>

google-cloud-spanner-executor/pom.xml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,14 +5,14 @@
55
<modelVersion>4.0.0</modelVersion>
66
<groupId>com.google.cloud</groupId>
77
<artifactId>google-cloud-spanner-executor</artifactId>
8-
<version>6.109.0</version><!-- {x-version-update:google-cloud-spanner-executor:current} -->
8+
<version>6.110.0</version><!-- {x-version-update:google-cloud-spanner-executor:current} -->
99
<packaging>jar</packaging>
1010
<name>Google Cloud Spanner Executor</name>
1111

1212
<parent>
1313
<groupId>com.google.cloud</groupId>
1414
<artifactId>google-cloud-spanner-parent</artifactId>
15-
<version>6.109.0</version><!-- {x-version-update:google-cloud-spanner:current} -->
15+
<version>6.110.0</version><!-- {x-version-update:google-cloud-spanner:current} -->
1616
</parent>
1717

1818
<properties>

google-cloud-spanner/pom.xml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,15 +3,15 @@
33
<modelVersion>4.0.0</modelVersion>
44
<groupId>com.google.cloud</groupId>
55
<artifactId>google-cloud-spanner</artifactId>
6-
<version>6.109.0</version><!-- {x-version-update:google-cloud-spanner:current} -->
6+
<version>6.110.0</version><!-- {x-version-update:google-cloud-spanner:current} -->
77
<packaging>jar</packaging>
88
<name>Google Cloud Spanner</name>
99
<url>https://github.com/googleapis/java-spanner</url>
1010
<description>Java idiomatic client for Google Cloud Spanner.</description>
1111
<parent>
1212
<groupId>com.google.cloud</groupId>
1313
<artifactId>google-cloud-spanner-parent</artifactId>
14-
<version>6.109.0</version><!-- {x-version-update:google-cloud-spanner:current} -->
14+
<version>6.110.0</version><!-- {x-version-update:google-cloud-spanner:current} -->
1515
</parent>
1616
<properties>
1717
<site.installationModule>google-cloud-spanner</site.installationModule>

google-cloud-spanner/src/main/java/com/google/cloud/spanner/BuiltInMetricsConstant.java

Lines changed: 43 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -68,8 +68,49 @@ public class BuiltInMetricsConstant {
6868
.map(m -> METER_NAME + '/' + m)
6969
.collect(Collectors.toSet());
7070

71+
// The following attributes are optional and need to be enabled explicitly.
72+
public static final String GRPC_LB_BACKEND_SERVICE_ATTRIBUTE = "grpc.lb.backend_service";
73+
public static final String GRPC_LB_LOCALITY_ATTRIBUTE = "grpc.lb.locality";
74+
public static final String GRPC_DISCONNECT_ERROR_ATTRIBUTE = "grpc.disconnect_error";
75+
76+
static final Set<String> GRPC_LB_RLS_ATTRIBUTES =
77+
ImmutableSet.of("grpc.lb.rls.data_plane_target", "grpc.lb.pick_result");
78+
static final Set<String> GRPC_CLIENT_ATTEMPT_STARTED_ATTRIBUTES =
79+
ImmutableSet.of("grpc.method", "grpc.target");
80+
static final Set<String> GRPC_SUBCHANNEL_DEFAULT_ATTRIBUTES =
81+
ImmutableSet.of("grpc.target", GRPC_LB_BACKEND_SERVICE_ATTRIBUTE, GRPC_LB_LOCALITY_ATTRIBUTE);
82+
static final Set<String> GRPC_SUBCHANNEL_DISCONNECTION_ATTRIBUTES =
83+
ImmutableSet.of(
84+
"grpc.target",
85+
GRPC_LB_BACKEND_SERVICE_ATTRIBUTE,
86+
GRPC_LB_LOCALITY_ATTRIBUTE,
87+
GRPC_DISCONNECT_ERROR_ATTRIBUTE);
88+
static final Set<String> GRPC_XDS_CLIENT_RESOURCE_UPDATE_ATTRIBUTES =
89+
ImmutableSet.of("grpc.xds.resource_type");
90+
91+
// Additional gRPC attributes to enable.
92+
static final Map<String, Set<String>> GRPC_METRIC_ADDITIONAL_ATTRIBUTES =
93+
ImmutableMap.<String, Set<String>>builder()
94+
.put("grpc.client.attempt.started", GRPC_CLIENT_ATTEMPT_STARTED_ATTRIBUTES)
95+
.put("grpc.subchannel.open_connections", GRPC_SUBCHANNEL_DEFAULT_ATTRIBUTES)
96+
.put("grpc.subchannel.disconnections", GRPC_SUBCHANNEL_DISCONNECTION_ATTRIBUTES)
97+
.put("grpc.subchannel.connection_attempts_succeeded", GRPC_SUBCHANNEL_DEFAULT_ATTRIBUTES)
98+
.put("grpc.subchannel.connection_attempts_failed", GRPC_SUBCHANNEL_DEFAULT_ATTRIBUTES)
99+
.put("grpc.lb.rls.default_target_picks", GRPC_LB_RLS_ATTRIBUTES)
100+
.put("grpc.lb.rls.target_picks", GRPC_LB_RLS_ATTRIBUTES)
101+
.put(
102+
"grpc.xds_client.resource_updates_invalid",
103+
GRPC_XDS_CLIENT_RESOURCE_UPDATE_ATTRIBUTES)
104+
.put("grpc.xds_client.resource_updates_valid", GRPC_XDS_CLIENT_RESOURCE_UPDATE_ATTRIBUTES)
105+
.build();
106+
71107
static final Collection<String> GRPC_METRICS_TO_ENABLE =
72108
ImmutableList.of(
109+
"grpc.client.attempt.started",
110+
"grpc.subchannel.open_connections",
111+
"grpc.subchannel.disconnections",
112+
"grpc.subchannel.connection_attempts_succeeded",
113+
"grpc.subchannel.connection_attempts_failed",
73114
"grpc.lb.rls.default_target_picks",
74115
"grpc.lb.rls.target_picks",
75116
"grpc.xds_client.server_failure",
@@ -100,8 +141,6 @@ public class BuiltInMetricsConstant {
100141
AttributeKey.stringKey("directpath_used");
101142
public static final AttributeKey<String> REQUEST_ID_KEY =
102143
AttributeKey.stringKey(REQUEST_ID_HEADER_NAME);
103-
public static final AttributeKey<String> GRPC_XDS_RESOURCE_TYPE_KEY =
104-
AttributeKey.stringKey("grpc.xds.resource_type");
105144
public static Set<String> ALLOWED_EXEMPLARS_ATTRIBUTES =
106145
new HashSet<>(Arrays.asList(REQUEST_ID_HEADER_NAME));
107146

@@ -124,9 +163,6 @@ public class BuiltInMetricsConstant {
124163
DIRECT_PATH_ENABLED_KEY,
125164
DIRECT_PATH_USED_KEY);
126165

127-
static final Set<String> GRPC_LB_RLS_ATTRIBUTES =
128-
ImmutableSet.of("grpc.lb.rls.data_plane_target", "grpc.lb.pick_result");
129-
130166
static List<Double> BUCKET_BOUNDARIES =
131167
ImmutableList.of(
132168
0.0, 0.5, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 13.0, 14.0, 15.0,
@@ -140,7 +176,6 @@ public class BuiltInMetricsConstant {
140176
ImmutableList.of(
141177
"grpc.client.attempt.sent_total_compressed_message_size",
142178
"grpc.client.attempt.rcvd_total_compressed_message_size",
143-
"grpc.client.attempt.started",
144179
"grpc.client.attempt.duration",
145180
"grpc.client.call.duration");
146181

@@ -235,8 +270,8 @@ private static void defineGRPCView(ImmutableMap.Builder<InstrumentSelector, View
235270
BuiltInMetricsConstant.COMMON_ATTRIBUTES.stream()
236271
.map(AttributeKey::getKey)
237272
.collect(Collectors.toSet());
238-
attributesFilter.addAll(BuiltInMetricsConstant.GRPC_LB_RLS_ATTRIBUTES);
239-
attributesFilter.add(BuiltInMetricsConstant.GRPC_XDS_RESOURCE_TYPE_KEY.getKey());
273+
attributesFilter.addAll(
274+
GRPC_METRIC_ADDITIONAL_ATTRIBUTES.getOrDefault(metric, ImmutableSet.of()));
240275

241276
View view =
242277
View.builder()

0 commit comments

Comments
 (0)