Package io.grpc.xds.client
Class LoadReportClient
- java.lang.Object
-
- io.grpc.xds.client.LoadReportClient
-
@Internal public final class LoadReportClient extends java.lang.Object
Client of xDS load reporting service based on LRS protocol, which reports load stats of gRPC client's perspective to a management server.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description private static class
LoadReportClient.LoadReportingTask
private class
LoadReportClient.LrsRpcRetryTask
private class
LoadReportClient.LrsStream
-
Field Summary
Fields Modifier and Type Field Description private io.grpc.internal.BackoffPolicy.Provider
backoffPolicyProvider
LoadStatsManager2
loadStatsManager
private XdsLogger
logger
private io.grpc.InternalLogId
logId
private io.grpc.internal.BackoffPolicy
lrsRpcRetryPolicy
private io.grpc.SynchronizationContext.ScheduledHandle
lrsRpcRetryTimer
private LoadReportClient.LrsStream
lrsStream
private static io.grpc.MethodDescriptor<LoadStatsRequest,LoadStatsResponse>
method
private EnvoyProtoData.Node
node
private com.google.common.base.Stopwatch
retryStopwatch
private boolean
started
private io.grpc.SynchronizationContext
syncContext
private java.util.concurrent.ScheduledExecutorService
timerService
private XdsTransportFactory.XdsTransport
xdsTransport
-
Constructor Summary
Constructors Constructor Description LoadReportClient(LoadStatsManager2 loadStatsManager, XdsTransportFactory.XdsTransport xdsTransport, EnvoyProtoData.Node node, io.grpc.SynchronizationContext syncContext, java.util.concurrent.ScheduledExecutorService scheduledExecutorService, io.grpc.internal.BackoffPolicy.Provider backoffPolicyProvider, com.google.common.base.Supplier<com.google.common.base.Stopwatch> stopwatchSupplier)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description boolean
lrsStreamIsNull()
void
startLoadReporting()
Establishes load reporting communication and negotiates with traffic director to report load stats periodically.private void
startLrsRpc()
void
stopLoadReporting()
Terminates load reporting.
-
-
-
Field Detail
-
logId
private final io.grpc.InternalLogId logId
-
logger
private final XdsLogger logger
-
xdsTransport
private final XdsTransportFactory.XdsTransport xdsTransport
-
node
private final EnvoyProtoData.Node node
-
syncContext
private final io.grpc.SynchronizationContext syncContext
-
timerService
private final java.util.concurrent.ScheduledExecutorService timerService
-
retryStopwatch
private final com.google.common.base.Stopwatch retryStopwatch
-
backoffPolicyProvider
private final io.grpc.internal.BackoffPolicy.Provider backoffPolicyProvider
-
loadStatsManager
public final LoadStatsManager2 loadStatsManager
-
started
private boolean started
-
lrsRpcRetryPolicy
@Nullable private io.grpc.internal.BackoffPolicy lrsRpcRetryPolicy
-
lrsRpcRetryTimer
@Nullable private io.grpc.SynchronizationContext.ScheduledHandle lrsRpcRetryTimer
-
lrsStream
@Nullable private LoadReportClient.LrsStream lrsStream
-
method
private static final io.grpc.MethodDescriptor<LoadStatsRequest,LoadStatsResponse> method
-
-
Constructor Detail
-
LoadReportClient
public LoadReportClient(LoadStatsManager2 loadStatsManager, XdsTransportFactory.XdsTransport xdsTransport, EnvoyProtoData.Node node, io.grpc.SynchronizationContext syncContext, java.util.concurrent.ScheduledExecutorService scheduledExecutorService, io.grpc.internal.BackoffPolicy.Provider backoffPolicyProvider, com.google.common.base.Supplier<com.google.common.base.Stopwatch> stopwatchSupplier)
-
-
Method Detail
-
lrsStreamIsNull
public boolean lrsStreamIsNull()
-
startLoadReporting
public void startLoadReporting()
Establishes load reporting communication and negotiates with traffic director to report load stats periodically. Calling this method on an already startedLoadReportClient
is no-op.
-
stopLoadReporting
public void stopLoadReporting()
Terminates load reporting. Calling this method on an already stoppedLoadReportClient
is no-op.
-
startLrsRpc
private void startLrsRpc()
-
-