o2o-negosium-original/lps/tests
민헌 ca7f057e41 feat(lps): 알림 룰 4종 추가 — 데드라인·검색원가·포트 고갈·예산 누수
협의로 선정한 조기 신호 4종을 AlertManager 에 추가한다.

- deadline: 최근 1h JobDeadlineExceeded 수 ≥ LPS_ALERT_DEADLINE_1H(5).
  재시도로 살아나면 dead 룰엔 안 잡히는 크롤 행 반복 신호를 별도 집계.
- cost: 최근 1h 완료 잡 검색원가 합 ≥ LPS_ALERT_COST_1H_USD(1.0).
  비용의 87%가 프록시 대역폭 — 리소스차단 풀림·재시도 루프의 조용한
  비용 폭주를 감시. job.result 의 metrics.cost.total_usd JSONB 합산.
- proxy_ports_low: 가용 포트 비율 ≤ LPS_ALERT_PORTS_LOW_PCT(30%).
  쿨다운 격리 누적 — blocks_1h(80건)보다 먼저 우는 대규모 차단 조기
  신호. 워커별 프록시 중 가장 소진된 것 기준(min).
- budget_leak: 최근 6h end_reason=block 세션 ≥ LPS_ALERT_BLOCK_SESSIONS_6H(1).
  요청 예산(3회)을 지켰는데도 차단됨 = 예산 하향 검토 신호.
- deadline_1h·cost_1h_usd 는 queue.ops() 에 편입 → /v1/lps/ops 로도 노출.
  포트·세션 지표는 워커 웹훅 스냅샷에 포함(프록시 상태는 워커에만 있음).
- 테스트 4건 추가(ops 집계 2·포트 스냅샷 2), 전체 145 passed.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-13 17:29:08 +09:00
..
fixtures feat(lps): G마켓·옥션·11번가 크롤 어댑터 + 브라우저 어댑터 베이스 2026-07-09 14:41:05 +09:00
test_alerts.py feat(lps): 알림 룰 4종 추가 — 데드라인·검색원가·포트 고갈·예산 누수 2026-07-13 17:29:08 +09:00
test_api_guard.py feat(lps): API guard — LPS_API_KEY 설정 시에만 /v1 에 X-API-Key 검증 2026-07-13 16:45:31 +09:00
test_bot_detection.py feat(lps): 봇 감지 시 IP 회전+재시도 + 감지 이력 기록 2026-07-09 11:04:07 +09:00
test_browser_base.py feat(lps): IP 선제 로테이션 — 요청 예산·포트 쿨다운·ip_session 관측 2026-07-13 16:35:44 +09:00
test_coupang_parser.py fix(lps): 쿠팡 차단 감지 다종화 — Edge Deny·권한제한·짧은HTML 폴백 2026-07-09 13:59:43 +09:00
test_health.py feat(lps): 인터넷 최저가 검색 솔루션 프레임워크 골격 추가 2026-07-08 15:18:27 +09:00
test_ip_session.py feat(lps): IP 선제 로테이션 — 요청 예산·포트 쿨다운·ip_session 관측 2026-07-13 16:35:44 +09:00
test_job_queue.py feat(lps): 알림 룰 4종 추가 — 데드라인·검색원가·포트 고갈·예산 누수 2026-07-13 17:29:08 +09:00
test_lps_api.py feat(lps): 알림 룰 4종 추가 — 데드라인·검색원가·포트 고갈·예산 누수 2026-07-13 17:29:08 +09:00
test_naver_transform.py feat(lps): 네이버 어댑터 + 다중 소스 병합 검색 2026-07-09 08:38:15 +09:00
test_negative_cache.py feat(lps): 재시도/못찾음 완결 로직 — 재정제 루프 + not_found + 네거티브 캐시 2026-07-09 09:12:47 +09:00
test_openmarket_parser.py perf(lps): Step2/3 — Turnstile 웜업·동적 차단 + 유휴 브라우저 정리 2026-07-09 20:20:58 +09:00
test_pipeline.py feat(lps): 네이버 몰별 최저가 분해(by_mall) — 오픈마켓 가시화 2026-07-09 13:59:15 +09:00
test_pool_autosize.py feat(lps): process_count 기반 커넥션 풀 자동 산정 — 멀티코어 풀 오버서브스크립션 방지 2026-07-09 23:59:05 +09:00
test_price_history.py feat(lps): 최저가 이력(price_history) — 트리거 기반 시계열 그래프 2026-07-09 11:13:28 +09:00
test_proxy.py feat(lps): IP 선제 로테이션 — 요청 예산·포트 쿨다운·ip_session 관측 2026-07-13 16:35:44 +09:00
test_search_handler.py fix(lps): 워커 로그 노이즈 2건 제거 — 리퍼 네이버 스킵 + 폴백 데드라인 cancel 제거 2026-07-10 08:50:12 +09:00
test_worker.py fix(lps): 워커 행(hang) 3중 방어 — 잡 데드라인·웜업 타임아웃·정리 루프 격리 2026-07-10 11:27:03 +09:00