Community연구 & 데이터 분석github.com

silent-failure-detector

모니터링이 놓치는 '조용한 실패'를 탐지합니다: 예외나 충돌 없이 단순히 신호 발행을 중단하는 프로세스를 찾아냅니다.

silent-failure-detector란 무엇인가요?

이 스킬은 예외나 크래시 없이 로그, 하트비트, 크론 작업, 에이전트 루프 등 스트림에서 신호 발행을 멈추는 '침묵 실패'를 감지합니다. `expected_interval_sec` 기대 간격과 `multiplier` 승수(기본값 3.0)라는 단 하나의 조절 변수로 동작하며, 마지막 신호가 기준치보다 오래된 경우 침묵 상태로 판단합니다. CLI 명령어와 Python 함수 두 가지 방식으로 사용 가능하며, 105개 레이블링 데이터셋에서 83.8% 정확도(TPR 81.8%, TNR 86.0%)를 기록한 검증된 평가 결과를 제공합니다. 명확한 실패 케이스(2~4배 회색 영역)는 100% 정확하지만, 일시적 지연에 의한 오탐지나 죽은 직후 1회 지연 탐지는 허용된 한계로 문서화되어 있습니다. 승수 조절을 통해 탐지 지연과 오탐지율 사이의 트레이드오프를 설정할 수 있어, 일일 무결성 점검에 이상적입니다.

지원 대상~Claude Code~Codex CLI~Cursor
npx skills add alidoesAi/alidoesai-skills

Installed? Explore more 연구 & 데이터 분석 skills: affaan-m/uspto-database, affaan-m/scholar-evaluation, affaan-m/literature-review · View all 6 →

즐겨 사용하는 AI에게 물어보기

이 에이전트 스킬이 미리 로드된 새 채팅을 엽니다.

문서

silent-failure-detector은(는) 무엇을 하나요?

error 모니터링으로는 볼 수 없는 실패, 즉 조용히 멈추는 프로세스를 잡아냅니다. 예외도 크래시도 없이 그저 신호 발행을 중단하고, 며칠 후에야 알게 되는 상황을 방지합니다.

사용 시점

  • 로거, 하트비트, 크론 작업, 에이전트 루프, 데이터 피드 등 예상 주기가 있는 타임스탬프 스트림이 있고, 그것이 멈췄는지 알고 싶을 때
  • 일일 무결성 점검에 연결할 수 있는 검증 가능하고 결정론적인 검사가 필요할 때

작동 방식 (한 가지 조절 변수)

가장 최근 신호가 expected_interval_sec * multiplier(기본값 multiplier = 3.0 → 약 세 번의 비트 누락)보다 오래된 경우 SILENT로 판단합니다. 빈 스트림도 SILENT입니다. 승수는 탐지 지연 시간(낮을수록 실제 중단을 더 빨리 감지)과 버스트성 주기의 오탐지(높을수록 더 관대함) 사이의 트레이드오프를 조절합니다. expected_interval_sec을 스트림의 일반적인 간격으로 설정하고, 주기가 버스트성이라면 p95 간격에 가깝게 설정하고 그 사실을 명시하세요.

실행 방법

echo '{"now": 1750000000, "expected_interval_sec": 60,
       "timestamps": [1749999940, 1749999990]}' > input.json
python3 detector.py input.json     # 종료 코드 0 = 정상, 종료 코드 1 = 침묵 (경보 대상)

또는 임포트: from detector import detect; detect(now, timestamps, expected_interval_sec, multiplier=3.0).

출력

{ "status": "silent", "reason": "last signal 19880s old vs threshold 180s",
  "last_age_sec": 19880, "threshold_sec": 180.0 }

알려진 한계 (주장이 아닌 측정치 — BENCHMARK.md 참조)

105개 레이블링 케이스에서 83.8% 정확도(TPR 81.8% / TNR 86.0%) 를 기록했습니다. 모든 오류는 임계값 근처의 2~4배 '회색 영역'에서 발생하며, 명확한 케이스는 100% 정확합니다. 두 가지 명백한 실패 모드: (1) 살아 있지만 현재 느린 스트림이 우연히 3배를 넘긴 경우의 오탐지, (2) 막 죽은 스트림에 대한 한 윈도우 탐지 지연. 지연 시간/오탐지 선호도에 따라 multiplier를 조정하세요. 평가는 재현 가능합니다 — 직접 다시 실행하고 수치를 확인하세요.

관련 스킬