Class MailboxMetricsController
java.lang.Object
org.apache.flink.streaming.runtime.tasks.mailbox.MailboxMetricsController
Mailbox metrics controller class. The use of mailbox metrics, in particular scheduling latency
measurements that require a
TimerService, induce (cyclic) dependencies between MailboxProcessor and StreamTask. An instance of
this class contains and gives control over these dependencies.-
Field Summary
FieldsModifier and TypeFieldDescriptionfinal intDefault timer interval in milliseconds for triggering mailbox latency measurement. -
Constructor Summary
ConstructorsConstructorDescriptionMailboxMetricsController(org.apache.flink.metrics.Histogram latencyHistogram, org.apache.flink.metrics.Counter mailCounter) Creates instance ofMailboxMetricsControllerwith references to metrics provided as parameters. -
Method Summary
Modifier and TypeMethodDescriptionorg.apache.flink.metrics.CounterGetsCounterfor number of mails processed.booleanIndicates if latency measurement has been setup.booleanIndicates if latency mesurement has been started.voidvoidsetLatencyMeasurementInterval(int measurementInterval) voidsetupLatencyMeasurement(TimerService timerService, org.apache.flink.api.common.operators.MailboxExecutor mailboxExecutor) Sets up latency measurement with requiredTimerServiceandMailboxExecutor.voidStarts mailbox latency measurement.
-
Field Details
-
defaultLatencyMeasurementInterval
public final int defaultLatencyMeasurementIntervalDefault timer interval in milliseconds for triggering mailbox latency measurement.- See Also:
-
-
Constructor Details
-
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 Details
-
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()
-