This commit is contained in:
Your Name
2026-04-17 14:19:26 +08:00
parent 1921318c25
commit fe87c7b343
3 changed files with 188 additions and 3 deletions

View File

@@ -307,6 +307,50 @@
</el-table>
</div>
<div class="history-panel">
<div class="history-header">
<h3>当前参与检测节点</h3>
<span class="history-note">直接展示哪些节点正在领任务执行任务或产生近窗吞吐controller 兼跑检测也会计入</span>
</div>
<el-alert
:closable="false"
show-icon
type="info"
style="margin-bottom: 12px"
:title="participatingNodesAlertText"
/>
<el-table
:data="runtime.detect?.participating_nodes || []"
border
size="small"
empty-text="当前没有正在参与检测的节点"
>
<el-table-column prop="node_code" label="节点" min-width="180" />
<el-table-column prop="region" label="区域" min-width="100" />
<el-table-column prop="role" label="角色" min-width="100" />
<el-table-column label="有效 Worker" min-width="100">
<template #default="{ row }">
<el-tag :type="row.is_effective_worker ? 'success' : 'info'">
{{ row.is_effective_worker ? "是" : "否" }}
</el-tag>
</template>
</el-table-column>
<el-table-column label="状态" min-width="100">
<template #default="{ row }">
<el-tag :type="row.status === 'online' ? 'success' : row.status === 'busy' ? 'warning' : row.status === 'stale' ? 'warning' : 'info'">
{{ row.status || "-" }}
</el-tag>
</template>
</el-table-column>
<el-table-column prop="items_claimed" label="已领" min-width="90" />
<el-table-column prop="items_running" label="执行中" min-width="90" />
<el-table-column prop="items_completed" label="完成" min-width="90" />
<el-table-column prop="processed_recent" label="近窗处理" min-width="100" />
<el-table-column prop="processed_per_minute" label="项/分钟" min-width="100" />
<el-table-column prop="current_load" label="负载" min-width="80" />
</el-table>
</div>
<div class="history-panel">
<div class="history-header">
<h3>动作留痕</h3>
@@ -334,6 +378,7 @@
<div class="cluster-summary">
<span class="cluster-summary-item">在线控制面 {{ runtime.cluster?.summary?.online_control_nodes || 0 }}</span>
<span class="cluster-summary-item">在线 Worker {{ runtime.cluster?.summary?.online_worker_nodes || 0 }}</span>
<span class="cluster-summary-item">独立 Worker {{ runtime.cluster?.summary?.dedicated_online_worker_nodes || 0 }}</span>
<span class="cluster-summary-item">忙碌 {{ runtime.cluster?.summary?.status_counts?.busy || 0 }}</span>
<span class="cluster-summary-item">失活 {{ runtime.cluster?.summary?.status_counts?.stale || 0 }}</span>
<span class="cluster-summary-item">离线 {{ runtime.cluster?.summary?.status_counts?.offline || 0 }}</span>
@@ -350,6 +395,13 @@
<el-table-column prop="node_code" label="节点" min-width="180" />
<el-table-column prop="region" label="区域" min-width="100" />
<el-table-column prop="role" label="角色" min-width="100" />
<el-table-column label="有效 Worker" min-width="100">
<template #default="{ row }">
<el-tag :type="row.is_effective_worker ? 'success' : 'info'">
{{ row.is_effective_worker ? "是" : "否" }}
</el-tag>
</template>
</el-table-column>
<el-table-column label="状态" min-width="100">
<template #default="{ row }">
<el-tag :type="row.status === 'online' ? 'success' : row.status === 'busy' ? 'warning' : row.status === 'stale' ? 'warning' : 'info'">
@@ -766,6 +818,15 @@ const clusterAlertText = computed(() => {
return parts.join("");
});
const participatingNodesAlertText = computed(() => {
const rows = Array.isArray(runtime.detect?.participating_nodes) ? runtime.detect.participating_nodes : [];
if (!rows.length) {
return "当前没有节点正在领任务、执行任务或产生近窗吞吐。";
}
const names = rows.map((item: Record<string, any>) => String(item.node_code || "-")).join("、");
return `当前参与检测节点 ${rows.length} 台:${names}`;
});
const syncAlertText = computed(() => {
const sync = runtime.sync || {};
const statusCounts = sync.status_counts || {};