dashboard: fix the problem that dashboard could not correctly display the SystemRule in CPU usage strategy (#927)
This commit is contained in:
parent
d19df2aadc
commit
5e85965754
|
|
@ -88,10 +88,33 @@ public class SystemController {
|
||||||
return notNullCount;
|
return notNullCount;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @modify
|
||||||
|
* 目前代码里做了如下几点修改:
|
||||||
|
* 1】修改属性名称avgLoad 修改为highestSystemLoad
|
||||||
|
* 2】修改属性名称avgCpu 修改为highestCpuUsage
|
||||||
|
* 3】调用countNotNullAndNotNegative非空校验方法里增加参数highestCpuUsage,
|
||||||
|
* 4】修改notNullCount部分判断错误提示语,因为目前countNotNullAndNotNegative里针对=0的情况也做了限制
|
||||||
|
* 5】对于highestSystemLoad、highestCpuUsage增加>1 的这个判断
|
||||||
|
* @author tianyang5@yeah.net
|
||||||
|
* @time 2019年7月17日 18:30:32
|
||||||
|
* @modify
|
||||||
|
*
|
||||||
|
* @param request
|
||||||
|
* @param app
|
||||||
|
* @param ip
|
||||||
|
* @param port
|
||||||
|
* @param highestSystemLoad
|
||||||
|
* @param highestCpuUsage
|
||||||
|
* @param avgRt
|
||||||
|
* @param maxThread
|
||||||
|
* @param qps
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
@ResponseBody
|
@ResponseBody
|
||||||
@RequestMapping("/new.json")
|
@RequestMapping("/new.json")
|
||||||
Result<?> add(HttpServletRequest request,
|
Result<?> add(HttpServletRequest request,
|
||||||
String app, String ip, Integer port, Double avgLoad, Long avgRt, Long maxThread, Double qps) {
|
String app, String ip, Integer port, Double highestSystemLoad,Double highestCpuUsage, Long avgRt, Long maxThread, Double qps) {
|
||||||
AuthUser authUser = authService.getAuthUser(request);
|
AuthUser authUser = authService.getAuthUser(request);
|
||||||
authUser.authTarget(app, PrivilegeType.WRITE_RULE);
|
authUser.authTarget(app, PrivilegeType.WRITE_RULE);
|
||||||
if (StringUtil.isBlank(app)) {
|
if (StringUtil.isBlank(app)) {
|
||||||
|
|
@ -103,21 +126,32 @@ public class SystemController {
|
||||||
if (port == null) {
|
if (port == null) {
|
||||||
return Result.ofFail(-1, "port can't be null");
|
return Result.ofFail(-1, "port can't be null");
|
||||||
}
|
}
|
||||||
int notNullCount = countNotNullAndNotNegative(avgLoad, avgRt, maxThread, qps);
|
|
||||||
|
int notNullCount = countNotNullAndNotNegative(highestSystemLoad, avgRt, maxThread, qps,highestCpuUsage);
|
||||||
if (notNullCount != 1) {
|
if (notNullCount != 1) {
|
||||||
return Result.ofFail(-1, "only one of [avgLoad, avgRt, maxThread, qps] "
|
return Result.ofFail(-1, "only one of [highestSystemLoad, avgRt, maxThread, qps,highestCpuUsage] "
|
||||||
+ "value must be set >= 0, but " + notNullCount + " values get");
|
+ "value must be set > 0, but " + notNullCount + " values get");
|
||||||
|
}
|
||||||
|
if ( null!=highestCpuUsage && 1 < highestCpuUsage ) {
|
||||||
|
return Result.ofFail(-1, "highestCpuUsage must <= 1");
|
||||||
}
|
}
|
||||||
SystemRuleEntity entity = new SystemRuleEntity();
|
SystemRuleEntity entity = new SystemRuleEntity();
|
||||||
entity.setApp(app.trim());
|
entity.setApp(app.trim());
|
||||||
entity.setIp(ip.trim());
|
entity.setIp(ip.trim());
|
||||||
entity.setPort(port);
|
entity.setPort(port);
|
||||||
// -1 is a fake value
|
// -1 is a fake value
|
||||||
if (avgLoad != null) {
|
if ( null != highestSystemLoad ) {
|
||||||
entity.setAvgLoad(avgLoad);
|
entity.setHighestSystemLoad(highestSystemLoad);
|
||||||
} else {
|
} else {
|
||||||
entity.setAvgLoad(-1D);
|
entity.setHighestSystemLoad(-1D);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if ( null != highestCpuUsage ) {
|
||||||
|
entity.setHighestCpuUsage(highestCpuUsage);
|
||||||
|
} else {
|
||||||
|
entity.setHighestCpuUsage(-1D);
|
||||||
|
}
|
||||||
|
|
||||||
if (avgRt != null) {
|
if (avgRt != null) {
|
||||||
entity.setAvgRt(avgRt);
|
entity.setAvgRt(avgRt);
|
||||||
} else {
|
} else {
|
||||||
|
|
@ -148,10 +182,30 @@ public class SystemController {
|
||||||
return Result.ofSuccess(entity);
|
return Result.ofSuccess(entity);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @modify
|
||||||
|
* 目前代码里做了如下几点修改:
|
||||||
|
* 1】修改属性名称avgLoad 修改为highestSystemLoad
|
||||||
|
* 2】修改属性名称avgCpu 修改为highestCpuUsage
|
||||||
|
* 1】对于highestSystemLoad、highestCpuUsage增加>1 的这个判断,调整原先<0的判断,调整为<=0 等于0的这种规则设置了也没有意义
|
||||||
|
* @author tianyang5@yeah.net
|
||||||
|
* @time 2019年7月17日 18:30:32
|
||||||
|
* @modify
|
||||||
|
*
|
||||||
|
* @param request
|
||||||
|
* @param id
|
||||||
|
* @param app
|
||||||
|
* @param highestSystemLoad
|
||||||
|
* @param highestCpuUsage
|
||||||
|
* @param avgRt
|
||||||
|
* @param maxThread
|
||||||
|
* @param qps
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
@ResponseBody
|
@ResponseBody
|
||||||
@RequestMapping("/save.json")
|
@RequestMapping("/save.json")
|
||||||
Result<?> updateIfNotNull(HttpServletRequest request,
|
Result<?> updateIfNotNull(HttpServletRequest request,
|
||||||
Long id, String app, Double avgLoad, Long avgRt, Long maxThread, Double qps) {
|
Long id, String app, Double highestSystemLoad,Double highestCpuUsage, Long avgRt, Long maxThread, Double qps) {
|
||||||
AuthUser authUser = authService.getAuthUser(request);
|
AuthUser authUser = authService.getAuthUser(request);
|
||||||
if (id == null) {
|
if (id == null) {
|
||||||
return Result.ofFail(-1, "id can't be null");
|
return Result.ofFail(-1, "id can't be null");
|
||||||
|
|
@ -164,11 +218,20 @@ public class SystemController {
|
||||||
if (StringUtil.isNotBlank(app)) {
|
if (StringUtil.isNotBlank(app)) {
|
||||||
entity.setApp(app.trim());
|
entity.setApp(app.trim());
|
||||||
}
|
}
|
||||||
if (avgLoad != null) {
|
if (highestSystemLoad != null) {
|
||||||
if (avgLoad < 0) {
|
if (highestSystemLoad <= 0) {
|
||||||
return Result.ofFail(-1, "avgLoad must >= 0");
|
return Result.ofFail(-1, "highestSystemLoad must >= 0");
|
||||||
}
|
}
|
||||||
entity.setAvgLoad(avgLoad);
|
entity.setHighestSystemLoad(highestSystemLoad);
|
||||||
|
}
|
||||||
|
if (highestCpuUsage != null) {
|
||||||
|
if (highestCpuUsage < 0) {
|
||||||
|
return Result.ofFail(-1, "highestCpuUsage must >= 0");
|
||||||
|
}
|
||||||
|
if (highestCpuUsage > 1) {
|
||||||
|
return Result.ofFail(-1, "highestCpuUsage must <= 1");
|
||||||
|
}
|
||||||
|
entity.setHighestCpuUsage(highestCpuUsage);
|
||||||
}
|
}
|
||||||
if (avgRt != null) {
|
if (avgRt != null) {
|
||||||
if (avgRt < 0) {
|
if (avgRt < 0) {
|
||||||
|
|
|
||||||
|
|
@ -15,10 +15,10 @@
|
||||||
*/
|
*/
|
||||||
package com.alibaba.csp.sentinel.dashboard.datasource.entity.rule;
|
package com.alibaba.csp.sentinel.dashboard.datasource.entity.rule;
|
||||||
|
|
||||||
import java.util.Date;
|
|
||||||
|
|
||||||
import com.alibaba.csp.sentinel.slots.system.SystemRule;
|
import com.alibaba.csp.sentinel.slots.system.SystemRule;
|
||||||
|
|
||||||
|
import java.util.Date;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author leyou
|
* @author leyou
|
||||||
*/
|
*/
|
||||||
|
|
@ -29,10 +29,21 @@ public class SystemRuleEntity implements RuleEntity {
|
||||||
private String app;
|
private String app;
|
||||||
private String ip;
|
private String ip;
|
||||||
private Integer port;
|
private Integer port;
|
||||||
private Double avgLoad;
|
/**
|
||||||
|
* 对应SystemRule 里的属性highestSystemLoad,这里做下调整
|
||||||
|
* @author tianyang5@yeah.net
|
||||||
|
* @time 2019年7月17日 18:30:32
|
||||||
|
*/
|
||||||
|
private Double highestSystemLoad;
|
||||||
private Long avgRt;
|
private Long avgRt;
|
||||||
private Long maxThread;
|
private Long maxThread;
|
||||||
private Double qps;
|
private Double qps;
|
||||||
|
/**
|
||||||
|
* 对应SystemRule 里的属性highestCpuUsage
|
||||||
|
* @author tianyang5@yeah.net
|
||||||
|
* @time 2019年7月17日 18:30:32
|
||||||
|
*/
|
||||||
|
private Double highestCpuUsage;
|
||||||
|
|
||||||
private Date gmtCreate;
|
private Date gmtCreate;
|
||||||
private Date gmtModified;
|
private Date gmtModified;
|
||||||
|
|
@ -42,7 +53,8 @@ public class SystemRuleEntity implements RuleEntity {
|
||||||
entity.setApp(app);
|
entity.setApp(app);
|
||||||
entity.setIp(ip);
|
entity.setIp(ip);
|
||||||
entity.setPort(port);
|
entity.setPort(port);
|
||||||
entity.setAvgLoad(rule.getHighestSystemLoad());
|
entity.setHighestSystemLoad(rule.getHighestSystemLoad());
|
||||||
|
entity.setHighestCpuUsage(rule.getHighestCpuUsage());
|
||||||
entity.setAvgRt(rule.getAvgRt());
|
entity.setAvgRt(rule.getAvgRt());
|
||||||
entity.setMaxThread(rule.getMaxThread());
|
entity.setMaxThread(rule.getMaxThread());
|
||||||
entity.setQps(rule.getQps());
|
entity.setQps(rule.getQps());
|
||||||
|
|
@ -86,12 +98,12 @@ public class SystemRuleEntity implements RuleEntity {
|
||||||
this.app = app;
|
this.app = app;
|
||||||
}
|
}
|
||||||
|
|
||||||
public Double getAvgLoad() {
|
public Double getHighestSystemLoad() {
|
||||||
return avgLoad;
|
return highestSystemLoad;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setAvgLoad(Double avgLoad) {
|
public void setHighestSystemLoad(Double highestSystemLoad) {
|
||||||
this.avgLoad = avgLoad;
|
this.highestSystemLoad = highestSystemLoad;
|
||||||
}
|
}
|
||||||
|
|
||||||
public Long getAvgRt() {
|
public Long getAvgRt() {
|
||||||
|
|
@ -118,6 +130,14 @@ public class SystemRuleEntity implements RuleEntity {
|
||||||
this.qps = qps;
|
this.qps = qps;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public Double getHighestCpuUsage() {
|
||||||
|
return highestCpuUsage;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setHighestCpuUsage(Double highestCpuUsage) {
|
||||||
|
this.highestCpuUsage = highestCpuUsage;
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Date getGmtCreate() {
|
public Date getGmtCreate() {
|
||||||
return gmtCreate;
|
return gmtCreate;
|
||||||
|
|
@ -138,10 +158,11 @@ public class SystemRuleEntity implements RuleEntity {
|
||||||
@Override
|
@Override
|
||||||
public SystemRule toRule() {
|
public SystemRule toRule() {
|
||||||
SystemRule rule = new SystemRule();
|
SystemRule rule = new SystemRule();
|
||||||
rule.setHighestSystemLoad(avgLoad);
|
rule.setHighestSystemLoad(highestSystemLoad);
|
||||||
rule.setAvgRt(avgRt);
|
rule.setAvgRt(avgRt);
|
||||||
rule.setMaxThread(maxThread);
|
rule.setMaxThread(maxThread);
|
||||||
rule.setQps(qps);
|
rule.setQps(qps);
|
||||||
|
rule.setHighestCpuUsage(highestCpuUsage);
|
||||||
return rule;
|
return rule;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -38,7 +38,7 @@ app.controller('SystemCtl', ['$scope', '$stateParams', 'SystemService', 'ngDialo
|
||||||
$scope.rules = data.data;
|
$scope.rules = data.data;
|
||||||
$.each($scope.rules, function (idx, rule) {
|
$.each($scope.rules, function (idx, rule) {
|
||||||
// rule.orginEnable = rule.enable;
|
// rule.orginEnable = rule.enable;
|
||||||
if (rule.avgLoad >= 0) {
|
if (rule.highestSystemLoad >= 0) {
|
||||||
rule.grade = 0;
|
rule.grade = 0;
|
||||||
} else if (rule.avgRt >= 0) {
|
} else if (rule.avgRt >= 0) {
|
||||||
rule.grade = 1;
|
rule.grade = 1;
|
||||||
|
|
@ -46,6 +46,8 @@ app.controller('SystemCtl', ['$scope', '$stateParams', 'SystemService', 'ngDialo
|
||||||
rule.grade = 2;
|
rule.grade = 2;
|
||||||
} else if (rule.qps >= 0) {
|
} else if (rule.qps >= 0) {
|
||||||
rule.grade = 3;
|
rule.grade = 3;
|
||||||
|
}else if (rule.highestCpuUsage >= 0) {
|
||||||
|
rule.grade = 4;
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
$scope.rulesPageConfig.totalCount = $scope.rules.length;
|
$scope.rulesPageConfig.totalCount = $scope.rules.length;
|
||||||
|
|
@ -107,9 +109,9 @@ app.controller('SystemCtl', ['$scope', '$stateParams', 'SystemService', 'ngDialo
|
||||||
$scope.currentRule = rule;
|
$scope.currentRule = rule;
|
||||||
var ruleTypeDesc = '';
|
var ruleTypeDesc = '';
|
||||||
var ruleTypeCount = null;
|
var ruleTypeCount = null;
|
||||||
if (rule.avgLoad != -1) {
|
if (rule.highestSystemLoad != -1) {
|
||||||
ruleTypeDesc = 'LOAD';
|
ruleTypeDesc = '系统LOAD';
|
||||||
ruleTypeCount = rule.avgLoad;
|
ruleTypeCount = rule.highestSystemLoad;
|
||||||
} else if (rule.avgRt != -1) {
|
} else if (rule.avgRt != -1) {
|
||||||
ruleTypeDesc = 'RT';
|
ruleTypeDesc = 'RT';
|
||||||
ruleTypeCount = rule.avgRt;
|
ruleTypeCount = rule.avgRt;
|
||||||
|
|
@ -119,6 +121,9 @@ app.controller('SystemCtl', ['$scope', '$stateParams', 'SystemService', 'ngDialo
|
||||||
} else if (rule.qps != -1) {
|
} else if (rule.qps != -1) {
|
||||||
ruleTypeDesc = 'QPS';
|
ruleTypeDesc = 'QPS';
|
||||||
ruleTypeCount = rule.qps;
|
ruleTypeCount = rule.qps;
|
||||||
|
}else if (rule.highestCpuUsage != -1) {
|
||||||
|
ruleTypeDesc = 'CPU 使用率';
|
||||||
|
ruleTypeCount = rule.highestCpuUsage;
|
||||||
}
|
}
|
||||||
|
|
||||||
$scope.confirmDialog = {
|
$scope.confirmDialog = {
|
||||||
|
|
@ -159,8 +164,10 @@ app.controller('SystemCtl', ['$scope', '$stateParams', 'SystemService', 'ngDialo
|
||||||
if (data.code == 0) {
|
if (data.code == 0) {
|
||||||
getMachineRules();
|
getMachineRules();
|
||||||
confirmDialog.close();
|
confirmDialog.close();
|
||||||
|
} else if(data.msg!=null){
|
||||||
|
alert(data.msg);
|
||||||
} else{
|
} else{
|
||||||
alert
|
alert('失败!');
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
@ -170,6 +177,8 @@ app.controller('SystemCtl', ['$scope', '$stateParams', 'SystemService', 'ngDialo
|
||||||
if (data.code == 0) {
|
if (data.code == 0) {
|
||||||
getMachineRules();
|
getMachineRules();
|
||||||
systemRuleDialog.close();
|
systemRuleDialog.close();
|
||||||
|
} else if(data.msg!=null){
|
||||||
|
alert(data.msg);
|
||||||
}else{
|
}else{
|
||||||
alert('失败!');
|
alert('失败!');
|
||||||
}
|
}
|
||||||
|
|
@ -190,6 +199,8 @@ app.controller('SystemCtl', ['$scope', '$stateParams', 'SystemService', 'ngDialo
|
||||||
} else {
|
} else {
|
||||||
confirmDialog.close();
|
confirmDialog.close();
|
||||||
}
|
}
|
||||||
|
} else if(data.msg!=null){
|
||||||
|
alert(data.msg);
|
||||||
}else{
|
}else{
|
||||||
alert('失败!');
|
alert('失败!');
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -21,13 +21,15 @@ app.service('SystemService', ['$http', function ($http) {
|
||||||
port: rule.port
|
port: rule.port
|
||||||
};
|
};
|
||||||
if (rule.grade == 0) {// avgLoad
|
if (rule.grade == 0) {// avgLoad
|
||||||
param.avgLoad = rule.avgLoad;
|
param.highestSystemLoad = rule.highestSystemLoad;
|
||||||
} else if (rule.grade == 1) {// avgRt
|
} else if (rule.grade == 1) {// avgRt
|
||||||
param.avgRt = rule.avgRt;
|
param.avgRt = rule.avgRt;
|
||||||
} else if (rule.grade == 2) {// maxThread
|
} else if (rule.grade == 2) {// maxThread
|
||||||
param.maxThread = rule.maxThread;
|
param.maxThread = rule.maxThread;
|
||||||
} else if (rule.grade == 3) {// qps
|
} else if (rule.grade == 3) {// qps
|
||||||
param.qps = rule.qps;
|
param.qps = rule.qps;
|
||||||
|
}else if (rule.grade == 4) {// cpu
|
||||||
|
param.highestCpuUsage = rule.highestCpuUsage;
|
||||||
}
|
}
|
||||||
|
|
||||||
return $http({
|
return $http({
|
||||||
|
|
@ -42,14 +44,17 @@ app.service('SystemService', ['$http', function ($http) {
|
||||||
id: rule.id,
|
id: rule.id,
|
||||||
};
|
};
|
||||||
if (rule.grade == 0) {// avgLoad
|
if (rule.grade == 0) {// avgLoad
|
||||||
param.avgLoad = rule.avgLoad;
|
param.highestSystemLoad = rule.highestSystemLoad;
|
||||||
} else if (rule.grade == 1) {// avgRt
|
} else if (rule.grade == 1) {// avgRt
|
||||||
param.avgRt = rule.avgRt;
|
param.avgRt = rule.avgRt;
|
||||||
} else if (rule.grade == 2) {// maxThread
|
} else if (rule.grade == 2) {// maxThread
|
||||||
param.maxThread = rule.maxThread;
|
param.maxThread = rule.maxThread;
|
||||||
} else if (rule.grade == 3) {// qps
|
} else if (rule.grade == 3) {// qps
|
||||||
param.qps = rule.qps;
|
param.qps = rule.qps;
|
||||||
|
}else if (rule.grade == 4) {// cpu
|
||||||
|
param.highestCpuUsage = rule.highestCpuUsage;
|
||||||
}
|
}
|
||||||
|
|
||||||
return $http({
|
return $http({
|
||||||
url: '/system/save.json',
|
url: '/system/save.json',
|
||||||
params: param,
|
params: param,
|
||||||
|
|
|
||||||
|
|
@ -9,40 +9,41 @@
|
||||||
<label class="col-sm-2 control-label">阈值类型</label>
|
<label class="col-sm-2 control-label">阈值类型</label>
|
||||||
<div class="col-sm-9">
|
<div class="col-sm-9">
|
||||||
<div class="form-control" ng-if="systemRuleDialog.type == 'edit'" align="center">
|
<div class="form-control" ng-if="systemRuleDialog.type == 'edit'" align="center">
|
||||||
<!--avgLoad -->
|
<!--highestSystemLoad -->
|
||||||
<input type="radio" name="grade" value="0" ng-model='currentRule.grade' ng-disabled="systemRuleDialog.type == 'edit'" /> LOAD
|
<input type="radio" name="grade" value="0" ng-model='currentRule.grade' ng-disabled="systemRuleDialog.type == 'edit'" /> 系统LOAD
|
||||||
<!--avgRt -->
|
<!--avgRt -->
|
||||||
<input type="radio" name="grade" value="1" ng-model='currentRule.grade' ng-disabled="systemRuleDialog.type == 'edit'" /> RT
|
<input type="radio" name="grade" value="1" ng-model='currentRule.grade' ng-disabled="systemRuleDialog.type == 'edit'" /> RT
|
||||||
<!--maxThread -->
|
<!--maxThread -->
|
||||||
<input type="radio" name="grade" value="2" ng-model='currentRule.grade' ng-disabled="systemRuleDialog.type == 'edit'" /> 线程数
|
<input type="radio" name="grade" value="2" ng-model='currentRule.grade' ng-disabled="systemRuleDialog.type == 'edit'" /> 线程数
|
||||||
<!--qps -->
|
<!--qps -->
|
||||||
<input type="radio" name="grade" value="3" checked ng-model='currentRule.grade' ng-disabled="systemRuleDialog.type == 'edit'"
|
<input type="radio" name="grade" value="3" ng-model='currentRule.grade' ng-disabled="systemRuleDialog.type == 'edit'"/> 入口 QPS
|
||||||
/> 入口 QPS
|
<!--highestCpuUsage -->
|
||||||
|
<input type="radio" name="grade" value="4" checked ng-model='currentRule.grade' ng-disabled="systemRuleDialog.type == 'edit'" /> CPU 使用率
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
<div class="form-control highlight-border" ng-if="systemRuleDialog.type == 'add'" align="center">
|
<div class="form-control highlight-border" ng-if="systemRuleDialog.type == 'add'" align="center">
|
||||||
<!--avgLoad -->
|
<!--highestSystemLoad -->
|
||||||
<input type="radio" name="grade" value="0" ng-model='currentRule.grade' ng-disabled="systemRuleDialog.type == 'edit'" /> LOAD
|
<input type="radio" name="grade" value="0" ng-model='currentRule.grade' ng-disabled="systemRuleDialog.type == 'edit'" /> 系统LOAD
|
||||||
<!--avgRt -->
|
<!--avgRt -->
|
||||||
<input type="radio" name="grade" value="1" ng-model='currentRule.grade' ng-disabled="systemRuleDialog.type == 'edit'" /> RT
|
<input type="radio" name="grade" value="1" ng-model='currentRule.grade' ng-disabled="systemRuleDialog.type == 'edit'" /> RT
|
||||||
<!--maxThread -->
|
<!--maxThread -->
|
||||||
<input type="radio" name="grade" value="2" ng-model='currentRule.grade' ng-disabled="systemRuleDialog.type == 'edit'" /> 线程数
|
<input type="radio" name="grade" value="2" ng-model='currentRule.grade' ng-disabled="systemRuleDialog.type == 'edit'" /> 线程数
|
||||||
<!--qps -->
|
<!--qps -->
|
||||||
<input type="radio" name="grade" value="3" checked ng-model='currentRule.grade' ng-disabled="systemRuleDialog.type == 'edit'"
|
<input type="radio" name="grade" value="3" ng-model='currentRule.grade' ng-disabled="systemRuleDialog.type == 'edit'"/> 入口 QPS
|
||||||
/> 入口 QPS
|
<!--highestCpuUsage -->
|
||||||
|
<input type="radio" name="grade" value="4" checked ng-model='currentRule.grade' ng-disabled="systemRuleDialog.type == 'edit'" /> CPU 使用率
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<label class="col-sm-2 control-label">阈值</label>
|
<label class="col-sm-2 control-label">阈值</label>
|
||||||
<div class="col-sm-9">
|
<div class="col-sm-9">
|
||||||
<input type='number' class="form-control highlight-border" ng-model='currentRule.avgLoad' placeholder="[0, ~)的小数" ng-if="currentRule.grade == 0"
|
<input type='number' class="form-control highlight-border" ng-model='currentRule.highestSystemLoad' placeholder="[0, ~)的正整数" ng-if="currentRule.grade == 0"/>
|
||||||
/>
|
<input type='number' class="form-control highlight-border" ng-model='currentRule.avgRt' placeholder="[0, ~)的正整数" ng-if="currentRule.grade == 1"/>
|
||||||
<input type='number' class="form-control highlight-border" ng-model='currentRule.avgRt' placeholder="[0, ~)的整数" ng-if="currentRule.grade == 1"
|
<input type='number' class="form-control highlight-border" ng-model='currentRule.maxThread' placeholder="[0, ~)的正整数" ng-if="currentRule.grade == 2"/>
|
||||||
/>
|
<input type='number' class="form-control highlight-border" ng-model='currentRule.qps' placeholder="[0, ~)的正整数" ng-if="currentRule.grade == 3"/>
|
||||||
<input type='number' class="form-control highlight-border" ng-model='currentRule.maxThread' placeholder="[0, ~)的整数" ng-if="currentRule.grade == 2"
|
<input type='number' class="form-control highlight-border" ng-model='currentRule.highestCpuUsage' placeholder="[0, 1)的小数" ng-if="currentRule.grade == 4"/>
|
||||||
/>
|
|
||||||
<input type='number' class="form-control highlight-border" ng-model='currentRule.qps' placeholder="[0, ~)的小数" ng-if="currentRule.grade == 3"
|
|
||||||
/>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</form>
|
</form>
|
||||||
|
|
|
||||||
|
|
@ -45,16 +45,18 @@
|
||||||
<tr dir-paginate="rule in rules | filter : searchKey | itemsPerPage: rulesPageConfig.pageSize " current-page="rulesPageConfig.currentPageIndex"
|
<tr dir-paginate="rule in rules | filter : searchKey | itemsPerPage: rulesPageConfig.pageSize " current-page="rulesPageConfig.currentPageIndex"
|
||||||
pagination-id="entriesPagination">
|
pagination-id="entriesPagination">
|
||||||
<td style="word-wrap:break-word;word-break:break-all;">
|
<td style="word-wrap:break-word;word-break:break-all;">
|
||||||
<span ng-if="rule.avgLoad >= 0">LOAD</span>
|
<span ng-if="rule.highestSystemLoad >= 0">系统LOAD</span>
|
||||||
<span ng-if="rule.avgRt >= 0">RT</span>
|
<span ng-if="rule.avgRt >= 0">RT</span>
|
||||||
<span ng-if="rule.maxThread >= 0">线程数</span>
|
<span ng-if="rule.maxThread >= 0">线程数</span>
|
||||||
<span ng-if="rule.qps >= 0">QPS</span>
|
<span ng-if="rule.qps >= 0">QPS</span>
|
||||||
|
<span ng-if="rule.highestCpuUsage >= 0">CPU使用率</span>
|
||||||
</td>
|
</td>
|
||||||
<td style="word-wrap:break-word;word-break:break-all;">
|
<td style="word-wrap:break-word;word-break:break-all;">
|
||||||
<span ng-if="rule.avgLoad >= 0">{{rule.avgLoad}}</span>
|
<span ng-if="rule.highestSystemLoad >= 0">{{rule.highestSystemLoad}}</span>
|
||||||
<span ng-if="rule.avgRt >= 0">{{rule.avgRt}}</span>
|
<span ng-if="rule.avgRt >= 0">{{rule.avgRt}}</span>
|
||||||
<span ng-if="rule.maxThread >= 0">{{rule.maxThread}}</span>
|
<span ng-if="rule.maxThread >= 0">{{rule.maxThread}}</span>
|
||||||
<span ng-if="rule.qps >= 0">{{rule.qps}}</span>
|
<span ng-if="rule.qps >= 0">{{rule.qps}}</span>
|
||||||
|
<span ng-if="rule.highestCpuUsage >= 0">{{rule.highestCpuUsage}}</span>
|
||||||
</td>
|
</td>
|
||||||
<td>
|
<td>
|
||||||
<button class="btn btn-xs btn-default" type="button" ng-click="editRule(rule)" style="font-size: 12px; height:25px;">编辑</button>
|
<button class="btn btn-xs btn-default" type="button" ng-click="editRule(rule)" style="font-size: 12px; height:25px;">编辑</button>
|
||||||
|
|
|
||||||
File diff suppressed because one or more lines are too long
Loading…
Reference in New Issue