Class AsyncMetricEntityState
java.lang.Object
com.linkedin.venice.stats.metrics.AsyncMetricEntityState
- Direct Known Subclasses:
AsyncMetricEntityStateBase,MetricEntityState
Abstract operational state of a metric entity. Subclassed by:
AsyncMetricEntityStateBase— async gauge with a fixed attribute set (no dynamic dimensions).MetricEntityState— non-async metrics (sync counter, histogram, gauge) and observable counters. Provides therecord()API.
AsyncMetricEntityStateOneEnum /
AsyncMetricEntityStateTwoEnums instead — these register a single multi-emit observable
gauge per metric entity and do not subclass this base.
This class holds:
- Whether OTel is enabled.
- The
MetricEntitydefinition. - At most one OTel instrument (stored in
otelMetric). - At most one Tehuti sensor. When one OTel metric corresponds to multiple Tehuti sensors (e.g., two Tehuti sensors mapped to a single OTel metric via a dimension), there are multiple instances of this class each with the same OTel instrument handle but a different Tehuti sensor.
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic interfacecreate the metrics/Sensors -
Field Summary
FieldsModifier and TypeFieldDescriptionprotected final MetricEntityprotected ObjectOtel metricprotected final VeniceOpenTelemetryMetricsRepositoryprotected io.tehuti.metrics.SensorRespective tehuti metric -
Constructor Summary
ConstructorsConstructorDescriptionAsyncMetricEntityState(MetricEntity metricEntity, VeniceOpenTelemetryMetricsRepository otelRepository, Map<VeniceMetricsDimensions, String> baseDimensionsMap, AsyncMetricEntityState.TehutiSensorRegistrationFunction registerTehutiSensorFn, TehutiMetricNameEnum tehutiMetricNameEnum, List<io.tehuti.metrics.MeasurableStat> tehutiMetricStats, DoubleSupplier asyncDoubleCallback, io.opentelemetry.api.common.Attributes asyncAttributes) Constructor forMetricType.ASYNC_DOUBLE_GAUGEmetrics that use aDoubleSuppliercallback.AsyncMetricEntityState(MetricEntity metricEntity, VeniceOpenTelemetryMetricsRepository otelRepository, Map<VeniceMetricsDimensions, String> baseDimensionsMap, AsyncMetricEntityState.TehutiSensorRegistrationFunction registerTehutiSensorFn, TehutiMetricNameEnum tehutiMetricNameEnum, List<io.tehuti.metrics.MeasurableStat> tehutiMetricStats, LongSupplier asyncCallback, io.opentelemetry.api.common.Attributes asyncAttributes) -
Method Summary
Modifier and TypeMethodDescriptionio.tehuti.metrics.SensorvoidsetOtelMetric(Object otelMetric) voidsetTehutiSensor(io.tehuti.metrics.Sensor tehutiSensor)
-
Field Details
-
otelRepository
-
metricEntity
-
otelMetric
Otel metric -
tehutiSensor
protected io.tehuti.metrics.Sensor tehutiSensorRespective tehuti metric
-
-
Constructor Details
-
AsyncMetricEntityState
public AsyncMetricEntityState(MetricEntity metricEntity, VeniceOpenTelemetryMetricsRepository otelRepository, Map<VeniceMetricsDimensions, String> baseDimensionsMap, AsyncMetricEntityState.TehutiSensorRegistrationFunction registerTehutiSensorFn, TehutiMetricNameEnum tehutiMetricNameEnum, List<io.tehuti.metrics.MeasurableStat> tehutiMetricStats, LongSupplier asyncCallback, io.opentelemetry.api.common.Attributes asyncAttributes) -
AsyncMetricEntityState
public AsyncMetricEntityState(MetricEntity metricEntity, VeniceOpenTelemetryMetricsRepository otelRepository, Map<VeniceMetricsDimensions, String> baseDimensionsMap, AsyncMetricEntityState.TehutiSensorRegistrationFunction registerTehutiSensorFn, TehutiMetricNameEnum tehutiMetricNameEnum, List<io.tehuti.metrics.MeasurableStat> tehutiMetricStats, DoubleSupplier asyncDoubleCallback, io.opentelemetry.api.common.Attributes asyncAttributes) Constructor forMetricType.ASYNC_DOUBLE_GAUGEmetrics that use aDoubleSuppliercallback.
-
-
Method Details
-
setOtelMetric
-
setTehutiSensor
public void setTehutiSensor(io.tehuti.metrics.Sensor tehutiSensor) -
getTehutiSensor
public io.tehuti.metrics.Sensor getTehutiSensor() -
getOtelMetric
-