Skip to content

L-SS4 — Fix ssot.scarab_dead heartbeat-based view (closes #193) #210

@gHashTag

Description

@gHashTag

L-SS4 — Fix ssot.scarab_dead heartbeat-based view (closes #193)

Part of epic: Queen Hive Scarab Strategy Plane (gHashTag/trios)
Plan: IGLA_SCARAB_AUTONOMY_PLAN.md
Closes: #193

Проблема

ssot.scarab_dead показывает 18/18 сервисов как мёртвые, хотя heartbeat'ы свежие. Текущая логика опирается на bpb_samples (push-path), который сдох.

Решение

Migration 0012_scarab_dead_heartbeat.sql:

CREATE OR REPLACE VIEW ssot.scarab_dead AS
SELECT s.canon_name, s.service_id, h.ts AS last_heartbeat,
       EXTRACT(epoch FROM (now() - h.ts))::int AS age_seconds
FROM ssot.scarab_strategy s
LEFT JOIN LATERAL (
  SELECT ts FROM ssot.scarab_heartbeat
  WHERE canon_name = s.canon_name
  ORDER BY ts DESC LIMIT 1
) h ON true
WHERE s.status = 'active'
  AND (h.ts IS NULL OR h.ts < now() - interval '120 seconds');

DoD

  • Migration файл создан и применён на stage
  • SELECT COUNT(*) FROM ssot.scarab_dead = 0 когда флот живой (G-SS-09)
  • False-positive в трекинге Audit Watchdog исчезает

Acceptance — G-SS-09

-- При 27 живых heartbeat'ах:
SELECT COUNT(*) FROM ssot.scarab_dead;  -- expect 0
-- Убить 1 сервис на >120s:
SELECT COUNT(*) FROM ssot.scarab_dead;  -- expect 1

Constitutional

R-SI-1.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions