|
@@ -202,7 +202,7 @@ public class BizObjMetricsServiceImpl implements IBizObjMetricsService {
|
|
|
List<MetricsTplDetail> list = detailService.selectMetricsTplDetailList(query);
|
|
|
List<BizObjMetrics> objMetrics = new ArrayList<>();
|
|
|
list.forEach(d -> {
|
|
|
- if ("1".equals(d.getMetricsDef().getMetricsType()) && !d.getMetricsDef().getMetricsCode().startsWith("pp.jvm.")) {
|
|
|
+ if ("1".equals(d.getMetricsDef().getMetricsType()) && !d.getMetricsDef().getMetricsCode().startsWith("pp.jvm.")) {
|
|
|
//如果是pinpoint,并且不是jvm参数
|
|
|
// 1.获取对象pinpoint组成
|
|
|
List<BizObjPp> pps = ppService.selectBizObjPpListByObjId(objId);
|
|
@@ -350,11 +350,11 @@ public class BizObjMetricsServiceImpl implements IBizObjMetricsService {
|
|
|
String appType = appMap.get(appName);
|
|
|
|
|
|
// 获取监控数据
|
|
|
- Float tps = pinpointService.tps(appName, startTime, endTime);
|
|
|
- int openFiles = pinpointService.openFile(appName, startTime, endTime);
|
|
|
- Map<String, Object> jvmInfo = pinpointService.jvmMemory(appName, startTime, endTime);
|
|
|
- float heapUsage = (float) jvmInfo.get("usage");
|
|
|
- int gcCount = (int) jvmInfo.get("gc");
|
|
|
+// Float tps = pinpointService.tps(appName, startTime, endTime);
|
|
|
+// int openFiles = pinpointService.openFile(appName, startTime, endTime);
|
|
|
+// Map<String, Object> jvmInfo = pinpointService.jvmMemory(appName, startTime, endTime);
|
|
|
+// float heapUsage = (float) jvmInfo.get("usage");
|
|
|
+// int gcCount = (int) jvmInfo.get("gc");
|
|
|
|
|
|
JSONObject linkData = pinpointService.link(appName, appType, startTime, endTime);
|
|
|
JSONArray nodeDataArray = linkData.getJSONObject("applicationMapData").getJSONArray("nodeDataArray");
|
|
@@ -364,7 +364,7 @@ public class BizObjMetricsServiceImpl implements IBizObjMetricsService {
|
|
|
JSONObject obj = nodeDataArray.getJSONObject(i);
|
|
|
PinpointVO vo = new PinpointVO(obj);
|
|
|
|
|
|
- if (vo.getApplicationName().equals(appName)) {
|
|
|
+ if ("USER".equals(vo.getCategory())) {
|
|
|
bizObj.setAccessTimes(vo.getTot());
|
|
|
objService.updateBizObj(bizObj);
|
|
|
} else {
|
|
@@ -376,7 +376,8 @@ public class BizObjMetricsServiceImpl implements IBizObjMetricsService {
|
|
|
updateBizObjPpTable(objId, pinpointVOList);
|
|
|
|
|
|
// 2.更新业务对象指标表
|
|
|
- updateBizObjMetrics(objId, tps, openFiles, heapUsage, gcCount, pinpointVOList, date);
|
|
|
+ updateBizObjMetrics(objId, null, 0, 0, 0, pinpointVOList, date);
|
|
|
+// updateBizObjMetrics(objId, tps, openFiles, heapUsage, gcCount, pinpointVOList, date);
|
|
|
}
|
|
|
}
|
|
|
|
|
@@ -676,8 +677,8 @@ public class BizObjMetricsServiceImpl implements IBizObjMetricsService {
|
|
|
ms.setObjId(objId);
|
|
|
ms.setTplId(tplId);
|
|
|
ms.setMetricsId(d.getMetricsId());
|
|
|
- ms.setMetricsName(pp.getPpName() + "/" + d.getMetricsDef().getMetricsName());
|
|
|
- ms.setMetricsCode(pp.getPpName() + "/" + d.getMetricsCode());
|
|
|
+ ms.setMetricsName(pp.getPpType() + "/" + d.getMetricsDef().getMetricsName());
|
|
|
+ ms.setMetricsCode(d.getMetricsDef().getMetricsCode());
|
|
|
if (pp.getPpType().equals("REDIS")) {
|
|
|
//redis需要将1s换成100ms 3s换成300ms 5s换成500ms
|
|
|
if (d.getMetricsCode().endsWith("1s")) {
|
|
@@ -717,8 +718,13 @@ public class BizObjMetricsServiceImpl implements IBizObjMetricsService {
|
|
|
* @param date 时间
|
|
|
*/
|
|
|
private void updateBizObjMetrics(Long objId, Float tps, int openFiles, float heapUsage, int gcCount, List<PinpointVO> pinpointVOList, Date date) {
|
|
|
- updateJvmMetrics(objId, tps, heapUsage, openFiles, gcCount, date);
|
|
|
- updateLinkMetrics(objId, pinpointVOList, date);
|
|
|
+ //查询当前对象所有正在告警列表
|
|
|
+ Map<Long, AlarmRecord> recordMap = alarmRecordService.selectAlarmRecordListCurr(objId);
|
|
|
+ //查询当前对象未结束事件列表
|
|
|
+ Map<Long, HlEvent> eventMap = eventService.selectHlEventListCurr(objId);
|
|
|
+ //TODO 暂时取消jvm相关指标
|
|
|
+// updateJvmMetrics(objId, tps, heapUsage, openFiles, gcCount, date, recordMap, eventMap);
|
|
|
+ updateLinkMetrics(objId, pinpointVOList, date, recordMap, eventMap);
|
|
|
}
|
|
|
|
|
|
/**
|
|
@@ -731,13 +737,10 @@ public class BizObjMetricsServiceImpl implements IBizObjMetricsService {
|
|
|
* @param gcCount gc次数
|
|
|
* @param date 数据时间
|
|
|
*/
|
|
|
- private void updateJvmMetrics(Long objId, Float tps, float heapUsage, int openFiles, int gcCount, Date date) {
|
|
|
+ private void updateJvmMetrics(Long objId, Float tps, float heapUsage, int openFiles, int gcCount, Date date, Map<Long, AlarmRecord> recordMap, Map<Long, HlEvent> eventMap) {
|
|
|
BizObjMetrics jvmMetrics = new BizObjMetrics();
|
|
|
jvmMetrics.setObjId(objId);
|
|
|
- //查询当前对象所有正在告警列表
|
|
|
- Map<Long, AlarmRecord> recordMap = alarmRecordService.selectAlarmRecordListCurr(objId);
|
|
|
- //查询当前对象未结束事件列表
|
|
|
- Map<Long, HlEvent> eventMap = eventService.selectHlEventListCurr(objId);
|
|
|
+
|
|
|
jvmMetrics.setMetricsCode("pp.jvm.");
|
|
|
List<BizObjMetrics> omList = selectBizObjMetricsList(jvmMetrics);
|
|
|
updateMetricsValues(omList, "tps", BigDecimal.valueOf(tps), date, recordMap, eventMap);
|
|
@@ -827,9 +830,9 @@ public class BizObjMetricsServiceImpl implements IBizObjMetricsService {
|
|
|
* @param pinpointVOList 链路列表
|
|
|
* @param date 时间
|
|
|
*/
|
|
|
- private void updateLinkMetrics(Long objId, List<PinpointVO> pinpointVOList, Date date) {
|
|
|
+ private void updateLinkMetrics(Long objId, List<PinpointVO> pinpointVOList, Date date, Map<Long, AlarmRecord> recordMap, Map<Long, HlEvent> eventMap) {
|
|
|
Map<String, List<BizObjMetrics>> metricsMap = getAllMetricsForObjId(objId);
|
|
|
- pinpointVOList.forEach(vo -> updateMetricsValues(metricsMap, vo, date));
|
|
|
+ pinpointVOList.forEach(vo -> updateMetricsValues(metricsMap, vo, date, recordMap, eventMap));
|
|
|
}
|
|
|
|
|
|
|
|
@@ -840,34 +843,59 @@ public class BizObjMetricsServiceImpl implements IBizObjMetricsService {
|
|
|
* @param vo pp链路对象
|
|
|
* @param date 时间
|
|
|
*/
|
|
|
- private void updateMetricsValues(Map<String, List<BizObjMetrics>> metricsMap, PinpointVO vo, Date date) {
|
|
|
+ private void updateMetricsValues(Map<String, List<BizObjMetrics>> metricsMap, PinpointVO vo, Date date, Map<Long, AlarmRecord> recordMap, Map<Long, HlEvent> eventMap) {
|
|
|
+ List<BizObjMetricsData> dataList = new ArrayList<>();
|
|
|
+ List<AlarmRecord> addRList = new ArrayList<>();
|
|
|
+ List<AlarmRecord> updateRList = new ArrayList<>();
|
|
|
+ List<HlEvent> addEList = new ArrayList<>();
|
|
|
+ List<HlEvent> updateEList = new ArrayList<>();
|
|
|
for (String code : metricsMap.keySet()) {
|
|
|
List<BizObjMetrics> list = metricsMap.get(code);
|
|
|
list.forEach(om -> {
|
|
|
- if (om.getMetricsCode().startsWith(vo.getApplicationName() + "/")) {
|
|
|
+ if (om.getMetricsName().startsWith(vo.getCategory() + "/")) {
|
|
|
if (vo.getTot() != 0) {
|
|
|
- updateMetric(om, "pp.1s", vo.getTime1s(), date);
|
|
|
- updateMetric(om, "pp.3s", vo.getTime3s(), date);
|
|
|
- updateMetric(om, "pp.5s", vo.getTime5s(), date);
|
|
|
- updateMetric(om, "pp.100ms", vo.getTime100ms(), date);
|
|
|
- updateMetric(om, "pp.300ms", vo.getTime300ms(), date);
|
|
|
- updateMetric(om, "pp.500ms", vo.getTime500ms(), date);
|
|
|
- updateMetric(om, "pp.tot", vo.getTot(), date);
|
|
|
- updateMetric(om, "pp.sum", vo.getSum(), date);
|
|
|
- updateMetric(om, "pp.max", vo.getMax(), date);
|
|
|
- updateMetric(om, "pp.avg", vo.getAvg(), date);
|
|
|
- updateMetric(om, "pp.slow", vo.getSlow(), date);
|
|
|
- updateMetric(om, "pp.error", vo.getError(), date);
|
|
|
+ updateMetric(om, "pp.1s", vo.getTime1s(), date, dataList);
|
|
|
+ updateMetric(om, "pp.3s", vo.getTime3s(), date, dataList);
|
|
|
+ updateMetric(om, "pp.5s", vo.getTime5s(), date, dataList);
|
|
|
+ updateMetric(om, "pp.100ms", vo.getTime100ms(), date, dataList);
|
|
|
+ updateMetric(om, "pp.300ms", vo.getTime300ms(), date, dataList);
|
|
|
+ updateMetric(om, "pp.500ms", vo.getTime500ms(), date, dataList);
|
|
|
+ updateMetric(om, "pp.tot", vo.getTot(), date, dataList);
|
|
|
+ updateMetric(om, "pp.sum", vo.getSum(), date, dataList);
|
|
|
+ updateMetric(om, "pp.max", vo.getMax(), date, dataList);
|
|
|
+ updateMetric(om, "pp.avg", vo.getAvg(), date, dataList);
|
|
|
+ updateMetric(om, "pp.slow", vo.getSlow(), date, dataList);
|
|
|
+ updateMetric(om, "pp.error", vo.getError(), date, dataList);
|
|
|
Integer time1 = vo.getTime1s();
|
|
|
if (time1 == null) {
|
|
|
time1 = vo.getTime100ms();
|
|
|
}
|
|
|
BigDecimal rate = BigDecimal.valueOf(time1).divide(BigDecimal.valueOf(vo.getTot()), 2, RoundingMode.HALF_UP);
|
|
|
- updateMetric(om, "pp.rate", rate, date);
|
|
|
+ updateMetric(om, "pp.rate", rate, date, dataList);
|
|
|
+ if (om.getDValue() != null) {
|
|
|
+ //处理告警
|
|
|
+ Map<String, AlarmRecord> aMap = alarmRecordService.process(om, recordMap, date);
|
|
|
+ if (aMap.get("add") != null) {
|
|
|
+ addRList.add(aMap.get("add"));
|
|
|
+ }
|
|
|
+ if (aMap.get("update") != null) {
|
|
|
+ updateRList.add(aMap.get("update"));
|
|
|
+ }
|
|
|
+
|
|
|
+ //处理事件
|
|
|
+ Map<String, HlEvent> eMap = eventService.process(om, eventMap, date);
|
|
|
+ if (eMap.get("add") != null) {
|
|
|
+ addEList.add(eMap.get("add"));
|
|
|
+ }
|
|
|
+ if (eMap.get("update") != null) {
|
|
|
+ updateEList.add(eMap.get("update"));
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
});
|
|
|
}
|
|
|
+ batchUpdate(null, dataList, addRList, updateRList, addEList, updateEList);
|
|
|
// metricsMap.values().stream()
|
|
|
// .filter(om -> om.getMetricsCode().startsWith(vo.getApplicationName() + "/"))
|
|
|
// .forEach(om -> {
|
|
@@ -894,15 +922,17 @@ public class BizObjMetricsServiceImpl implements IBizObjMetricsService {
|
|
|
* @param value 值
|
|
|
* @param date 时间
|
|
|
*/
|
|
|
- private void updateMetric(BizObjMetrics om, String suffix, Number value, Date date) {
|
|
|
+ private void updateMetric(BizObjMetrics om, String suffix, Number value, Date date, List<BizObjMetricsData> dataList) {
|
|
|
if (om.getMetricsCode().endsWith(suffix) && value != null) {
|
|
|
om.setDValue(BigDecimal.valueOf(value.doubleValue()));
|
|
|
updateBizObjMetrics(om);
|
|
|
+
|
|
|
BizObjMetricsData data = new BizObjMetricsData();
|
|
|
data.setObjMetricsId(om.getObjMetricsId());
|
|
|
data.setdValue(om.getDValue());
|
|
|
data.setCreateTime(date);
|
|
|
- metricsDataService.insertBizObjMetricsData(data);
|
|
|
+ dataList.add(data);
|
|
|
+// metricsDataService.insertBizObjMetricsData(data);
|
|
|
}
|
|
|
}
|
|
|
|