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 Eprotected Iterable<MetricAttributesData>Returns an iterable of all MetricAttributesData for observable counter reporting.io.opentelemetry.api.common.AttributesgetAttributes(E1 dimension1, E2 dimension2, E3 dimension3) visible for testingvoidRecords a value for the given dimensions.voidMethods inherited from class com.linkedin.venice.stats.metrics.MetricEntityState
isObservableCounter, record, record, recordOtelMetric, recordOtelMetric, registerObservableCounterIfNeededMethods 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
-
record
public void record(double value, @Nonnull E1 dimension1, @Nonnull E2 dimension2, @Nonnull E3 dimension3) Records a value for the given dimensions.For
MetricType.ASYNC_COUNTER_FOR_HIGH_PERF_CASESmetrics, this uses the internal LongAdder for fast, contention-free recording. The accumulated value is read during OTel's collection callback.For other metric types, this delegates to the parent class's record method.
-
record
-
getAllMetricAttributesData
Description copied from class:MetricEntityStateReturns an iterable of all MetricAttributesData for observable counter reporting. Subclasses must implement this to provide iteration over their specific EnumMap structure. Returns null if metrics are not enabled or no data exists.- Specified by:
getAllMetricAttributesDatain classMetricEntityState
-
getMetricAttributesDataEnumMap
visible for testing
-