Class PushJobStatusStats

java.lang.Object
com.linkedin.venice.stats.AbstractVeniceStats
com.linkedin.venice.controller.stats.PushJobStatusStats

public class PushJobStatusStats extends AbstractVeniceStats
  • Constructor Details

    • PushJobStatusStats

      public PushJobStatusStats(io.tehuti.metrics.MetricsRepository metricsRepository, String name)
  • Method Details

    • recordBatchPushSuccessSensor

      public void recordBatchPushSuccessSensor(String storeName)
    • recordBatchPushFailureDueToUserErrorSensor

      public void recordBatchPushFailureDueToUserErrorSensor(String storeName)
    • recordBatchPushFailureNotDueToUserErrorSensor

      public void recordBatchPushFailureNotDueToUserErrorSensor(String storeName)
    • recordIncrementalPushSuccessSensor

      public void recordIncrementalPushSuccessSensor(String storeName)
    • recordIncrementalPushFailureDueToUserErrorSensor

      public void recordIncrementalPushFailureDueToUserErrorSensor(String storeName)
    • recordIncrementalPushFailureNotDueToUserErrorSensor

      public void recordIncrementalPushFailureNotDueToUserErrorSensor(String storeName)
    • recordDataWriterSinkWriteTime

      public void recordDataWriterSinkWriteTime(String storeName, Version.PushType pushType, VenicePushJobDataWriterSink sink, long timeMs)
      Record how long a terminal push's data-writer tasks spent writing to one of the two sinks.

      timeMs is the sum of the per-task wall-clock durations reported by the push job, not the push's own wall-clock duration. Negative values mean the push did not report the duration (older push job or no dual write configured) and are dropped rather than recorded as a bogus observation. Callers are responsible for invoking this at most once per push per sink; see the dedup in VeniceHelixAdmin#emitPushJobStatusMetrics.

    • recordExternalStorageWriteFailure

      public void recordExternalStorageWriteFailure(String storeName, String regionName)
      Record that a push exhausted its external-storage write retries in regionName and that the region's version storage mode was consequently failed open to INTERNAL. This is a counter rather than a duration: it exists to be alerted on, since the push itself still succeeds and would otherwise look healthy.

      Emitted by the controller of the affected region, once per region per accepted downgrade. Push type is deliberately not a dimension because the controller applying the downgrade does not know it, and neither push id nor version number are dimensions because they are unbounded.