添加数据

main
陈博文 6 days ago
parent 4f1e59dcd2
commit 40ea6db1bb

@ -340,6 +340,33 @@ const detailColumns = [
</span> </span>
), ),
}, },
{
label: 'CPU大小',
value: 'coreTotal',
render: ({ coreTotal }) => (
<span>
{`${coreTotal}`}
</span>
),
},
{
label: '内存大小',
value: 'memoryTotal',
render: ({ memoryTotal }) => (
<span>
{`${bytesToGB(memoryTotal)}GiB`}
</span>
),
},
{
label: '磁盘大小',
value: 'diskSize',
render: ({ diskSize }) => (
<span>
{`${bytesToGB(diskSize)}GiB`}
</span>
),
},
{ {
label: '容器运行时', label: '容器运行时',
value: 'containerRuntimeVersion', value: 'containerRuntimeVersion',

@ -58,7 +58,7 @@
<script setup lang="jsx"> <script setup lang="jsx">
import BackHeader from '@/components/BackHeader.vue'; import BackHeader from '@/components/BackHeader.vue';
import {useRoute, useRouter} from 'vue-router'; import { useRoute, useRouter } from 'vue-router';
import { onMounted, ref, watch, watchEffect } from 'vue'; import { onMounted, ref, watch, watchEffect } from 'vue';
import useInstantVector from '~/vgpu/hooks/useInstantVector'; import useInstantVector from '~/vgpu/hooks/useInstantVector';
@ -117,16 +117,16 @@ const columns = [
></div>{' '} ></div>{' '}
{text} {text}
{(status === 'unknown' || status === 'failed') && ( {(status === 'unknown' || status === 'failed') && (
<ElPopover placement="top" trigger="hover" popper-style={{ width: '180px' }}> <ElPopover placement="top" trigger="hover" popper-style={{ width: '180px' }}>
{{ {{
reference: () => <el-icon color="#939EA9" size="14"><QuestionFilled /></el-icon>, reference: () => <el-icon color="#939EA9" size="14"><QuestionFilled /></el-icon>,
default: () => ( default: () => (
<span style={{ marginLeft: '5px', }}> <span style={{ marginLeft: '5px', }}>
请跳转云平台查看详情 请跳转云平台查看详情
</span> </span>
), ),
}} }}
</ElPopover> </ElPopover>
)} )}
</div> </div>
); );
@ -146,11 +146,11 @@ const columns = [
const displayText = isLongText ? `${text.slice(0, maxLength)}...` : text; const displayText = isLongText ? `${text.slice(0, maxLength)}...` : text;
return isLongText ? ( return isLongText ? (
<el-tooltip content={text} placement="top"> <el-tooltip content={text} placement="top">
<span>{displayText}</span>
</el-tooltip>
) : (
<span>{displayText}</span> <span>{displayText}</span>
</el-tooltip>
) : (
<span>{displayText}</span>
); );
}, },
}, },
@ -236,6 +236,16 @@ const lineConfig = ref([
query: `avg(sum(hami_container_memory_util{container_name=~"$container",pod_name=~"$pod",namespace_name="$namespace"}) by (instance))`, query: `avg(sum(hami_container_memory_util{container_name=~"$container",pod_name=~"$pod",namespace_name="$namespace"}) by (instance))`,
data: [], data: [],
}, },
{
title: 'CPU使用趋势%',
query: `100 * (1 - avg by(instance)(irate(node_cpu_seconds_total{mode="idle", instance=~"$node"}[1m])))`,
data: [],
},
{
title: '内存使用趋势(%',
query: `100 * (1 - node_memory_MemAvailable_bytes{instance=~"$node"} / node_memory_MemTotal_bytes{instance=~"$node"})`,
data: [],
},
]); ]);
const fetchLineData = async () => { const fetchLineData = async () => {
@ -251,7 +261,8 @@ const fetchLineData = async () => {
query: item.query query: item.query
.replaceAll(`$container`, detail.value.name) .replaceAll(`$container`, detail.value.name)
.replaceAll(`$namespace`, detail.value.namespace) .replaceAll(`$namespace`, detail.value.namespace)
.replaceAll(`$pod`, detail.value.appName), .replaceAll(`$pod`, detail.value.appName)
.replaceAll(`$node`, detail.value.nodeName),
}) })
.then((res) => { .then((res) => {
lineConfig.value[index].data = res.data[0]?.values || []; lineConfig.value[index].data = res.data[0]?.values || [];
@ -270,7 +281,7 @@ watch(times, () => {
onMounted(async () => { onMounted(async () => {
const { name, podUid } = route.query; const { name, podUid } = route.query;
detail.value = await taskApi.getTaskDetail({ name, podUid }); detail.value = await taskApi.getTaskDetail({ name, podUid });
const cards = await cardApi.getCardListReq({filters: {}}); const cards = await cardApi.getCardListReq({ filters: {} });
const foundCard = cards.list.find((item) => item.uuid === detail.value.deviceIds[0]); const foundCard = cards.list.find((item) => item.uuid === detail.value.deviceIds[0]);
if (foundCard) { if (foundCard) {
detail.value.type = foundCard.type; detail.value.type = foundCard.type;
@ -305,6 +316,7 @@ onMounted(async () => {
.task-detail { .task-detail {
display: grid; display: grid;
grid-template-columns: repeat(2, 1fr); grid-template-columns: repeat(2, 1fr);
.right { .right {
display: grid; display: grid;
grid-template-columns: repeat(2, 1fr); grid-template-columns: repeat(2, 1fr);

@ -69,6 +69,22 @@ const topConfig = [
title: '任务资源申请 Top5', title: '任务资源申请 Top5',
key: 'apply', key: 'apply',
config: [ config: [
{
tab: 'CPU',
key: 'cpu',
data: [],
nameKey: 'container_pod_uuid',
unit: '核',
query: 'topk(5, sum by(container_pod_uuid) (hami_container_vcore_allocated))',
},
{
tab: '内存',
key: 'internal',
data: [],
unit: 'GiB',
nameKey: 'container_pod_uuid',
query: 'topk(5, sum by(container_pod_uuid) (hami_container_vmemory_allocated))',
},
{ {
tab: '算力', tab: '算力',
key: 'core', key: 'core',
@ -103,6 +119,7 @@ const topConfig = [
.task-top-box { .task-top-box {
display: flex; display: flex;
gap: 25px; gap: 25px;
.item { .item {
flex: 1; flex: 1;
} }

Loading…
Cancel
Save