Package io.grpc.xds.client
Class LoadStatsManager2.ClusterLocalityStats
- java.lang.Object
-
- io.grpc.xds.client.LoadStatsManager2.ClusterLocalityStats
-
- Enclosing class:
- LoadStatsManager2
@ThreadSafe public final class LoadStatsManager2.ClusterLocalityStats extends java.lang.Object
Recorder for client loads. One instance per locality (in cluster with edsService).
-
-
Field Summary
Fields Modifier and Type Field Description private java.util.concurrent.atomic.AtomicLong
callsFailed
private java.util.concurrent.atomic.AtomicLong
callsInProgress
private java.util.concurrent.atomic.AtomicLong
callsIssued
private java.util.concurrent.atomic.AtomicLong
callsSucceeded
private java.lang.String
clusterName
private java.lang.String
edsServiceName
private java.util.Map<java.lang.String,Stats.BackendLoadMetricStats>
loadMetricStatsMap
private Locality
locality
private com.google.common.base.Stopwatch
stopwatch
-
Constructor Summary
Constructors Modifier Constructor Description private
ClusterLocalityStats(java.lang.String clusterName, java.lang.String edsServiceName, Locality locality, com.google.common.base.Stopwatch stopwatch)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
recordBackendLoadMetricStats(java.util.Map<java.lang.String,java.lang.Double> namedMetrics)
Records all custom named backend load metric stats for per-call load reporting.void
recordCallFinished(io.grpc.Status status)
Records a request finished with the given status.void
recordCallStarted()
Records a request being issued.void
release()
Release the hard reference for this stats object (previously obtained viaLoadStatsManager2.getClusterLocalityStats(java.lang.String, java.lang.String, io.grpc.xds.client.Locality)
).private LoadStatsManager2.ClusterLocalityStatsSnapshot
snapshot()
-
-
-
Field Detail
-
clusterName
private final java.lang.String clusterName
-
edsServiceName
@Nullable private final java.lang.String edsServiceName
-
locality
private final Locality locality
-
stopwatch
private final com.google.common.base.Stopwatch stopwatch
-
callsInProgress
private final java.util.concurrent.atomic.AtomicLong callsInProgress
-
callsSucceeded
private final java.util.concurrent.atomic.AtomicLong callsSucceeded
-
callsFailed
private final java.util.concurrent.atomic.AtomicLong callsFailed
-
callsIssued
private final java.util.concurrent.atomic.AtomicLong callsIssued
-
loadMetricStatsMap
private java.util.Map<java.lang.String,Stats.BackendLoadMetricStats> loadMetricStatsMap
-
-
Constructor Detail
-
ClusterLocalityStats
private ClusterLocalityStats(java.lang.String clusterName, @Nullable java.lang.String edsServiceName, Locality locality, com.google.common.base.Stopwatch stopwatch)
-
-
Method Detail
-
recordCallStarted
public void recordCallStarted()
Records a request being issued.
-
recordCallFinished
public void recordCallFinished(io.grpc.Status status)
Records a request finished with the given status.
-
recordBackendLoadMetricStats
public void recordBackendLoadMetricStats(java.util.Map<java.lang.String,java.lang.Double> namedMetrics)
Records all custom named backend load metric stats for per-call load reporting. For each metric keyname
, creates a newStats.BackendLoadMetricStats
with a finished requests counter of 1 and thevalue
if the key is not present in the map. Otherwise, increments the finished requests counter and adds thevalue
to the existingStats.BackendLoadMetricStats
.
-
release
public void release()
Release the hard reference for this stats object (previously obtained viaLoadStatsManager2.getClusterLocalityStats(java.lang.String, java.lang.String, io.grpc.xds.client.Locality)
). The object may still be recording loads after this method, but there is no guarantee loads recorded after this point will be included in load reports.
-
snapshot
private LoadStatsManager2.ClusterLocalityStatsSnapshot snapshot()
-
-