Skip to content

Commit f737cbc

Browse files
committed
api: Hide internal metric APIs
Some APIs were marked experimental but had internal APIs in their surface. These were all changed to internal. And then the internal APIs were mostly hidden from generated documentation. All these APIs will eventually become public and maybe even stable. But they need some iteration before we're ready for others to start using them.
1 parent 1e731be commit f737cbc

File tree

10 files changed

+31
-16
lines changed

10 files changed

+31
-16
lines changed

api/build.gradle

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,11 @@ dependencies {
5555
tasks.named("javadoc").configure {
5656
source sourceSets.context.allSource
5757
// We want io.grpc.Internal, but not io.grpc.Internal*
58+
exclude 'io/grpc/*MetricInstrument.java'
59+
exclude 'io/grpc/*MetricInstrumentRegistry.java'
5860
exclude 'io/grpc/Internal?*.java'
61+
exclude 'io/grpc/MetricRecorder.java'
62+
exclude 'io/grpc/MetricSink.java'
5963
}
6064

6165
tasks.named("sourcesJar").configure {

api/src/main/java/io/grpc/ForwardingChannelBuilder2.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -258,7 +258,7 @@ public T disableServiceConfigLookUp() {
258258
}
259259

260260
@Override
261-
public T addMetricSink(MetricSink metricSink) {
261+
protected T addMetricSink(MetricSink metricSink) {
262262
delegate().addMetricSink(metricSink);
263263
return thisT();
264264
}

api/src/main/java/io/grpc/InternalManagedChannelBuilder.java

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@
1919
/**
2020
* Internal accessors for {@link ManagedChannelBuilder}.
2121
*/
22+
@Internal
2223
public final class InternalManagedChannelBuilder {
2324
private InternalManagedChannelBuilder() {}
2425

@@ -27,5 +28,10 @@ public static <T extends ManagedChannelBuilder<T>> T interceptWithTarget(
2728
return builder.interceptWithTarget(factory);
2829
}
2930

31+
public static <T extends ManagedChannelBuilder<T>> T addMetricSink(
32+
ManagedChannelBuilder<T> builder, MetricSink metricSink) {
33+
return builder.addMetricSink(metricSink);
34+
}
35+
3036
public interface InternalInterceptorFactory extends ManagedChannelBuilder.InterceptorFactory {}
3137
}

api/src/main/java/io/grpc/LoadBalancer.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1255,7 +1255,7 @@ public NameResolverRegistry getNameResolverRegistry() {
12551255
*
12561256
* @since 1.64.0
12571257
*/
1258-
@ExperimentalApi("https://github.com/grpc/grpc-java/issues/11110")
1258+
@Internal
12591259
public MetricRecorder getMetricRecorder() {
12601260
return new MetricRecorder() {};
12611261
}

api/src/main/java/io/grpc/ManagedChannelBuilder.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -628,8 +628,8 @@ public T disableServiceConfigLookUp() {
628628
* @return this
629629
* @since 1.64.0
630630
*/
631-
@ExperimentalApi("https://github.com/grpc/grpc-java/issues/11110")
632-
public T addMetricSink(MetricSink metricSink) {
631+
@Internal
632+
protected T addMetricSink(MetricSink metricSink) {
633633
throw new UnsupportedOperationException();
634634
}
635635

api/src/main/java/io/grpc/MetricSink.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@
2323
/**
2424
* An internal interface representing a receiver or aggregator of gRPC metrics data.
2525
*/
26-
@ExperimentalApi("https://github.com/grpc/grpc-java/issues/11110")
26+
@Internal
2727
public interface MetricSink {
2828

2929
/**

core/src/main/java/io/grpc/internal/ManagedChannelImplBuilder.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -687,7 +687,7 @@ public ManagedChannelImplBuilder enableCheckAuthority() {
687687
}
688688

689689
@Override
690-
public ManagedChannelImplBuilder addMetricSink(MetricSink metricSink) {
690+
protected ManagedChannelImplBuilder addMetricSink(MetricSink metricSink) {
691691
metricSinks.add(checkNotNull(metricSink, "metric sink"));
692692
return this;
693693
}

opentelemetry/src/main/java/io/grpc/opentelemetry/GrpcOpenTelemetry.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -145,7 +145,7 @@ public void configureServerBuilder(ServerBuilder<?> serverBuilder) {
145145
* Configures the given {@link ManagedChannelBuilder} with OpenTelemetry metrics instrumentation.
146146
*/
147147
public void configureChannelBuilder(ManagedChannelBuilder<?> builder) {
148-
builder.addMetricSink(sink);
148+
InternalManagedChannelBuilder.addMetricSink(builder, sink);
149149
InternalManagedChannelBuilder.interceptWithTarget(
150150
builder, openTelemetryMetricsModule::getClientInterceptor);
151151
}

rls/src/test/java/io/grpc/rls/RlsLoadBalancerTest.java

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,7 @@
4242
import io.grpc.ConnectivityStateInfo;
4343
import io.grpc.EquivalentAddressGroup;
4444
import io.grpc.ForwardingChannelBuilder2;
45+
import io.grpc.InternalManagedChannelBuilder;
4546
import io.grpc.LoadBalancer.CreateSubchannelArgs;
4647
import io.grpc.LoadBalancer.Helper;
4748
import io.grpc.LoadBalancer.PickDetailsConsumer;
@@ -310,10 +311,11 @@ public void metricsWithRealChannel() throws Exception {
310311
.start());
311312
MetricSink metrics = mock(MetricSink.class, delegatesTo(new NoopMetricSink()));
312313
ManagedChannel channel = grpcCleanupRule.register(
313-
InProcessChannelBuilder.forName("fake-bigtable.googleapis.com")
314-
.defaultServiceConfig(parseJson(getServiceConfigJsonStr()))
315-
.addMetricSink(metrics)
316-
.directExecutor()
314+
InternalManagedChannelBuilder.addMetricSink(
315+
InProcessChannelBuilder.forName("fake-bigtable.googleapis.com")
316+
.defaultServiceConfig(parseJson(getServiceConfigJsonStr()))
317+
.directExecutor(),
318+
metrics)
317319
.build());
318320

319321
StreamRecorder<Void> recorder = StreamRecorder.create();

xds/src/test/java/io/grpc/xds/WeightedRoundRobinLoadBalancerTest.java

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,7 @@
4444
import io.grpc.ConnectivityStateInfo;
4545
import io.grpc.DoubleHistogramMetricInstrument;
4646
import io.grpc.EquivalentAddressGroup;
47+
import io.grpc.InternalManagedChannelBuilder;
4748
import io.grpc.LoadBalancer;
4849
import io.grpc.LoadBalancer.CreateSubchannelArgs;
4950
import io.grpc.LoadBalancer.Helper;
@@ -1268,11 +1269,13 @@ public void metricWithRealChannel() throws Exception {
12681269
.start());
12691270
MetricSink metrics = mock(MetricSink.class, delegatesTo(new NoopMetricSink()));
12701271
Channel channel = grpcCleanupRule.register(
1271-
InProcessChannelBuilder.forName(serverName)
1272-
.defaultServiceConfig(Collections.singletonMap(
1273-
"loadBalancingConfig", Arrays.asList(Collections.singletonMap(
1274-
"weighted_round_robin", Collections.emptyMap()))))
1275-
.addMetricSink(metrics)
1272+
InternalManagedChannelBuilder.addMetricSink(
1273+
InProcessChannelBuilder.forName(serverName)
1274+
.defaultServiceConfig(Collections.singletonMap(
1275+
"loadBalancingConfig", Arrays.asList(Collections.singletonMap(
1276+
"weighted_round_robin", Collections.emptyMap()))))
1277+
.directExecutor(),
1278+
metrics)
12761279
.directExecutor()
12771280
.build());
12781281

0 commit comments

Comments
 (0)