1.20升级
This commit is contained in:
parent
1c3c148221
commit
1eb7a6eb6b
@ -139,10 +139,10 @@ public class ServerMonitorMetricsDTO {
|
||||
@Schema(description = "发送字节数")
|
||||
private Long txBytes;
|
||||
|
||||
@Schema(description = "接收速率(MB/s)")
|
||||
@Schema(description = "接收速率(KB/s)")
|
||||
private BigDecimal rxMBps;
|
||||
|
||||
@Schema(description = "发送速率(MB/s)")
|
||||
@Schema(description = "发送速率(KB/s)")
|
||||
private BigDecimal txMBps;
|
||||
}
|
||||
|
||||
@ -253,16 +253,16 @@ public class ServerMonitorMetricsDTO {
|
||||
@Schema(description = "总发送字节数")
|
||||
private Long totalTxBytes;
|
||||
|
||||
@Schema(description = "平均接收速率(MB/s)")
|
||||
@Schema(description = "平均接收速率(KB/s)")
|
||||
private BigDecimal avgRxMBps;
|
||||
|
||||
@Schema(description = "平均发送速率(MB/s)")
|
||||
@Schema(description = "平均发送速率(KB/s)")
|
||||
private BigDecimal avgTxMBps;
|
||||
|
||||
@Schema(description = "峰值接收速率(MB/s)")
|
||||
@Schema(description = "峰值接收速率(KB/s)")
|
||||
private BigDecimal peakRxMBps;
|
||||
|
||||
@Schema(description = "峰值发送速率(MB/s)")
|
||||
@Schema(description = "峰值发送速率(KB/s)")
|
||||
private BigDecimal peakTxMBps;
|
||||
}
|
||||
}
|
||||
|
||||
@ -229,14 +229,17 @@ public class ServerMonitorServiceImpl implements IServerMonitorService {
|
||||
.reduce(BigDecimal.ZERO, BigDecimal::add)
|
||||
.divide(BigDecimal.valueOf(successRecords.size()), 2, RoundingMode.HALF_UP);
|
||||
|
||||
// 网络流量是累计值,取最后一个有效值(而非求和)
|
||||
ServerMonitor lastRecord = successRecords.get(successRecords.size() - 1);
|
||||
|
||||
return ServerMonitor.builder()
|
||||
.serverId(group.get(0).getServerId())
|
||||
.cpuUsage(avgCpu)
|
||||
.memoryUsage(avgMemory)
|
||||
.memoryUsed(successRecords.get(0).getMemoryUsed())
|
||||
.diskUsage(successRecords.get(successRecords.size() - 1).getDiskUsage())
|
||||
.networkRx(successRecords.stream().mapToLong(m -> m.getNetworkRx() != null ? m.getNetworkRx() : 0).sum())
|
||||
.networkTx(successRecords.stream().mapToLong(m -> m.getNetworkTx() != null ? m.getNetworkTx() : 0).sum())
|
||||
.diskUsage(lastRecord.getDiskUsage())
|
||||
.networkRx(lastRecord.getNetworkRx())
|
||||
.networkTx(lastRecord.getNetworkTx())
|
||||
.collectTime(group.get(0).getCollectTime())
|
||||
.status(StatusEnum.SUCCESS)
|
||||
.build();
|
||||
@ -348,8 +351,9 @@ public class ServerMonitorServiceImpl implements IServerMonitorService {
|
||||
if (timeDiff > 0 && previous.getNetworkRx() != null && previous.getNetworkTx() != null) {
|
||||
long rxDiff = current.getNetworkRx() - previous.getNetworkRx();
|
||||
long txDiff = current.getNetworkTx() - previous.getNetworkTx();
|
||||
rxMBps = BigDecimal.valueOf(rxDiff).divide(BigDecimal.valueOf(timeDiff * 1024 * 1024), 2, RoundingMode.HALF_UP);
|
||||
txMBps = BigDecimal.valueOf(txDiff).divide(BigDecimal.valueOf(timeDiff * 1024 * 1024), 2, RoundingMode.HALF_UP);
|
||||
// 改为KB/s单位,提高精度(原来MB/s对于小流量会四舍五入为0)
|
||||
rxMBps = BigDecimal.valueOf(rxDiff).divide(BigDecimal.valueOf(timeDiff * 1024), 2, RoundingMode.HALF_UP);
|
||||
txMBps = BigDecimal.valueOf(txDiff).divide(BigDecimal.valueOf(timeDiff * 1024), 2, RoundingMode.HALF_UP);
|
||||
}
|
||||
}
|
||||
|
||||
@ -475,7 +479,7 @@ public class ServerMonitorServiceImpl implements IServerMonitorService {
|
||||
return null;
|
||||
}
|
||||
|
||||
// 计算总流量(从原始数据)
|
||||
// 计算总流量(累计值,取最后一个有效值)
|
||||
List<ServerMonitor> successData = data.stream()
|
||||
.filter(m -> StatusEnum.SUCCESS.equals(m.getStatus())
|
||||
&& m.getNetworkRx() != null && m.getNetworkTx() != null)
|
||||
@ -485,8 +489,10 @@ public class ServerMonitorServiceImpl implements IServerMonitorService {
|
||||
return null;
|
||||
}
|
||||
|
||||
long totalRx = successData.stream().mapToLong(ServerMonitor::getNetworkRx).sum();
|
||||
long totalTx = successData.stream().mapToLong(ServerMonitor::getNetworkTx).sum();
|
||||
// 网络流量是累计值,取最后一个值(而非求和)
|
||||
ServerMonitor lastRecord = successData.get(successData.size() - 1);
|
||||
long totalRx = lastRecord.getNetworkRx();
|
||||
long totalTx = lastRecord.getNetworkTx();
|
||||
|
||||
// 计算速率统计(从已构建的 NetworkMetric 数据中提取)
|
||||
BigDecimal avgRxMBps = null;
|
||||
|
||||
@ -513,46 +513,46 @@ export const ServerMonitorDialog: React.FC<ServerMonitorDialogProps> = ({
|
||||
<TabsTrigger value="disk">磁盘</TabsTrigger>
|
||||
</TabsList>
|
||||
|
||||
<TabsContent value="cpu" className="space-y-4">
|
||||
<TabsContent value="cpu" className="space-y-4 min-h-[400px]">
|
||||
{monitorData.metrics.cpu && monitorData.metrics.cpu.length > 0 ? (
|
||||
<ReactECharts
|
||||
option={getCpuChartOption()}
|
||||
style={{ height: '400px', width: '100%' }}
|
||||
/>
|
||||
) : (
|
||||
<div className="flex items-center justify-center h-64 text-muted-foreground">
|
||||
<div className="flex items-center justify-center h-[400px] text-muted-foreground">
|
||||
暂无CPU数据
|
||||
</div>
|
||||
)}
|
||||
</TabsContent>
|
||||
|
||||
<TabsContent value="memory" className="space-y-4">
|
||||
<TabsContent value="memory" className="space-y-4 min-h-[400px]">
|
||||
{monitorData.metrics.memory && monitorData.metrics.memory.length > 0 ? (
|
||||
<ReactECharts
|
||||
option={getMemoryChartOption()}
|
||||
style={{ height: '400px', width: '100%' }}
|
||||
/>
|
||||
) : (
|
||||
<div className="flex items-center justify-center h-64 text-muted-foreground">
|
||||
<div className="flex items-center justify-center h-[400px] text-muted-foreground">
|
||||
暂无内存数据
|
||||
</div>
|
||||
)}
|
||||
</TabsContent>
|
||||
|
||||
<TabsContent value="network" className="space-y-4">
|
||||
<TabsContent value="network" className="space-y-4 min-h-[400px]">
|
||||
{monitorData.metrics.network && monitorData.metrics.network.length > 0 ? (
|
||||
<ReactECharts
|
||||
option={getNetworkChartOption()}
|
||||
style={{ height: '400px', width: '100%' }}
|
||||
/>
|
||||
) : (
|
||||
<div className="flex items-center justify-center h-64 text-muted-foreground">
|
||||
<div className="flex items-center justify-center h-[400px] text-muted-foreground">
|
||||
暂无网络数据
|
||||
</div>
|
||||
)}
|
||||
</TabsContent>
|
||||
|
||||
<TabsContent value="disk" className="space-y-4">
|
||||
<TabsContent value="disk" className="space-y-4 min-h-[400px]">
|
||||
{renderDiskInfo()}
|
||||
</TabsContent>
|
||||
</Tabs>
|
||||
|
||||
Loading…
Reference in New Issue
Block a user