This is an automated email from the ASF dual-hosted git repository.

wankai pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/skywalking-booster-ui.git


The following commit(s) were added to refs/heads/main by this push:
     new 6eaf7fe2 feat: enhance the alarm kernel with recovered status 
notification capability #13492 (#505)
6eaf7fe2 is described below

commit 6eaf7fe26da704cf54d1371ac489b3c8f458fbb8
Author: youjie23 <[email protected]>
AuthorDate: Fri Nov 14 10:19:55 2025 +0800

    feat: enhance the alarm kernel with recovered status notification 
capability #13492 (#505)
---
 src/graphql/fragments/alarm.ts | 1 +
 src/locales/lang/en.ts         | 2 ++
 src/locales/lang/es.ts         | 2 ++
 src/locales/lang/zh.ts         | 2 ++
 src/types/alarm.ts             | 1 +
 src/views/alarm/Content.vue    | 6 ++++++
 src/views/alarm/data.ts        | 4 ++++
 7 files changed, 18 insertions(+)

diff --git a/src/graphql/fragments/alarm.ts b/src/graphql/fragments/alarm.ts
index 76ed4672..ec091598 100644
--- a/src/graphql/fragments/alarm.ts
+++ b/src/graphql/fragments/alarm.ts
@@ -23,6 +23,7 @@ export const Alarm = {
         key: id
         message
         startTime
+        recoveryTime
         scope
         name
         tags {
diff --git a/src/locales/lang/en.ts b/src/locales/lang/en.ts
index eba15632..1a0c7773 100644
--- a/src/locales/lang/en.ts
+++ b/src/locales/lang/en.ts
@@ -215,6 +215,7 @@ const msg = {
   timeRange: "Time Range",
   duration: "Duration",
   startTime: "Start Time",
+  recoveryTime: "Recovery Time",
   start: "Start",
   spans: "Spans",
   spanInfo: "Span Info",
@@ -327,6 +328,7 @@ const msg = {
   message: "Message",
   tooltipsContent: "Tooltip Content",
   alarmDetail: "Alarm Detail",
+  recoveredAt: "Recovered At",
   scope: "Scope",
   destService: "Destination Service",
   destServiceInstance: "Destination Service Instance",
diff --git a/src/locales/lang/es.ts b/src/locales/lang/es.ts
index de5505eb..b16c8f1e 100644
--- a/src/locales/lang/es.ts
+++ b/src/locales/lang/es.ts
@@ -213,6 +213,7 @@ const msg = {
   timeRange: "Rango de Tiempo",
   duration: "Duración",
   startTime: "Hora Inicio",
+  recoveryTime: "Tiempo Recuperación",
   start: "Incio",
   spans: "Lapso",
   spanInfo: "Info Lapso",
@@ -324,6 +325,7 @@ const msg = {
   message: "Mensaje",
   tooltipsContent: "Contenido de Información de Herramienta",
   alarmDetail: "Detalle Alarma",
+  recoveredAt: "Recuperado En",
   scope: "Alcance",
   destService: "Servicio Destinación",
   destServiceInstance: "Instancia Servicio Destinación",
diff --git a/src/locales/lang/zh.ts b/src/locales/lang/zh.ts
index 22ffccd4..d0957acf 100644
--- a/src/locales/lang/zh.ts
+++ b/src/locales/lang/zh.ts
@@ -216,6 +216,7 @@ const msg = {
   timeRange: "时间范围",
   duration: "持续时间",
   startTime: "开始时间",
+  recoveryTime: "恢复时间",
   start: "起始点",
   spans: "跨度",
   spanInfo: "跨度信息",
@@ -324,6 +325,7 @@ const msg = {
   message: "信息",
   tooltipsContent: "提示内容",
   alarmDetail: "警告详情",
+  recoveredAt: "恢复于",
   scope: "范围",
   destService: "终点服务",
   destServiceInstance: "终点实例",
diff --git a/src/types/alarm.ts b/src/types/alarm.ts
index df791ca2..6e7f4530 100644
--- a/src/types/alarm.ts
+++ b/src/types/alarm.ts
@@ -24,6 +24,7 @@ export interface Alarm {
   message: string;
   key: string;
   startTime: string;
+  recoveryTime: string;
   scope: string;
   tags: Array<{ key: string; value: string }>;
   events: Event[];
diff --git a/src/views/alarm/Content.vue b/src/views/alarm/Content.vue
index aee06071..a8dafff5 100644
--- a/src/views/alarm/Content.vue
+++ b/src/views/alarm/Content.vue
@@ -37,6 +37,9 @@ limitations under the License. -->
         <div class="grey sm show-xs">
           {{ dateFormat(parseInt(i.startTime)) }}
         </div>
+        <div class="grey sm" v-if="i.recoveryTime">
+          {{ t("recoveredAt") }} {{ dateFormat(parseInt(i.recoveryTime)) }}
+        </div>
       </div>
     </div>
     <div v-if="!alarmStore.alarms.length" class="tips">{{ t("noData") }}</div>
@@ -53,6 +56,9 @@ limitations under the License. -->
       <span v-if="item.label === 'startTime'">
         {{ dateFormat(currentDetail[item.label]) }}
       </span>
+      <span v-else-if="item.label === 'recoveryTime'">
+        {{ currentDetail[item.label] ? dateFormat(currentDetail[item.label]) : 
"" }}
+      </span>
       <span v-else-if="item.label === 'tags'">
         <div v-for="(d, index) in alarmTags" :key="index">{{ d }}</div>
       </span>
diff --git a/src/views/alarm/data.ts b/src/views/alarm/data.ts
index 22701308..b53186a8 100644
--- a/src/views/alarm/data.ts
+++ b/src/views/alarm/data.ts
@@ -40,6 +40,10 @@ export const AlarmDetailCol = [
     label: "startTime",
     value: "startTime",
   },
+  {
+    label: "recoveryTime",
+    value: "recoveryTime",
+  },
   {
     label: "tags",
     value: "tags",

Reply via email to