Class MailboxMetricsController
- java.lang.Object
-
- org.apache.flink.streaming.runtime.tasks.mailbox.MailboxMetricsController
-
@Internal public class MailboxMetricsController extends Object
Mailbox metrics controller class. The use of mailbox metrics, in particular scheduling latency measurements that require aTimerService, induce (cyclic) dependencies betweenMailboxProcessorandStreamTask. An instance of this class contains and gives control over these dependencies.
-
-
Field Summary
Fields Modifier and Type Field Description intdefaultLatencyMeasurementIntervalDefault timer interval in milliseconds for triggering mailbox latency measurement.
-
Constructor Summary
Constructors Constructor Description MailboxMetricsController(org.apache.flink.metrics.Histogram latencyHistogram, org.apache.flink.metrics.Counter mailCounter)Creates instance ofMailboxMetricsControllerwith references to metrics provided as parameters.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description org.apache.flink.metrics.CountergetMailCounter()GetsCounterfor number of mails processed.booleanisLatencyMeasurementSetup()Indicates if latency measurement has been setup.booleanisLatencyMeasurementStarted()Indicates if latency mesurement has been started.voidmeasureMailboxLatency()voidsetLatencyMeasurementInterval(int measurementInterval)voidsetupLatencyMeasurement(TimerService timerService, org.apache.flink.api.common.operators.MailboxExecutor mailboxExecutor)Sets up latency measurement with requiredTimerServiceandMailboxExecutor.voidstartLatencyMeasurement()Starts mailbox latency measurement.
-
-
-
Field Detail
-
defaultLatencyMeasurementInterval
public final int defaultLatencyMeasurementInterval
Default timer interval in milliseconds for triggering mailbox latency measurement.- See Also:
- Constant Field Values
-
-
Constructor Detail
-
MailboxMetricsController
public MailboxMetricsController(org.apache.flink.metrics.Histogram latencyHistogram, org.apache.flink.metrics.Counter mailCounter)Creates instance ofMailboxMetricsControllerwith references to metrics provided as parameters.- Parameters:
latencyHistogram- Histogram of mailbox latency measurements.mailCounter- Counter for number of mails processed.
-
-
Method Detail
-
setupLatencyMeasurement
public void setupLatencyMeasurement(TimerService timerService, org.apache.flink.api.common.operators.MailboxExecutor mailboxExecutor)
Sets up latency measurement with requiredTimerServiceandMailboxExecutor.Note: For each instance, latency measurement can be set up only once.
- Parameters:
timerService-TimerServiceused for latency measurement.mailboxExecutor-MailboxExecutorused for latency measurement.
-
startLatencyMeasurement
public void startLatencyMeasurement()
Starts mailbox latency measurement. This requires setup of latency measurement viasetupLatencyMeasurement(TimerService, MailboxExecutor). Latency is measured through execution of a mail that is triggered by default in the interval defined bydefaultLatencyMeasurementInterval.Note: For each instance, latency measurement can be started only once.
-
isLatencyMeasurementStarted
public boolean isLatencyMeasurementStarted()
Indicates if latency mesurement has been started.- Returns:
- True if latency measurement has been started.
-
isLatencyMeasurementSetup
public boolean isLatencyMeasurementSetup()
Indicates if latency measurement has been setup.- Returns:
- True if latency measurement has been setup.
-
getMailCounter
public org.apache.flink.metrics.Counter getMailCounter()
GetsCounterfor number of mails processed.- Returns:
Counterfor number of mails processed.
-
setLatencyMeasurementInterval
@VisibleForTesting public void setLatencyMeasurementInterval(int measurementInterval)
-
measureMailboxLatency
@VisibleForTesting public void measureMailboxLatency()
-
-