diff --git a/src/graphql/fragments/ebpf.ts b/src/graphql/fragments/ebpf.ts index 922957c0..252214b0 100644 --- a/src/graphql/fragments/ebpf.ts +++ b/src/graphql/fragments/ebpf.ts @@ -112,3 +112,26 @@ export const keepNetworkProfiling = { errorReason }`, }; + +export const monitoringInstances = { + variable: "$serviceId: ID!, $target: ContinuousProfilingTargetType!", + query: ` + instances: queryContinuousProfilingMonitoringInstances(serviceId: $serviceId, target: $target) { + id + name + attributes { + name + value + } + triggeredCount + lastTriggerTimestamp + processes { + id + name + detectType + labels + lastTriggerTimestamp + triggeredCount + } + }`, +}; diff --git a/src/graphql/query/ebpf.ts b/src/graphql/query/ebpf.ts index 052fc7af..65a3eac0 100644 --- a/src/graphql/query/ebpf.ts +++ b/src/graphql/query/ebpf.ts @@ -23,6 +23,7 @@ import { analysisEBPFResult, createNetworkProfiling, keepNetworkProfiling, + monitoringInstances, } from "../fragments/ebpf"; export const getCreateTaskData = `query queryCreateTaskData(${queryCreateTaskData.variable}) {${queryCreateTaskData.query}}`; @@ -38,3 +39,5 @@ export const getEBPFResult = `query analysisEBPFResult(${analysisEBPFResult.vari export const newNetworkProfiling = `mutation createNetworkProfiling(${createNetworkProfiling.variable}) {${createNetworkProfiling.query}}`; export const aliveNetworkProfiling = `mutation keepNetworkProfiling(${keepNetworkProfiling.variable}) {${keepNetworkProfiling.query}}`; + +export const getMonitoringInstances = `query continuousProfilingMonitoringInstances(${monitoringInstances.variable}) {${monitoringInstances.query}}`; diff --git a/src/locales/lang/en.ts b/src/locales/lang/en.ts index d9c812ca..9fe5da35 100644 --- a/src/locales/lang/en.ts +++ b/src/locales/lang/en.ts @@ -323,6 +323,7 @@ const msg = { keywordsOfContentLogTips: "Current storage of SkyWalking OAP server does not support this.", setEvent: "Set Event", viewAttributes: "View", + attributes: "Attributes", serviceEvents: "Service Events", select: "Select", eventID: "Event ID", @@ -397,6 +398,6 @@ const msg = { threshold: "Threshold", uriRegex: "URI Regex", uriList: "URI List", - process: "Process", + processes: "Processes", }; export default msg; diff --git a/src/locales/lang/es.ts b/src/locales/lang/es.ts index 431c5626..f9aec104 100644 --- a/src/locales/lang/es.ts +++ b/src/locales/lang/es.ts @@ -396,6 +396,6 @@ const msg = { threshold: "Umbral", uriRegex: "Lista URI", uriList: "Lista URI", - process: "Proceso", + processes: "Proceso", }; export default msg; diff --git a/src/locales/lang/zh.ts b/src/locales/lang/zh.ts index 49c000fe..3947c079 100644 --- a/src/locales/lang/zh.ts +++ b/src/locales/lang/zh.ts @@ -394,6 +394,6 @@ const msg = { threshold: "阈值", uriRegex: "URI规则", uriList: "URI列表", - process: "进程", + processes: "进程", }; export default msg; diff --git a/src/store/modules/continous-profiling.ts b/src/store/modules/continous-profiling.ts index cd5e82f3..fe6700f3 100644 --- a/src/store/modules/continous-profiling.ts +++ b/src/store/modules/continous-profiling.ts @@ -123,11 +123,21 @@ export const continousProfilingStore = defineStore({ if (!this.selectedStrategy.type) { return res.data; } - this.getContinousTaskList({ - serviceId: params.serviceId, - targets: [this.selectedStrategy.type], - triggerType: EBPFProfilingTriggerType.CONTINUOUS_PROFILING, + this.getMonitoringInstances(params.serviceId); + return res.data; + }, + async getMonitoringInstances(serviceId: string): Promise> { + if (!serviceId) { + return null; + } + const res: AxiosResponse = await graphql.query("getMonitoringInstances").params({ + serviceId, + target: this.selectedStrategy.type, }); + if (!res.data.errors) { + this.instances = res.data.data.instances || []; + this.instance = this.instances[0] || null; + } return res.data; }, async getContinousTaskList(params: { diff --git a/src/types/continous-profiling.d.ts b/src/types/continous-profiling.d.ts index e09f1195..05663ca5 100644 --- a/src/types/continous-profiling.d.ts +++ b/src/types/continous-profiling.d.ts @@ -1,3 +1,4 @@ +import { MonitorType } from "./../views/dashboard/related/continuous-profiling/data"; /** * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with @@ -27,3 +28,19 @@ export type CheckItems = { uriList?: string[]; uriRegex?: string; }; +export interface MonitorInstance { + id: string; + name: string; + attributes: { name: string; value: string }[]; + triggeredCount: number; + lastTriggerTimestamp: number; + processes: MonitorProcess[]; +} +interface MonitorProcess { + id: string; + name: string; + detectType: string; + labels: string[]; + lastTriggerTimestamp: number; + triggeredCount: number; +} diff --git a/src/views/dashboard/related/continuous-profiling/Content.vue b/src/views/dashboard/related/continuous-profiling/Content.vue index 33b7d093..0cb1e212 100644 --- a/src/views/dashboard/related/continuous-profiling/Content.vue +++ b/src/views/dashboard/related/continuous-profiling/Content.vue @@ -14,18 +14,16 @@ See the License for the specific language governing permissions and limitations under the License. --> + diff --git a/src/views/dashboard/related/continuous-profiling/components/Panel.vue b/src/views/dashboard/related/continuous-profiling/components/Panel.vue deleted file mode 100644 index bb568fcf..00000000 --- a/src/views/dashboard/related/continuous-profiling/components/Panel.vue +++ /dev/null @@ -1,158 +0,0 @@ - - - - - diff --git a/src/views/dashboard/related/continuous-profiling/components/PolicyList.vue b/src/views/dashboard/related/continuous-profiling/components/PolicyList.vue index 49546821..fabc8b92 100644 --- a/src/views/dashboard/related/continuous-profiling/components/PolicyList.vue +++ b/src/views/dashboard/related/continuous-profiling/components/PolicyList.vue @@ -72,7 +72,6 @@ limitations under the License. --> import type { StrategyItem, CheckItems } from "@/types/continous-profiling"; import { ElMessage } from "element-plus"; import EditPolicy from "./EditPolicy.vue"; - import { EBPFProfilingTriggerType } from "@/store/data"; const { t } = useI18n(); const selectorStore = useSelectorStore(); @@ -85,11 +84,7 @@ limitations under the License. --> async function changePolicy(item: StrategyItem) { continousProfilingStore.setSelectedStrategy(item); const serviceId = (selectorStore.currentService && selectorStore.currentService.id) || ""; - await continousProfilingStore.getContinousTaskList({ - serviceId, - targets: [item.type], - triggerType: EBPFProfilingTriggerType.CONTINUOUS_PROFILING, - }); + await continousProfilingStore.getMonitoringInstances(serviceId); } function setStrategies() { @@ -144,7 +139,7 @@ limitations under the License. -->