diff --git a/nezha-fronted/src/components/common/bottomBox/tabs/alertMessageTab.vue b/nezha-fronted/src/components/common/bottomBox/tabs/alertMessageTab.vue index fb142cade..2fd233374 100644 --- a/nezha-fronted/src/components/common/bottomBox/tabs/alertMessageTab.vue +++ b/nezha-fronted/src/components/common/bottomBox/tabs/alertMessageTab.vue @@ -538,7 +538,31 @@ }, 1000); }, promQueryParamConvert(obj) { - return "(" + obj.alertRule.expr + ") and (" + function(){ + let r = "(" + obj.alertRule.expr + ")"; + if (Object.keys(obj.labels).length > 2) { + r += " and " + function(){ + let group = "(group({"; + let by = " by ("; + + for (let k in obj.labels) { + if (k != 'alertname' && k != 'severity') { + group += k; + group += "="; + group += ("'" + obj.labels[k] + "',"); + by += k; + by += "," + } + } + group = group.substring(0, group.length-1); + group += "})"; + by = by.substring(0, by.length-1); + by += ")"; + + return group + by + ")"; + }(); + } + return r; + /*return "(" + obj.alertRule.expr + ") and (" + function(){ let q = "{"; for (let k in obj.labels) { if (k != 'alertname' && k != 'severity') { @@ -552,7 +576,7 @@ } q += "}"; return q; - }() + ")"; + }() + ")";*/ }, pageNo(val) { this.pageObj.pageNo = val; diff --git a/nezha-fronted/src/components/page/alert/list.vue b/nezha-fronted/src/components/page/alert/list.vue index bad6d223e..e9bd7af2b 100644 --- a/nezha-fronted/src/components/page/alert/list.vue +++ b/nezha-fronted/src/components/page/alert/list.vue @@ -389,7 +389,31 @@ }); }, promQueryParamConvert(obj){ - let result="(" + obj.alertRule.expr + ")"; + let r = "(" + obj.alertRule.expr + ")"; + if (Object.keys(obj.labels).length > 0) { + r += " and " + function(){ + let group = "(group({"; + let by = " by ("; + + for (let k in obj.labels) { + if (k != 'alertname' && k != 'severity') { + group += k; + group += "="; + group += ("'" + obj.labels[k] + "',"); + by += k; + by += "," + } + } + group = group.substring(0, group.length-1); + group += "})"; + by = by.substring(0, by.length-1); + by += ")"; + + return group + by + ")"; + }(); + } + return r; + /*let result="(" + obj.alertRule.expr + ")"; if(obj.labels){ if(obj.labels.alertname){ delete obj.labels.alertname; @@ -413,7 +437,7 @@ return q; }() + ")"; } - return result; + return result;*/ }, //asset弹框控制 tabControl(data) {