You are viewing a plain text version of this content. The canonical link for it is here.
Posted to s4-commits@incubator.apache.org by mm...@apache.org on 2013/03/04 17:26:00 UTC

git commit: S4-86 Fix metrics config and enable PE timing - fix matcher for metrics configuration pattern - enable optional metric for PE processing timing

Updated Branches:
  refs/heads/S4-86 bfe0498ea -> d6b89c307


S4-86 Fix metrics config and enable PE timing
- fix matcher for metrics configuration pattern
- enable optional metric for PE processing timing


Project: http://git-wip-us.apache.org/repos/asf/incubator-s4/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-s4/commit/d6b89c30
Tree: http://git-wip-us.apache.org/repos/asf/incubator-s4/tree/d6b89c30
Diff: http://git-wip-us.apache.org/repos/asf/incubator-s4/diff/d6b89c30

Branch: refs/heads/S4-86
Commit: d6b89c3074082c5cbe1a7bec7169d5c63ebfcd5c
Parents: bfe0498
Author: Matthieu Morel <mm...@apache.org>
Authored: Mon Mar 4 17:34:11 2013 +0100
Committer: Matthieu Morel <mm...@apache.org>
Committed: Mon Mar 4 17:35:07 2013 +0100

----------------------------------------------------------------------
 .../src/main/java/org/apache/s4/core/App.java      |   12 ++++++---
 .../java/org/apache/s4/core/ProcessingElement.java |   18 +++++++++++---
 .../java/org/apache/s4/core/util/S4Metrics.java    |    1 -
 3 files changed, 22 insertions(+), 9 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-s4/blob/d6b89c30/subprojects/s4-core/src/main/java/org/apache/s4/core/App.java
----------------------------------------------------------------------
diff --git a/subprojects/s4-core/src/main/java/org/apache/s4/core/App.java b/subprojects/s4-core/src/main/java/org/apache/s4/core/App.java
index 6b8c7ef..ccb02e8 100644
--- a/subprojects/s4-core/src/main/java/org/apache/s4/core/App.java
+++ b/subprojects/s4-core/src/main/java/org/apache/s4/core/App.java
@@ -71,17 +71,21 @@ public abstract class App {
     private ReceiverImpl receiver;
 
     @Inject
-    RemoteSenders remoteSenders;
+    private RemoteSenders remoteSenders;
 
     @Inject
-    Hasher hasher;
+    private Hasher hasher;
 
     @Inject
-    RemoteStreams remoteStreams;
+    private RemoteStreams remoteStreams;
 
     @Inject
     @Named("s4.cluster.name")
-    String clusterName;
+    private String clusterName;
+
+    @Inject(optional = true)
+    @Named("s4.metrics.peProcessingTime")
+    boolean measurePEProcessingTime = true;
 
     // default is NoOpCheckpointingFramework
     @Inject

http://git-wip-us.apache.org/repos/asf/incubator-s4/blob/d6b89c30/subprojects/s4-core/src/main/java/org/apache/s4/core/ProcessingElement.java
----------------------------------------------------------------------
diff --git a/subprojects/s4-core/src/main/java/org/apache/s4/core/ProcessingElement.java b/subprojects/s4-core/src/main/java/org/apache/s4/core/ProcessingElement.java
index 6e219a6..d3f5c7d 100644
--- a/subprojects/s4-core/src/main/java/org/apache/s4/core/ProcessingElement.java
+++ b/subprojects/s4-core/src/main/java/org/apache/s4/core/ProcessingElement.java
@@ -54,6 +54,7 @@ import com.google.common.collect.Maps;
 import com.google.common.util.concurrent.ThreadFactoryBuilder;
 import com.yammer.metrics.Metrics;
 import com.yammer.metrics.core.Timer;
+import com.yammer.metrics.core.TimerContext;
 
 /**
  * <p>
@@ -171,7 +172,6 @@ public abstract class ProcessingElement implements Cloneable {
          */
         this.pePrototype = this;
 
-        processingTimer = Metrics.newTimer(getClass(), getClass().getName() + "-pe-processing-time");
     }
 
     /**
@@ -183,6 +183,10 @@ public abstract class ProcessingElement implements Cloneable {
     public ProcessingElement(App app) {
         this();
         setApp(app);
+        if (app.measurePEProcessingTime) {
+            processingTimer = Metrics.newTimer(getClass(), getClass().getName() + "-pe-processing-time");
+        }
+
     }
 
     /**
@@ -436,8 +440,11 @@ public abstract class ProcessingElement implements Cloneable {
     }
 
     protected void handleInputEvent(Event event) {
-
-        // TimerContext timerContext = processingTimer.time();
+        TimerContext timerContext = null;
+        if (processingTimer != null) {
+            // if timing enabled
+            timerContext = processingTimer.time();
+        }
         Object object;
         if (isThreadSafe) {
             object = new Object(); // a dummy object TODO improve this.
@@ -466,7 +473,10 @@ public abstract class ProcessingElement implements Cloneable {
                 checkpoint();
             }
         }
-        // timerContext.stop();
+        if (timerContext != null) {
+            // if timing enabled
+            timerContext.stop();
+        }
     }
 
     protected boolean isCheckpointable() {

http://git-wip-us.apache.org/repos/asf/incubator-s4/blob/d6b89c30/subprojects/s4-core/src/main/java/org/apache/s4/core/util/S4Metrics.java
----------------------------------------------------------------------
diff --git a/subprojects/s4-core/src/main/java/org/apache/s4/core/util/S4Metrics.java b/subprojects/s4-core/src/main/java/org/apache/s4/core/util/S4Metrics.java
index bc6c808..520e48e 100644
--- a/subprojects/s4-core/src/main/java/org/apache/s4/core/util/S4Metrics.java
+++ b/subprojects/s4-core/src/main/java/org/apache/s4/core/util/S4Metrics.java
@@ -83,7 +83,6 @@ public class S4Metrics {
                         "Invalid metrics configuration [{}]. Metrics configuration must match the pattern [{}]. Metrics reporting disabled.",
                         metricsConfig, METRICS_CONFIG_PATTERN);
             } else {
-                matcher.find();
                 String group1 = matcher.group(1);
 
                 if ("csv".equals(group1)) {