You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@storm.apache.org by bo...@apache.org on 2014/07/31 01:48:00 UTC

[1/9] git commit: Add color span to most recent error and fix ui templates.

Repository: incubator-storm
Updated Branches:
  refs/heads/master b2a8a77c3 -> d65c913e4


Add color span to most recent error and fix ui templates.


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

Branch: refs/heads/master
Commit: f0e6873fdab6ff3a2f4d7ea7867f54d8c330c819
Parents: 79f258e
Author: Kishor Patil <kp...@yahoo-inc.com>
Authored: Mon Jun 23 15:46:45 2014 +0000
Committer: Kishor Patil <kp...@yahoo-inc.com>
Committed: Mon Jun 23 15:46:45 2014 +0000

----------------------------------------------------------------------
 storm-core/src/clj/backtype/storm/ui/core.clj   | 12 ++++++-----
 storm-core/src/ui/public/component.html         | 22 ++++++++++++++------
 .../templates/component-page-template.html      |  6 +++++-
 .../templates/topology-page-template.html       | 12 +++++++++--
 storm-core/src/ui/public/topology.html          |  4 +++-
 5 files changed, 41 insertions(+), 15 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-storm/blob/f0e6873f/storm-core/src/clj/backtype/storm/ui/core.clj
----------------------------------------------------------------------
diff --git a/storm-core/src/clj/backtype/storm/ui/core.clj b/storm-core/src/clj/backtype/storm/ui/core.clj
index 55ec4b8..6673493 100644
--- a/storm-core/src/clj/backtype/storm/ui/core.clj
+++ b/storm-core/src/clj/backtype/storm/ui/core.clj
@@ -289,12 +289,11 @@
        (map nil-to-zero)
        (apply max)))
 
-(defn get-error-span 
+(defn is-error-recent? 
   [error]
-  (if (and error (< (time-delta (.get_error_time_secs ^ErrorInfo error))
-                    (* 60 30)))
-    {:class "red"}
-    {}))
+  (if error (< (time-delta (.get_error_time_secs ^ErrorInfo error))
+                    (* 60 30))
+    false))
 
 (defn get-error-data 
   [error]
@@ -562,6 +561,7 @@
      "errorHost" error-host
      "errorPort" error-port
      "errorWorkerLogLink" (worker-log-link error-host error-port)
+     (if (is-error-recent? last-error) "isRecent" "isNotRecent") true
      "lastError" (get-error-data last-error) }))
 
 (defn bolt-comp [top-id summ-map errors window include-sys?]
@@ -587,6 +587,7 @@
      "errorHost" error-host
      "errorPort" error-port
      "errorWorkerLogLink" (worker-log-link error-host error-port)
+     (if (is-error-recent? last-error) "isRecent" "isNotRecent") true
      "lastError" (get-error-data last-error) }))
 
 (defn topology-summary [^TopologyInfo summ]
@@ -692,6 +693,7 @@
         "errorHost" (.get_host e)
         "errorPort"  (.get_port e)
         "errorWorkerLogLink"  (worker-log-link (.get_host e) (.get_port e))
+        (if (is-error-recent? e) "isRecent" "isNotRecent") true
         "error" (.get_error e)})}))
 
 (defn spout-stats

http://git-wip-us.apache.org/repos/asf/incubator-storm/blob/f0e6873f/storm-core/src/ui/public/component.html
----------------------------------------------------------------------
diff --git a/storm-core/src/ui/public/component.html b/storm-core/src/ui/public/component.html
index aae0245..512eba6 100644
--- a/storm-core/src/ui/public/component.html
+++ b/storm-core/src/ui/public/component.html
@@ -73,22 +73,32 @@ $(document).ready(function() {
             componentSummary.append(Mustache.render($(template).filter("#component-summary-template").html(),response));
             if(response["componentType"] == "spout") {
                 componentStatsDetail.append(Mustache.render($(template).filter("#spout-stats-detail-template").html(),response));
-                $("#spout-stats-table").tablesorter({ sortList: [[0,0]], headers: {0: { sorter: "stormtimestr"}}});
+                if(response["spoutSummary"].length > 0) {
+                    $("#spout-stats-table").tablesorter({ sortList: [[0,0]], headers: {0: { sorter: "stormtimestr"}}});
+                }
                 outputStats.append(Mustache.render($(template).filter("#output-stats-template").html(),response));
-                $("#output-stats-table").tablesorter({ sortList: [[0,0]], headers: {0: { sorter: "stormtimestr"}}});
+                if(response["outputStats"].length > 0) {
+                    $("#output-stats-table").tablesorter({ sortList: [[0,0]], headers: {0: { sorter: "stormtimestr"}}});
+                }
                 executorStats.append(Mustache.render($(template).filter("#executor-stats-template").html(),response));
-                $("#executor-stats-table").tablesorter({ sortList: [[0,0]], headers: {1: { sorter: "stormtimestr"}}});
+                if(response["executorStats"].length > 0) {
+                    $("#executor-stats-table").tablesorter({ sortList: [[0,0]], headers: {1: { sorter: "stormtimestr"}}});
+                }
             } else {
                 componentStatsDetail.append(Mustache.render($(template).filter("#bolt-stats-template").html(),response));
-                $("#bolt-stats-table").tablesorter({ sortList: [[0,0]], headers: {0: { sorter: "stormtimestr"}}});
+                if(response["boltStats"].length > 0) {
+                    $("#bolt-stats-table").tablesorter({ sortList: [[0,0]], headers: {0: { sorter: "stormtimestr"}}});
+                }
                 inputStats.append(Mustache.render($(template).filter("#bolt-input-stats-template").html(),response));
                 if (response["inputStats"].length > 0) {
                     $("#bolt-input-stats-table").tablesorter({ sortList: [[0,0]], headers: {}});
                 }
                 outputStats.append(Mustache.render($(template).filter("#bolt-output-stats-template").html(),response));
-                $("#bolt-output-stats-table").tablesorter({ sortList: [[0,0]], headers: {}});
-                executorStats.append(Mustache.render($(template).filter("#bolt-executor-template").html(),response));
                 if(response["outputStats"].length > 0) {
+                    $("#bolt-output-stats-table").tablesorter({ sortList: [[0,0]], headers: {}});
+                }
+                executorStats.append(Mustache.render($(template).filter("#bolt-executor-template").html(),response));
+                if(response["executorStats"].length > 0) {
                     $("#bolt-executor-table").tablesorter({ sortList: [[0,0]], headers: {}});
                 }
             }

http://git-wip-us.apache.org/repos/asf/incubator-storm/blob/f0e6873f/storm-core/src/ui/public/templates/component-page-template.html
----------------------------------------------------------------------
diff --git a/storm-core/src/ui/public/templates/component-page-template.html b/storm-core/src/ui/public/templates/component-page-template.html
index 0c0bd04..406825d 100644
--- a/storm-core/src/ui/public/templates/component-page-template.html
+++ b/storm-core/src/ui/public/templates/component-page-template.html
@@ -163,7 +163,11 @@
 <td>{{time}}</td>
 <td>{{errorHost}}</td>
 <td><a href="{{errorWorkerLogLink}}">{{errorPort}}</a></td>
-<td>{{error}}</td>
+<td>
+<span{{#isRecent}} class="red"{{/isRecent}}>
+{{error}}
+</span>
+</td>
 </tr>
 {{/componentErrors}}
 </tbody>

http://git-wip-us.apache.org/repos/asf/incubator-storm/blob/f0e6873f/storm-core/src/ui/public/templates/topology-page-template.html
----------------------------------------------------------------------
diff --git a/storm-core/src/ui/public/templates/topology-page-template.html b/storm-core/src/ui/public/templates/topology-page-template.html
index 7991a25..0524e05 100644
--- a/storm-core/src/ui/public/templates/topology-page-template.html
+++ b/storm-core/src/ui/public/templates/topology-page-template.html
@@ -112,7 +112,11 @@
         <td>{{failed}}</td>
         <td>{{errorHost}}</td>
         <td><a href="{{errorWorkerLogLink}}">{{errorPort}}</a></td>
-        <td>{{lastError}}</td>
+        <td>
+        <span{{#isRecent}} class="red"{{/isRecent}}>
+        {{lastError}}
+        </span>
+        </td>
         {{/spouts}}
     </tbody>
   </table>
@@ -138,7 +142,11 @@
         <td>{{failed}}</td>
         <td>{{errorHost}}</td>
         <td><a href="{{errorWorkerLogLink}}">{{errorPort}}</a></td>
-        <td>{{lastError}}</td>
+        <td>
+        <span{{#isRecent}} class="red"{{/isRecent}}>
+        {{lastError}}
+        </span>
+        </td>
         {{/bolts}}
     </tbody>
 </script>

http://git-wip-us.apache.org/repos/asf/incubator-storm/blob/f0e6873f/storm-core/src/ui/public/topology.html
----------------------------------------------------------------------
diff --git a/storm-core/src/ui/public/topology.html b/storm-core/src/ui/public/topology.html
index 1020719..fd7340b 100644
--- a/storm-core/src/ui/public/topology.html
+++ b/storm-core/src/ui/public/topology.html
@@ -85,7 +85,9 @@ $(document).ready(function() {
             topologySummary.append(Mustache.render($(template).filter("#topology-summary-template").html(),response));
             topologyActions.append(Mustache.render($(template).filter("#topology-actions-template").html(),buttonJsonData));
             topologyStats.append(Mustache.render($(template).filter("#topology-stats-template").html(),response));
-            $("#topology-stats-table").tablesorter({ sortList: [[0,0]], headers: {0: { sorter: "stormtimestr"}}});
+            if(response["topologyStats"].length > 0) {
+                $("#topology-stats-table").tablesorter({ sortList: [[0,0]], headers: {0: { sorter: "stormtimestr"}}});
+            }
             spoutStats.append(Mustache.render($(template).filter("#spout-stats-template").html(),response));
             if(response["spouts"].length > 0) {
                 $("#spout-stats-table").tablesorter({sortList: [[0,0]], headers:{}});


[3/9] git commit: Use javascript to color-code recent errors

Posted by bo...@apache.org.
Use javascript to color-code recent errors


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

Branch: refs/heads/master
Commit: e5efcf506856c472ae7e5e36578862d2c8dd4906
Parents: 20ac58b
Author: Kishor Patil <kp...@yahoo-inc.com>
Authored: Wed Jun 25 23:49:08 2014 +0000
Committer: Kishor Patil <kp...@yahoo-inc.com>
Committed: Wed Jun 25 23:49:08 2014 +0000

----------------------------------------------------------------------
 storm-core/src/clj/backtype/storm/ui/core.clj         | 14 +++++++-------
 storm-core/src/ui/public/component.html               | 10 ++++++++++
 .../ui/public/templates/component-page-template.html  |  4 +---
 .../ui/public/templates/topology-page-template.html   |  8 ++------
 storm-core/src/ui/public/topology.html                | 10 ++++++++++
 5 files changed, 30 insertions(+), 16 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-storm/blob/e5efcf50/storm-core/src/clj/backtype/storm/ui/core.clj
----------------------------------------------------------------------
diff --git a/storm-core/src/clj/backtype/storm/ui/core.clj b/storm-core/src/clj/backtype/storm/ui/core.clj
index 6673493..7df44a9 100644
--- a/storm-core/src/clj/backtype/storm/ui/core.clj
+++ b/storm-core/src/clj/backtype/storm/ui/core.clj
@@ -289,11 +289,11 @@
        (map nil-to-zero)
        (apply max)))
 
-(defn is-error-recent? 
+(defn get-error-time
   [error]
-  (if error (< (time-delta (.get_error_time_secs ^ErrorInfo error))
-                    (* 60 30))
-    false))
+  (if error
+    (time-delta (.get_error_time_secs ^ErrorInfo error))
+    ""))
 
 (defn get-error-data 
   [error]
@@ -561,7 +561,7 @@
      "errorHost" error-host
      "errorPort" error-port
      "errorWorkerLogLink" (worker-log-link error-host error-port)
-     (if (is-error-recent? last-error) "isRecent" "isNotRecent") true
+     "errorLapsedSecs" (get-error-time last-error)
      "lastError" (get-error-data last-error) }))
 
 (defn bolt-comp [top-id summ-map errors window include-sys?]
@@ -587,7 +587,7 @@
      "errorHost" error-host
      "errorPort" error-port
      "errorWorkerLogLink" (worker-log-link error-host error-port)
-     (if (is-error-recent? last-error) "isRecent" "isNotRecent") true
+     "errorLapsedSecs" (get-error-time last-error)
      "lastError" (get-error-data last-error) }))
 
 (defn topology-summary [^TopologyInfo summ]
@@ -693,7 +693,7 @@
         "errorHost" (.get_host e)
         "errorPort"  (.get_port e)
         "errorWorkerLogLink"  (worker-log-link (.get_host e) (.get_port e))
-        (if (is-error-recent? e) "isRecent" "isNotRecent") true
+        "errorLapsedSecs" (get-error-time e)
         "error" (.get_error e)})}))
 
 (defn spout-stats

http://git-wip-us.apache.org/repos/asf/incubator-storm/blob/e5efcf50/storm-core/src/ui/public/component.html
----------------------------------------------------------------------
diff --git a/storm-core/src/ui/public/component.html b/storm-core/src/ui/public/component.html
index aae0245..679b366 100644
--- a/storm-core/src/ui/public/component.html
+++ b/storm-core/src/ui/public/component.html
@@ -96,6 +96,16 @@ $(document).ready(function() {
             if(response["componentErrors"].length > 0) {
                 $("#component-errors-table").tablesorter({ sortList: [[0,0]], headers: {1: { sorter: "stormtimestr"}}});
             }
+
+            var errorCells = document.getElementsByClassName("errorSpan");
+            for (i =0; i < errorCells.length; i++) 
+            {
+              var timeLapsedInSecs = errorCells[i].id;
+              if (parseInt(timeLapsedInSecs) < 1800) { 
+                errorCells[i].style.color = "#9d261d";
+                errorCells[i].style.borderBottomColor = "#9d261d";
+              }
+            }
         });
     });
 });

http://git-wip-us.apache.org/repos/asf/incubator-storm/blob/e5efcf50/storm-core/src/ui/public/templates/component-page-template.html
----------------------------------------------------------------------
diff --git a/storm-core/src/ui/public/templates/component-page-template.html b/storm-core/src/ui/public/templates/component-page-template.html
index 406825d..b787eb7 100644
--- a/storm-core/src/ui/public/templates/component-page-template.html
+++ b/storm-core/src/ui/public/templates/component-page-template.html
@@ -164,9 +164,7 @@
 <td>{{errorHost}}</td>
 <td><a href="{{errorWorkerLogLink}}">{{errorPort}}</a></td>
 <td>
-<span{{#isRecent}} class="red"{{/isRecent}}>
-{{error}}
-</span>
+  <span id="{{errorLapsedSecs}}" class="errorSpan">{{error}}</span>
 </td>
 </tr>
 {{/componentErrors}}

http://git-wip-us.apache.org/repos/asf/incubator-storm/blob/e5efcf50/storm-core/src/ui/public/templates/topology-page-template.html
----------------------------------------------------------------------
diff --git a/storm-core/src/ui/public/templates/topology-page-template.html b/storm-core/src/ui/public/templates/topology-page-template.html
index 0524e05..714e355 100644
--- a/storm-core/src/ui/public/templates/topology-page-template.html
+++ b/storm-core/src/ui/public/templates/topology-page-template.html
@@ -113,9 +113,7 @@
         <td>{{errorHost}}</td>
         <td><a href="{{errorWorkerLogLink}}">{{errorPort}}</a></td>
         <td>
-        <span{{#isRecent}} class="red"{{/isRecent}}>
-        {{lastError}}
-        </span>
+            <span id="{{errorLapsedSecs}}" class="errorSpan">{{lastError}}</span>
         </td>
         {{/spouts}}
     </tbody>
@@ -143,9 +141,7 @@
         <td>{{errorHost}}</td>
         <td><a href="{{errorWorkerLogLink}}">{{errorPort}}</a></td>
         <td>
-        <span{{#isRecent}} class="red"{{/isRecent}}>
-        {{lastError}}
-        </span>
+            <span id="{{errorLapsedSecs}}" class="errorSpan">{{lastError}}</span>
         </td>
         {{/bolts}}
     </tbody>

http://git-wip-us.apache.org/repos/asf/incubator-storm/blob/e5efcf50/storm-core/src/ui/public/topology.html
----------------------------------------------------------------------
diff --git a/storm-core/src/ui/public/topology.html b/storm-core/src/ui/public/topology.html
index 1020719..46f6fc8 100644
--- a/storm-core/src/ui/public/topology.html
+++ b/storm-core/src/ui/public/topology.html
@@ -100,6 +100,16 @@ $(document).ready(function() {
 
             config.append(Mustache.render($(template).filter("#topology-configuration-template").html(),formattedConfig));
             $("#topology-configuration-table").tablesorter({ sortList: [[0,0]], headers: {}});
+
+            var errorCells = document.getElementsByClassName("errorSpan");
+            for (i =0; i < errorCells.length; i++) 
+            {
+              var timeLapsedInSecs = errorCells[i].id;
+              if (parseInt(timeLapsedInSecs) < 1800) { 
+                errorCells[i].style.color = "#9d261d";
+                errorCells[i].style.borderBottomColor = "#9d261d";
+              }
+            }
         });
     });
  });


[9/9] git commit: Added STORM-366 to Changelog

Posted by bo...@apache.org.
Added STORM-366 to Changelog


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

Branch: refs/heads/master
Commit: d65c913e4ed5dce07f5c802fb5b9a046ce7d6597
Parents: af58c3b
Author: Robert (Bobby) Evans <bo...@apache.org>
Authored: Wed Jul 30 18:46:17 2014 -0500
Committer: Robert (Bobby) Evans <bo...@apache.org>
Committed: Wed Jul 30 18:46:17 2014 -0500

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


http://git-wip-us.apache.org/repos/asf/incubator-storm/blob/d65c913e/CHANGELOG.md
----------------------------------------------------------------------
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 3b38c34..126c762 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -33,6 +33,7 @@
  * STORM-155: Storm rebalancing code causes multiple topologies assigned to a single port
  * STORM-419: Updated test so sort ordering is very explicit.
  * STORM-406: Fix for reconnect logic in netty client.
+ * STORM-366: Add color span to most recent error and fix ui templates.
 
 ## 0.9.2-incubating
  * STORM-66: send taskid on initial handshake


[5/9] git commit: Update Storm UI REST API for error lapsed time

Posted by bo...@apache.org.
Update Storm UI REST API for error lapsed time


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

Branch: refs/heads/master
Commit: ba3c5c247e1bf72e4382da5981624b10e8650c6c
Parents: 2940d9d
Author: Kishor Patil <kp...@yahoo-inc.com>
Authored: Fri Jul 18 20:43:52 2014 +0000
Committer: Kishor Patil <kp...@yahoo-inc.com>
Committed: Fri Jul 18 20:43:52 2014 +0000

----------------------------------------------------------------------
 STORM-UI-REST-API.md | 23 +++++++++++++++++++++--
 1 file changed, 21 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-storm/blob/ba3c5c24/STORM-UI-REST-API.md
----------------------------------------------------------------------
diff --git a/STORM-UI-REST-API.md b/STORM-UI-REST-API.md
index 5222ca7..0c5cb1b 100644
--- a/STORM-UI-REST-API.md
+++ b/STORM-UI-REST-API.md
@@ -162,6 +162,8 @@ Response Fields:
 |spouts.transferred| Long |Total number of messages  transferred in given window|
 |spouts.tasks| Integer |Total number of tasks for the spout|
 |spouts.lastError| String |Shows the last error happened in a spout|
+|spouts.errorLapsedSecs| Integer | Number of seconds lapsed on nimbus since that last error happened in a spout|
+|spouts.errorWorkerLogLink| String | Link to the worker log that reported  the exception |
 |spouts.acked| Long |Number of messages acked|
 |spouts.failed| Long |Number of messages failed|
 |bolts| Array | Array of bolt components in the topology|
@@ -174,6 +176,8 @@ Response Fields:
 |bolts.acked| Long |Number of tuples acked by the bolt|
 |bolts.failed| Long |Number of tuples failed by the bolt|
 |bolts.lastError| String |Shows the last error occured in the bolt|
+|bolts.errorLapsedSecs| Integer |Number of seconds lapsed on nimbus since that last error happened in a bolt|
+|bolts.errorWorkerLogLink| String | Link to the worker log that reported  the exception |
 |bolts.emitted| Long |Number of tuples emitted|
 
 
@@ -246,6 +250,7 @@ Sample Response:
             "spoutId": "spout",
             "tasks": 5,
             "lastError": "",
+            "errorLapsedSecs": "",
             "failed": 0
         }
     ],
@@ -261,6 +266,7 @@ Sample Response:
             "processLatency": "0.043",
             "boltId": "count",
             "lastError": "",
+            "errorLapsedSecs": "",
             "capacity": "0.003",
             "failed": 0
         },
@@ -275,6 +281,7 @@ Sample Response:
             "processLatency": "2.112",
             "boltId": "split",
             "lastError": "",
+            "errorLapsedSecs": "",
             "capacity": "0.000",
             "failed": 0
         }
@@ -341,7 +348,13 @@ Response Fields:
 |componentType | String | component's type SPOUT or BOLT|
 |windowHint| String | window param value in "hh mm ss" format. Default value is "All Time"|
 |executors| Integer |Number of executor tasks in the component|
-|componentErrors| Array of Strings | List of component errors|
+|componentErrors| Array of Errors | List of component errors|
+|componentErrors.time| String | Date/time timezone for the error|
+|componentErrors.errorHost| String | host name for the error|
+|componentErrors.errorPort| String | port for the error|
+|componentErrors.error| String |Shows the error happened in a comopnent|
+|componentErrors.errorLapsedSecs| Integer | Number of seconds lapsed on nimbus since the error happened in a component |
+|componentErrors.errorWorkerLogLink| String | Link to the worker log that reported  the exception |
 |topologyId| String | Topology's Id|
 |tasks| Integer |Number of instances of component|
 |window    |String. Default value "All Time" | window duration for metrics in seconds|
@@ -375,7 +388,13 @@ Sample Response:
     "componentType": "spout",
     "windowHint": "10m 0s",
     "executors": 5,
-    "componentErrors": [],
+    "componentErrors":[{"time": "Fri, 18 Jul 2014 19:00:16 +0000",
+                        "errorHost": "10.11.1.70",
+                        "errorPort": 6701,
+                        "errorWorkerLogLink": "http://10.11.1.7:8000/log?file=worker-6701.log",
+                        "errorLapsedSecs": 16,
+                        "error": "java.lang.RuntimeException: java.lang.StringIndexOutOfBoundsException: Some Error\n\tat backtype.storm.utils.DisruptorQueue.consumeBatchToCursor(DisruptorQueue.java:128)\n\tat backtype.storm.utils.DisruptorQueue.consumeBatchWhenAvailable(DisruptorQueue.java:99)\n\tat backtype.storm.disruptor$consume_batch_when_available.invoke(disruptor.clj:80)\n\tat backtype...more.."
+    }],
     "topologyId": "WordCount3-1-1402960825",
     "tasks": 5,
     "window": "600",


[8/9] git commit: Merge branch 'show-recent-error' of https://github.com/kishorvpatil/incubator-storm into STORM-366

Posted by bo...@apache.org.
Merge branch 'show-recent-error' of https://github.com/kishorvpatil/incubator-storm into STORM-366

Conflicts:
	STORM-UI-REST-API.md

STORM-366: Add color span to most recent error and fix ui templates.


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

Branch: refs/heads/master
Commit: af58c3bcfd6f23de34bd895e741831e187734f6e
Parents: b2a8a77 6b50a7f
Author: Robert (Bobby) Evans <bo...@apache.org>
Authored: Wed Jul 30 18:45:37 2014 -0500
Committer: Robert (Bobby) Evans <bo...@apache.org>
Committed: Wed Jul 30 18:45:37 2014 -0500

----------------------------------------------------------------------
 STORM-UI-REST-API.md                            | 46 ++++++++++----------
 storm-core/src/clj/backtype/storm/ui/core.clj   | 11 ++---
 storm-core/src/ui/public/component.html         | 10 +++++
 .../templates/component-page-template.html      |  4 +-
 .../templates/topology-page-template.html       |  8 +++-
 storm-core/src/ui/public/topology.html          | 10 +++++
 6 files changed, 57 insertions(+), 32 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-storm/blob/af58c3bc/STORM-UI-REST-API.md
----------------------------------------------------------------------
diff --cc STORM-UI-REST-API.md
index e8a412d,72b5ea0..6dda435
--- a/STORM-UI-REST-API.md
+++ b/STORM-UI-REST-API.md
@@@ -341,9 -348,13 +348,13 @@@ Response Fields
  |componentType | String | component's type SPOUT or BOLT|
  |windowHint| String | window param value in "hh mm ss" format. Default value is "All Time"|
  |executors| Integer |Number of executor tasks in the component|
- |componentErrors| Array of Strings | List of component errors|
+ |componentErrors| Array of Errors | List of component errors|
 -|componentErrors.time| String | Date/time timezone for the error|
 +|componentErrors.time| Long | Timestamp when the exception occurred |
- |componentErrors.error| String | The stack trace of an exception info |
+ |componentErrors.errorHost| String | host name for the error|
+ |componentErrors.errorPort| String | port for the error|
+ |componentErrors.error| String |Shows the error happened in a component|
+ |componentErrors.errorLapsedSecs| Integer | Number of seconds elapsed since the error happened in a component |
+ |componentErrors.errorWorkerLogLink| String | Link to the worker log that reported the exception |
  |topologyId| String | Topology's Id|
  |tasks| Integer |Number of instances of component|
  |window    |String. Default value "All Time" | window duration for metrics in seconds|
@@@ -377,26 -388,13 +388,13 @@@ Sample Response
      "componentType": "spout",
      "windowHint": "10m 0s",
      "executors": 5,
-     "componentErrors": [
-     	{
-     		"time":1406006074000,
-     		"error":"java.lang.RuntimeException: java.lang.NullPointerException
- 	at backtype.storm.utils.DisruptorQueue.consumeBatchToCursor(DisruptorQueue.java:84)
- 	at backtype.storm.utils.DisruptorQueue.consumeBatchWhenAvailable(DisruptorQueue.java:55)
- 	at backtype.storm.disruptor$consume_batch_when_available.invoke(disruptor.clj:56)
- 	at backtype.storm.disruptor$consume_loop_STAR_$fn__1597.invoke(disruptor.clj:67)
- 	at backtype.storm.util$async_loop$fn__465.invoke(util.clj:377)
- 	at clojure.lang.AFn.run(AFn.java:24)
- 	at java.lang.Thread.run(Thread.java:662)
- Caused by: java.lang.NullPointerException
- 	at backtype.storm.serialization.SerializationFactory$IdDictionary.getStreamName(SerializationFactory.java:137)
- 	at backtype.storm.serialization.KryoTupleDeserializer.deserialize(KryoTupleDeserializer.java:34)
- 	at backtype.storm.daemon.executor$mk_task_receiver$fn__3967.invoke(executor.clj:311)
- 	at backtype.storm.disruptor$clojure_handler$reify__1585.onEvent(disruptor.clj:43)
- 	at backtype.storm.utils.DisruptorQueue.consumeBatchToCursor(DisruptorQueue.java:81)
- 	... 6 more"
-     	}
-     ],
 -    "componentErrors":[{"time": "Fri, 18 Jul 2014 19:00:16 +0000",
++    "componentErrors":[{"time": 1406006074000,
+                         "errorHost": "10.11.1.70",
+                         "errorPort": 6701,
+                         "errorWorkerLogLink": "http://10.11.1.7:8000/log?file=worker-6701.log",
+                         "errorLapsedSecs": 16,
+                         "error": "java.lang.RuntimeException: java.lang.StringIndexOutOfBoundsException: Some Error\n\tat backtype.storm.utils.DisruptorQueue.consumeBatchToCursor(DisruptorQueue.java:128)\n\tat backtype.storm.utils.DisruptorQueue.consumeBatchWhenAvailable(DisruptorQueue.java:99)\n\tat backtype.storm.disruptor$consume_batch_when_available.invoke(disruptor.clj:80)\n\tat backtype...more.."
+     }],
      "topologyId": "WordCount3-1-1402960825",
      "tasks": 5,
      "window": "600",

http://git-wip-us.apache.org/repos/asf/incubator-storm/blob/af58c3bc/storm-core/src/clj/backtype/storm/ui/core.clj
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/incubator-storm/blob/af58c3bc/storm-core/src/ui/public/component.html
----------------------------------------------------------------------


[4/9] git commit: Merge branch 'master' into show-recent-error

Posted by bo...@apache.org.
Merge branch 'master' into show-recent-error


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

Branch: refs/heads/master
Commit: 2940d9d43eab0c27d1ed1331472baa932e966d13
Parents: e5efcf5 85c9cd5
Author: Kishor Patil <kp...@yahoo-inc.com>
Authored: Fri Jul 18 15:10:50 2014 +0000
Committer: Kishor Patil <kp...@yahoo-inc.com>
Committed: Fri Jul 18 15:10:50 2014 +0000

----------------------------------------------------------------------
 BYLAWS.md                                       |  96 ++++
 CHANGELOG.md                                    |  18 +
 LICENSE                                         |   2 +-
 README.markdown                                 |   7 +
 STORM-UI-REST-API.md                            | 546 +++++++++++++++++++
 bin/storm                                       |  77 ++-
 conf/defaults.yaml                              |   2 +
 conf/storm_env.ini                              |   2 +-
 examples/storm-starter/README.markdown          |  27 +-
 .../src/jvm/storm/starter/RollingTopWords.java  |  62 ++-
 .../src/jvm/storm/starter/util/StormRunner.java |   8 +
 .../storm-kafka/src/jvm/storm/kafka/Broker.java |   9 +-
 .../src/jvm/storm/kafka/Partition.java          |   9 +-
 pom.xml                                         |   6 +-
 .../src/clj/backtype/storm/LocalCluster.clj     |   7 +-
 storm-core/src/clj/backtype/storm/cluster.clj   |  31 +-
 .../src/clj/backtype/storm/command/monitor.clj  |  37 ++
 .../src/clj/backtype/storm/daemon/common.clj    |   2 +-
 .../src/clj/backtype/storm/daemon/drpc.clj      |   7 +-
 .../src/clj/backtype/storm/daemon/logviewer.clj | 181 ++++--
 .../src/clj/backtype/storm/daemon/nimbus.clj    |   6 +-
 .../clj/backtype/storm/daemon/supervisor.clj    |  54 +-
 .../src/clj/backtype/storm/daemon/worker.clj    |  27 +-
 storm-core/src/clj/backtype/storm/disruptor.clj |   2 +-
 storm-core/src/clj/backtype/storm/event.clj     |   2 +-
 storm-core/src/clj/backtype/storm/testing.clj   |  77 +--
 .../src/clj/backtype/storm/ui/helpers.clj       |   5 +
 storm-core/src/clj/backtype/storm/util.clj      |  54 +-
 storm-core/src/clj/backtype/storm/zookeeper.clj |  25 +
 .../src/dev/resources/tester_bolt_metrics.py    |  35 ++
 .../src/dev/resources/tester_spout_metrics.py   |  51 ++
 storm-core/src/jvm/backtype/storm/Config.java   | 150 ++---
 .../jvm/backtype/storm/ConfigValidation.java    |  70 +++
 .../metric/api/rpc/AssignableShellMetric.java   |  30 +
 .../metric/api/rpc/CombinedShellMetric.java     |  31 ++
 .../storm/metric/api/rpc/CountShellMetric.java  |  38 ++
 .../storm/metric/api/rpc/IShellMetric.java      |  31 ++
 .../metric/api/rpc/ReducedShellMetric.java      |  32 ++
 .../storm/multilang/JsonSerializer.java         |  10 +
 .../jvm/backtype/storm/multilang/ShellMsg.java  |  20 +
 .../jvm/backtype/storm/spout/ShellSpout.java    |  44 +-
 .../src/jvm/backtype/storm/task/ShellBolt.java  |  47 +-
 .../backtype/storm/task/TopologyContext.java    |  24 +
 .../storm/testing/PythonShellMetricsBolt.java   |  32 ++
 .../storm/testing/PythonShellMetricsSpout.java  |  35 ++
 .../storm/ui/InvalidRequestException.java       |  20 +
 .../src/jvm/backtype/storm/utils/Monitor.java   | 249 +++++++++
 .../jvm/backtype/storm/utils/ShellProcess.java  |  46 +-
 .../src/jvm/backtype/storm/utils/Utils.java     |  23 +-
 storm-core/src/multilang/py/storm.py            |  11 +-
 storm-core/src/ui/public/component.html         |  22 +-
 storm-core/src/ui/public/css/style.css          |   1 +
 .../src/ui/public/js/jquery.tablesorter.min.js  |   9 +-
 storm-core/src/ui/public/topology.html          |   4 +-
 .../test/clj/backtype/storm/config_test.clj     |  41 +-
 .../test/clj/backtype/storm/metrics_test.clj    | 206 ++++---
 .../test/clj/backtype/storm/supervisor_test.clj |  45 +-
 57 files changed, 2411 insertions(+), 334 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-storm/blob/2940d9d4/storm-core/src/ui/public/component.html
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/incubator-storm/blob/2940d9d4/storm-core/src/ui/public/topology.html
----------------------------------------------------------------------


[2/9] git commit: revert tablesorter fix

Posted by bo...@apache.org.
revert tablesorter fix


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

Branch: refs/heads/master
Commit: 20ac58bbbcde6022068dce18ba69c87c59f81476
Parents: f0e6873
Author: Kishor Patil <kp...@yahoo-inc.com>
Authored: Wed Jun 25 15:34:11 2014 +0000
Committer: Kishor Patil <kp...@yahoo-inc.com>
Committed: Wed Jun 25 15:34:11 2014 +0000

----------------------------------------------------------------------
 storm-core/src/ui/public/component.html | 22 ++++++----------------
 storm-core/src/ui/public/topology.html  |  4 +---
 2 files changed, 7 insertions(+), 19 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-storm/blob/20ac58bb/storm-core/src/ui/public/component.html
----------------------------------------------------------------------
diff --git a/storm-core/src/ui/public/component.html b/storm-core/src/ui/public/component.html
index 512eba6..aae0245 100644
--- a/storm-core/src/ui/public/component.html
+++ b/storm-core/src/ui/public/component.html
@@ -73,32 +73,22 @@ $(document).ready(function() {
             componentSummary.append(Mustache.render($(template).filter("#component-summary-template").html(),response));
             if(response["componentType"] == "spout") {
                 componentStatsDetail.append(Mustache.render($(template).filter("#spout-stats-detail-template").html(),response));
-                if(response["spoutSummary"].length > 0) {
-                    $("#spout-stats-table").tablesorter({ sortList: [[0,0]], headers: {0: { sorter: "stormtimestr"}}});
-                }
+                $("#spout-stats-table").tablesorter({ sortList: [[0,0]], headers: {0: { sorter: "stormtimestr"}}});
                 outputStats.append(Mustache.render($(template).filter("#output-stats-template").html(),response));
-                if(response["outputStats"].length > 0) {
-                    $("#output-stats-table").tablesorter({ sortList: [[0,0]], headers: {0: { sorter: "stormtimestr"}}});
-                }
+                $("#output-stats-table").tablesorter({ sortList: [[0,0]], headers: {0: { sorter: "stormtimestr"}}});
                 executorStats.append(Mustache.render($(template).filter("#executor-stats-template").html(),response));
-                if(response["executorStats"].length > 0) {
-                    $("#executor-stats-table").tablesorter({ sortList: [[0,0]], headers: {1: { sorter: "stormtimestr"}}});
-                }
+                $("#executor-stats-table").tablesorter({ sortList: [[0,0]], headers: {1: { sorter: "stormtimestr"}}});
             } else {
                 componentStatsDetail.append(Mustache.render($(template).filter("#bolt-stats-template").html(),response));
-                if(response["boltStats"].length > 0) {
-                    $("#bolt-stats-table").tablesorter({ sortList: [[0,0]], headers: {0: { sorter: "stormtimestr"}}});
-                }
+                $("#bolt-stats-table").tablesorter({ sortList: [[0,0]], headers: {0: { sorter: "stormtimestr"}}});
                 inputStats.append(Mustache.render($(template).filter("#bolt-input-stats-template").html(),response));
                 if (response["inputStats"].length > 0) {
                     $("#bolt-input-stats-table").tablesorter({ sortList: [[0,0]], headers: {}});
                 }
                 outputStats.append(Mustache.render($(template).filter("#bolt-output-stats-template").html(),response));
-                if(response["outputStats"].length > 0) {
-                    $("#bolt-output-stats-table").tablesorter({ sortList: [[0,0]], headers: {}});
-                }
+                $("#bolt-output-stats-table").tablesorter({ sortList: [[0,0]], headers: {}});
                 executorStats.append(Mustache.render($(template).filter("#bolt-executor-template").html(),response));
-                if(response["executorStats"].length > 0) {
+                if(response["outputStats"].length > 0) {
                     $("#bolt-executor-table").tablesorter({ sortList: [[0,0]], headers: {}});
                 }
             }

http://git-wip-us.apache.org/repos/asf/incubator-storm/blob/20ac58bb/storm-core/src/ui/public/topology.html
----------------------------------------------------------------------
diff --git a/storm-core/src/ui/public/topology.html b/storm-core/src/ui/public/topology.html
index fd7340b..1020719 100644
--- a/storm-core/src/ui/public/topology.html
+++ b/storm-core/src/ui/public/topology.html
@@ -85,9 +85,7 @@ $(document).ready(function() {
             topologySummary.append(Mustache.render($(template).filter("#topology-summary-template").html(),response));
             topologyActions.append(Mustache.render($(template).filter("#topology-actions-template").html(),buttonJsonData));
             topologyStats.append(Mustache.render($(template).filter("#topology-stats-template").html(),response));
-            if(response["topologyStats"].length > 0) {
-                $("#topology-stats-table").tablesorter({ sortList: [[0,0]], headers: {0: { sorter: "stormtimestr"}}});
-            }
+            $("#topology-stats-table").tablesorter({ sortList: [[0,0]], headers: {0: { sorter: "stormtimestr"}}});
             spoutStats.append(Mustache.render($(template).filter("#spout-stats-template").html(),response));
             if(response["spouts"].length > 0) {
                 $("#spout-stats-table").tablesorter({sortList: [[0,0]], headers:{}});


[6/9] git commit: Fix STORM REST API

Posted by bo...@apache.org.
Fix STORM REST API


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

Branch: refs/heads/master
Commit: 4127249da6f2c5e6f89e91470f9ed3d517a1f3f2
Parents: ba3c5c2
Author: Kishor Patil <kp...@yahoo-inc.com>
Authored: Fri Jul 18 21:06:39 2014 +0000
Committer: Kishor Patil <kp...@yahoo-inc.com>
Committed: Fri Jul 18 21:06:39 2014 +0000

----------------------------------------------------------------------
 STORM-UI-REST-API.md | 18 +++++++++---------
 1 file changed, 9 insertions(+), 9 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-storm/blob/4127249d/STORM-UI-REST-API.md
----------------------------------------------------------------------
diff --git a/STORM-UI-REST-API.md b/STORM-UI-REST-API.md
index 0c5cb1b..22569cf 100644
--- a/STORM-UI-REST-API.md
+++ b/STORM-UI-REST-API.md
@@ -162,22 +162,22 @@ Response Fields:
 |spouts.transferred| Long |Total number of messages  transferred in given window|
 |spouts.tasks| Integer |Total number of tasks for the spout|
 |spouts.lastError| String |Shows the last error happened in a spout|
-|spouts.errorLapsedSecs| Integer | Number of seconds lapsed on nimbus since that last error happened in a spout|
-|spouts.errorWorkerLogLink| String | Link to the worker log that reported  the exception |
+|spouts.errorLapsedSecs| Integer | Number of seconds elapsed since that last error happened in a spout|
+|spouts.errorWorkerLogLink| String | Link to the worker log that reported the exception |
 |spouts.acked| Long |Number of messages acked|
 |spouts.failed| Long |Number of messages failed|
 |bolts| Array | Array of bolt components in the topology|
 |bolts.boltId| String |Bolt id|
-|bolts.capacity| String (double value returned in String format) |This value indicates number of mesages executed * average execute latency / time window|
+|bolts.capacity| String (double value returned in String format) |This value indicates number of messages executed * average execute latency / time window|
 |bolts.processLatency| String (double value returned in String format)  |Bolt's average time to ack a message after it's received|
 |bolts.executeLatency| String (double value returned in String format) |Average time for bolt's execute method |
 |bolts.executors| Integer |Number of executor tasks in the bolt component|
 |bolts.tasks| Integer |Number of instances of bolt|
 |bolts.acked| Long |Number of tuples acked by the bolt|
 |bolts.failed| Long |Number of tuples failed by the bolt|
-|bolts.lastError| String |Shows the last error occured in the bolt|
-|bolts.errorLapsedSecs| Integer |Number of seconds lapsed on nimbus since that last error happened in a bolt|
-|bolts.errorWorkerLogLink| String | Link to the worker log that reported  the exception |
+|bolts.lastError| String |Shows the last error occurred in the bolt|
+|bolts.errorLapsedSecs| Integer |Number of seconds elapsed since that last error happened in a bolt|
+|bolts.errorWorkerLogLink| String | Link to the worker log that reported the exception |
 |bolts.emitted| Long |Number of tuples emitted|
 
 
@@ -352,9 +352,9 @@ Response Fields:
 |componentErrors.time| String | Date/time timezone for the error|
 |componentErrors.errorHost| String | host name for the error|
 |componentErrors.errorPort| String | port for the error|
-|componentErrors.error| String |Shows the error happened in a comopnent|
-|componentErrors.errorLapsedSecs| Integer | Number of seconds lapsed on nimbus since the error happened in a component |
-|componentErrors.errorWorkerLogLink| String | Link to the worker log that reported  the exception |
+|componentErrors.error| String |Shows the error happened in a component|
+|componentErrors.errorLapsedSecs| Integer | Number of seconds elapsed since the error happened in a component |
+|componentErrors.errorWorkerLogLink| String | Link to the worker log that reported the exception |
 |topologyId| String | Topology's Id|
 |tasks| Integer |Number of instances of component|
 |window    |String. Default value "All Time" | window duration for metrics in seconds|


[7/9] git commit: Make sure errorLapsedSecs is always integer

Posted by bo...@apache.org.
Make sure errorLapsedSecs is always integer


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

Branch: refs/heads/master
Commit: 6b50a7f69984ff8d5dc53def4d5bcfeb12c06c5f
Parents: 4127249
Author: Kishor Patil <kp...@yahoo-inc.com>
Authored: Mon Jul 21 18:49:34 2014 +0000
Committer: Kishor Patil <kp...@yahoo-inc.com>
Committed: Mon Jul 21 18:49:34 2014 +0000

----------------------------------------------------------------------
 STORM-UI-REST-API.md                          | 6 +++---
 storm-core/src/clj/backtype/storm/ui/core.clj | 3 +--
 2 files changed, 4 insertions(+), 5 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-storm/blob/6b50a7f6/STORM-UI-REST-API.md
----------------------------------------------------------------------
diff --git a/STORM-UI-REST-API.md b/STORM-UI-REST-API.md
index 22569cf..72b5ea0 100644
--- a/STORM-UI-REST-API.md
+++ b/STORM-UI-REST-API.md
@@ -250,7 +250,7 @@ Sample Response:
             "spoutId": "spout",
             "tasks": 5,
             "lastError": "",
-            "errorLapsedSecs": "",
+            "errorLapsedSecs": null
             "failed": 0
         }
     ],
@@ -266,7 +266,7 @@ Sample Response:
             "processLatency": "0.043",
             "boltId": "count",
             "lastError": "",
-            "errorLapsedSecs": "",
+            "errorLapsedSecs": null
             "capacity": "0.003",
             "failed": 0
         },
@@ -281,7 +281,7 @@ Sample Response:
             "processLatency": "2.112",
             "boltId": "split",
             "lastError": "",
-            "errorLapsedSecs": "",
+            "errorLapsedSecs": null
             "capacity": "0.000",
             "failed": 0
         }

http://git-wip-us.apache.org/repos/asf/incubator-storm/blob/6b50a7f6/storm-core/src/clj/backtype/storm/ui/core.clj
----------------------------------------------------------------------
diff --git a/storm-core/src/clj/backtype/storm/ui/core.clj b/storm-core/src/clj/backtype/storm/ui/core.clj
index 7df44a9..2fe9ab7 100644
--- a/storm-core/src/clj/backtype/storm/ui/core.clj
+++ b/storm-core/src/clj/backtype/storm/ui/core.clj
@@ -292,8 +292,7 @@
 (defn get-error-time
   [error]
   (if error
-    (time-delta (.get_error_time_secs ^ErrorInfo error))
-    ""))
+    (time-delta (.get_error_time_secs ^ErrorInfo error))))
 
 (defn get-error-data 
   [error]