mirror of
https://github.com/apache/skywalking-booster-ui.git
synced 2025-07-18 20:45:24 +00:00
reload topology
This commit is contained in:
parent
69140af160
commit
a814c4108c
@ -17,9 +17,18 @@ limitations under the License. -->
|
|||||||
<div class="profile-task-wrapper flex-v">
|
<div class="profile-task-wrapper flex-v">
|
||||||
<div class="profile-t-tool">
|
<div class="profile-t-tool">
|
||||||
<span>{{ t("taskList") }}</span>
|
<span>{{ t("taskList") }}</span>
|
||||||
|
|
||||||
|
<span v-if="inProcess" class="new-task cp" @click="createTask">
|
||||||
|
<Icon
|
||||||
|
:style="{ color: '#ccc' }"
|
||||||
|
iconName="library_add"
|
||||||
|
size="middle"
|
||||||
|
/>
|
||||||
|
</span>
|
||||||
<el-popconfirm
|
<el-popconfirm
|
||||||
title="Are you sure to create a task?"
|
title="Are you sure to create a task?"
|
||||||
@confirm="createTask"
|
@confirm="createTask"
|
||||||
|
v-else
|
||||||
>
|
>
|
||||||
<template #reference>
|
<template #reference>
|
||||||
<span class="new-task cp">
|
<span class="new-task cp">
|
||||||
@ -27,18 +36,6 @@ limitations under the License. -->
|
|||||||
</span>
|
</span>
|
||||||
</template>
|
</template>
|
||||||
</el-popconfirm>
|
</el-popconfirm>
|
||||||
<el-popconfirm
|
|
||||||
:title="`Are you sure to ${
|
|
||||||
enableTasks ? 'disable' : 'enable'
|
|
||||||
} interval?`"
|
|
||||||
@confirm="enableInterval"
|
|
||||||
>
|
|
||||||
<template #reference>
|
|
||||||
<span class="new-task cp">
|
|
||||||
<Icon iconName="retry" :loading="enableTasks" size="middle" />
|
|
||||||
</span>
|
|
||||||
</template>
|
|
||||||
</el-popconfirm>
|
|
||||||
</div>
|
</div>
|
||||||
<div class="profile-t-wrapper">
|
<div class="profile-t-wrapper">
|
||||||
<div
|
<div
|
||||||
@ -106,10 +103,9 @@ const selectorStore = useSelectorStore();
|
|||||||
const networkProfilingStore = useNetworkProfilingStore();
|
const networkProfilingStore = useNetworkProfilingStore();
|
||||||
const appStore = useAppStoreWithOut();
|
const appStore = useAppStoreWithOut();
|
||||||
const viewDetail = ref<boolean>(false);
|
const viewDetail = ref<boolean>(false);
|
||||||
const enableTasks = ref<boolean>(false);
|
|
||||||
/*global Nullable */
|
/*global Nullable */
|
||||||
const intervalFn = ref<Nullable<any>>(null);
|
const intervalFn = ref<Nullable<any>>(null);
|
||||||
|
const inProcess = ref<boolean>(false);
|
||||||
fetchTasks();
|
fetchTasks();
|
||||||
|
|
||||||
async function changeTask(item: EBPFTaskList) {
|
async function changeTask(item: EBPFTaskList) {
|
||||||
@ -125,6 +121,10 @@ async function getTopology() {
|
|||||||
fixedTriggerDuration > 1800
|
fixedTriggerDuration > 1800
|
||||||
? taskStartTime + fixedTriggerDuration * 1000 - 30 * 60 * 1000
|
? taskStartTime + fixedTriggerDuration * 1000 - 30 * 60 * 1000
|
||||||
: taskStartTime;
|
: taskStartTime;
|
||||||
|
let endTime = taskStartTime + fixedTriggerDuration * 1000;
|
||||||
|
if (taskStartTime + fixedTriggerDuration * 1000 > new Date().getTime()) {
|
||||||
|
endTime = new Date().getTime();
|
||||||
|
}
|
||||||
const resp = await networkProfilingStore.getProcessTopology({
|
const resp = await networkProfilingStore.getProcessTopology({
|
||||||
serviceInstanceId,
|
serviceInstanceId,
|
||||||
duration: {
|
duration: {
|
||||||
@ -134,10 +134,7 @@ async function getTopology() {
|
|||||||
true
|
true
|
||||||
),
|
),
|
||||||
end: dateFormatStep(
|
end: dateFormatStep(
|
||||||
getLocalTime(
|
getLocalTime(appStore.utc, new Date(endTime)),
|
||||||
appStore.utc,
|
|
||||||
new Date(taskStartTime + fixedTriggerDuration * 1000)
|
|
||||||
),
|
|
||||||
appStore.duration.step,
|
appStore.duration.step,
|
||||||
true
|
true
|
||||||
),
|
),
|
||||||
@ -147,9 +144,19 @@ async function getTopology() {
|
|||||||
if (resp.errors) {
|
if (resp.errors) {
|
||||||
ElMessage.error(resp.errors);
|
ElMessage.error(resp.errors);
|
||||||
}
|
}
|
||||||
|
inProcess.value =
|
||||||
|
taskStartTime + fixedTriggerDuration * 1000 > new Date().getTime()
|
||||||
|
? true
|
||||||
|
: false;
|
||||||
|
if (!inProcess.value) {
|
||||||
|
intervalFn.value && clearInterval(intervalFn.value);
|
||||||
|
}
|
||||||
return resp;
|
return resp;
|
||||||
}
|
}
|
||||||
async function createTask() {
|
async function createTask() {
|
||||||
|
if (inProcess.value) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
const serviceId =
|
const serviceId =
|
||||||
(selectorStore.currentService && selectorStore.currentService.id) || "";
|
(selectorStore.currentService && selectorStore.currentService.id) || "";
|
||||||
const serviceInstanceId =
|
const serviceInstanceId =
|
||||||
@ -170,21 +177,20 @@ async function createTask() {
|
|||||||
await getTopology();
|
await getTopology();
|
||||||
}
|
}
|
||||||
async function enableInterval() {
|
async function enableInterval() {
|
||||||
enableTasks.value = !enableTasks.value;
|
const res = await networkProfilingStore.keepNetworkProfiling(
|
||||||
if (enableTasks.value) {
|
networkProfilingStore.selectedNetworkTask.taskId
|
||||||
await networkProfilingStore.keepNetworkProfiling(
|
);
|
||||||
networkProfilingStore.selectedNetworkTask.taskId
|
if (res.errors) {
|
||||||
);
|
return ElMessage.error(res.errors);
|
||||||
if (networkProfilingStore.aliveNetwork) {
|
}
|
||||||
intervalFn.value = setInterval(() => {
|
if (networkProfilingStore.aliveNetwork) {
|
||||||
fetchTasks();
|
intervalFn.value = setInterval(() => {
|
||||||
}, 180000);
|
getTopology();
|
||||||
}
|
}, 180000);
|
||||||
return;
|
|
||||||
}
|
}
|
||||||
intervalFn.value && clearInterval(intervalFn.value);
|
|
||||||
}
|
}
|
||||||
async function fetchTasks() {
|
async function fetchTasks() {
|
||||||
|
intervalFn.value && clearInterval(intervalFn.value);
|
||||||
const serviceId =
|
const serviceId =
|
||||||
(selectorStore.currentService && selectorStore.currentService.id) || "";
|
(selectorStore.currentService && selectorStore.currentService.id) || "";
|
||||||
const serviceInstanceId =
|
const serviceInstanceId =
|
||||||
@ -198,12 +204,12 @@ async function fetchTasks() {
|
|||||||
if (res.errors) {
|
if (res.errors) {
|
||||||
return ElMessage.error(res.errors);
|
return ElMessage.error(res.errors);
|
||||||
}
|
}
|
||||||
if (enableTasks.value && !networkProfilingStore.aliveNetwork) {
|
|
||||||
enableTasks.value = false;
|
|
||||||
return intervalFn.value && clearInterval(intervalFn.value);
|
|
||||||
}
|
|
||||||
await getTopology();
|
await getTopology();
|
||||||
|
if (inProcess.value) {
|
||||||
|
enableInterval();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
watch(
|
watch(
|
||||||
() => selectorStore.currentPod,
|
() => selectorStore.currentPod,
|
||||||
() => {
|
() => {
|
||||||
|
Loading…
Reference in New Issue
Block a user