package mireka.filter.misc; import java.util.concurrent.TimeUnit; import javax.annotation.PostConstruct; import com.yammer.metrics.Metrics; import com.yammer.metrics.core.Meter; import com.yammer.metrics.core.MetricName; /** * IncomingSmtpSummary holds and publishes metrics about the traffic on a single * SMTP server port of Mireka. */ public class IncomingSmtpSummary { private String name; public Meter mailTransactions; public Meter rcptCommands; public Meter dataCommands; public Meter acceptedMessages; public Meter messageRecipients; @PostConstruct public void register() { mailTransactions = Metrics.newMeter(metricName("mailTransactions"), "transactions", TimeUnit.MINUTES); rcptCommands = Metrics.newMeter(metricName("rcptCommands"), "commands", TimeUnit.MINUTES); dataCommands = Metrics.newMeter(metricName("dataCommands"), "commands", TimeUnit.MINUTES); acceptedMessages = Metrics.newMeter(metricName("acceptedMessages"), "messages", TimeUnit.MINUTES); messageRecipients = Metrics.newMeter(metricName("messageRecipients"), "recipients", TimeUnit.MINUTES); } private MetricName metricName(String metricName) { return new MetricName("mireka", "IncomingSmtpTraffic", metricName, this.name); } /** * @x.category GETSET */ public void setName(String name) { this.name = name; } }