Class LoggingTrackingStoreClient<K,V>

Type Parameters:
K - the type of keys used by the store client
V - the type of values returned by the store client
All Implemented Interfaces:
AvroGenericReadComputeStoreClient<K,V>, AvroGenericStoreClient<K,V>, Closeable, AutoCloseable
Direct Known Subclasses:
SpecificLoggingTrackingStoreClient

public class LoggingTrackingStoreClient<K,V> extends DelegatingStoreClient<K,V>
This class is a client wrapper that adds logging and tracking capabilities to store client operations. The class is intended to be used when ClientConfig.isStatTrackingEnabled() is set to false. It will try to log exceptions and high latency requests with rate limiting. It is not intended to be used in production environments where performance and metric monitoring is critical.

This class extends DelegatingStoreClient to encapsulate an internal store client and override its key operations such as get, getRaw, batchGet, and streamingBatchGet with additional logging and tracking functionality. It captures the latency of operations and logs warnings when the latency exceeds predefined thresholds.

It also handles exceptions by logging unhealthy requests and rethrowing the exceptions for further handling.