Class SmtpMetrics
Provides counters for tracking email receipt operations including successful runs and exceptions.
-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate static io.micrometer.core.instrument.Counterprivate static io.micrometer.core.instrument.Counterprivate static io.micrometer.core.instrument.Counterprivate static io.micrometer.core.instrument.Counterprivate static io.micrometer.core.instrument.Counterprivate static io.micrometer.core.instrument.Counterprivate static final org.apache.logging.log4j.Logger -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprivate static voidincrementCounter(Supplier<io.micrometer.core.instrument.Counter> counterSupplier, String counterName) Generic helper to increment a counter with lazy initialization.static voidIncrement the email RBL rejection counter.static voidincrementEmailReceiptException(String exceptionType) Increment the email receipt exception counter.static voidIncrement the email receipt limit counter.static voidIncrement the email receipt start counter.static voidIncrement the email receipt success counter.static voidIncrement the email spam rejection counter.static voidIncrement the email virus rejection counter.static voidInitialize all metrics with zero values.private static voidInitialize the metric counters.(package private) static voidReset the counters (for testing purposes).
-
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
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 fieldcounterName- 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).
-