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 betweenMailboxProcessor
andStreamTask
. An instance of this class contains and gives control over these dependencies.
-
-
Field Summary
Fields Modifier and Type Field Description int
defaultLatencyMeasurementInterval
Default 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 ofMailboxMetricsController
with references to metrics provided as parameters.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description org.apache.flink.metrics.Counter
getMailCounter()
GetsCounter
for number of mails processed.boolean
isLatencyMeasurementSetup()
Indicates if latency measurement has been setup.boolean
isLatencyMeasurementStarted()
Indicates if latency mesurement has been started.void
measureMailboxLatency()
void
setLatencyMeasurementInterval(int measurementInterval)
void
setupLatencyMeasurement(TimerService timerService, org.apache.flink.api.common.operators.MailboxExecutor mailboxExecutor)
Sets up latency measurement with requiredTimerService
andMailboxExecutor
.void
startLatencyMeasurement()
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 ofMailboxMetricsController
with 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 requiredTimerService
andMailboxExecutor
.Note: For each instance, latency measurement can be set up only once.
- Parameters:
timerService
-TimerService
used for latency measurement.mailboxExecutor
-MailboxExecutor
used 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()
GetsCounter
for number of mails processed.- Returns:
Counter
for number of mails processed.
-
setLatencyMeasurementInterval
@VisibleForTesting public void setLatencyMeasurementInterval(int measurementInterval)
-
measureMailboxLatency
@VisibleForTesting public void measureMailboxLatency()
-
-