Class PushMonitorUtils

java.lang.Object
com.linkedin.venice.pushmonitor.PushMonitorUtils

public class PushMonitorUtils extends Object
This class contains some common util methods for push monitoring purpose.
  • Constructor Details

    • PushMonitorUtils

      public PushMonitorUtils()
  • Method Details

    • getDaVinciPushStatusAndDetails

      public static ExecutionStatusWithDetails getDaVinciPushStatusAndDetails(PushStatusStoreReader reader, String topicName, int partitionCount, Optional<String> incrementalPushVersion, int maxOfflineInstanceCount, double maxOfflineInstanceRatio, boolean useDaVinciSpecificExecutionStatusForError)
      This method checks Da Vinci client push status for the target version from push status store and compute a final status. It will try to get an aggregated status from version level status key first; if there is value, it will still try to query the partition level keys, and combine the result with the old keys, in case DaVinci instances are partially upgraded and some of them are still populating statuses with old keys. If no value is found for the new key, it will fall back to partition level status key. A Da Vinci instance sent heartbeat to controllers recently is considered active. Only consider the push status from active Da Vinci instances unless there are too many offline instances which triggers the fail fast mechanism.
    • getDaVinciPartitionLevelPushStatusAndDetails

      public static ExecutionStatusWithDetails getDaVinciPartitionLevelPushStatusAndDetails(PushStatusStoreReader reader, String topicName, int partitionCount, Optional<String> incrementalPushVersion, int maxOfflineInstanceCount, double maxOfflineInstanceRatio, boolean useDaVinciSpecificExecutionStatusForError, Set<CharSequence> instancesToIgnore)