Class MetricEntityStateThreeEnums<E1 extends Enum<E1> & VeniceDimensionInterface,E2 extends Enum<E2> & VeniceDimensionInterface,E3 extends Enum<E3> & VeniceDimensionInterface>
java.lang.Object
com.linkedin.venice.stats.metrics.MetricEntityState
com.linkedin.venice.stats.metrics.MetricEntityStateThreeEnums<E1,E2,E3>
public class MetricEntityStateThreeEnums<E1 extends Enum<E1> & VeniceDimensionInterface,E2 extends Enum<E2> & VeniceDimensionInterface,E3 extends Enum<E3> & VeniceDimensionInterface>
extends MetricEntityState
Similar to
MetricEntityStateOneEnum
but with three dynamic dimensions and 3 level EnumMap-
Nested Class Summary
Nested classes/interfaces inherited from class com.linkedin.venice.stats.metrics.MetricEntityState
MetricEntityState.TehutiSensorRegistrationFunction
-
Method Summary
Modifier and TypeMethodDescriptionstatic <E1 extends Enum<E1> & VeniceDimensionInterface,
E2 extends Enum<E2> & VeniceDimensionInterface, E3 extends Enum<E3> & VeniceDimensionInterface>
MetricEntityStateThreeEnums<E1,E2, E3> create
(MetricEntity metricEntity, VeniceOpenTelemetryMetricsRepository otelRepository, MetricEntityState.TehutiSensorRegistrationFunction registerTehutiSensorFn, TehutiMetricNameEnum tehutiMetricNameEnum, List<io.tehuti.metrics.MeasurableStat> tehutiMetricStats, Map<VeniceMetricsDimensions, String> baseDimensionsMap, Class<E1> enumTypeClass1, Class<E2> enumTypeClass2, Class<E3> enumTypeClass3) Overloaded Factory method for constructor with Tehuti parametersstatic <E1 extends Enum<E1> & VeniceDimensionInterface,
E2 extends Enum<E2> & VeniceDimensionInterface, E3 extends Enum<E3> & VeniceDimensionInterface>
MetricEntityStateThreeEnums<E1,E2, E3> create
(MetricEntity metricEntity, VeniceOpenTelemetryMetricsRepository otelRepository, Map<VeniceMetricsDimensions, String> baseDimensionsMap, Class<E1> enumTypeClass1, Class<E2> enumTypeClass2, Class<E3> enumTypeClass3) Factory method with named parameters to ensure the passed in enumTypeClass are in the same order as Eio.opentelemetry.api.common.Attributes
getAttributes
(E1 dimension1, E2 dimension2, E3 dimension3) Manages the nested EnumMap structure for lazy initialization of Attributes.visible for testingvoid
void
Methods inherited from class com.linkedin.venice.stats.metrics.MetricEntityState
createMetric, recordOtelMetric, setOtelMetric, setTehutiSensor
-
Method Details
-
create
public static <E1 extends Enum<E1> & VeniceDimensionInterface,E2 extends Enum<E2> & VeniceDimensionInterface, MetricEntityStateThreeEnums<E1,E3 extends Enum<E3> & VeniceDimensionInterface> E2, createE3> (MetricEntity metricEntity, VeniceOpenTelemetryMetricsRepository otelRepository, Map<VeniceMetricsDimensions, String> baseDimensionsMap, Class<E1> enumTypeClass1, Class<E2> enumTypeClass2, Class<E3> enumTypeClass3) Factory method with named parameters to ensure the passed in enumTypeClass are in the same order as E -
create
public static <E1 extends Enum<E1> & VeniceDimensionInterface,E2 extends Enum<E2> & VeniceDimensionInterface, MetricEntityStateThreeEnums<E1,E3 extends Enum<E3> & VeniceDimensionInterface> E2, createE3> (MetricEntity metricEntity, VeniceOpenTelemetryMetricsRepository otelRepository, MetricEntityState.TehutiSensorRegistrationFunction registerTehutiSensorFn, TehutiMetricNameEnum tehutiMetricNameEnum, List<io.tehuti.metrics.MeasurableStat> tehutiMetricStats, Map<VeniceMetricsDimensions, String> baseDimensionsMap, Class<E1> enumTypeClass1, Class<E2> enumTypeClass2, Class<E3> enumTypeClass3) Overloaded Factory method for constructor with Tehuti parameters -
getAttributes
public io.opentelemetry.api.common.Attributes getAttributes(E1 dimension1, E2 dimension2, E3 dimension3) Manages the nested EnumMap structure for lazy initialization of Attributes. The structure is a three-level nested EnumMap: EnumMap<E1, EnumMap<E2, EnumMap<E3, Attributes>>>. This allows efficient retrieval of Attributes based on three enum dimensions (E1, E2, E3). For thread safety considerations, referMetricEntityStateOneEnum.getAttributes(E)
. -
record
-
record
-
getAttributesEnumMap
public EnumMap<E1,EnumMap<E2, getAttributesEnumMap()EnumMap<E3, io.opentelemetry.api.common.Attributes>>> visible for testing
-