修改告警监控项
This commit is contained in:
parent
927abc8530
commit
89bacebe1f
|
|
@ -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]))",
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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));
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user