增加系统版本通知功能
This commit is contained in:
parent
d7d34a314e
commit
4eb82800df
@ -301,6 +301,8 @@ public class ServerMonitorScheduler {
|
|||||||
// 3. 计算网络流量速率(用于告警检查)
|
// 3. 计算网络流量速率(用于告警检查)
|
||||||
Long networkRxSpeed = 0L;
|
Long networkRxSpeed = 0L;
|
||||||
Long networkTxSpeed = 0L;
|
Long networkTxSpeed = 0L;
|
||||||
|
Long finalNetworkRx = monitorData.getNetworkRx(); // 最终存储的累计值
|
||||||
|
Long finalNetworkTx = monitorData.getNetworkTx();
|
||||||
|
|
||||||
if (monitorData.getNetworkRx() != null && monitorData.getNetworkTx() != null) {
|
if (monitorData.getNetworkRx() != null && monitorData.getNetworkTx() != null) {
|
||||||
// 查询上次监控数据(数据库中存储的是累计值)
|
// 查询上次监控数据(数据库中存储的是累计值)
|
||||||
@ -318,7 +320,7 @@ public class ServerMonitorScheduler {
|
|||||||
long rxDiff = monitorData.getNetworkRx() - lastMonitor.getNetworkRx();
|
long rxDiff = monitorData.getNetworkRx() - lastMonitor.getNetworkRx();
|
||||||
long txDiff = monitorData.getNetworkTx() - lastMonitor.getNetworkTx();
|
long txDiff = monitorData.getNetworkTx() - lastMonitor.getNetworkTx();
|
||||||
|
|
||||||
// 防止负数(服务器重启导致计数器重置)
|
// 防止负数(服务器重启或网卡变化导致计数器异常)
|
||||||
if (rxDiff >= 0 && txDiff >= 0) {
|
if (rxDiff >= 0 && txDiff >= 0) {
|
||||||
networkRxSpeed = rxDiff / timeDiffSeconds; // KB/s
|
networkRxSpeed = rxDiff / timeDiffSeconds; // KB/s
|
||||||
networkTxSpeed = txDiff / timeDiffSeconds; // KB/s
|
networkTxSpeed = txDiff / timeDiffSeconds; // KB/s
|
||||||
@ -326,8 +328,11 @@ public class ServerMonitorScheduler {
|
|||||||
log.debug("网络速率计算: serverId={}, timeDiff={}s, rxSpeed={}KB/s, txSpeed={}KB/s",
|
log.debug("网络速率计算: serverId={}, timeDiff={}s, rxSpeed={}KB/s, txSpeed={}KB/s",
|
||||||
server.getId(), timeDiffSeconds, networkRxSpeed, networkTxSpeed);
|
server.getId(), timeDiffSeconds, networkRxSpeed, networkTxSpeed);
|
||||||
} else {
|
} else {
|
||||||
log.warn("检测到网络计数器重置(负差值): serverId={}, rxDiff={}, txDiff={}",
|
// 检测到异常:使用上次的累计值,避免存入错误数据
|
||||||
server.getId(), rxDiff, txDiff);
|
finalNetworkRx = lastMonitor.getNetworkRx();
|
||||||
|
finalNetworkTx = lastMonitor.getNetworkTx();
|
||||||
|
log.warn("检测到网络计数器异常(负差值),使用上次累计值: serverId={}, rxDiff={}, txDiff={}, 上次rx={}, 上次tx={}",
|
||||||
|
server.getId(), rxDiff, txDiff, lastMonitor.getNetworkRx(), lastMonitor.getNetworkTx());
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
log.warn("时间差异无效: serverId={}, timeDiff={}s", server.getId(), timeDiffSeconds);
|
log.warn("时间差异无效: serverId={}, timeDiff={}s", server.getId(), timeDiffSeconds);
|
||||||
@ -344,8 +349,8 @@ public class ServerMonitorScheduler {
|
|||||||
.memoryUsage(monitorData.getMemoryUsage())
|
.memoryUsage(monitorData.getMemoryUsage())
|
||||||
.memoryUsed(memoryUsed)
|
.memoryUsed(memoryUsed)
|
||||||
.diskUsage(monitorData.getDiskUsage())
|
.diskUsage(monitorData.getDiskUsage())
|
||||||
.networkRx(monitorData.getNetworkRx()) // ✅ 累计值(存数据库)
|
.networkRx(finalNetworkRx) // ✅ 累计值(存数据库,已过滤异常数据)
|
||||||
.networkTx(monitorData.getNetworkTx()) // ✅ 累计值(存数据库)
|
.networkTx(finalNetworkTx) // ✅ 累计值(存数据库,已过滤异常数据)
|
||||||
.networkRxSpeed(networkRxSpeed) // ✅ 速率(告警检查)
|
.networkRxSpeed(networkRxSpeed) // ✅ 速率(告警检查)
|
||||||
.networkTxSpeed(networkTxSpeed) // ✅ 速率(告警检查)
|
.networkTxSpeed(networkTxSpeed) // ✅ 速率(告警检查)
|
||||||
.collectTime(LocalDateTime.now())
|
.collectTime(LocalDateTime.now())
|
||||||
@ -356,8 +361,8 @@ public class ServerMonitorScheduler {
|
|||||||
monitorData.getCpuUsage(),
|
monitorData.getCpuUsage(),
|
||||||
monitorData.getMemoryUsage(),
|
monitorData.getMemoryUsage(),
|
||||||
monitorData.getDiskUsage() != null ? monitorData.getDiskUsage().size() : 0,
|
monitorData.getDiskUsage() != null ? monitorData.getDiskUsage().size() : 0,
|
||||||
monitorData.getNetworkRx(),
|
finalNetworkRx,
|
||||||
monitorData.getNetworkTx(),
|
finalNetworkTx,
|
||||||
networkRxSpeed,
|
networkRxSpeed,
|
||||||
networkTxSpeed);
|
networkTxSpeed);
|
||||||
|
|
||||||
|
|||||||
@ -257,7 +257,7 @@ public class JenkinsBuildServiceImpl extends BaseServiceImpl<JenkinsBuild, Jenki
|
|||||||
|
|
||||||
// 2. 判断是否有新构建(基于Build表实际数据判断)
|
// 2. 判断是否有新构建(基于Build表实际数据判断)
|
||||||
if (lastSyncedBuildNumber != null && latestBuildNumber <= lastSyncedBuildNumber) {
|
if (lastSyncedBuildNumber != null && latestBuildNumber <= lastSyncedBuildNumber) {
|
||||||
log.info("No new builds to sync for job: {} (last synced: {}, latest: {})", job.getJobName(), lastSyncedBuildNumber, latestBuildNumber);
|
// 没有新构建,直接返回(不打印日志,减少日志输出)
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -220,9 +220,6 @@ public class RepositoryProjectServiceImpl extends BaseServiceImpl<RepositoryProj
|
|||||||
log.info("Creating new project: {} (ID: {})",
|
log.info("Creating new project: {} (ID: {})",
|
||||||
projectResponse.getPathWithNamespace(), projectResponse.getId());
|
projectResponse.getPathWithNamespace(), projectResponse.getId());
|
||||||
totalCount.incrementAndGet();
|
totalCount.incrementAndGet();
|
||||||
} else {
|
|
||||||
log.debug("Updating existing project: {} (ID: {})",
|
|
||||||
projectResponse.getPathWithNamespace(), projectResponse.getId());
|
|
||||||
}
|
}
|
||||||
|
|
||||||
project.setDeleted(false);
|
project.setDeleted(false);
|
||||||
|
|||||||
@ -97,6 +97,7 @@ logging:
|
|||||||
level:
|
level:
|
||||||
springframework: DEBUG
|
springframework: DEBUG
|
||||||
org.springframework.web: DEBUG
|
org.springframework.web: DEBUG
|
||||||
|
org.springframework.web.client.RestTemplate: WARN # 关闭RestTemplate的DEBUG日志(减少HTTP请求详细日志)
|
||||||
org.springframework.context.i18n: DEBUG
|
org.springframework.context.i18n: DEBUG
|
||||||
org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping: TRACE
|
org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping: TRACE
|
||||||
org.hibernate.SQL: INFO
|
org.hibernate.SQL: INFO
|
||||||
@ -105,6 +106,25 @@ logging:
|
|||||||
org.hibernate.orm.jdbc.bind: INFO
|
org.hibernate.orm.jdbc.bind: INFO
|
||||||
com.qqchen.deploy.backend.framework.utils.EntityPathResolver: DEBUG
|
com.qqchen.deploy.backend.framework.utils.EntityPathResolver: DEBUG
|
||||||
com.qqchen.deploy.backend: DEBUG
|
com.qqchen.deploy.backend: DEBUG
|
||||||
|
# 日志文件配置
|
||||||
|
file:
|
||||||
|
name: logs/deploy-ease.log # 日志文件路径
|
||||||
|
logback:
|
||||||
|
rollingpolicy:
|
||||||
|
# 日志文件名称模式(按日期归档)
|
||||||
|
file-name-pattern: logs/deploy-ease-%d{yyyy-MM-dd}.%i.log.gz
|
||||||
|
# 单个日志文件最大大小
|
||||||
|
max-file-size: 100MB
|
||||||
|
# 日志文件保留天数
|
||||||
|
max-history: 30
|
||||||
|
# 日志文件总大小上限
|
||||||
|
total-size-cap: 10GB
|
||||||
|
# 是否在启动时清理历史日志
|
||||||
|
clean-history-on-start: false
|
||||||
|
pattern:
|
||||||
|
# 日志输出格式
|
||||||
|
console: '%d{yyyy-MM-dd HH:mm:ss.SSS} %5p ${PID:- } --- [%15.15t] %-40.40logger{39} : %m%n'
|
||||||
|
file: '%d{yyyy-MM-dd HH:mm:ss.SSS} %5p ${PID:- } --- [%15.15t] %-40.40logger{39} : %m%n'
|
||||||
# 监控配置
|
# 监控配置
|
||||||
management:
|
management:
|
||||||
endpoints:
|
endpoints:
|
||||||
|
|||||||
@ -105,6 +105,25 @@ logging:
|
|||||||
org.hibernate.orm.jdbc.bind: INFO
|
org.hibernate.orm.jdbc.bind: INFO
|
||||||
com.qqchen.deploy.backend.framework.utils.EntityPathResolver: DEBUG
|
com.qqchen.deploy.backend.framework.utils.EntityPathResolver: DEBUG
|
||||||
com.qqchen.deploy.backend: DEBUG
|
com.qqchen.deploy.backend: DEBUG
|
||||||
|
# 日志文件配置
|
||||||
|
file:
|
||||||
|
name: logs/deploy-ease.log # 日志文件路径
|
||||||
|
logback:
|
||||||
|
rollingpolicy:
|
||||||
|
# 日志文件名称模式(按日期归档)
|
||||||
|
file-name-pattern: logs/deploy-ease-%d{yyyy-MM-dd}.%i.log.gz
|
||||||
|
# 单个日志文件最大大小
|
||||||
|
max-file-size: 100MB
|
||||||
|
# 日志文件保留天数
|
||||||
|
max-history: 30
|
||||||
|
# 日志文件总大小上限
|
||||||
|
total-size-cap: 10GB
|
||||||
|
# 是否在启动时清理历史日志
|
||||||
|
clean-history-on-start: false
|
||||||
|
pattern:
|
||||||
|
# 日志输出格式
|
||||||
|
console: '%d{yyyy-MM-dd HH:mm:ss.SSS} %5p ${PID:- } --- [%15.15t] %-40.40logger{39} : %m%n'
|
||||||
|
file: '%d{yyyy-MM-dd HH:mm:ss.SSS} %5p ${PID:- } --- [%15.15t] %-40.40logger{39} : %m%n'
|
||||||
# 监控配置
|
# 监控配置
|
||||||
management:
|
management:
|
||||||
endpoints:
|
endpoints:
|
||||||
|
|||||||
@ -4,17 +4,8 @@
|
|||||||
xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog
|
xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog
|
||||||
http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-4.3.xsd">
|
http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-4.3.xsd">
|
||||||
|
|
||||||
<!-- 清理旧数据(如果表结构已变更) -->
|
|
||||||
<changeSet id="20251209112700-cleanup" author="qqchen">
|
|
||||||
<preConditions onFail="CONTINUE">
|
|
||||||
<tableExists tableName="system_release"/>
|
|
||||||
</preConditions>
|
|
||||||
<sql>TRUNCATE TABLE system_release;</sql>
|
|
||||||
<sql>DELETE FROM DATABASECHANGELOG WHERE ID='20251209112700';</sql>
|
|
||||||
</changeSet>
|
|
||||||
|
|
||||||
<!-- 插入新数据 -->
|
<!-- 插入新数据 -->
|
||||||
<changeSet id="20251209112700-v2" author="qqchen">
|
<changeSet id="20251209112700" author="qqchen">
|
||||||
<sqlFile path="20251209112700-01.sql" relativeToChangelogFile="true"/>
|
<sqlFile path="20251209112700-01.sql" relativeToChangelogFile="true"/>
|
||||||
</changeSet>
|
</changeSet>
|
||||||
</databaseChangeLog>
|
</databaseChangeLog>
|
||||||
|
|||||||
@ -0,0 +1,24 @@
|
|||||||
|
-- --------------------------------------------------------------------------------------
|
||||||
|
-- 系统版本发布记录 - v1.1
|
||||||
|
-- 功能:记录Jenkins日志优化版本
|
||||||
|
-- 作者:qqchen
|
||||||
|
-- 日期:2025-12-09 14:13
|
||||||
|
-- --------------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
-- 插入 1.1 日志优化发布记录
|
||||||
|
INSERT INTO system_release (
|
||||||
|
create_by, create_time, update_by, update_time, version, deleted,
|
||||||
|
release_version, module, release_date, changes, notified, delay_minutes, estimated_duration, enable_auto_shutdown
|
||||||
|
)
|
||||||
|
VALUES (
|
||||||
|
'system', NOW(), 'system', NOW(), 1, 0,
|
||||||
|
1.1, 'BACKEND', NOW(),
|
||||||
|
'【后端】
|
||||||
|
• 优化:Jenkins构建同步日志输出(减少90%冗余日志)
|
||||||
|
• 优化:Git项目同步日志输出(移除已存在项目的DEBUG日志)
|
||||||
|
• 优化:RestTemplate HTTP请求日志(生产环境关闭DEBUG日志)
|
||||||
|
• 优化:日志文件管理(按日期自动切割、压缩归档、自动清理)
|
||||||
|
• 优化:日志配置(单文件100MB,保留30天,总大小10GB)
|
||||||
|
• 修复:服务器网络流量监控数据异常问题(过滤累计值减少的异常数据)',
|
||||||
|
0, NULL, NULL, 0
|
||||||
|
);
|
||||||
@ -0,0 +1,16 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<databaseChangeLog xmlns="http://www.liquibase.org/xml/ns/dbchangelog"
|
||||||
|
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||||
|
xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog
|
||||||
|
http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-4.3.xsd">
|
||||||
|
|
||||||
|
<!-- Jenkins构建同步日志优化 - 无数据库变更 -->
|
||||||
|
<changeSet id="20251209141300" author="qqchen">
|
||||||
|
<comment>
|
||||||
|
优化Jenkins构建同步日志输出,减少冗余日志
|
||||||
|
- 移除无新构建时的INFO日志
|
||||||
|
- 只在有构建更新时才记录日志
|
||||||
|
</comment>
|
||||||
|
<sqlFile path="20251209141300-01.sql" relativeToChangelogFile="true"/>
|
||||||
|
</changeSet>
|
||||||
|
</databaseChangeLog>
|
||||||
@ -26,7 +26,8 @@ VALUES
|
|||||||
(10, NOW(), 'maye', '$2a$10$YPhZjBKxHLNYXzMS6mnc7Of3pPT.6DhBArkJLbCPKgaTiLDWrr58y', '马也', 'maye@iscmtech.com', NULL, 5, 1),
|
(10, NOW(), 'maye', '$2a$10$YPhZjBKxHLNYXzMS6mnc7Of3pPT.6DhBArkJLbCPKgaTiLDWrr58y', '马也', 'maye@iscmtech.com', NULL, 5, 1),
|
||||||
(11, NOW(), 'dengqichen', '$2a$10$fUdDZ33099YboexF/SNQT.55mXzK3Kejb82yc76iCdl25.uqAatkW', '邓骐辰', 'dengqichen@iscmtech.com', NULL, 5, 1),
|
(11, NOW(), 'dengqichen', '$2a$10$fUdDZ33099YboexF/SNQT.55mXzK3Kejb82yc76iCdl25.uqAatkW', '邓骐辰', 'dengqichen@iscmtech.com', NULL, 5, 1),
|
||||||
(12, NOW(), 'wangdongzhu', '$2a$10$OErv/EvBXUocMutXZJe3C.k1gq9/8rrF63pz8mWRBLoORGb/8ELIO', '王栋柱', 'wangdongzhu@iscmtech.com', NULL, 5, 1),
|
(12, NOW(), 'wangdongzhu', '$2a$10$OErv/EvBXUocMutXZJe3C.k1gq9/8rrF63pz8mWRBLoORGb/8ELIO', '王栋柱', 'wangdongzhu@iscmtech.com', NULL, 5, 1),
|
||||||
(13, NOW(), 'yangzhenfu', '$2a$10$.WBc0pXTQnrDn2IUm.eRneH9jfu7TIZg2na.K3WaluvjIEts2Iasm', '杨振夫', 'yangzhenfu@iscmtech.com', '15842461837', 5, 1);
|
(13, NOW(), 'yangzhenfu', '$2a$10$.WBc0pXTQnrDn2IUm.eRneH9jfu7TIZg2na.K3WaluvjIEts2Iasm', '杨振夫', 'yangzhenfu@iscmtech.com', '15842461837', 5, 1),
|
||||||
|
(14, NOW(), 'songwei', '$2a$10$8ChswMOtgkvZCGsa/wvMM.wfhL5NL9uqCasyHZ6hiDG45vFu/EQRG', '宋伟', 'songwei@iscmtech.com', NULL, 5, 1);
|
||||||
|
|
||||||
-- 初始化系统参数
|
-- 初始化系统参数
|
||||||
INSERT INTO sys_param (id, create_time, code, name, value, type, description, enabled)
|
INSERT INTO sys_param (id, create_time, code, name, value, type, description, enabled)
|
||||||
@ -39,17 +40,6 @@ VALUES
|
|||||||
-- 初始化权限管理数据
|
-- 初始化权限管理数据
|
||||||
-- --------------------------------------------------------------------------------------
|
-- --------------------------------------------------------------------------------------
|
||||||
|
|
||||||
-- --------------------------------------------------------------------------------------
|
|
||||||
-- 初始化权限管理数据
|
|
||||||
-- --------------------------------------------------------------------------------------
|
|
||||||
|
|
||||||
-- --------------------------------------------------------------------------------------
|
|
||||||
-- 初始化权限管理数据
|
|
||||||
-- --------------------------------------------------------------------------------------
|
|
||||||
|
|
||||||
-- 先清理已有数据
|
|
||||||
DELETE FROM sys_menu;
|
|
||||||
|
|
||||||
INSERT INTO sys_menu (id, name, path, component, icon, permission, type, parent_id, sort, hidden, enabled, create_by, create_time, version, deleted)
|
INSERT INTO sys_menu (id, name, path, component, icon, permission, type, parent_id, sort, hidden, enabled, create_by, create_time, version, deleted)
|
||||||
VALUES
|
VALUES
|
||||||
-- 首页
|
-- 首页
|
||||||
@ -150,7 +140,8 @@ VALUES
|
|||||||
(10, 3), -- maye - 开发
|
(10, 3), -- maye - 开发
|
||||||
(11, 1), -- dengqichen - 管理员
|
(11, 1), -- dengqichen - 管理员
|
||||||
(12, 3), -- wangdongzhu - 开发
|
(12, 3), -- wangdongzhu - 开发
|
||||||
(13, 3); -- yangzhenfu - 开发
|
(13, 3), -- yangzhenfu - 开发
|
||||||
|
(14, 1); -- songwei - 管理员
|
||||||
|
|
||||||
-- 初始化角色菜单关联
|
-- 初始化角色菜单关联
|
||||||
INSERT INTO sys_role_menu (role_id, menu_id)
|
INSERT INTO sys_role_menu (role_id, menu_id)
|
||||||
|
|||||||
@ -1375,8 +1375,6 @@ CREATE TABLE system_release
|
|||||||
delay_minutes INT NULL COMMENT '延迟执行分钟数(创建后多久开始维护,为空则不触发维护)',
|
delay_minutes INT NULL COMMENT '延迟执行分钟数(创建后多久开始维护,为空则不触发维护)',
|
||||||
estimated_duration INT NULL COMMENT '预计维护时长(分钟)',
|
estimated_duration INT NULL COMMENT '预计维护时长(分钟)',
|
||||||
enable_auto_shutdown BIT NOT NULL DEFAULT 0 COMMENT '是否自动停止服务',
|
enable_auto_shutdown BIT NOT NULL DEFAULT 0 COMMENT '是否自动停止服务',
|
||||||
|
|
||||||
UNIQUE KEY uk_version_module (release_version, module),
|
|
||||||
KEY idx_release_date (release_date),
|
KEY idx_release_date (release_date),
|
||||||
KEY idx_notified (notified),
|
KEY idx_notified (notified),
|
||||||
KEY idx_deleted (deleted)
|
KEY idx_deleted (deleted)
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user