Class MailboxMetricsController


  • @Internal
    public class MailboxMetricsController
    extends Object
    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 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 of MailboxMetricsController 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 required TimerService and MailboxExecutor.

        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.
      • 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()
        Gets Counter for number of mails processed.
        Returns:
        Counter for number of mails processed.
      • setLatencyMeasurementInterval

        @VisibleForTesting
        public void setLatencyMeasurementInterval​(int measurementInterval)
      • measureMailboxLatency

        @VisibleForTesting
        public void measureMailboxLatency()