diff --git a/src/store/modules/dashboard.ts b/src/store/modules/dashboard.ts index 450c2373..213510fa 100644 --- a/src/store/modules/dashboard.ts +++ b/src/store/modules/dashboard.ts @@ -113,7 +113,16 @@ export const dashboardStore = defineStore({ : 3, }; } - if (["Trace", "Profile", "Log", "DemandLog", "Ebpf"].includes(type)) { + if ( + [ + "Trace", + "Profile", + "Log", + "DemandLog", + "Ebpf", + "NetworkProfiling", + ].includes(type) + ) { newItem.h = 36; } if (type === "Text") { @@ -170,7 +179,16 @@ export const dashboardStore = defineStore({ showDepth: true, }; } - if (["Trace", "Profile", "Log", "DemandLog", "Ebpf"].includes(type)) { + if ( + [ + "Trace", + "Profile", + "Log", + "DemandLog", + "Ebpf", + "NetworkProfiling", + ].includes(type) + ) { newItem.h = 32; } if (type === "Text") { diff --git a/src/views/dashboard/controls/NetworkProfiling.vue b/src/views/dashboard/controls/NetworkProfiling.vue new file mode 100644 index 00000000..6a206a8d --- /dev/null +++ b/src/views/dashboard/controls/NetworkProfiling.vue @@ -0,0 +1,94 @@ + + + + diff --git a/src/views/dashboard/controls/Tab.vue b/src/views/dashboard/controls/Tab.vue index 370b28a5..74a71907 100644 --- a/src/views/dashboard/controls/Tab.vue +++ b/src/views/dashboard/controls/Tab.vue @@ -118,6 +118,7 @@ import Log from "./Log.vue"; import Text from "./Text.vue"; import Ebpf from "./Ebpf.vue"; import Event from "./Event.vue"; +import NetworkProfiling from "./NetworkProfiling.vue"; import { dragIgnoreFrom } from "../data"; import DemandLog from "./DemandLog.vue"; import copy from "@/utils/copy"; @@ -141,6 +142,7 @@ export default defineComponent({ Ebpf, DemandLog, Event, + NetworkProfiling, }, props, setup(props) { diff --git a/src/views/dashboard/controls/index.ts b/src/views/dashboard/controls/index.ts index 8130b98c..2633ce8d 100644 --- a/src/views/dashboard/controls/index.ts +++ b/src/views/dashboard/controls/index.ts @@ -24,6 +24,7 @@ import Text from "./Text.vue"; import Ebpf from "./Ebpf.vue"; import DemandLog from "./DemandLog.vue"; import Event from "./Event.vue"; +import NetworkProfiling from "./NetworkProfiling.vue"; export default { Tab, @@ -36,4 +37,5 @@ export default { Ebpf, DemandLog, Event, + NetworkProfiling, }; diff --git a/src/views/dashboard/data.ts b/src/views/dashboard/data.ts index 2c81d603..0f7a64e8 100644 --- a/src/views/dashboard/data.ts +++ b/src/views/dashboard/data.ts @@ -197,6 +197,11 @@ export const InstanceTools = [ { name: "assignment", content: "Add Log", id: "addLog" }, { name: "demand", content: "Add On Demand Log", id: "addDemandLog" }, { name: "event", content: "Add Event", id: "addEvent" }, + { + name: "timeline", + content: "Add Network Profiling", + id: "addNetworkProfiling", + }, ]; export const EndpointTools = [ { name: "playlist_add", content: "Add Widget", id: "addWidget" }, diff --git a/src/views/dashboard/panel/Tool.vue b/src/views/dashboard/panel/Tool.vue index b240b93d..2e7b4feb 100644 --- a/src/views/dashboard/panel/Tool.vue +++ b/src/views/dashboard/panel/Tool.vue @@ -144,9 +144,8 @@ const dashboardStore = useDashboardStore(); const selectorStore = useSelectorStore(); const appStore = useAppStoreWithOut(); const params = useRoute().params; -const toolIcons = ref<{ name: string; content: string; id: string }[]>( - EndpointRelationTools -); +const toolIcons = + ref<{ name: string; content: string; id: string }[]>(AllTools); const loading = ref(false); const states = reactive<{ destService: string; @@ -461,6 +460,9 @@ function setTabControls(id: string) { case "addEvent": dashboardStore.addTabControls("Event"); break; + case "addNetworkProfiling": + dashboardStore.addTabControls("NetworkProfiling"); + break; default: ElMessage.info("Don't support this control"); break; @@ -499,6 +501,9 @@ function setControls(id: string) { case "addEvent": dashboardStore.addControl("Event"); break; + case "addNetworkProfiling": + dashboardStore.addControl("NetworkProfiling"); + break; default: dashboardStore.addControl("Widget"); } @@ -618,7 +623,7 @@ function getTools() { toolIcons.value = EndpointRelationTools; break; default: - toolIcons.value = EndpointRelationTools; + toolIcons.value = AllTools; } } function searchPods(query: string) { diff --git a/src/views/dashboard/related/network-profiling/Content.vue b/src/views/dashboard/related/network-profiling/Content.vue new file mode 100644 index 00000000..21c9cb93 --- /dev/null +++ b/src/views/dashboard/related/network-profiling/Content.vue @@ -0,0 +1,17 @@ + +