Skip to content

Commit 2231fbd

Browse files
fix: Allow setting framework tags on cloud pubsub shim. (#571)
1 parent a2ff14c commit 2231fbd

File tree

2 files changed

+28
-11
lines changed

2 files changed

+28
-11
lines changed

google-cloud-pubsublite/src/main/java/com/google/cloud/pubsublite/cloudpubsub/PublisherSettings.java

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,6 @@ public abstract class PublisherSettings {
5959
.setRequestByteThreshold(Constants.MAX_PUBLISH_BATCH_BYTES)
6060
.setDelayThreshold(Duration.ofMillis(50))
6161
.build();
62-
private static final Framework FRAMEWORK = Framework.of("CLOUD_PUBSUB_SHIM");
6362

6463
// Required parameters.
6564

@@ -79,6 +78,11 @@ public abstract class PublisherSettings {
7978
/** A provider for credentials. */
8079
abstract CredentialsProvider credentialsProvider();
8180

81+
/**
82+
* A Framework tag for internal metrics. Please set this if integrating with a public framework!
83+
*/
84+
abstract Framework framework();
85+
8286
/**
8387
* A supplier for new PublisherServiceClients. Should return a new client each time. If present,
8488
* ignores CredentialsProvider.
@@ -94,6 +98,7 @@ public abstract class PublisherSettings {
9498
/** Get a new builder for a PublisherSettings. */
9599
public static Builder newBuilder() {
96100
return new AutoValue_PublisherSettings.Builder()
101+
.setFramework(Framework.of("CLOUD_PUBSUB_SHIM"))
97102
.setCredentialsProvider(
98103
PublisherServiceSettings.defaultCredentialsProviderBuilder().build())
99104
.setUnderlyingBuilder(SinglePartitionPublisherBuilder.newBuilder());
@@ -120,6 +125,11 @@ public abstract Builder setMessageTransformer(
120125
/** A provider for credentials. */
121126
public abstract Builder setCredentialsProvider(CredentialsProvider credentialsProvider);
122127

128+
/**
129+
* A Framework tag for internal metrics. Please set this if integrating with a public framework!
130+
*/
131+
public abstract Builder setFramework(Framework framework);
132+
123133
/**
124134
* A supplier for new PublisherServiceClients. Should return a new client each time. If present,
125135
* ignores CredentialsProvider.
@@ -143,7 +153,7 @@ private PublisherServiceClient newServiceClient(Partition partition) throws ApiE
143153
settingsBuilder = settingsBuilder.setCredentialsProvider(credentialsProvider());
144154
settingsBuilder =
145155
addDefaultMetadata(
146-
PubsubContext.of(FRAMEWORK),
156+
PubsubContext.of(framework()),
147157
RoutingMetadata.of(topicPath(), partition),
148158
settingsBuilder);
149159
try {

google-cloud-pubsublite/src/main/java/com/google/cloud/pubsublite/cloudpubsub/SubscriberSettings.java

Lines changed: 16 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -60,9 +60,6 @@
6060
*/
6161
@AutoValue
6262
public abstract class SubscriberSettings {
63-
64-
private static final Framework FRAMEWORK = Framework.of("CLOUD_PUBSUB_SHIM");
65-
6663
// Required parameters.
6764
/**
6865
* The receiver which handles new messages sent by the Pub/Sub Lite system. Only one downcall from
@@ -97,6 +94,11 @@ public abstract class SubscriberSettings {
9794
/** A provider for credentials. */
9895
abstract CredentialsProvider credentialsProvider();
9996

97+
/**
98+
* A Framework tag for internal metrics. Please set this if integrating with a public framework!
99+
*/
100+
abstract Framework framework();
101+
100102
/**
101103
* A supplier for new SubscriberServiceClients. Should return a new client each time. If present,
102104
* ignores CredentialsProvider.
@@ -124,16 +126,15 @@ public abstract class SubscriberSettings {
124126

125127
public static Builder newBuilder() {
126128
return new AutoValue_SubscriberSettings.Builder()
129+
.setFramework(Framework.of("CLOUD_PUBSUB_SHIM"))
127130
.setPartitions(ImmutableList.of())
128131
.setCredentialsProvider(
129132
SubscriberServiceSettings.defaultCredentialsProviderBuilder().build());
130133
}
131134

132135
@AutoValue.Builder
133136
public abstract static class Builder {
134-
135137
// Required parameters.
136-
137138
/**
138139
* The receiver which handles new messages sent by the Pub/Sub Lite system. Only one downcall
139140
* from any connected partition will be outstanding at a time, and blocking in this receiver
@@ -168,6 +169,11 @@ public abstract Builder setTransformer(
168169
/** A provider for credentials. */
169170
public abstract Builder setCredentialsProvider(CredentialsProvider provider);
170171

172+
/**
173+
* A Framework tag for internal metrics. Please set this if integrating with a public framework!
174+
*/
175+
public abstract Builder setFramework(Framework framework);
176+
171177
/**
172178
* A supplier for new SubscriberServiceClients. Should return a new client each time. If
173179
* present, ignores CredentialsProvider.
@@ -206,10 +212,11 @@ private SubscriberServiceClient newSubscriberServiceClient(Partition partition)
206212
try {
207213
SubscriberServiceSettings.Builder settingsBuilder =
208214
SubscriberServiceSettings.newBuilder().setCredentialsProvider(credentialsProvider());
209-
addDefaultMetadata(
210-
PubsubContext.of(FRAMEWORK),
211-
RoutingMetadata.of(subscriptionPath(), partition),
212-
settingsBuilder);
215+
settingsBuilder =
216+
addDefaultMetadata(
217+
PubsubContext.of(framework()),
218+
RoutingMetadata.of(subscriptionPath(), partition),
219+
settingsBuilder);
213220
return SubscriberServiceClient.create(
214221
addDefaultSettings(subscriptionPath().location().region(), settingsBuilder));
215222
} catch (Throwable t) {

0 commit comments

Comments
 (0)