You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@storm.apache.org by ka...@apache.org on 2015/09/21 17:23:28 UTC

[1/3] storm git commit: STORM-862: Pluggable System Metrics

Repository: storm
Updated Branches:
  refs/heads/master 55b88dfa4 -> 3ec512055


STORM-862: Pluggable System Metrics


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

Branch: refs/heads/master
Commit: cdc9de4343ba4782dfea29495359b231dee73501
Parents: 58372f0
Author: Robert (Bobby) Evans <ev...@yahoo-inc.com>
Authored: Wed Jun 10 15:24:45 2015 -0500
Committer: Robert (Bobby) Evans <ev...@yahoo-inc.com>
Committed: Wed Jun 10 15:24:45 2015 -0500

----------------------------------------------------------------------
 storm-core/src/jvm/backtype/storm/Config.java        | 13 ++++++++++++-
 .../src/jvm/backtype/storm/metric/SystemBolt.java    | 15 +++++++++++++++
 2 files changed, 27 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/storm/blob/cdc9de43/storm-core/src/jvm/backtype/storm/Config.java
----------------------------------------------------------------------
diff --git a/storm-core/src/jvm/backtype/storm/Config.java b/storm-core/src/jvm/backtype/storm/Config.java
index 4e15352..da7cdbe 100644
--- a/storm-core/src/jvm/backtype/storm/Config.java
+++ b/storm-core/src/jvm/backtype/storm/Config.java
@@ -1079,7 +1079,7 @@ public class Config extends HashMap<String, Object> {
     public static final String TOPOLOGY_SKIP_MISSING_KRYO_REGISTRATIONS= "topology.skip.missing.kryo.registrations";
     public static final Object TOPOLOGY_SKIP_MISSING_KRYO_REGISTRATIONS_SCHEMA = Boolean.class;
 
-    /*
+    /**
      * A list of classes implementing IMetricsConsumer (See storm.yaml.example for exact config format).
      * Each listed class will be routed all the metrics data generated by the storm metrics API.
      * Each listed class maps 1:1 to a system bolt named __metrics_ClassName#N, and it's parallelism is configurable.
@@ -1087,6 +1087,17 @@ public class Config extends HashMap<String, Object> {
     public static final String TOPOLOGY_METRICS_CONSUMER_REGISTER = "topology.metrics.consumer.register";
     public static final Object TOPOLOGY_METRICS_CONSUMER_REGISTER_SCHEMA = ConfigValidation.MapsValidator;
 
+    /**
+     * A map of metric name to class name implementing IMetric that will be created once per worker JVM
+     */
+    public static final String TOPOLOGY_WORKER_METRICS = "topology.worker.metrics";
+    public static final Object TOPOLOGY_WORKER_METRICS_SCHEMA = Map.class;
+
+    /**
+     * A map of metric name to class name implementing IMetric that will be created once per worker JVM
+     */
+    public static final String WORKER_METRICS = "worker.metrics";
+    public static final Object WORKER_METRICS_SCHEMA = Map.class;
 
     /**
      * The maximum parallelism allowed for a component in this topology. This configuration is

http://git-wip-us.apache.org/repos/asf/storm/blob/cdc9de43/storm-core/src/jvm/backtype/storm/metric/SystemBolt.java
----------------------------------------------------------------------
diff --git a/storm-core/src/jvm/backtype/storm/metric/SystemBolt.java b/storm-core/src/jvm/backtype/storm/metric/SystemBolt.java
index 492bc2d..d0bbe44 100644
--- a/storm-core/src/jvm/backtype/storm/metric/SystemBolt.java
+++ b/storm-core/src/jvm/backtype/storm/metric/SystemBolt.java
@@ -24,6 +24,7 @@ import backtype.storm.task.IBolt;
 import backtype.storm.task.OutputCollector;
 import backtype.storm.task.TopologyContext;
 import backtype.storm.tuple.Tuple;
+import backtype.storm.utils.Utils;
 import clojure.lang.AFn;
 import clojure.lang.IFn;
 import clojure.lang.RT;
@@ -142,6 +143,20 @@ public class SystemBolt implements IBolt {
         for(GarbageCollectorMXBean b : ManagementFactory.getGarbageCollectorMXBeans()) {
             context.registerMetric("GC/" + b.getName().replaceAll("\\W", ""), new GarbageCollectorMetric(b), bucketSize);
         }
+
+        registerMetrics(context, (Map<String,String>)stormConf.get(Config.WORKER_METRICS), bucketSize);
+        registerMetrics(context, (Map<String,String>)stormConf.get(Config.TOPOLOGY_WORKER_METRICS), bucketSize);
+    }
+
+    private void registerMetrics(TopologyContext context, Map<String, String> metrics, int bucketSize) {
+        if (metrics == null) return;
+        for (Map.Entry<String, String> metric: metrics.entrySet()) {
+            try {
+                context.registerMetric(metric.getKey(), (IMetric)Utils.newInstance(metric.getValue()), bucketSize);
+            } catch (Exception e) {
+                throw new RuntimeException(e);
+            }
+        }
     }
 
     @Override


[3/3] storm git commit: add STORM-862 to CHANGELOG.md

Posted by ka...@apache.org.
add STORM-862 to CHANGELOG.md


Project: http://git-wip-us.apache.org/repos/asf/storm/repo
Commit: http://git-wip-us.apache.org/repos/asf/storm/commit/3ec51205
Tree: http://git-wip-us.apache.org/repos/asf/storm/tree/3ec51205
Diff: http://git-wip-us.apache.org/repos/asf/storm/diff/3ec51205

Branch: refs/heads/master
Commit: 3ec5120558ffe2a34a52bf28fb600c2a67823786
Parents: f073af4
Author: Jungtaek Lim <ka...@gmail.com>
Authored: Tue Sep 22 00:23:07 2015 +0900
Committer: Jungtaek Lim <ka...@gmail.com>
Committed: Tue Sep 22 00:23:07 2015 +0900

----------------------------------------------------------------------
 CHANGELOG.md | 1 +
 1 file changed, 1 insertion(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/storm/blob/3ec51205/CHANGELOG.md
----------------------------------------------------------------------
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 144c887..e24dd5c 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,4 +1,5 @@
 ## 0.11.0
+ * STORM-862: Pluggable System Metrics
  * STORM-1032: Add generics to component configuration methods
  * STORM-886: Automatic Back Pressure
  * STORM-1037: do not remove storm-code in supervisor until kill job


[2/3] storm git commit: Merge branch 'STORM-862' of https://github.com/revans2/incubator-storm into STORM-862

Posted by ka...@apache.org.
Merge branch 'STORM-862' of https://github.com/revans2/incubator-storm into STORM-862


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

Branch: refs/heads/master
Commit: f073af45651f8a258c6632f76c9c461827ffd949
Parents: 55b88df cdc9de4
Author: Jungtaek Lim <ka...@gmail.com>
Authored: Tue Sep 22 00:22:26 2015 +0900
Committer: Jungtaek Lim <ka...@gmail.com>
Committed: Tue Sep 22 00:22:26 2015 +0900

----------------------------------------------------------------------
 storm-core/src/jvm/backtype/storm/Config.java        | 13 ++++++++++++-
 .../src/jvm/backtype/storm/metric/SystemBolt.java    | 15 +++++++++++++++
 2 files changed, 27 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/storm/blob/f073af45/storm-core/src/jvm/backtype/storm/Config.java
----------------------------------------------------------------------