fix(services): считать failover по DNS-пулу а не по статусу ноды
quality / commitlint (push) Skipped
CD / update-wiki (push) Successful in 7s
quality / changes (push) Successful in 9s
quality / api (push) Skipped
quality / docker-check (push) Skipped
CD / quality (push) Canceled after 34s
CD / publish (push) Canceled after 0s
quality / web (push) Canceled after 22s
quality / commitlint (push) Skipped
CD / update-wiki (push) Successful in 7s
quality / changes (push) Successful in 9s
quality / api (push) Skipped
quality / docker-check (push) Skipped
CD / quality (push) Canceled after 34s
CD / publish (push) Canceled after 0s
quality / web (push) Canceled after 22s
Красный инцидент только если адреса нет в active_addresses, даже при unhealthy. Co-authored-by: Cursor <[email protected]>
This commit is contained in:
@@ -53,8 +53,8 @@ export function FailoverTimeline({ events }: { events: FailoverEvent[] }) {
|
||||
return (
|
||||
<EmptyState
|
||||
icon={ShieldCheckIcon}
|
||||
title="Пул стабилен"
|
||||
description="События появятся, когда нода станет unhealthy или down и будет выведена из пула"
|
||||
title="Пул в DNS на месте"
|
||||
description="Красным только адреса, которых нет в активном пуле A-записей"
|
||||
stackedIcon={false}
|
||||
centered={false}
|
||||
/>
|
||||
@@ -93,8 +93,8 @@ export function FailoverTimeline({ events }: { events: FailoverEvent[] }) {
|
||||
<TimelineContent className="flex flex-col gap-2">
|
||||
<p className="text-foreground text-sm">
|
||||
{isChecking
|
||||
? 'Health-check ещё не завершён — нода не в активном пуле'
|
||||
: 'Нода выведена из активного пула'}
|
||||
? 'Снята с DNS, идёт восстановление'
|
||||
: 'Снята с DNS — в A-записях этого адреса нет'}
|
||||
</p>
|
||||
{event.lastFailureReason ? (
|
||||
<code
|
||||
|
||||
@@ -40,10 +40,12 @@ function failoverCountLabel(count: number): string {
|
||||
*/
|
||||
export function ServiceFailoverPanel({
|
||||
nodes,
|
||||
activeAddresses,
|
||||
}: {
|
||||
nodes: readonly FailoverNodeInput[]
|
||||
activeAddresses: readonly string[]
|
||||
}) {
|
||||
const events = toFailoverEvents(nodes)
|
||||
const events = toFailoverEvents(nodes, activeAddresses)
|
||||
|
||||
return (
|
||||
<Frame stacked spacing="sm" className="min-w-0 w-full">
|
||||
@@ -62,7 +64,7 @@ export function ServiceFailoverPanel({
|
||||
)}
|
||||
</FrameTitle>
|
||||
<FrameDescription>
|
||||
Нездоровые ноды выведены из пула · причина последней ошибки
|
||||
Только адреса, которых нет в DNS-пуле · не статус строки ноды
|
||||
</FrameDescription>
|
||||
</FrameHeader>
|
||||
|
||||
@@ -71,7 +73,7 @@ export function ServiceFailoverPanel({
|
||||
<UnplugIcon aria-hidden="true" />
|
||||
<AlertTitle>{failoverCountLabel(events.length)}</AlertTitle>
|
||||
<AlertDescription>
|
||||
Трафик на эти адреса не идёт, пока health не восстановится
|
||||
Эти IP сняты с A-записей
|
||||
</AlertDescription>
|
||||
</Alert>
|
||||
) : null}
|
||||
|
||||
Reference in New Issue
Block a user