fix(monitor): remove UNAVAILABLE status, keep only OPERATIONAL/DEGRADED
This commit is contained in:
@@ -67,7 +67,7 @@ import AutoRefreshButton from '@/components/common/AutoRefreshButton.vue'
|
|||||||
import { useChannelMonitorFormat } from '@/composables/useChannelMonitorFormat'
|
import { useChannelMonitorFormat } from '@/composables/useChannelMonitorFormat'
|
||||||
|
|
||||||
export type MonitorWindow = '7d' | '15d' | '30d'
|
export type MonitorWindow = '7d' | '15d' | '30d'
|
||||||
export type OverallStatus = 'operational' | 'degraded' | 'unavailable'
|
export type OverallStatus = 'operational' | 'degraded'
|
||||||
|
|
||||||
const props = defineProps<{
|
const props = defineProps<{
|
||||||
overallStatus: OverallStatus
|
overallStatus: OverallStatus
|
||||||
@@ -106,10 +106,8 @@ const overallChipClass = computed(() => {
|
|||||||
case 'operational':
|
case 'operational':
|
||||||
return 'bg-emerald-100 text-emerald-700 dark:bg-emerald-500/15 dark:text-emerald-300'
|
return 'bg-emerald-100 text-emerald-700 dark:bg-emerald-500/15 dark:text-emerald-300'
|
||||||
case 'degraded':
|
case 'degraded':
|
||||||
return 'bg-amber-100 text-amber-700 dark:bg-amber-500/15 dark:text-amber-300'
|
|
||||||
case 'unavailable':
|
|
||||||
default:
|
default:
|
||||||
return 'bg-red-100 text-red-700 dark:bg-red-500/15 dark:text-red-300'
|
return 'bg-amber-100 text-amber-700 dark:bg-amber-500/15 dark:text-amber-300'
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
@@ -118,10 +116,8 @@ const overallDotClass = computed(() => {
|
|||||||
case 'operational':
|
case 'operational':
|
||||||
return 'bg-emerald-500 animate-pulse'
|
return 'bg-emerald-500 animate-pulse'
|
||||||
case 'degraded':
|
case 'degraded':
|
||||||
return 'bg-amber-500 animate-pulse'
|
|
||||||
case 'unavailable':
|
|
||||||
default:
|
default:
|
||||||
return 'bg-red-500 animate-pulse'
|
return 'bg-amber-500 animate-pulse'
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
|
|||||||
@@ -75,16 +75,11 @@ const countdown = autoRefresh.countdown
|
|||||||
|
|
||||||
// ── Computed ──
|
// ── Computed ──
|
||||||
const overallStatus = computed<OverallStatus>(() => {
|
const overallStatus = computed<OverallStatus>(() => {
|
||||||
const total = items.value.length
|
if (items.value.length === 0) return 'operational'
|
||||||
if (total === 0) return 'operational'
|
|
||||||
let failCount = 0
|
|
||||||
let degradedCount = 0
|
|
||||||
for (const it of items.value) {
|
for (const it of items.value) {
|
||||||
if (it.primary_status === 'failed' || it.primary_status === 'error') failCount++
|
if (it.primary_status === 'failed' || it.primary_status === 'error') return 'degraded'
|
||||||
else if (it.primary_status !== STATUS_OPERATIONAL) degradedCount++
|
if (it.primary_status !== STATUS_OPERATIONAL) return 'degraded'
|
||||||
}
|
}
|
||||||
if (failCount > total / 2) return 'unavailable'
|
|
||||||
if (failCount > 0 || degradedCount > 0) return 'degraded'
|
|
||||||
return 'operational'
|
return 'operational'
|
||||||
})
|
})
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user