summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authortanghao <admin@LAPTOP-QCSKVLI9>2021-06-10 17:13:50 +0800
committertanghao <admin@LAPTOP-QCSKVLI9>2021-06-10 17:13:50 +0800
commit8817ee5533b32c25b610fdef240f2295fc0b85ed (patch)
tree9928574dccf3e4f68de17b696b4b5654d1bdb0ee
parent4deff29620bc619cb0f0711bfce97e8a22e5ecc1 (diff)
fix: 处理原来nezha自监控提供指标变更图表无法展示问题
-rw-r--r--src/main/java/com/nis/service/impl/ChartServiceImpl.java21
1 files changed, 21 insertions, 0 deletions
diff --git a/src/main/java/com/nis/service/impl/ChartServiceImpl.java b/src/main/java/com/nis/service/impl/ChartServiceImpl.java
index 9c2e44f..b784a4f 100644
--- a/src/main/java/com/nis/service/impl/ChartServiceImpl.java
+++ b/src/main/java/com/nis/service/impl/ChartServiceImpl.java
@@ -38,6 +38,8 @@ import java.util.List;
import java.util.Map;
import java.util.Set;
import java.util.function.Function;
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
import java.util.stream.Collectors;
import org.springframework.beans.factory.annotation.Autowired;
@@ -129,10 +131,29 @@ public class ChartServiceImpl extends ServiceImpl<ChartDao, Chart> implements Ch
// 同步chartElement
List<VisualChartElement> visualChartElements = new ArrayList<VisualChartElement>();
List<ChartElement> chartElements = chartElementService.list();
+
+ Pattern pattern = Pattern.compile("\"(.*?)\"");
+
for(ChartElement chartElement:chartElements) {
VisualChartElement visualChartElement = new VisualChartElement();
String expression = chartElement.getExpression();
expression = expression.replaceAll("endpoint=", "endpoint_id=");
+ if(expression.startsWith("sum(nz_asset_nums)")&&expression.endsWith("sum(nz_asset_online_nums)")) {
+ expression = "sum(nz_asset_nums{state='Not in storage'})";
+ }
+ if(expression.startsWith("sum(nz_asset_nums)-count(nz_asset_ping)")) {
+ expression = "count(probe_success==0)";
+ }
+ if(expression.startsWith("nz_asset_ping{host=")) {
+ Matcher matcher = pattern.matcher(expression);
+ String host="";
+ if(matcher.find()) {
+ host = matcher.group();
+ }
+ if(StrUtil.isNotBlank(host)) {
+ expression="probe_icmp_duration_seconds{phase='rtt',host="+host+"} * 1000";
+ }
+ }
chartElement.setExpression(expression);
BeanUtil.copyProperties(chartElement, visualChartElement);
visualChartElements.add(visualChartElement);