修改告警监控项

This commit is contained in:
duwenyuan 2026-05-19 14:34:10 +08:00
parent 927abc8530
commit 89bacebe1f
3 changed files with 44 additions and 11 deletions

View File

@ -90,7 +90,10 @@ public class MetricConfig {
// 应用相关 (1601-1603)
METRIC_MAP.put("1601", new MetricConfig("responseSuccessRate",
"sum(rate(http_requests_total{instance='%1$s',status=~'2..'}[5m])) / sum(rate(http_requests_total{instance='%1$s'}[5m])) * 100",
"sum(rate(nginx_vts_server_requests_total{host='%1$s',code=~\"2xx\"}[5m]))\n" +
"/\n" +
"sum(rate(nginx_vts_server_requests_total{host='%1$s',code=~\"1xx|2xx|3xx|4xx|5xx\"}[5m]))\n" +
"* 100",
"%"));
METRIC_MAP.put("1602", new MetricConfig("login",
"sum(increase(login_attempts_total{instance='%1$s'}[5m]))",

View File

@ -152,10 +152,27 @@ public class MonitorServiceImpl implements IMonitorService {
for (PrometheusUtil.DataPoint p : results.get(0).getValues()) {
Map<String, Object> point = new HashMap<>();
point.put("date", p.getTimestamp() * 1000L);
point.put("value", p.getValue());
point.put("value", String.format("%.2f", p.getValue()));
dataPoints.add(point);
}
}
//TODO itemType=1
if (itemType == 1) {
String eventPromql =
String.format("server:status:value{instance=\"%s\"}", instance);
List<PrometheusUtil.QueryResult> eventResults =
queryRange(eventPromql, startTime, endTime, 60);
if (!eventResults.isEmpty() && eventResults.get(0).getValues() != null) {
for (PrometheusUtil.DataPoint p : eventResults.get(0).getValues()) {
Map<String, Object> point = new HashMap<>();
point.put("clock", p.getTimestamp());
point.put("value", p.getValue());
dataPoints.add(point);
}
}
}
return Result.OK(dataPoints);
} catch (Exception e) {
@ -310,7 +327,8 @@ public class MonitorServiceImpl implements IMonitorService {
case "postgresql":
//postgres
result.add(buildItemFromQuery("Database memory state(Total memory)", "B",
"avg(rate(process_resident_memory_bytes{instance=\""+hostId+"\"}[5m]))", startTime, endTime, step));
"avg(rate(process_resident_memory_bytes{instance=\"" + hostId +
"\"}[5m]))", startTime, endTime, step));
result.add(buildItemFromQuery("Database user status(Logins per second)", "",
"sum(pg_stat_database_numbackends{instance=~\"" + hostId
@ -322,33 +340,40 @@ public class MonitorServiceImpl implements IMonitorService {
result.add(buildItemFromQuery("Active sessions", "",
"sum by (datname, instance) (\n" +
" pg_stat_activity_count{datname=~\"(armd|postgres|template0|template1)\", instance=~\""+hostId+"\", state=\"active\"} != 0\n" +
" pg_stat_activity_count{datname=~\"(armd|postgres|template0|template1)\", instance=~\"" +
hostId + "\", state=\"active\"} != 0\n" +
")", startTime, endTime, step));
result.add(buildItemFromQuery("Idle sessions", "",
"sum(pg_stat_activity_count{datname=~\"(armd|postgres|template0|template1)\", instance=~\""+hostId+"\", state=~\"idle|idle in transaction|idle in transaction (aborted)\"})", startTime, endTime, step));
"sum(pg_stat_activity_count{datname=~\"(armd|postgres|template0|template1)\", instance=~\"" +
hostId +
"\", state=~\"idle|idle in transaction|idle in transaction (aborted)\"})",
startTime, endTime, step));
result.add(buildItemFromQuery("Database file size", "B",
"sum(pg_database_size_bytes{instance=~\"" + hostId + "\"})", startTime, endTime, step));
"sum(pg_database_size_bytes{instance=~\"" + hostId + "\"})", startTime,
endTime, step));
break;
case "Oracle":
//TODO 待修改优化promql语句
//Oracle
result.add(buildItemFromQuery("Database memory state(Total memory)", "B",
"oracledb_sysmetric_total_pga_allocated{instance=\""+hostId+"\"}",
"oracledb_sysmetric_total_pga_allocated{instance=\"" + hostId + "\"}",
startTime, endTime, step));
result.add(buildItemFromQuery("Database user status(Logins per second)", "",
"oracledb_sysmetric_logons_per_sec", startTime, endTime, step));
result.add(buildItemFromQuery("Database connection number", "",
"oracledb_sysmetric_session_count", startTime, endTime, step));
result.add(buildItemFromQuery("Database connection response time", "",
"oracledb_sysmetric_sql_service_response_time{instance=\""+hostId+"\"}",
"oracledb_sysmetric_sql_service_response_time{instance=\"" + hostId +
"\"}",
startTime, endTime, step));
result.add(buildItemFromQuery("Remaining space of the database log file", "B",
"oracledb_env_redo_value{instance=\""+hostId+"\",name=\"log_size\"}",
"oracledb_env_redo_value{instance=\"" + hostId +
"\",name=\"log_size\"}",
startTime, endTime, step));
result.add(buildItemFromQuery("Database file size", "B",
"sum(oracledb_tablespace_bytes{instance=\""+hostId+"\"})",
"sum(oracledb_tablespace_bytes{instance=\"" + hostId + "\"})",
startTime, endTime, step));
break;
}

View File

@ -36,6 +36,7 @@ import org.jeecg.modules.base.entity.postgre.SysServer;
import org.jeecg.modules.base.bizVo.SourceVo;
import org.jeecg.modules.base.enums.ServerStatus;
import org.jeecg.modules.entity.AlarmHistory;
import org.jeecg.modules.entity.MetricConfig;
import org.jeecg.modules.feignclient.ManageUtil;
import org.jeecg.modules.feignclient.MonitorAlarm;
import org.jeecg.modules.mapper.SysServerMapper;
@ -510,7 +511,11 @@ public class SysServerServiceImpl extends ServiceImpl<SysServerMapper, SysServer
NumberUtil.round(memUsedVal, 1).doubleValue());
// 响应成功率 ()
basicInfo.setResponseSuccessRate(100.0);
MetricConfig config = MetricConfig.METRIC_MAP.get("1601");
String responsePromql = String.format(config.getPromQl(), instance, instance);
Double responseVal = prometheusUtil.queryInstant(responsePromql);
basicInfo.setResponseSuccessRate(Double.parseDouble(String.format("%.2f", responseVal)));
// --- 磁盘使用情况 (多分区解析) ---
basicInfo.setDiskUsed(getDiskUsage(instance));