Package io.grpc.xds.client
Class LoadReportClient
- java.lang.Object
-
- io.grpc.xds.client.LoadReportClient
-
@Internal public final class LoadReportClient extends java.lang.ObjectClient 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 classLoadReportClient.LoadReportingTaskprivate classLoadReportClient.LrsRpcRetryTaskprivate classLoadReportClient.LrsStream
-
Field Summary
Fields Modifier and Type Field Description private io.grpc.internal.BackoffPolicy.ProviderbackoffPolicyProviderLoadStatsManager2loadStatsManagerprivate XdsLoggerloggerprivate io.grpc.InternalLogIdlogIdprivate io.grpc.internal.BackoffPolicylrsRpcRetryPolicyprivate io.grpc.SynchronizationContext.ScheduledHandlelrsRpcRetryTimerprivate LoadReportClient.LrsStreamlrsStreamprivate static io.grpc.MethodDescriptor<LoadStatsRequest,LoadStatsResponse>methodprivate EnvoyProtoData.Nodenodeprivate com.google.common.base.StopwatchretryStopwatchprivate booleanstartedprivate io.grpc.SynchronizationContextsyncContextprivate java.util.concurrent.ScheduledExecutorServicetimerServiceprivate XdsTransportFactory.XdsTransportxdsTransport
-
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 booleanlrsStreamIsNull()voidstartLoadReporting()Establishes load reporting communication and negotiates with traffic director to report load stats periodically.private voidstartLrsRpc()voidstopLoadReporting()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 startedLoadReportClientis no-op.
-
stopLoadReporting
public void stopLoadReporting()
Terminates load reporting. Calling this method on an already stoppedLoadReportClientis no-op.
-
startLrsRpc
private void startLrsRpc()
-
-