Class MetricEntityStateOneEnum<E extends Enum<E> & VeniceDimensionInterface>

java.lang.Object
com.linkedin.venice.stats.metrics.MetricEntityState
com.linkedin.venice.stats.metrics.MetricEntityStateOneEnum<E>

public class MetricEntityStateOneEnum<E extends Enum<E> & VeniceDimensionInterface> extends MetricEntityState
This version of MetricEntityState is used when the metric entity has one dynamic dimension which is an Enum implementing VeniceDimensionInterface. The base dimensions that are common for all invocation of this instance are passed in the constructor which is used along with all possible values for the dynamic dimensions to create an EnumMap of Attributes for each possible value of the dynamic dimension. These attributes are used during every record() call, the key to the EnumMap being the value of the dynamic dimension. EnumMap is used here as it is more efficient than HashMap as it is backed by an array and does not require hashing of the keys resulting in constant time complexity for get() and put() operations.