Package com.linkedin.venice.router.stats
Class RouterHttpRequestStats
java.lang.Object
com.linkedin.venice.stats.AbstractVeniceStats
com.linkedin.venice.stats.AbstractVeniceHttpStats
com.linkedin.venice.router.stats.RouterHttpRequestStats
-
Field Summary
Fields inherited from class com.linkedin.venice.stats.AbstractVeniceStats
DELIMITER -
Constructor Summary
ConstructorsConstructorDescriptionRouterHttpRequestStats(io.tehuti.metrics.MetricsRepository metricsRepository, String storeName, String clusterName, RequestType requestType, ScatterGatherStats scatterGatherStats, boolean isKeyValueProfilingEnabled, io.tehuti.metrics.Sensor totalInFlightRequestSensor) -
Method Summary
Modifier and TypeMethodDescriptionvoidvoidrecordBadRequest(io.netty.handler.codec.http.HttpResponseStatus responseStatus) voidrecordCompressedResponseSize(double compressedResponseSize) voidrecordDecompressedResponseSize(double decompressedResponseSize) voidrecordDecompressionTime(double decompressionTime) voidvoidvoidvoidvoidrecordFanoutRequestCount(int count) voidvoidrecordHealthyRequest(double latency, io.netty.handler.codec.http.HttpResponseStatus responseStatus, int keyNum) voidrecordIncomingBadRequestKeyCountMetric(io.netty.handler.codec.http.HttpResponseStatus responseStatus, int keyNum) voidrecordIncomingKeyCountMetric(int keyNum) voidWe record this at the beginning of request handling, so we don't know the latency yet...voidrecordKeySizeInByte(long keySize) voidrecordLatency(double latency) voidvoidrecordMultiGetFallback(int keyCount) voidvoidrecordQuota(double quota) voidrecordReadQuotaUsage(int quotaUsage) Record read quota usage based on healthy KPS.voidrecordRequestParsingLatency(double latency) voidrecordRequestRoutingLatency(double latency) voidrecordRequestSize(double requestSize) voidvoidrecordRequestUsage(int usage) voidvoidrecordResponseSize(double responseSize) voidrecordResponseWaitingTime(double waitingTime) voidrecordRetryDelay(double delay) voidvoidrecordRetryTriggeredSensorOtel(RequestRetryType retryType) voidvoidrecordTardyRequest(double latency, io.netty.handler.codec.http.HttpResponseStatus responseStatus, int keyNum) voidrecordThrottledRequest(double latency, io.netty.handler.codec.http.HttpResponseStatus responseStatus, int keyNum) voidrecordThrottledRequest(io.netty.handler.codec.http.HttpResponseStatus responseStatus) Once we stop reporting throttled requests inRouterExceptionAndTrackingUtils, and we only report them inVeniceResponseAggregatorthen we will always have a latency and we'll be able to remove this overload.voidvoidvoidrecordUnhealthyRequest(double latency, io.netty.handler.codec.http.HttpResponseStatus responseStatus, int keyNum) voidrecordUnhealthyRequest(io.netty.handler.codec.http.HttpResponseStatus responseStatus) protected io.tehuti.metrics.SensorregisterSensor(String sensorName, io.tehuti.metrics.MeasurableStat... stats) By default, this function will prepend the request type to the sensor name.Methods inherited from class com.linkedin.venice.stats.AbstractVeniceHttpStats
getFullMetricName, getRequestType, registerSensor, registerSensor, registerSensorWithDetailedPercentilesMethods inherited from class com.linkedin.venice.stats.AbstractVeniceStats
avgAndMax, avgAndTotal, getMetricFullName, getMetricsRepository, getName, getSensorFullName, getSensorFullName, isTotalStats, minAndMax, registerOnlyTotalRate, registerOnlyTotalSensor, registerPerStoreAndTotalSensor, registerSensor, registerSensorAttributeGauge, registerSensorIfAbsent, registerSensorIfAbsent, registerSensorIfAbsent, registerSensorWithAggregate, registerSensorWithAggregate, unregisterAllSensors
-
Constructor Details
-
RouterHttpRequestStats
public RouterHttpRequestStats(io.tehuti.metrics.MetricsRepository metricsRepository, String storeName, String clusterName, RequestType requestType, ScatterGatherStats scatterGatherStats, boolean isKeyValueProfilingEnabled, io.tehuti.metrics.Sensor totalInFlightRequestSensor)
-
-
Method Details
-
recordIncomingRequest
public void recordIncomingRequest()We record this at the beginning of request handling, so we don't know the latency yet... All specific types of requests also have their latencies logged at the same time. -
recordHealthyRequest
public void recordHealthyRequest(double latency, io.netty.handler.codec.http.HttpResponseStatus responseStatus, int keyNum) -
recordUnhealthyRequest
public void recordUnhealthyRequest(io.netty.handler.codec.http.HttpResponseStatus responseStatus) -
recordUnhealthyRequest
public void recordUnhealthyRequest(double latency, io.netty.handler.codec.http.HttpResponseStatus responseStatus, int keyNum) -
recordRequestSize
public void recordRequestSize(double requestSize) -
recordResponseSize
public void recordResponseSize(double responseSize) -
recordKeySizeInByte
public void recordKeySizeInByte(long keySize) -
recordReadQuotaUsage
public void recordReadQuotaUsage(int quotaUsage) Record read quota usage based on healthy KPS.- Parameters:
quotaUsage-
-
recordTardyRequest
public void recordTardyRequest(double latency, io.netty.handler.codec.http.HttpResponseStatus responseStatus, int keyNum) -
recordThrottledRequest
public void recordThrottledRequest(double latency, io.netty.handler.codec.http.HttpResponseStatus responseStatus, int keyNum) -
recordThrottledRequest
public void recordThrottledRequest(io.netty.handler.codec.http.HttpResponseStatus responseStatus) Once we stop reporting throttled requests inRouterExceptionAndTrackingUtils, and we only report them inVeniceResponseAggregatorthen we will always have a latency and we'll be able to remove this overload. TODO: Remove this overload after fixing the above. -
recordErrorRetryCount
public void recordErrorRetryCount() -
recordRetryTriggeredSensorOtel
-
recordDelayConstraintAbortedRetryCountMetric
public void recordDelayConstraintAbortedRetryCountMetric() -
recordSlowRouteAbortedRetryCountMetric
public void recordSlowRouteAbortedRetryCountMetric() -
recordRetryRouteLimitAbortedRetryCountMetric
public void recordRetryRouteLimitAbortedRetryCountMetric() -
recordNoAvailableReplicaAbortedRetryCountMetric
public void recordNoAvailableReplicaAbortedRetryCountMetric() -
recordBadRequest
public void recordBadRequest(io.netty.handler.codec.http.HttpResponseStatus responseStatus) -
recordRequestThrottledByRouterCapacity
public void recordRequestThrottledByRouterCapacity() -
recordFanoutRequestCount
public void recordFanoutRequestCount(int count) -
recordLatency
public void recordLatency(double latency) -
recordResponseWaitingTime
public void recordResponseWaitingTime(double waitingTime) -
recordCompressedResponseSize
public void recordCompressedResponseSize(double compressedResponseSize) -
recordDecompressedResponseSize
public void recordDecompressedResponseSize(double decompressedResponseSize) -
recordDecompressionTime
public void recordDecompressionTime(double decompressionTime) -
recordQuota
public void recordQuota(double quota) -
recordFindUnhealthyHostRequest
public void recordFindUnhealthyHostRequest() -
recordIncomingKeyCountMetric
public void recordIncomingKeyCountMetric(int keyNum) -
recordIncomingBadRequestKeyCountMetric
public void recordIncomingBadRequestKeyCountMetric(io.netty.handler.codec.http.HttpResponseStatus responseStatus, int keyNum) -
recordRequestUsage
public void recordRequestUsage(int usage) -
recordMultiGetFallback
public void recordMultiGetFallback(int keyCount) -
recordRequestParsingLatency
public void recordRequestParsingLatency(double latency) -
recordRequestRoutingLatency
public void recordRequestRoutingLatency(double latency) -
recordResponse
public void recordResponse() -
recordAllowedRetryRequest
public void recordAllowedRetryRequest() -
recordDisallowedRetryRequest
public void recordDisallowedRetryRequest() -
recordErrorRetryAttemptTriggeredByPendingRequestCheck
public void recordErrorRetryAttemptTriggeredByPendingRequestCheck() -
recordRetryDelay
public void recordRetryDelay(double delay) -
recordMetaStoreShadowRead
public void recordMetaStoreShadowRead() -
registerSensor
protected io.tehuti.metrics.Sensor registerSensor(String sensorName, io.tehuti.metrics.MeasurableStat... stats) Description copied from class:AbstractVeniceHttpStatsBy default, this function will prepend the request type to the sensor name.- Overrides:
registerSensorin classAbstractVeniceHttpStats
-