feat(alerting): renamed scheduler to handler

This commit is contained in:
Torkel Ödegaard
2016-06-13 15:58:22 +02:00
parent 7f22b9eb6e
commit dac8b35a1a
7 changed files with 25 additions and 47 deletions

View File

@@ -14,7 +14,7 @@ type Alert struct {
Name string Name string
Description string Description string
State string State string
Scheduler int64 Handler int64
Enabled bool Enabled bool
Created time.Time Created time.Time

View File

@@ -69,7 +69,7 @@ func (e *DashAlertExtractor) GetAlerts() ([]*m.Alert, error) {
PanelId: panel.Get("id").MustInt64(), PanelId: panel.Get("id").MustInt64(),
Id: jsonAlert.Get("id").MustInt64(), Id: jsonAlert.Get("id").MustInt64(),
Name: jsonAlert.Get("name").MustString(), Name: jsonAlert.Get("name").MustString(),
Scheduler: jsonAlert.Get("scheduler").MustInt64(), Handler: jsonAlert.Get("handler").MustInt64(),
Enabled: jsonAlert.Get("enabled").MustBool(), Enabled: jsonAlert.Get("enabled").MustBool(),
Description: jsonAlert.Get("description").MustString(), Description: jsonAlert.Get("description").MustString(),
} }

View File

@@ -39,7 +39,7 @@ func TestAlertRuleExtraction(t *testing.T) {
"alert": { "alert": {
"name": "name1", "name": "name1",
"description": "desc1", "description": "desc1",
"scheduler": 1, "handler": 1,
"enabled": true, "enabled": true,
"critical": { "critical": {
"level": 20, "level": 20,
@@ -74,7 +74,7 @@ func TestAlertRuleExtraction(t *testing.T) {
"alert": { "alert": {
"name": "name2", "name": "name2",
"description": "desc2", "description": "desc2",
"scheduler": 0, "handler": 0,
"enabled": true, "enabled": true,
"critical": { "critical": {
"level": 20, "level": 20,
@@ -197,9 +197,9 @@ func TestAlertRuleExtraction(t *testing.T) {
So(v.Description, ShouldNotBeEmpty) So(v.Description, ShouldNotBeEmpty)
} }
Convey("should extract scheduler property", func() { Convey("should extract handler property", func() {
So(alerts[0].Scheduler, ShouldEqual, 1) So(alerts[0].Handler, ShouldEqual, 1)
So(alerts[1].Scheduler, ShouldEqual, 0) So(alerts[1].Handler, ShouldEqual, 0)
}) })
Convey("should extract panel idc", func() { Convey("should extract panel idc", func() {

View File

@@ -17,7 +17,7 @@ func addAlertMigrations(mg *Migrator) {
{Name: "description", Type: DB_NVarchar, Length: 255, Nullable: false}, {Name: "description", Type: DB_NVarchar, Length: 255, Nullable: false},
{Name: "state", Type: DB_NVarchar, Length: 255, Nullable: false}, {Name: "state", Type: DB_NVarchar, Length: 255, Nullable: false},
{Name: "settings", Type: DB_Text, Nullable: false}, {Name: "settings", Type: DB_Text, Nullable: false},
{Name: "scheduler", Type: DB_BigInt, Nullable: false}, {Name: "handler", Type: DB_BigInt, Nullable: false},
{Name: "enabled", Type: DB_Bool, Nullable: false}, {Name: "enabled", Type: DB_Bool, Nullable: false},
{Name: "created", Type: DB_DateTime, Nullable: false}, {Name: "created", Type: DB_DateTime, Nullable: false},
{Name: "updated", Type: DB_DateTime, Nullable: false}, {Name: "updated", Type: DB_DateTime, Nullable: false},

View File

@@ -58,15 +58,11 @@ export class AlertHandleManager {
isMoving = false; isMoving = false;
// calculate graph level // calculate graph level
var graphLevel = plot.c2p({left: 0, top: posTop}).y; var graphLevel = plot.c2p({left: 0, top: posTop}).y;
console.log('canvasPos:' + posTop + ' Graph level: ' + graphLevel);
graphLevel = parseInt(graphLevel.toFixed(0)); graphLevel = parseInt(graphLevel.toFixed(0));
levelModel.level = graphLevel; levelModel.level = graphLevel;
console.log(levelModel);
var levelCanvasPos = plot.p2c({x: 0, y: graphLevel}); var levelCanvasPos = plot.p2c({x: 0, y: graphLevel});
console.log('canvas pos', levelCanvasPos);
console.log('stopped');
handleElem.off("mousemove", dragging); handleElem.off("mousemove", dragging);
handleElem.off("mouseup", dragging); handleElem.off("mouseup", dragging);
@@ -80,7 +76,6 @@ export class AlertHandleManager {
isMoving = true; isMoving = true;
lastY = null; lastY = null;
posTop = handleElem.position().top; posTop = handleElem.position().top;
console.log('start pos', posTop);
handleElem.on("mousemove", dragging); handleElem.on("mousemove", dragging);
handleElem.on("mouseup", stopped); handleElem.on("mouseup", stopped);
@@ -109,12 +104,10 @@ export class AlertHandleManager {
} }
if (handleElem.length === 0) { if (handleElem.length === 0) {
console.log('creating handle');
handleElem = $(this.getFullHandleHtml(type, model.op, levelStr)); handleElem = $(this.getFullHandleHtml(type, model.op, levelStr));
this.placeholder.append(handleElem); this.placeholder.append(handleElem);
this.setupDragging(handleElem, model); this.setupDragging(handleElem, model);
} else { } else {
console.log('reusing handle!');
handleElem.html(this.getHandleInnerHtml(type, model.op, levelStr)); handleElem.html(this.getHandleInnerHtml(type, model.op, levelStr));
} }

View File

@@ -23,7 +23,7 @@ export class AlertTabCtrl {
panel: any; panel: any;
panelCtrl: any; panelCtrl: any;
metricTargets = [{ refId: '- select query -' } ]; metricTargets = [{ refId: '- select query -' } ];
schedulers = [{text: 'Grafana', value: 1}, {text: 'External', value: 0}]; handlers = [{text: 'Grafana', value: 1}, {text: 'External', value: 0}];
transforms = [ transforms = [
{ {
text: 'Aggregation', text: 'Aggregation',
@@ -49,7 +49,7 @@ export class AlertTabCtrl {
frequency: '60s', frequency: '60s',
notify: [], notify: [],
enabled: false, enabled: false,
scheduler: 1, handler: 1,
warn: { op: '>', level: undefined }, warn: { op: '>', level: undefined },
critical: { op: '>', level: undefined }, critical: { op: '>', level: undefined },
query: { query: {
@@ -104,7 +104,6 @@ export class AlertTabCtrl {
// init the query part components model // init the query part components model
this.query = new QueryPart(this.queryParams, alertQueryDef); this.query = new QueryPart(this.queryParams, alertQueryDef);
this.convertThresholdsToAlertThresholds();
this.transformDef = _.findWhere(this.transforms, {type: this.alert.transform.type}); this.transformDef = _.findWhere(this.transforms, {type: this.alert.transform.type});
this.panelCtrl.editingAlert = true; this.panelCtrl.editingAlert = true;
@@ -136,22 +135,8 @@ export class AlertTabCtrl {
} }
} }
convertThresholdsToAlertThresholds() { operatorChanged() {
// if (this.panel.grid this.panelCtrl.render();
// && this.panel.grid.threshold1
// && this.alert.warnLevel === undefined
// ) {
// this.alert.warning.op = '>';
// this.alert.warning.level = this.panel.grid.threshold1;
// }
//
// if (this.panel.grid
// && this.panel.grid.threshold2
// && this.alert.critical.level === undefined
// ) {
// this.alert.critical.op = '>';
// this.alert.critical.level = this.panel.grid.threshold2;
// }
} }
delete() { delete() {

View File

@@ -41,21 +41,21 @@
<div class="gf-form-group section"> <div class="gf-form-group section">
<h5 class="section-heading">Levels</h5> <h5 class="section-heading">Levels</h5>
<div class="gf-form-inline"> <div class="gf-form-inline">
<div class="gf-form"> <div class="gf-form">
<span class="gf-form-label">
<i class="icon-gf icon-gf-warn alert-icon-warn"></i>
Warn if
</span>
<metric-segment-model property="ctrl.alert.warn.op" options="ctrl.levelOpList" custom="false" css-class="query-segment-operator"></metric-segment-model>
<input class="gf-form-input max-width-7" type="number" ng-model="ctrl.alert.warn.level" ng-change="ctrl.levelsUpdated()"></input>
</div>
<div class="gf-form">
<span class="gf-form-label"> <span class="gf-form-label">
<i class="icon-gf icon-gf-warn alert-icon-critical"></i> <i class="icon-gf icon-gf-warn alert-icon-critical"></i>
Critcal if Critcal if
</span> </span>
<metric-segment-model property="ctrl.alert.critical.op" options="ctrl.levelOpList" custom="false" css-class="query-segment-operator"></metric-segment-model> <metric-segment-model property="ctrl.alert.critical.op" options="ctrl.levelOpList" custom="false" css-class="query-segment-operator" on-change="ctrl.operatorChanged()"></metric-segment-model>
<input class="gf-form-input max-width-7" type="number" ng-model="ctrl.alert.critical.level" ng-change="ctrl.levelsUpdated()"></input> <input class="gf-form-input max-width-7" type="number" ng-model="ctrl.alert.critical.level" ng-change="ctrl.levelsUpdated()"></input>
</div>
<div class="gf-form">
<span class="gf-form-label">
<i class="icon-gf icon-gf-warn alert-icon-warn"></i>
Warn if
</span>
<metric-segment-model property="ctrl.alert.warn.op" options="ctrl.levelOpList" custom="false" css-class="query-segment-operator" on-change="ctrl.operatorChanged()"></metric-segment-model>
<input class="gf-form-input max-width-7" type="number" ng-model="ctrl.alert.warn.level" ng-change="ctrl.levelsUpdated()"></input>
</div> </div>
</div> </div>
</div> </div>
@@ -66,11 +66,11 @@
<h5 class="section-heading">Execution</h5> <h5 class="section-heading">Execution</h5>
<div class="gf-form-inline"> <div class="gf-form-inline">
<div class="gf-form"> <div class="gf-form">
<span class="gf-form-label">Scheduler</span> <span class="gf-form-label">Handler</span>
<div class="gf-form-select-wrapper"> <div class="gf-form-select-wrapper">
<select class="gf-form-input" <select class="gf-form-input"
ng-model="ctrl.alert.scheduler" ng-model="ctrl.alert.handler"
ng-options="f.value as f.text for f in ctrl.schedulers"> ng-options="f.value as f.text for f in ctrl.handlers">
</select> </select>
</div> </div>
</div> </div>