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)) {