fix:alertRuleBox 调整

This commit is contained in:
zhangyu
2021-09-10 14:46:08 +08:00
parent 34a38a708a
commit 47b74659bd
5 changed files with 35 additions and 14 deletions

View File

@@ -1287,8 +1287,10 @@ const cn = {
alertNumTrend: '告警数量趋势', alertNumTrend: '告警数量趋势',
affectEntity: '影响' affectEntity: '影响'
}, },
timeout: 'Timeout', timeout: 'Timeout(s)',
inr: 'Evaluation interval', inr: 'Evaluation interval',
inrPlaceholder: 'Default global scrape interval',
inrError: 'Evaluation Interval cannot be less than 15',
autoExpired: 'Automatic expired', autoExpired: 'Automatic expired',
state: '状态', state: '状态',
schedEnable: 'Schedule', schedEnable: 'Schedule',

View File

@@ -1290,8 +1290,10 @@ const en = {
alertNumTrend: 'Alert num trend', alertNumTrend: 'Alert num trend',
affectEntity: 'Affect entity' affectEntity: 'Affect entity'
}, },
timeout: 'Timeout', timeout: 'Timeout(s)',
inr: 'Evaluation interval ', inr: 'Evaluation interval ',
inrPlaceholder: 'Default global scrape interval',
inrError: 'Evaluation Interval cannot be less than 15',
autoExpired: 'Automatic expired', autoExpired: 'Automatic expired',
state: 'State', state: 'State',
schedEnable: 'Schedule', schedEnable: 'Schedule',

View File

@@ -40,7 +40,7 @@
<el-option v-for="item in severityData" :id="'alert-severity-'+item.value" :key="item.id" :label="item.name" :value="item.id" style="width: 312px"> <el-option v-for="item in severityData" :id="'alert-severity-'+item.value" :key="item.id" :label="item.name" :value="item.id" style="width: 312px">
<div style="display: flex;justify-content: space-between;padding: 5px;"> <div style="display: flex;justify-content: space-between;padding: 5px;">
<div><i :style="{color:item.color,'font-size':'12px'}" class="nz-icon nz-icon-circle"></i> {{item.name}}</div> <div><i :style="{color:item.color,'font-size':'12px'}" class="nz-icon nz-icon-circle"></i> {{item.name}}</div>
<div class="severity-item">{{item.remark}}</div> <div class="severity-item text-ellipsis" :title="item.remark">{{item.remark}}</div>
</div> </div>
</el-option> </el-option>
</el-select> </el-select>
@@ -110,11 +110,14 @@
</el-form-item> </el-form-item>
<!--inr--> <!--inr-->
<el-form-item :label="$t('alert.config.inr')" prop="inr" class="half-form-item"> <el-form-item :label="$t('alert.config.inr')" prop="inr" class="half-form-item">
<el-input id="alert-box-input-inr" v-model.number="editAlertRule.inr" placeholder="" size="small" type="text" :disabled="!showSnmpTrap"></el-input> <el-input id="alert-box-input-inr" v-model.number="editAlertRule.inr" :placeholder="$t('alert.config.inrPlaceholder')" size="small" type="text" :disabled="!showSnmpTrap"></el-input>
</el-form-item> </el-form-item>
<!--last--> <!--last-->
<el-form-item :label="$t('alert.config.for')" prop="last" class="half-form-item"> <el-form-item :label="$t('alert.config.for')" prop="last" class="half-form-item" :rules=" [
<el-input id="alert-box-input-last" v-model.number="editAlertRule.last" placeholder="" size="small" type="text"> { required: !showSnmpTrap, message: this.$t('validate.required'), trigger: 'blur' },
{ type: 'number', message: this.$t('validate.number') }
]">
<el-input id="alert-box-input-last" v-model.number="editAlertRule.last" placeholder="" size="small" :disabled="!showSnmpTrap" type="text">
<template slot="append">{{$t('alert.config.second')}}</template> <template slot="append">{{$t('alert.config.second')}}</template>
</el-input> </el-input>
</el-form-item> </el-form-item>
@@ -143,6 +146,7 @@
<!--timeout--> <!--timeout-->
<el-form-item :label="$t('alert.config.timeout')" prop="timeout" class="half-form-item"> <el-form-item :label="$t('alert.config.timeout')" prop="timeout" class="half-form-item">
<el-input id="alert-box-input-timeout" v-model.number="editAlertRule.timeout" placeholder="" size="small" type="text"></el-input> <el-input id="alert-box-input-timeout" v-model.number="editAlertRule.timeout" placeholder="" size="small" type="text"></el-input>
<template slot="append">{{$t('alert.config.second')}}</template>
</el-form-item> </el-form-item>
<!--summary--> <!--summary-->
<el-form-item :label="$t('alert.summary')" prop="summary"> <el-form-item :label="$t('alert.summary')" prop="summary">
@@ -371,6 +375,13 @@ export default {
callback() callback()
} }
} }
const nzInr = (rule, value, callback) => {
if (value < 15) {
callback(new Error(this.$t('alert.config.inrError')))
} else {
callback()
}
}
return { return {
promqlCount: 1, promqlCount: 1,
promqlKeys: [0], promqlKeys: [0],
@@ -402,10 +413,6 @@ export default {
{ required: true, message: this.$t('validate.required'), trigger: 'change' }, { required: true, message: this.$t('validate.required'), trigger: 'change' },
{ validator: nzOid, trigger: 'blur' } { validator: nzOid, trigger: 'blur' }
], ],
last: [
{ required: true, message: this.$t('validate.required'), trigger: 'blur' },
{ type: 'number', message: this.$t('validate.number') }
],
severityId: [ severityId: [
{ required: true, message: this.$t('validate.required'), trigger: 'change' } { required: true, message: this.$t('validate.required'), trigger: 'change' }
], ],
@@ -414,6 +421,9 @@ export default {
], ],
operator: [ operator: [
{ required: true, message: this.$t('validate.required'), trigger: 'blur' } { required: true, message: this.$t('validate.required'), trigger: 'blur' }
],
inr: [
{ validator: nzInr, trigger: 'blur' }
] ]
}, },
operators: [ operators: [
@@ -704,5 +714,12 @@ export default {
.severity-item{ .severity-item{
color: #999999; color: #999999;
font-size: 12px; font-size: 12px;
max-width: 120px;
overflow: hidden;
}
.text-ellipsis{
overflow:hidden;
text-overflow:ellipsis;
white-space:nowrap
} }
</style> </style>

View File

@@ -92,7 +92,7 @@
<div slot="title"> <div slot="title">
{{$t("project.endpoint.dialogTitle")}} {{$t("project.endpoint.dialogTitle")}}
<div class="float-right panel-calendar dialog-tool" style="display: flex"> <div class="float-right panel-calendar dialog-tool" style="display: flex">
<pick-time v-model="searchTimeDialog" :refresh-data-func="queryDate" :use-chart-unit="false" :use-refresh="false" style="height: 28px;" @unitChange="chartUnitChange"></pick-time> <pick-time v-model="searchTimeDialog" :refresh-data-func="queryDate" :use-chart-unit="false" :use-refresh="false" style="height: 28px;"></pick-time>
</div> </div>
</div> </div>
<div style="width: 100%;height: 100%" v-loading="chartLoading"> <div style="width: 100%;height: 100%" v-loading="chartLoading">
@@ -492,7 +492,6 @@ export default {
const end = this.searchTimeDialog[1] ? this.searchTimeDialog[1] : bus.computeTimezoneTime(new Date().getTime()) const end = this.searchTimeDialog[1] ? this.searchTimeDialog[1] : bus.computeTimezoneTime(new Date().getTime())
this.expressions = [this.currentMsg.alertRule.expr] this.expressions = [this.currentMsg.alertRule.expr]
this.$get('/logs/loki/api/v1/query_range?format=1&query=' + this.currentMsg.alertRule.expr + '&start=' + this.$stringTimeParseToUnix(start) + '&end=' + this.$stringTimeParseToUnix(end) + '&limit=' + limit).then(res => { this.$get('/logs/loki/api/v1/query_range?format=1&query=' + this.currentMsg.alertRule.expr + '&start=' + this.$stringTimeParseToUnix(start) + '&end=' + this.$stringTimeParseToUnix(end) + '&limit=' + limit).then(res => {
console.log(res)
this.chartLoading = false this.chartLoading = false
const logData = [res.data] const logData = [res.data]
this.resultType = res.data.resultType this.resultType = res.data.resultType

View File

@@ -114,8 +114,9 @@ export default {
schedDays: '', schedDays: '',
schedStime: '00:00', schedStime: '00:00',
schedEtime: '23:59', schedEtime: '23:59',
notifyActive: 1, notifyActive: 0,
notifyExpired: 1, notifyExpired: 0,
timeout: 300,
trbShot: '' trbShot: ''
}, },
blankSilenceObject: { blankSilenceObject: {