From d65c18bd380a56df8886c931cbe72be2919667b6 Mon Sep 17 00:00:00 2001 From: Fine0830 Date: Sun, 29 Sep 2024 15:15:35 +0800 Subject: [PATCH] feat: add queries for alarm tags (#417) --- src/graphql/fragments/alarm.ts | 11 +++++++ src/graphql/query/alarm.ts | 4 ++- src/store/modules/alarm.ts | 17 ++++++++++ src/views/alarm/Content.vue | 4 +-- src/views/components/ConditionTags.vue | 33 ++++++++++++------- .../related/log/LogTable/LogDetail.vue | 2 +- .../trace/components/D3Graph/SpanDetail.vue | 2 +- 7 files changed, 56 insertions(+), 17 deletions(-) diff --git a/src/graphql/fragments/alarm.ts b/src/graphql/fragments/alarm.ts index 85580955..a2e9ba0c 100644 --- a/src/graphql/fragments/alarm.ts +++ b/src/graphql/fragments/alarm.ts @@ -46,3 +46,14 @@ export const Alarm = { } }`, }; +export const AlarmTagKeys = { + variable: "$duration: Duration!", + query: ` + tagKeys: queryAlarmTagAutocompleteKeys(duration: $duration)`, +}; + +export const AlarmTagValues = { + variable: "$tagKey: String!, $duration: Duration!", + query: ` + tagValues: queryAlarmTagAutocompleteValues(tagKey: $tagKey, duration: $duration)`, +}; diff --git a/src/graphql/query/alarm.ts b/src/graphql/query/alarm.ts index a7becb54..529c1a60 100644 --- a/src/graphql/query/alarm.ts +++ b/src/graphql/query/alarm.ts @@ -15,6 +15,8 @@ * limitations under the License. */ -import { Alarm } from "../fragments/alarm"; +import { Alarm, AlarmTagKeys, AlarmTagValues } from "../fragments/alarm"; export const queryAlarms = `query queryAlarms(${Alarm.variable}) {${Alarm.query}}`; +export const queryAlarmTagValues = `query queryTagValues(${AlarmTagValues.variable}) {${AlarmTagValues.query}}`; +export const queryAlarmTagKeys = `query queryTagKeys(${AlarmTagKeys.variable}) {${AlarmTagKeys.query}}`; diff --git a/src/store/modules/alarm.ts b/src/store/modules/alarm.ts index c97acb87..c6d2fad6 100644 --- a/src/store/modules/alarm.ts +++ b/src/store/modules/alarm.ts @@ -19,6 +19,7 @@ import { store } from "@/store"; import graphql from "@/graphql"; import type { AxiosResponse } from "axios"; import type { Alarm } from "@/types/alarm"; +import { useAppStoreWithOut } from "@/store/modules/app"; interface AlarmState { loading: boolean; @@ -35,7 +36,9 @@ export const alarmStore = defineStore({ }), actions: { async getAlarms(params: Recordable) { + this.loading = true; const res: AxiosResponse = await graphql.query("queryAlarms").params(params); + this.loading = false; if (res.data.errors) { return res.data; } @@ -45,6 +48,20 @@ export const alarmStore = defineStore({ } return res.data; }, + async getAlarmTagKeys() { + const res: AxiosResponse = await graphql + .query("queryAlarmTagKeys") + .params({ duration: useAppStoreWithOut().durationTime }); + + return res.data; + }, + async getAlarmTagValues(tagKey: string) { + const res: AxiosResponse = await graphql + .query("queryAlarmTagValues") + .params({ tagKey, duration: useAppStoreWithOut().durationTime }); + + return res.data; + }, }, }); diff --git a/src/views/alarm/Content.vue b/src/views/alarm/Content.vue index 11cc8871..0a8988ae 100644 --- a/src/views/alarm/Content.vue +++ b/src/views/alarm/Content.vue @@ -13,7 +13,7 @@ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. -->