Class SmtpMetrics

java.lang.Object
com.mimecast.robin.smtp.metrics.SmtpMetrics

public final class SmtpMetrics extends Object
SMTP-related Micrometer metrics.

Provides counters for tracking email receipt operations including successful runs and exceptions.

  • Field Details

    • log

      private static final org.apache.logging.log4j.Logger log
    • emailReceiptStartCounter

      private static volatile io.micrometer.core.instrument.Counter emailReceiptStartCounter
    • emailReceiptSuccessCounter

      private static volatile io.micrometer.core.instrument.Counter emailReceiptSuccessCounter
    • emailReceiptLimitCounter

      private static volatile io.micrometer.core.instrument.Counter emailReceiptLimitCounter
    • emailRblRejectionCounter

      private static volatile io.micrometer.core.instrument.Counter emailRblRejectionCounter
    • emailVirusRejectionCounter

      private static volatile io.micrometer.core.instrument.Counter emailVirusRejectionCounter
    • emailSpamRejectionCounter

      private static volatile io.micrometer.core.instrument.Counter emailSpamRejectionCounter
  • Constructor Details

    • SmtpMetrics

      private SmtpMetrics()
      Private constructor for utility class.
  • Method Details

    • initialize

      public static void initialize()
      Initialize all metrics with zero values.

      This should be called during application startup to ensure metrics appear in endpoints even before any SMTP traffic is processed.

    • incrementEmailReceiptStart

      public static void incrementEmailReceiptStart()
      Increment the email receipt start counter.

      Called when an email receipt connection is established and processing begins.

    • incrementEmailReceiptSuccess

      public static void incrementEmailReceiptSuccess()
      Increment the email receipt success counter.

      Called when an email receipt completes successfully.

    • incrementEmailReceiptLimit

      public static void incrementEmailReceiptLimit()
      Increment the email receipt limit counter.

      Called when an email receipt is terminated due to reaching error or transaction limits.

    • incrementEmailRblRejection

      public static void incrementEmailRblRejection()
      Increment the email RBL rejection counter.

      Called when an email connection is rejected due to RBL listing.

    • incrementEmailVirusRejection

      public static void incrementEmailVirusRejection()
      Increment the email virus rejection counter.

      Called when an email is rejected due to virus detection.

    • incrementEmailSpamRejection

      public static void incrementEmailSpamRejection()
      Increment the email spam rejection counter.

      Called when an email is rejected due to spam or phishing detection.

    • incrementEmailReceiptException

      public static void incrementEmailReceiptException(String exceptionType)
      Increment the email receipt exception counter.

      Called when an email receipt encounters an exception.

      Parameters:
      exceptionType - The simple name of the exception class.
    • incrementCounter

      private static void incrementCounter(Supplier<io.micrometer.core.instrument.Counter> counterSupplier, String counterName)
      Generic helper to increment a counter with lazy initialization.

      Handles double-checked locking for thread-safe lazy initialization and exception handling.

      Parameters:
      counterSupplier - Supplier that returns the counter field
      counterName - Name of the counter for logging purposes
    • initializeCounters

      private static void initializeCounters()
      Initialize the metric counters.

      This is called lazily on first use to ensure registries are available.

    • resetCounters

      static void resetCounters()
      Reset the counters (for testing purposes).