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.AsyncMetricEntityState
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.AsyncMetricEntityState
AsyncMetricEntityState.TehutiSensorRegistrationFunction -
Field Summary
Fields inherited from class com.linkedin.venice.stats.metrics.AsyncMetricEntityState
metricEntity, otelMetric, otelRepository, tehutiSensor -
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, AsyncMetricEntityState.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.AttributesgetAttributes(E1 dimension1, E2 dimension2, E3 dimension3) Manages the nested EnumMap structure for lazy initialization of Attributes.visible for testingvoidvoidMethods inherited from class com.linkedin.venice.stats.metrics.MetricEntityState
recordOtelMetricMethods inherited from class com.linkedin.venice.stats.metrics.AsyncMetricEntityState
getTehutiSensor, 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, AsyncMetricEntityState.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
-