Skip to content

Commit a8b66f4

Browse files
committed
suggested changes
1 parent 4082b2d commit a8b66f4

File tree

26 files changed

+120
-58
lines changed

26 files changed

+120
-58
lines changed

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

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -201,6 +201,12 @@ public Server build() {
201201
return delegate().build();
202202
}
203203

204+
@Override
205+
public T addMetricSink(MetricSink metricSink) {
206+
delegate().addMetricSink(metricSink);
207+
return thisT();
208+
}
209+
204210
@Override
205211
public String toString() {
206212
return MoreObjects.toStringHelper(this).add("delegate", delegate()).toString();

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

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*
2-
* Copyright 2024 The gRPC Authors
2+
* Copyright 2026 The gRPC Authors
33
*
44
* Licensed under the Apache License, Version 2.0 (the "License");
55
* you may not use this file except in compliance with the License.
@@ -27,8 +27,7 @@
2727
@Internal
2828
public final class InternalTcpMetrics {
2929

30-
private InternalTcpMetrics() {
31-
}
30+
private InternalTcpMetrics() {}
3231

3332
private static final List<String> OPTIONAL_LABELS = Arrays.asList(
3433
"network.local.address",
@@ -67,7 +66,8 @@ private InternalTcpMetrics() {
6766
"{connection}",
6867
Collections.emptyList(),
6968
OPTIONAL_LABELS,
70-
false);
69+
false
70+
);
7171

7272
public static final LongCounterMetricInstrument PACKETS_RETRANSMITTED_INSTRUMENT =
7373
MetricInstrumentRegistry
@@ -78,7 +78,8 @@ private InternalTcpMetrics() {
7878
"{packet}",
7979
Collections.emptyList(),
8080
OPTIONAL_LABELS,
81-
false);
81+
false
82+
);
8283

8384
public static final LongCounterMetricInstrument RECURRING_RETRANSMITS_INSTRUMENT =
8485
MetricInstrumentRegistry
@@ -90,7 +91,8 @@ private InternalTcpMetrics() {
9091
"{timeout}",
9192
Collections.emptyList(),
9293
OPTIONAL_LABELS,
93-
false);
94+
false
95+
);
9496

9597
private static List<Double> getMinRttBuckets() {
9698
List<Double> buckets = new ArrayList<>(100);

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

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -435,6 +435,16 @@ public T setBinaryLog(BinaryLog binaryLog) {
435435
*/
436436
public abstract Server build();
437437

438+
/**
439+
* Adds a metric sink to the server.
440+
*
441+
* @param metricSink the metric sink to add.
442+
* @return this
443+
*/
444+
public T addMetricSink(MetricSink metricSink) {
445+
throw new UnsupportedOperationException();
446+
}
447+
438448
/**
439449
* Returns the correctly typed version of the builder.
440450
*/

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

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -92,7 +92,8 @@ final class ClientTransportOptions {
9292
private Attributes eagAttributes = Attributes.EMPTY;
9393
@Nullable private String userAgent;
9494
@Nullable private HttpConnectProxiedSocketAddress connectProxiedSocketAddr;
95-
@Nullable private MetricRecorder metricRecorder;
95+
private MetricRecorder metricRecorder = new MetricRecorder() {
96+
};
9697

9798
public ChannelLogger getChannelLogger() {
9899
return channelLogger;
@@ -103,13 +104,12 @@ public ClientTransportOptions setChannelLogger(ChannelLogger channelLogger) {
103104
return this;
104105
}
105106

106-
@Nullable
107107
public MetricRecorder getMetricRecorder() {
108108
return metricRecorder;
109109
}
110110

111-
public ClientTransportOptions setMetricRecorder(@Nullable MetricRecorder metricRecorder) {
112-
this.metricRecorder = metricRecorder;
111+
public ClientTransportOptions setMetricRecorder(MetricRecorder metricRecorder) {
112+
this.metricRecorder = Preconditions.checkNotNull(metricRecorder, "metricRecorder");
113113
return this;
114114
}
115115

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

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -165,6 +165,7 @@ public ServerImplBuilder intercept(ServerInterceptor interceptor) {
165165
/**
166166
* Adds a MetricSink to the server.
167167
*/
168+
@Override
168169
public ServerImplBuilder addMetricSink(MetricSink metricSink) {
169170
metricSinks.add(checkNotNull(metricSink, "metricSink"));
170171
return this;

core/src/test/java/io/grpc/internal/ServerImplBuilderTest.java

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,10 +18,13 @@
1818

1919
import static com.google.common.truth.Truth.assertThat;
2020
import static org.junit.Assert.assertEquals;
21+
import static org.mockito.Mockito.mock;
2122

2223
import io.grpc.InternalConfigurator;
2324
import io.grpc.InternalConfiguratorRegistry;
2425
import io.grpc.Metadata;
26+
import io.grpc.MetricRecorder;
27+
import io.grpc.MetricSink;
2528
import io.grpc.ServerBuilder;
2629
import io.grpc.ServerCall;
2730
import io.grpc.ServerCallHandler;
@@ -74,7 +77,7 @@ public void setUp() throws Exception {
7477
@Override
7578
public InternalServer buildClientTransportServers(
7679
List<? extends ServerStreamTracer.Factory> streamTracerFactories,
77-
io.grpc.MetricRecorder metricRecorder) {
80+
MetricRecorder metricRecorder) {
7881
throw new UnsupportedOperationException();
7982
}
8083
});
@@ -129,6 +132,13 @@ public void getTracerFactories_disableBoth() {
129132
assertThat(factories).containsExactly(DUMMY_USER_TRACER);
130133
}
131134

135+
@Test
136+
public void addMetricSink_addsToSinks() {
137+
MetricSink mockSink = mock(MetricSink.class);
138+
builder.addMetricSink(mockSink);
139+
assertThat(builder.metricSinks).containsExactly(mockSink);
140+
}
141+
132142
@Test
133143
public void getTracerFactories_callsGet() throws Exception {
134144
Class<?> runnable = classLoader.loadClass(StaticTestingClassLoaderCallsGet.class.getName());

core/src/test/java/io/grpc/internal/ServerImplTest.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -65,6 +65,7 @@
6565
import io.grpc.InternalServerInterceptors;
6666
import io.grpc.Metadata;
6767
import io.grpc.MethodDescriptor;
68+
import io.grpc.MetricRecorder;
6869
import io.grpc.ServerCall;
6970
import io.grpc.ServerCall.Listener;
7071
import io.grpc.ServerCallExecutorSupplier;
@@ -207,7 +208,7 @@ public void startUp() throws IOException {
207208
@Override
208209
public InternalServer buildClientTransportServers(
209210
List<? extends ServerStreamTracer.Factory> streamTracerFactories,
210-
io.grpc.MetricRecorder metricRecorder) {
211+
MetricRecorder metricRecorder) {
211212
throw new UnsupportedOperationException();
212213
}
213214
});

inprocess/src/main/java/io/grpc/inprocess/InProcessServerBuilder.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@
2424
import io.grpc.ExperimentalApi;
2525
import io.grpc.ForwardingServerBuilder;
2626
import io.grpc.Internal;
27+
import io.grpc.MetricRecorder;
2728
import io.grpc.ServerBuilder;
2829
import io.grpc.ServerStreamTracer;
2930
import io.grpc.internal.FixedObjectPool;
@@ -121,7 +122,7 @@ final class InProcessClientTransportServersBuilder implements ClientTransportSer
121122
@Override
122123
public InternalServer buildClientTransportServers(
123124
List<? extends ServerStreamTracer.Factory> streamTracerFactories,
124-
io.grpc.MetricRecorder metricRecorder) {
125+
MetricRecorder metricRecorder) {
125126
return buildTransportServers(streamTracerFactories);
126127
}
127128
}

netty/src/main/java/io/grpc/netty/NettyServerBuilder.java

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@
3232
import io.grpc.ExperimentalApi;
3333
import io.grpc.ForwardingServerBuilder;
3434
import io.grpc.Internal;
35+
import io.grpc.MetricSink;
3536
import io.grpc.ServerBuilder;
3637
import io.grpc.ServerCredentials;
3738
import io.grpc.ServerStreamTracer;
@@ -764,6 +765,13 @@ NettyServerBuilder setTransportTracerFactory(TransportTracer.Factory transportTr
764765
return this;
765766
}
766767

768+
@CanIgnoreReturnValue
769+
@Override
770+
public NettyServerBuilder addMetricSink(MetricSink metricSink) {
771+
serverImplBuilder.addMetricSink(metricSink);
772+
return this;
773+
}
774+
767775
@CanIgnoreReturnValue
768776
@Override
769777
public NettyServerBuilder useTransportSecurity(File certChain, File privateKey) {

netty/src/main/java/io/grpc/netty/NettyServerHandler.java

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -669,6 +669,12 @@ void setKeepAliveManagerForTest(KeepAliveManager keepAliveManager) {
669669
/**
670670
* Handler for the Channel shutting down.
671671
*/
672+
@Override
673+
public void channelActive(ChannelHandlerContext ctx) throws Exception {
674+
tcpMetrics.channelActive(ctx.channel());
675+
super.channelActive(ctx);
676+
}
677+
672678
@Override
673679
public void channelInactive(ChannelHandlerContext ctx) throws Exception {
674680
tcpMetrics.channelInactive(ctx.channel());

0 commit comments

Comments
 (0)