Browse Source

feat(alerting): extract method for join eval matches

bergquist 9 years ago
parent
commit
b49a642ca5

+ 12 - 1
public/app/features/alerting/alert_def.ts

@@ -1,6 +1,6 @@
 ///<reference path="../../headers/common.d.ts" />
 
-
+import _ from 'lodash';
 import {
   QueryPartDef,
   QueryPart,
@@ -89,6 +89,16 @@ function getStateDisplayModel(state) {
   }
 }
 
+function joinEvalMatches(matches, seperator: string) {
+  return _.reduce(matches, (res, ev)=> {
+    if (ev.Metric !== undefined && ev.Value !== undefined) {
+      res.push(ev.Metric + "=" + ev.Value);
+    }
+
+    return res;
+  }, []).join(seperator);
+}
+
 export default {
   alertQueryDef: alertQueryDef,
   getStateDisplayModel: getStateDisplayModel,
@@ -97,4 +107,5 @@ export default {
   noDataModes: noDataModes,
   reducerTypes: reducerTypes,
   createReducerPart: createReducerPart,
+  joinEvalMatches: joinEvalMatches,
 };

+ 1 - 5
public/app/features/alerting/alert_tab_ctrl.ts

@@ -90,11 +90,7 @@ export class AlertTabCtrl {
       this.alertHistory = _.map(res, ah => {
         ah.time = moment(ah.timestamp).format('MMM D, YYYY HH:mm:ss');
         ah.stateModel = alertDef.getStateDisplayModel(ah.newState);
-
-        ah.metrics = _.map(ah.data, ev=> {
-          return ev.Metric + "=" + ev.Value;
-        }).join(', ');
-
+        ah.metrics = alertDef.joinEvalMatches(ah.data, ', ');
         return ah;
       });
     });

+ 1 - 1
public/app/plugins/panel/alertlist/module.ts

@@ -47,6 +47,7 @@ class AlertListPanel extends PanelCtrl {
         this.alertHistory = _.map(res, al => {
           al.time = moment(al.timestamp).format('MMM D, YYYY HH:mm:ss');
           al.stateModel = alertDef.getStateDisplayModel(al.newState);
+          al.metrics = alertDef.joinEvalMatches(al.data, ', ');
           return al;
         });
       });
@@ -58,7 +59,6 @@ class AlertListPanel extends PanelCtrl {
         this.currentAlerts = _.map(res, al => {
           al.stateModel = alertDef.getStateDisplayModel(al.state);
           al.newStateDateAgo = moment(al.newStateDate).fromNow().replace(" ago", "");
-
           return al;
         });
       });