From 55170bceb0979633c517f8c6ec10b53b0cde73b4 Mon Sep 17 00:00:00 2001 From: zxr <271055687@qq.com> Date: Tue, 14 Apr 2026 17:42:31 +0800 Subject: [PATCH] fix --- src/api/ops/server.ts | 84 ++++ src/views/ops/pages/monitor/os/index.vue | 2 +- .../pages/monitor/virtualization/index.vue | 393 ++++++------------ 3 files changed, 221 insertions(+), 258 deletions(-) diff --git a/src/api/ops/server.ts b/src/api/ops/server.ts index e927d01..d70c25e 100644 --- a/src/api/ops/server.ts +++ b/src/api/ops/server.ts @@ -119,6 +119,11 @@ export interface HostMetricsDiskMount { export interface HostMetricsCpuCard { usage_percent: number logical_cores_total: number + socket_count?: number + physical_cores_total?: number + physical_threads_total?: number + cores_per_socket?: number + threads_per_core?: number } export interface HostMetricsSummary { @@ -163,3 +168,82 @@ export const fetchServerNetworkTraffic = (serverIdentity: string, hours = 6) => { params: { server_identity: serverIdentity, hours } }, ) } + +/** 虚拟机资产概览 */ +export interface VirtualOverviewPayload { + vm_total: number + asset_group_total: number + online_total: number + latest_timestamp?: string + latest_cpu_usage_avg?: number + latest_mem_usage_avg?: number +} + +/** 物理机 24h 趋势点 */ +export interface PhysicalUsagePoint { + hour: string + cpu_used_percent_avg: number | null + mem_used_percent_avg: number | null +} + +export interface PhysicalUsageTrendPayload { + hours: number + points: PhysicalUsagePoint[] +} + +/** 资源总量项 */ +export interface ResourceTotalGroup { + server_type: 'physical' | 'virtual' + server_count: number + total_vcpu: number + total_mem_bytes: number +} + +/** 最新资源总量汇总 */ +export interface LatestResourceSummaryPayload { + physical: ResourceTotalGroup + virtual: ResourceTotalGroup +} + +/** 按资产聚合项 */ +export interface AssetMixedSummaryItem { + asset_id: number + virtual_count: number + physical_count: number + physical_latest_cpu_usage?: number | null + physical_latest_mem_usage?: number | null +} + +export interface AssetMixedSummaryPayload { + total: number + data: AssetMixedSummaryItem[] +} + +/** 接口1:虚拟机资产概览(支持分类筛选) */ +export const fetchVirtualOverview = (category?: string) => { + return request.get<{ code: number; details?: VirtualOverviewPayload; message?: string }>( + '/DC-Control/v1/servers/assets/virtual/overview', + { params: { category } }, + ) +} + +/** 接口2:physical 近24小时 CPU/内存趋势 */ +export const fetchPhysicalUsageTrend24h = () => { + return request.get<{ code: number; details?: PhysicalUsageTrendPayload; message?: string }>( + '/DC-Control/v1/servers/physical/usage/trend-24h', + ) +} + +/** 接口3:physical/virtual 最新资源总量 */ +export const fetchLatestResourceSummary = () => { + return request.get<{ code: number; details?: LatestResourceSummaryPayload; message?: string }>( + '/DC-Control/v1/servers/resources/latest/summary', + ) +} + +/** 接口4:按资产汇总 virtual 数量与 physical 最新指标 */ +export const fetchAssetMixedSummary = () => { + return request.get<{ code: number; details?: AssetMixedSummaryPayload; message?: string }>( + '/DC-Control/v1/servers/assets/mixed/summary', + ) +} diff --git a/src/views/ops/pages/monitor/os/index.vue b/src/views/ops/pages/monitor/os/index.vue index 3a72f42..760f479 100644 --- a/src/views/ops/pages/monitor/os/index.vue +++ b/src/views/ops/pages/monitor/os/index.vue @@ -492,7 +492,7 @@ const resourcePanels = computed(() => { sysPanel = { ...defaultResourcePanels[1] } } - const cores = d.cpu?.logical_cores_total ?? 0 + const cores = d.cpu?.physical_threads_total ?? d.cpu?.logical_cores_total ?? 0 const usage = d.cpu?.usage_percent ?? 0 const usedCores = cores > 0 ? (usage / 100) * cores : 0 const freeCores = cores > 0 ? Math.max(0, cores - usedCores) : 0 diff --git a/src/views/ops/pages/monitor/virtualization/index.vue b/src/views/ops/pages/monitor/virtualization/index.vue index 42c3954..b7c3ecd 100644 --- a/src/views/ops/pages/monitor/virtualization/index.vue +++ b/src/views/ops/pages/monitor/virtualization/index.vue @@ -11,7 +11,7 @@
虚拟机总数
{{ stats.total }}
-
跨 8 台宿主机
+
宿主机 {{ stats.assetGroups }}
@@ -25,7 +25,7 @@
运行中
{{ stats.running }}
-
90.7%
+
{{ runningRateText }}
@@ -38,8 +38,8 @@
CPU使用率
-
{{ stats.cpuUsage }}%
-
集群平均
+
{{ statsCpuUsageText }}%
+
平均
@@ -52,8 +52,8 @@
内存使用率
-
{{ stats.memoryUsage }}%
-
集群平均
+
{{ statsMemoryUsageText }}%
+
平均
@@ -85,7 +85,7 @@
@@ -93,11 +93,11 @@
- 已分配 174 vCPU + 已使用 {{ cpuVirtualText }} vCPU
- 可用 82 vCPU + 总计 {{ cpuPhysicalText }} vCPU
@@ -105,7 +105,7 @@
@@ -113,11 +113,11 @@
- 已使用 384 GB + 已使用 {{ memoryVirtualText }} GB
- 可用 128 GB + 总计 {{ memoryPhysicalText }} GB
@@ -130,7 +130,9 @@
{{ host.name }} - 在线 + + {{ host.physicalCount > 0 ? '有物理机' : '仅虚拟机' }} +
@@ -151,253 +153,58 @@ 虚拟机数 {{ host.vmCount }}
+
+ 物理机数 + {{ host.physicalCount }} +
- - - - - - - - - - - - - - - - - +