Enum Class VeniceAdaptiveThrottlerType

java.lang.Object
java.lang.Enum<VeniceAdaptiveThrottlerType>
com.linkedin.venice.stats.dimensions.VeniceAdaptiveThrottlerType
All Implemented Interfaces:
VeniceDimensionInterface, Serializable, Comparable<VeniceAdaptiveThrottlerType>, Constable

public enum VeniceAdaptiveThrottlerType extends Enum<VeniceAdaptiveThrottlerType> implements VeniceDimensionInterface
Dimension enum for adaptive throttler types. AdaptiveThrottlingServiceStats eagerly creates a joint Tehuti+OTel metric state for every enum value at construction time. The enum constant name (lowercased) is used as the OTel dimension value.

Each throttler type carries a MetricUnit indicating what it measures: MetricUnit.NUMBER for record-count throttlers and MetricUnit.BYTES for bandwidth throttlers. This is used by AdaptiveThrottlingServiceStats to route recordings to the appropriate OTel metric entity (RECORD_COUNT vs BYTE_COUNT).

Only MetricUnit.NUMBER and MetricUnit.BYTES are currently supported. Adding a new unit requires updating AdaptiveThrottlingServiceStats.getMetricEntityForType().

  • Enum Constant Details

  • Method Details

    • values

      public static VeniceAdaptiveThrottlerType[] values()
      Returns an array containing the constants of this enum class, in the order they are declared.
      Returns:
      an array containing the constants of this enum class, in the order they are declared
    • valueOf

      public static VeniceAdaptiveThrottlerType valueOf(String name)
      Returns the enum constant of this class with the specified name. The string must match exactly an identifier used to declare an enum constant in this class. (Extraneous whitespace characters are not permitted.)
      Parameters:
      name - the name of the enum constant to be returned.
      Returns:
      the enum constant with the specified name
      Throws:
      IllegalArgumentException - if this enum class has no constant with the specified name
      NullPointerException - if the argument is null
    • getMetricUnit

      public MetricUnit getMetricUnit()
      Returns MetricUnit.NUMBER for record-count throttlers, MetricUnit.BYTES for bandwidth.
    • getDimensionName

      public VeniceMetricsDimensions getDimensionName()
      Description copied from interface: VeniceDimensionInterface
      Dimension name: Returns the VeniceMetricsDimensions for the enum. All the instances of a Enum class should have the same dimension name. Ideally this could have been a static variable/method in the Enum class, but to enforce having this method via this interface, it is made as a non-static method.
      Specified by:
      getDimensionName in interface VeniceDimensionInterface