Package com.linkedin.venice.client.stats
Class BasicClientStats
java.lang.Object
com.linkedin.venice.stats.AbstractVeniceStats
com.linkedin.venice.stats.AbstractVeniceHttpStats
com.linkedin.venice.client.stats.BasicClientStats
- Direct Known Subclasses:
ClientStats
This class offers some base metrics for clients currently used
by thin, fast and DaVinci clients.
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic enumstatic enumMetric names for tehuti metrics used in this class. -
Field Summary
FieldsModifier and TypeFieldDescriptionprotected final io.opentelemetry.api.common.Attributesprotected final Map<VeniceMetricsDimensions,String> static final Collection<MetricEntity>protected final ClientTypeprotected final VeniceOpenTelemetryMetricsRepositoryFields inherited from class com.linkedin.venice.stats.AbstractVeniceStats
DELIMITER -
Constructor Summary
ConstructorsModifierConstructorDescriptionprotectedBasicClientStats(io.tehuti.metrics.MetricsRepository metricsRepository, String storeName, RequestType requestType, ClientType clientType) -
Method Summary
Modifier and TypeMethodDescriptionvoidemitHealthyRequestMetricsForDavinciClient(double latency) voidemitHealthyRequestMetricsNonDavinciClient(double latency, int successfulKeyCount, int requestedKeyCount) Records healthy request metrics, bucketing thecall_timeOTel metric by the originally-requested key count (not the successful count).protected booleanvoidemitUnhealthyRequestMetricsForDavinciClient(double latency) voidemitUnhealthyRequestMetricsNonDavinciClient(double latency, int httpStatus, int requestedKeyCount) voidemitUnhealthyRequestMetricsNonDavinciClient(double latency, Throwable throwable, int requestedKeyCount) protected io.opentelemetry.api.common.Attributesstatic BasicClientStatsgetClientStats(io.tehuti.metrics.MetricsRepository metricsRepository, String storeName, RequestType requestType, ClientConfig clientConfig, ClientType clientType) static intgetHealthyRequestHttpStatus(int numSuccessfulKeys) Get the HTTP status code for healthy requests based on the number of successful keys as both null and valid values are considered healthy in Venice.static List<Class<? extends ModuleMetricEntityInterface>>Returns the enum classes that composeCLIENT_METRIC_ENTITIES.protected final io.tehuti.metrics.stats.Ratestatic intgetSuccessfulKeyCount(Object value) Get the number of successful keys from the value.protected final io.tehuti.metrics.stats.Ratestatic intgetUnhealthyRequestHttpStatus(Throwable throwable) Get the HTTP status code for unhealthy requests based on the throwable.voidrecordRequestKeyCount(int keyCount) voidrecordResponseKeyCount(int keyCount) Methods inherited from class com.linkedin.venice.stats.AbstractVeniceHttpStats
getFullMetricName, getRequestType, registerSensor, registerSensor, registerSensor, registerSensorWithDetailedPercentilesMethods inherited from class com.linkedin.venice.stats.AbstractVeniceStats
avgAndMax, avgAndTotal, getMetricFullName, getMetricsRepository, getName, getSensorFullName, getSensorFullName, isTotalStats, minAndMax, registerOnlyTotalRate, registerOnlyTotalSensor, registerPerStoreAndTotal, registerPerStoreAndTotalSensor, registerSensor, registerSensorAttributeGauge, registerSensorIfAbsent, registerSensorIfAbsent, registerSensorIfAbsent, registerSensorWithAggregate, registerSensorWithAggregate, unregisterAllSensors
-
Field Details
-
CLIENT_METRIC_ENTITIES
-
baseDimensionsMap
-
baseAttributes
protected final io.opentelemetry.api.common.Attributes baseAttributes -
otelRepository
-
clientType
-
-
Constructor Details
-
BasicClientStats
protected BasicClientStats(io.tehuti.metrics.MetricsRepository metricsRepository, String storeName, RequestType requestType, ClientType clientType)
-
-
Method Details
-
getMetricEntityEnumClasses
Returns the enum classes that composeCLIENT_METRIC_ENTITIES. This is the single source of truth used by both production aggregation and tests. -
getClientStats
public static BasicClientStats getClientStats(io.tehuti.metrics.MetricsRepository metricsRepository, String storeName, RequestType requestType, ClientConfig clientConfig, ClientType clientType) -
emitHealthyRequestMetricsNonDavinciClient
public void emitHealthyRequestMetricsNonDavinciClient(double latency, int successfulKeyCount, int requestedKeyCount) Records healthy request metrics, bucketing thecall_timeOTel metric by the originally-requested key count (not the successful count). -
emitUnhealthyRequestMetricsNonDavinciClient
public void emitUnhealthyRequestMetricsNonDavinciClient(double latency, int httpStatus, int requestedKeyCount) -
emitUnhealthyRequestMetricsNonDavinciClient
public void emitUnhealthyRequestMetricsNonDavinciClient(double latency, Throwable throwable, int requestedKeyCount) -
emitHealthyRequestMetricsForDavinciClient
public void emitHealthyRequestMetricsForDavinciClient(double latency) -
emitUnhealthyRequestMetricsForDavinciClient
public void emitUnhealthyRequestMetricsForDavinciClient(double latency) -
recordRequestKeyCount
public void recordRequestKeyCount(int keyCount) -
recordResponseKeyCount
public void recordResponseKeyCount(int keyCount) -
getRequestRate
protected final io.tehuti.metrics.stats.Rate getRequestRate() -
getSuccessRequestKeyCountRate
protected final io.tehuti.metrics.stats.Rate getSuccessRequestKeyCountRate() -
getHealthyRequestHttpStatus
public static int getHealthyRequestHttpStatus(int numSuccessfulKeys) Get the HTTP status code for healthy requests based on the number of successful keys as both null and valid values are considered healthy in Venice.- Parameters:
numSuccessfulKeys-- Returns:
HttpStatus
-
getSuccessfulKeyCount
Get the number of successful keys from the value.- Parameters:
value-- Returns:
- The number of successful keys.
-
getUnhealthyRequestHttpStatus
Get the HTTP status code for unhealthy requests based on the throwable.- Parameters:
throwable-- Returns:
HttpStatus
-
getBaseAttributes
protected io.opentelemetry.api.common.Attributes getBaseAttributes() -
emitOpenTelemetryMetrics
protected boolean emitOpenTelemetryMetrics()
-