diff --git a/nezha-fronted/src/components/chart/defaultLineData.js b/nezha-fronted/src/components/chart/defaultLineData.js new file mode 100644 index 000000000..648b69912 --- /dev/null +++ b/nezha-fronted/src/components/chart/defaultLineData.js @@ -0,0 +1,111 @@ +const data = { + id: 'metrics', + loaded: true, + showHeader: true, + name: '', + panelId: 1244, + groupId: 0, + span: 4, + height: 4, + updateBy: 381, + updateAt: '2021-12-23 03:49:51', + type: 'line', + unit: 2, + weight: 0, + param: { + stack: 0, + showHeader: true, + thresholds: [ + { + color: '#751bd6' + } + ], + thresholdShow: false, + legend: { + values: [ + + ], + show: true, + placement: 'bottom' + }, + enable: { + thresholds: false, + legend: true, + valueMapping: false + }, + nullType: 'null' + }, + pid: null, + buildIn: 0, + remark: '', + seq: null, + x: 0, + y: 12, + elements: [ + { + id: 85583, + chartId: 697389, + expression: '', + type: 'expert', + legend: '', + buildIn: 0, + seq: null, + name: 'A', + state: 1 + } + ], + sync: null, + panel: { + id: 1244, + name: 'testnodata', + createBy: null, + type: null, + link: null, + pid: null, + weight: null, + buildIn: null, + seq: null, + children: null, + parent: null, + chartNum: null + }, + group: { + id: 0, + name: null, + panelId: null, + groupId: null, + span: null, + height: null, + updateBy: null, + updateAt: null, + type: null, + unit: null, + weight: null, + param: null, + pid: null, + buildIn: null, + remark: null, + seq: null, + x: null, + y: null, + elements: null, + sync: null, + panel: null, + group: null, + children: null, + chartNums: null, + asset: null, + varType: null, + varId: null, + varName: null, + datasource: null + }, + children: null, + chartNums: null, + asset: null, + varType: null, + varId: null, + varName: null, + datasource: 'metrics' +} +export default data diff --git a/nezha-fronted/src/components/chart/defaultLogData.js b/nezha-fronted/src/components/chart/defaultLogData.js new file mode 100644 index 000000000..a8cb7b54d --- /dev/null +++ b/nezha-fronted/src/components/chart/defaultLogData.js @@ -0,0 +1,110 @@ +const data = { + id: 'logs', + loaded: true, + showHeader: true, + name: '', + panelId: 1244, + groupId: 0, + span: 4, + height: 4, + updateBy: 381, + updateAt: '2021-12-23 03:49:51', + type: 'line', + unit: 2, + weight: 0, + param: { + stack: 0, + showHeader: true, + thresholds: [ + { + color: '#ea2556' + } + ], + thresholdShow: false, + legend: { + values: [ + + ], + show: true, + placement: 'bottom' + }, + enable: { + thresholds: false, + legend: true, + valueMapping: false + } + }, + pid: null, + buildIn: 0, + remark: '', + seq: null, + x: 0, + y: 12, + elements: [ + { + id: 85584, + chartId: 697389, + expression: '', + type: 'expert', + legend: '', + buildIn: 0, + seq: null, + name: 'A', + state: 1 + } + ], + sync: null, + panel: { + id: 1244, + name: 'testnodata', + createBy: null, + type: null, + link: null, + pid: null, + weight: null, + buildIn: null, + seq: null, + children: null, + parent: null, + chartNum: null + }, + group: { + id: 0, + name: null, + panelId: null, + groupId: null, + span: null, + height: null, + updateBy: null, + updateAt: null, + type: null, + unit: null, + weight: null, + param: null, + pid: null, + buildIn: null, + remark: null, + seq: null, + x: null, + y: null, + elements: null, + sync: null, + panel: null, + group: null, + children: null, + chartNums: null, + asset: null, + varType: null, + varId: null, + varName: null, + datasource: null + }, + children: null, + chartNums: null, + asset: null, + varType: null, + varId: null, + varName: null, + datasource: 'logs' +} +export default data diff --git a/nezha-fronted/src/components/chart/panelChart.vue b/nezha-fronted/src/components/chart/panelChart.vue index 46e251500..5c6c62f9e 100644 --- a/nezha-fronted/src/components/chart/panelChart.vue +++ b/nezha-fronted/src/components/chart/panelChart.vue @@ -166,6 +166,9 @@ export default { if (isTimeSeries(this.chartInfo.type)) { query += `&nullType=${this.chartInfo.param.nullType || 'null'}` } + if (element.filter) { + query += `&filter=${element.filter}` + } // if (isChartPie(this.chartInfo.type)) { // query += `&statistics=${this.chartInfo.param.statistics || 'last'}` // } diff --git a/nezha-fronted/src/components/page/alert/alertMessage.vue b/nezha-fronted/src/components/page/alert/alertMessage.vue index b7368d9e9..013c340ad 100644 --- a/nezha-fronted/src/components/page/alert/alertMessage.vue +++ b/nezha-fronted/src/components/page/alert/alertMessage.vue @@ -101,37 +101,56 @@ - - -
{{errorContent}}
- - - - -
-
- {{$t("project.endpoint.dialogTitle")}} -
- -
-
-
- - -
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + { this.currentMsg = { ...row, alertRule: { ...res.data } } - this.graphShow = true + console.log(this.currentMsg ) this.$nextTick(() => { this.searchTimeDialog = [bus.computeTimezoneTime(new Date().getTime() - 1 * 60 * 60 * 1000), bus.computeTimezoneTime(new Date().getTime())] this.queryDate() @@ -578,12 +603,15 @@ export default { queryDate () { this.chartLoading = true if (this.currentMsg.alertRule.type === 1) { - this.resultType = 'matrix' - this.$nextTick(() => { - this.queryChartDate() - }) + const chartInfo = lodash.cloneDeep(lineData) + chartInfo.elements[0].expression = encodeURIComponent(this.currentMsg.alertRule.expr.replace(/\"/g, '\'').replace(/\r|\n+/g, '')) + chartInfo.elements[0].filter = encodeURIComponent(decodeURIComponent(this.promQueryParamLabels(this.currentMsg.labels))) + this.showFullscreen(true, chartInfo) } else if (this.currentMsg.alertRule.type === 2) { - this.queryLogData(100) + const chartInfo = lodash.cloneDeep(logData) + chartInfo.elements[0].expression = encodeURIComponent(this.currentMsg.alertRule.expr.replace(/\"/g, '\'').replace(/\r|\n+/g, '')) + chartInfo.elements[0].filter = encodeURIComponent(decodeURIComponent(this.promQueryParamLabels(this.currentMsg.labels))) + this.showFullscreen(true, chartInfo) } }, queryChartDate () { @@ -1251,6 +1279,10 @@ export default { params.ids = this.batchDeleteObjs.map(item => item.id).join(',') this.exportExcel(this.exportUrl, params, this.exportFileName + '-' + this.getTimeString() + '.xlsx') this.closeDialog() + }, + showFullscreen (show, chartInfo) { + this.chartInfo = chartInfo + this.graphShow = show } }, destroyed () {