You are viewing a plain text version of this content. The canonical link for it is here.
Posted to server-dev@james.apache.org by ro...@apache.org on 2016/11/30 14:01:32 UTC

[13/16] james-project git commit: JAMES-1868 Adding metrics for outgoing mails

JAMES-1868 Adding metrics for outgoing mails


Project: http://git-wip-us.apache.org/repos/asf/james-project/repo
Commit: http://git-wip-us.apache.org/repos/asf/james-project/commit/67bbb4b6
Tree: http://git-wip-us.apache.org/repos/asf/james-project/tree/67bbb4b6
Diff: http://git-wip-us.apache.org/repos/asf/james-project/diff/67bbb4b6

Branch: refs/heads/master
Commit: 67bbb4b6357ca957fc413dde9a33b81e6f8e7fe5
Parents: ff1f8e9
Author: Benoit Tellier <bt...@linagora.com>
Authored: Fri Nov 25 09:13:37 2016 +0700
Committer: Benoit Tellier <bt...@linagora.com>
Committed: Wed Nov 30 16:32:21 2016 +0700

----------------------------------------------------------------------
 server/mailet/mailets/pom.xml                          |  4 ++++
 .../apache/james/transport/mailets/RemoteDelivery.java | 13 +++++++++++++
 2 files changed, 17 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/james-project/blob/67bbb4b6/server/mailet/mailets/pom.xml
----------------------------------------------------------------------
diff --git a/server/mailet/mailets/pom.xml b/server/mailet/mailets/pom.xml
index 6b4394a..ea7603c 100644
--- a/server/mailet/mailets/pom.xml
+++ b/server/mailet/mailets/pom.xml
@@ -71,6 +71,10 @@
             <artifactId>james-server-core</artifactId>
         </dependency>
         <dependency>
+            <groupId>org.apache.james</groupId>
+            <artifactId>james-server-metrics-api</artifactId>
+        </dependency>
+        <dependency>
             <groupId>org.apache.james.protocols</groupId>
             <artifactId>protocols-managesieve</artifactId>
         </dependency>

http://git-wip-us.apache.org/repos/asf/james-project/blob/67bbb4b6/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/RemoteDelivery.java
----------------------------------------------------------------------
diff --git a/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/RemoteDelivery.java b/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/RemoteDelivery.java
index 8c6637e..fa9ac3d 100644
--- a/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/RemoteDelivery.java
+++ b/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/RemoteDelivery.java
@@ -60,6 +60,8 @@ import org.apache.james.dnsservice.library.MXHostAddressIterator;
 import org.apache.james.domainlist.api.DomainList;
 import org.apache.james.domainlist.api.DomainListException;
 import org.apache.james.lifecycle.api.LifecycleUtil;
+import org.apache.james.metrics.api.Metric;
+import org.apache.james.metrics.api.MetricFactory;
 import org.apache.james.queue.api.MailPrioritySupport;
 import org.apache.james.queue.api.MailQueue;
 import org.apache.james.queue.api.MailQueue.MailQueueException;
@@ -158,6 +160,7 @@ public class RemoteDelivery extends GenericMailet implements Runnable {
     private static final String PATTERN_STRING = "\\s*([0-9]*\\s*[\\*])?\\s*([0-9]+)\\s*([a-z,A-Z]*)\\s*";
 
     private static final Pattern PATTERN = Patterns.compilePatternUncheckedException(PATTERN_STRING);
+    private static final String OUTGOING_MAILS = "outgoingMails";
 
     @Inject
     private DNSService dnsServer;
@@ -260,6 +263,9 @@ public class RemoteDelivery extends GenericMailet implements Runnable {
 
     private boolean isSSLEnable = false;
 
+    private MetricFactory metricFactory;
+    private Metric outgoingMailsMetric;
+
     @Inject
     public void setDomainList(DomainList domainList) {
         this.domainList = domainList;
@@ -270,6 +276,11 @@ public class RemoteDelivery extends GenericMailet implements Runnable {
         this.queueFactory = queueFactory;
     }
 
+    @Inject
+    public void setMetricFactory(MetricFactory metricFactory) {
+        this.metricFactory = metricFactory;
+    }
+
     /**
      * Initializes all arguments based on configuration values specified in the
      * James configuration file.
@@ -277,6 +288,7 @@ public class RemoteDelivery extends GenericMailet implements Runnable {
      * @throws MessagingException on failure to initialize attributes.
      */
     public void init() throws MessagingException {
+        outgoingMailsMetric = metricFactory.generate(OUTGOING_MAILS);
         // Set isDebug flag.
         isDebug = (getInitParameter("debug") == null) ? false : Boolean.valueOf(getInitParameter("debug"));
 
@@ -1050,6 +1062,7 @@ public class RemoteDelivery extends GenericMailet implements Runnable {
                     logMessageBuffer = new StringBuilder(256).append("Mail (").append(mail.getName()).append(") sent successfully to ").append(outgoingMailServer.getHostName()).append(" at ").append(outgoingMailServer.getHost()).append(" from ").append(props.get("mail.smtp.from")).append(" for ")
                             .append(mail.getRecipients());
                     log(logMessageBuffer.toString());
+                    outgoingMailsMetric.increment();
                     return true;
                 } catch (SendFailedException sfe) {
                     logSendFailedException(sfe);


---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org