Skip to content

Commit 3bbda09

Browse files
committed
review
1 parent 0efdfa4 commit 3bbda09

File tree

5 files changed

+6
-76
lines changed

5 files changed

+6
-76
lines changed

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

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,8 @@ public class BuiltInMetricsConstant {
5151
"grpc.lb.rls.default_target_picks",
5252
"grpc.lb.rls.target_picks",
5353
"grpc.xds_client.server_failure",
54-
"grpc.xds_client.resource_updates_invalid");
54+
"grpc.xds_client.resource_updates_invalid",
55+
"grpc.xds_client.resource_updates_valid");
5556

5657
public static final String SPANNER_RESOURCE_TYPE = "spanner_instance_client";
5758

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

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -75,7 +75,6 @@ OpenTelemetry getOrCreateOpenTelemetry(
7575
BuiltInMetricsView.registerBuiltinMetrics(
7676
SpannerCloudMonitoringExporter.create(projectId, credentials, monitoringHost),
7777
sdkMeterProviderBuilder);
78-
7978
sdkMeterProviderBuilder.setResource(Resource.create(createResourceAttributes(projectId)));
8079
SdkMeterProvider sdkMeterProvider = sdkMeterProviderBuilder.build();
8180
this.openTelemetry = OpenTelemetrySdk.builder().setMeterProvider(sdkMeterProvider).build();
@@ -91,7 +90,7 @@ OpenTelemetry getOrCreateOpenTelemetry(
9190
}
9291
}
9392

94-
public void enableGrpcMetrics(
93+
void enableGrpcMetrics(
9594
InstantiatingGrpcChannelProvider.Builder channelProviderBuilder,
9695
String projectId,
9796
@Nullable Credentials credentials,

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

Lines changed: 3 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,6 @@
3737
import io.opentelemetry.sdk.metrics.InstrumentType;
3838
import io.opentelemetry.sdk.metrics.data.AggregationTemporality;
3939
import io.opentelemetry.sdk.metrics.data.MetricData;
40-
import io.opentelemetry.sdk.metrics.data.PointData;
4140
import io.opentelemetry.sdk.metrics.export.MetricExporter;
4241
import io.opentelemetry.sdk.resources.Resource;
4342
import java.io.IOException;
@@ -113,7 +112,7 @@ public CompletableResultCode export(@Nonnull Collection<MetricData> collection)
113112

114113
/** Export client built in metrics */
115114
private CompletableResultCode exportSpannerClientMetrics(Collection<MetricData> collection) {
116-
// Filter spanner metrics. Only include metrics that contain a project and instance ID.
115+
// Filter spanner metrics. Only include metrics that contain a valid project.
117116
List<MetricData> spannerMetricData = collection.stream().collect(Collectors.toList());
118117

119118
// Log warnings for metrics that will be skipped.
@@ -125,12 +124,7 @@ private CompletableResultCode exportSpannerClientMetrics(Collection<MetricData>
125124
Level.WARNING, "Some metric data contain a different projectId. These will be skipped.");
126125
mustFilter = true;
127126
}
128-
if (spannerMetricData.stream()
129-
.flatMap(metricData -> metricData.getData().getPoints().stream())
130-
.anyMatch(this::shouldSkipPointDataDueToMissingInstanceId)) {
131-
logger.log(Level.WARNING, "Some metric data miss instanceId. These will be skipped.");
132-
mustFilter = true;
133-
}
127+
134128
if (mustFilter) {
135129
spannerMetricData =
136130
spannerMetricData.stream()
@@ -194,19 +188,13 @@ public void onSuccess(List<Empty> empty) {
194188
}
195189

196190
private boolean shouldSkipMetricData(MetricData metricData) {
197-
return shouldSkipPointDataDueToProjectId(metricData.getResource())
198-
|| metricData.getData().getPoints().stream()
199-
.anyMatch(pd -> shouldSkipPointDataDueToMissingInstanceId(pd));
191+
return shouldSkipPointDataDueToProjectId(metricData.getResource());
200192
}
201193

202194
private boolean shouldSkipPointDataDueToProjectId(Resource resource) {
203195
return !spannerProjectId.equals(SpannerCloudMonitoringExporterUtils.getProjectId(resource));
204196
}
205197

206-
private boolean shouldSkipPointDataDueToMissingInstanceId(PointData pointData) {
207-
return SpannerCloudMonitoringExporterUtils.getInstanceId(pointData) == null;
208-
}
209-
210198
boolean lastExportSkippedData() {
211199
return this.lastExportSkippedData.get();
212200
}

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

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,6 @@
2424
import static com.google.api.MetricDescriptor.ValueType.INT64;
2525
import static com.google.cloud.spanner.BuiltInMetricsConstant.GAX_METER_NAME;
2626
import static com.google.cloud.spanner.BuiltInMetricsConstant.GRPC_METER_NAME;
27-
import static com.google.cloud.spanner.BuiltInMetricsConstant.INSTANCE_ID_KEY;
2827
import static com.google.cloud.spanner.BuiltInMetricsConstant.PROJECT_ID_KEY;
2928
import static com.google.cloud.spanner.BuiltInMetricsConstant.SPANNER_METER_NAME;
3029
import static com.google.cloud.spanner.BuiltInMetricsConstant.SPANNER_PROMOTED_RESOURCE_LABELS;
@@ -70,10 +69,6 @@ static String getProjectId(Resource resource) {
7069
return resource.getAttributes().get(PROJECT_ID_KEY);
7170
}
7271

73-
static String getInstanceId(PointData pointData) {
74-
return pointData.getAttributes().get(INSTANCE_ID_KEY);
75-
}
76-
7772
static List<TimeSeries> convertToSpannerTimeSeries(List<MetricData> collection) {
7873
List<TimeSeries> allTimeSeries = new ArrayList<>();
7974

google-cloud-spanner/src/test/java/com/google/cloud/spanner/SpannerCloudMonitoringExporterTest.java

Lines changed: 0 additions & 53 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,6 @@
1616

1717
package com.google.cloud.spanner;
1818

19-
import static com.google.cloud.spanner.BuiltInMetricsConstant.ATTEMPT_COUNT_NAME;
2019
import static com.google.cloud.spanner.BuiltInMetricsConstant.CLIENT_HASH_KEY;
2120
import static com.google.cloud.spanner.BuiltInMetricsConstant.CLIENT_NAME_KEY;
2221
import static com.google.cloud.spanner.BuiltInMetricsConstant.CLIENT_UID_KEY;
@@ -32,7 +31,6 @@
3231
import static com.google.cloud.spanner.BuiltInMetricsConstant.PROJECT_ID_KEY;
3332
import static com.google.common.truth.Truth.assertThat;
3433
import static org.junit.Assert.assertFalse;
35-
import static org.junit.Assert.assertTrue;
3634
import static org.mockito.Mockito.mock;
3735
import static org.mockito.Mockito.when;
3836

@@ -47,7 +45,6 @@
4745
import com.google.monitoring.v3.TimeSeries;
4846
import com.google.protobuf.Empty;
4947
import io.opentelemetry.api.common.Attributes;
50-
import io.opentelemetry.sdk.common.CompletableResultCode;
5148
import io.opentelemetry.sdk.common.InstrumentationScopeInfo;
5249
import io.opentelemetry.sdk.metrics.InstrumentType;
5350
import io.opentelemetry.sdk.metrics.data.AggregationTemporality;
@@ -358,56 +355,6 @@ public void getAggregationTemporality() throws IOException {
358355
.isEqualTo(AggregationTemporality.CUMULATIVE);
359356
}
360357

361-
@Test
362-
public void testSkipExportingDataIfMissingInstanceId() throws IOException {
363-
Attributes attributesWithoutInstanceId =
364-
Attributes.builder().putAll(attributes).remove(INSTANCE_ID_KEY).build();
365-
366-
SpannerCloudMonitoringExporter actualExporter =
367-
SpannerCloudMonitoringExporter.create(projectId, null, null);
368-
assertThat(actualExporter.getAggregationTemporality(InstrumentType.COUNTER))
369-
.isEqualTo(AggregationTemporality.CUMULATIVE);
370-
ArgumentCaptor<CreateTimeSeriesRequest> argumentCaptor =
371-
ArgumentCaptor.forClass(CreateTimeSeriesRequest.class);
372-
373-
UnaryCallable<CreateTimeSeriesRequest, Empty> mockCallable = Mockito.mock(UnaryCallable.class);
374-
Mockito.when(mockMetricServiceStub.createServiceTimeSeriesCallable()).thenReturn(mockCallable);
375-
ApiFuture<Empty> future = ApiFutures.immediateFuture(Empty.getDefaultInstance());
376-
Mockito.when(mockCallable.futureCall(argumentCaptor.capture())).thenReturn(future);
377-
378-
long fakeValue = 11L;
379-
380-
long startEpoch = 10;
381-
long endEpoch = 15;
382-
LongPointData longPointData =
383-
ImmutableLongPointData.create(startEpoch, endEpoch, attributesWithoutInstanceId, fakeValue);
384-
385-
MetricData operationLongData =
386-
ImmutableMetricData.createLongSum(
387-
resource,
388-
scope,
389-
"spanner.googleapis.com/internal/client/" + OPERATION_COUNT_NAME,
390-
"description",
391-
"1",
392-
ImmutableSumData.create(
393-
true, AggregationTemporality.CUMULATIVE, ImmutableList.of(longPointData)));
394-
395-
MetricData attemptLongData =
396-
ImmutableMetricData.createLongSum(
397-
resource,
398-
scope,
399-
"spanner.googleapis.com/internal/client/" + ATTEMPT_COUNT_NAME,
400-
"description",
401-
"1",
402-
ImmutableSumData.create(
403-
true, AggregationTemporality.CUMULATIVE, ImmutableList.of(longPointData)));
404-
405-
CompletableResultCode resultCode =
406-
exporter.export(Arrays.asList(operationLongData, attemptLongData));
407-
assertTrue(resultCode.isSuccess());
408-
assertTrue(exporter.lastExportSkippedData());
409-
}
410-
411358
private static class FakeMetricServiceClient extends MetricServiceClient {
412359

413360
protected FakeMetricServiceClient(MetricServiceStub stub) {

0 commit comments

Comments
 (0)