Class AsyncMetricEntityStateOneEnum<E extends Enum<E> & VeniceDimensionInterface>
java.lang.Object
com.linkedin.venice.stats.metrics.AsyncMetricEntityStateOneEnum<E>
public class AsyncMetricEntityStateOneEnum<E extends Enum<E> & VeniceDimensionInterface>
extends Object
This class is used when the async metric (ASYNC_GAUGE) has one dynamic dimension which is an
Enum implementing VeniceDimensionInterface.
For each enum value, a separate AsyncMetricEntityStateBase is created with its own callback.
This allows polling different values based on the dimension (e.g., different VersionRole values).
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.-
Method Summary
Modifier and TypeMethodDescriptionstatic <E extends Enum<E> & VeniceDimensionInterface>
AsyncMetricEntityStateOneEnum<E>create(MetricEntity metricEntity, VeniceOpenTelemetryMetricsRepository otelRepository, Map<VeniceMetricsDimensions, String> baseDimensionsMap, Class<E> enumTypeClass, Function<E, LongSupplier> callbackProvider) Factory method to create an AsyncMetricEntityStateOneEnum.booleanReturns whether OTel metrics are being emitted.getMetricState(E enumValue) Gets the underlying AsyncMetricEntityStateBase for a specific enum value.Visible for testing
-
Method Details
-
create
public static <E extends Enum<E> & VeniceDimensionInterface> AsyncMetricEntityStateOneEnum<E> create(MetricEntity metricEntity, VeniceOpenTelemetryMetricsRepository otelRepository, Map<VeniceMetricsDimensions, String> baseDimensionsMap, Class<E> enumTypeClass, Function<E, LongSupplier> callbackProvider) Factory method to create an AsyncMetricEntityStateOneEnum.- Parameters:
metricEntity- The metric entity definitionotelRepository- The OTel repository for metric registrationbaseDimensionsMap- Base dimensions common to all enum valuesenumTypeClass- The enum class for the dynamic dimensioncallbackProvider- Function that provides a LongSupplier callback for each enum value- Returns:
- A new AsyncMetricEntityStateOneEnum instance
-
emitOpenTelemetryMetrics
public boolean emitOpenTelemetryMetrics()Returns whether OTel metrics are being emitted. -
getMetricState
Gets the underlying AsyncMetricEntityStateBase for a specific enum value. Useful for testing or advanced use cases. -
getMetricStatesByEnum
Visible for testing
-