Skip to content

Commit b8fd4d5

Browse files
authored
chore: refactor TracerFactory creation (#2102)
1 parent beb0219 commit b8fd4d5

File tree

4 files changed

+49
-27
lines changed

4 files changed

+49
-27
lines changed

google-cloud-bigtable/src/main/java/com/google/cloud/bigtable/data/v2/BigtableDataClientFactory.java

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -112,7 +112,7 @@ public BigtableDataClient createDefault() {
112112
.toBuilder()
113113
.setTracerFactory(
114114
EnhancedBigtableStub.createBigtableTracerFactory(
115-
defaultSettings.getStubSettings()))
115+
defaultSettings.getStubSettings(), sharedClientContext))
116116
.build();
117117

118118
return BigtableDataClient.createWithClientContext(defaultSettings, clientContext);
@@ -140,7 +140,8 @@ public BigtableDataClient createForAppProfile(@Nonnull String appProfileId) thro
140140
sharedClientContext
141141
.toBuilder()
142142
.setTracerFactory(
143-
EnhancedBigtableStub.createBigtableTracerFactory(settings.getStubSettings()))
143+
EnhancedBigtableStub.createBigtableTracerFactory(
144+
settings.getStubSettings(), sharedClientContext))
144145
.build();
145146
return BigtableDataClient.createWithClientContext(settings, clientContext);
146147
}
@@ -168,7 +169,8 @@ public BigtableDataClient createForInstance(@Nonnull String projectId, @Nonnull
168169
sharedClientContext
169170
.toBuilder()
170171
.setTracerFactory(
171-
EnhancedBigtableStub.createBigtableTracerFactory(settings.getStubSettings()))
172+
EnhancedBigtableStub.createBigtableTracerFactory(
173+
settings.getStubSettings(), sharedClientContext))
172174
.build();
173175

174176
return BigtableDataClient.createWithClientContext(settings, clientContext);
@@ -197,7 +199,8 @@ public BigtableDataClient createForInstance(
197199
sharedClientContext
198200
.toBuilder()
199201
.setTracerFactory(
200-
EnhancedBigtableStub.createBigtableTracerFactory(settings.getStubSettings()))
202+
EnhancedBigtableStub.createBigtableTracerFactory(
203+
settings.getStubSettings(), sharedClientContext))
201204
.build();
202205
return BigtableDataClient.createWithClientContext(settings, clientContext);
203206
}

google-cloud-bigtable/src/main/java/com/google/cloud/bigtable/data/v2/stub/EnhancedBigtableStub.java

Lines changed: 13 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -177,10 +177,14 @@ public class EnhancedBigtableStub implements AutoCloseable {
177177
public static EnhancedBigtableStub create(EnhancedBigtableStubSettings settings)
178178
throws IOException {
179179

180-
settings = settings.toBuilder().setTracerFactory(createBigtableTracerFactory(settings)).build();
181180
ClientContext clientContext = createClientContext(settings);
181+
ClientContext contextWithTracer =
182+
clientContext
183+
.toBuilder()
184+
.setTracerFactory(createBigtableTracerFactory(settings, clientContext))
185+
.build();
182186

183-
return new EnhancedBigtableStub(settings, clientContext);
187+
return new EnhancedBigtableStub(settings, contextWithTracer);
184188
}
185189

186190
public static EnhancedBigtableStub createWithClientContext(
@@ -237,13 +241,17 @@ public static ClientContext createClientContext(EnhancedBigtableStubSettings set
237241
}
238242

239243
public static ApiTracerFactory createBigtableTracerFactory(
240-
EnhancedBigtableStubSettings settings) {
241-
return createBigtableTracerFactory(settings, Tags.getTagger(), Stats.getStatsRecorder());
244+
EnhancedBigtableStubSettings settings, ClientContext clientContext) {
245+
return createBigtableTracerFactory(
246+
settings, Tags.getTagger(), Stats.getStatsRecorder(), clientContext);
242247
}
243248

244249
@VisibleForTesting
245250
public static ApiTracerFactory createBigtableTracerFactory(
246-
EnhancedBigtableStubSettings settings, Tagger tagger, StatsRecorder stats) {
251+
EnhancedBigtableStubSettings settings,
252+
Tagger tagger,
253+
StatsRecorder stats,
254+
ClientContext clientContext) {
247255
String projectId = settings.getProjectId();
248256
String instanceId = settings.getInstanceId();
249257
String appProfileId = settings.getAppProfileId();

google-cloud-bigtable/src/test/java/com/google/cloud/bigtable/data/v2/stub/metrics/BigtableTracerCallableTest.java

Lines changed: 19 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,6 @@
4444
import com.google.cloud.bigtable.data.v2.models.ReadModifyWriteRow;
4545
import com.google.cloud.bigtable.data.v2.models.RowMutation;
4646
import com.google.cloud.bigtable.data.v2.stub.EnhancedBigtableStub;
47-
import com.google.cloud.bigtable.data.v2.stub.EnhancedBigtableStubSettings;
4847
import com.google.common.collect.ImmutableMap;
4948
import io.grpc.ForwardingServerCall.SimpleForwardingServerCall;
5049
import io.grpc.Metadata;
@@ -125,16 +124,21 @@ public void sendHeaders(Metadata headers) {
125124
.setInstanceId(INSTANCE_ID)
126125
.setAppProfileId(APP_PROFILE_ID)
127126
.build();
128-
EnhancedBigtableStubSettings stubSettings =
129-
settings
130-
.getStubSettings()
127+
128+
ClientContext clientContext =
129+
EnhancedBigtableStub.createClientContext(settings.getStubSettings());
130+
clientContext =
131+
clientContext
131132
.toBuilder()
132133
.setTracerFactory(
133134
EnhancedBigtableStub.createBigtableTracerFactory(
134-
settings.getStubSettings(), Tags.getTagger(), localStats.getStatsRecorder()))
135+
settings.getStubSettings(),
136+
Tags.getTagger(),
137+
localStats.getStatsRecorder(),
138+
clientContext))
135139
.build();
136-
attempts = stubSettings.readRowsSettings().getRetrySettings().getMaxAttempts();
137-
stub = new EnhancedBigtableStub(stubSettings, ClientContext.create(stubSettings));
140+
attempts = settings.getStubSettings().readRowsSettings().getRetrySettings().getMaxAttempts();
141+
stub = new EnhancedBigtableStub(settings.getStubSettings(), clientContext);
138142

139143
// Create another server without injecting the server-timing header and another stub that
140144
// connects to it.
@@ -146,18 +150,21 @@ public void sendHeaders(Metadata headers) {
146150
.setInstanceId(INSTANCE_ID)
147151
.setAppProfileId(APP_PROFILE_ID)
148152
.build();
149-
EnhancedBigtableStubSettings noHeaderStubSettings =
150-
noHeaderSettings
151-
.getStubSettings()
153+
154+
ClientContext noHeaderClientContext =
155+
EnhancedBigtableStub.createClientContext(noHeaderSettings.getStubSettings());
156+
noHeaderClientContext =
157+
noHeaderClientContext
152158
.toBuilder()
153159
.setTracerFactory(
154160
EnhancedBigtableStub.createBigtableTracerFactory(
155161
noHeaderSettings.getStubSettings(),
156162
Tags.getTagger(),
157-
localStats.getStatsRecorder()))
163+
localStats.getStatsRecorder(),
164+
noHeaderClientContext))
158165
.build();
159166
noHeaderStub =
160-
new EnhancedBigtableStub(noHeaderStubSettings, ClientContext.create(noHeaderStubSettings));
167+
new EnhancedBigtableStub(noHeaderSettings.getStubSettings(), noHeaderClientContext);
161168
}
162169

163170
@After

google-cloud-bigtable/src/test/java/com/google/cloud/bigtable/data/v2/stub/metrics/MetricsTracerTest.java

Lines changed: 10 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,6 @@
3939
import com.google.cloud.bigtable.data.v2.models.Row;
4040
import com.google.cloud.bigtable.data.v2.models.RowMutationEntry;
4141
import com.google.cloud.bigtable.data.v2.stub.EnhancedBigtableStub;
42-
import com.google.cloud.bigtable.data.v2.stub.EnhancedBigtableStubSettings;
4342
import com.google.cloud.bigtable.data.v2.stub.mutaterows.MutateRowsBatchingDescriptor;
4443
import com.google.common.base.Stopwatch;
4544
import com.google.common.collect.ImmutableMap;
@@ -120,15 +119,20 @@ public void setUp() throws Exception {
120119
.setInstanceId(INSTANCE_ID)
121120
.setAppProfileId(APP_PROFILE_ID)
122121
.build();
123-
EnhancedBigtableStubSettings stubSettings =
124-
settings
125-
.getStubSettings()
122+
123+
ClientContext clientContext =
124+
EnhancedBigtableStub.createClientContext(settings.getStubSettings());
125+
clientContext =
126+
clientContext
126127
.toBuilder()
127128
.setTracerFactory(
128129
EnhancedBigtableStub.createBigtableTracerFactory(
129-
settings.getStubSettings(), Tags.getTagger(), localStats.getStatsRecorder()))
130+
settings.getStubSettings(),
131+
Tags.getTagger(),
132+
localStats.getStatsRecorder(),
133+
clientContext))
130134
.build();
131-
stub = new EnhancedBigtableStub(stubSettings, ClientContext.create(stubSettings));
135+
stub = new EnhancedBigtableStub(settings.getStubSettings(), clientContext);
132136
}
133137

134138
@After

0 commit comments

Comments
 (0)