diff options
| author | tanghao <admin@LAPTOP-QCSKVLI9> | 2021-06-10 17:13:50 +0800 |
|---|---|---|
| committer | tanghao <admin@LAPTOP-QCSKVLI9> | 2021-06-10 17:13:50 +0800 |
| commit | 8817ee5533b32c25b610fdef240f2295fc0b85ed (patch) | |
| tree | 9928574dccf3e4f68de17b696b4b5654d1bdb0ee | |
| parent | 4deff29620bc619cb0f0711bfce97e8a22e5ecc1 (diff) | |
fix: 处理原来nezha自监控提供指标变更图表无法展示问题
| -rw-r--r-- | src/main/java/com/nis/service/impl/ChartServiceImpl.java | 21 |
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); |
