TL;DR

  • PulseFix는 15~30초 간격으로 프로덕션 API를 비동기 프로빙하고, HTTP 500 오류를 최근 Git diff와 대조해 원인을 진단한 뒤 GitHub 수정 PR을 자동 생성함
  • 스택 트레이스와 요청 페이로드를 파싱하고 Gemini 2.5 Flash로 오류와 커밋 변경 사항의 맥락을 분석함
  • 분석 결과를 통합 diff(unified diff) 패치로 생성하고 pulsefix/incident-id 브랜치와 GitHub Pull Request를 자동 생성함
  • 외부 LLM API 키가 없어도 결정론적 휴리스틱 엔진으로 유효한 패치를 생성하는 오프라인 대응 경로를 제공함
  • Telegram 알림과 shadcn/ui 대시보드에서 근본 원인, 영향받은 파일의 줄 번호, PR 링크, 실시간 지표와 diff를 확인함

자율 복구형 SRE 흐름

  • PulseFix Async Prober가 프로덕션 API 엔드포인트를 15~30초 간격으로 프로빙함
  • 비동기 httpx 프로브가 10ms 미만의 응답 시간을 측정하고 TTFB(Time to First Byte)와 SSL 유효성을 확인함
  • API에서 HTTP 500 내부 오류 또는 예외가 발생하면 인시던트 수집기와 스택 트레이스 수집기가 오류를 수신함
  • 자율 AI SRE 엔진이 다음 단계를 수행함
  • 트레이스백과 페이로드를 파싱함
  • GitHub 커밋 diff를 가져옴
  • 오류와 코드 변경 사항의 맥락을 연결함
  • Gemini 2.5 Flash SRE 분석기가 근본 원인을 평이한 영어로 설명함
  • 통합 diff 패치를 생성함
  • 자동 해결 및 알림 허브가 다음 작업을 수행함
  • pulsefix/incident-id 형식의 Git 브랜치를 생성함
  • GitHub Pull Request를 엶
  • 근본 원인과 PR 링크를 포함한 상세 Telegram 알림을 발송함
  • 실시간 사이버펑크 SRE 대시보드에 인시던트를 표시함

핵심 기능과 기술적 특징

  • 고빈도 비동기 프로빙: 10ms 미만의 비동기 httpx 프로브로 TTFB와 SSL 유효성을 측정함
  • AI 우선 근본 원인 분석: 스택 트레이스, 처리되지 않은 예외, 최근 커밋 diff를 평가해 정확한 근본 원인을 평이한 영어로 설명함
  • 자율 복구 Pull Request: 기능 브랜치를 자동 생성하고 수정 사항을 커밋한 뒤 통합 diff와 함께 GitHub Pull Request를 엶
  • 오프라인 복원력 휴리스틱 엔진: 외부 LLM API 키가 없어도 결정론적 패턴 매칭으로 유효한 통합 패치를 생성함
  • 실행 가능한 Telegram SRE 알림: 근본 원인 분석, 영향받은 파일의 줄 번호, PR 병합으로 연결되는 직접 버튼을 포함한 상세 인시던트 알림을 제공함
  • shadcn/ui 미니멀 대시보드: 눈의 피로를 줄이는 zinc 테마, Chart.js 기반 실시간 지연 시간 스트림, 실시간 모의 인시던트 주입, 시각적 통합 diff 검사기를 제공함

빠른 시작

  • 저장소를 복제하고 의존성을 설치함
  • 저장소: https://github.com/salomh46-rgb/pulseapi-monitoring-saas
  • server/requirements.txt의 패키지를 설치함
  • 환경 변수를 선택적으로 구성함
  • TELEGRAM_BOT_TOKEN: Telegram 봇 토큰
  • GEMINI_API_KEY: Gemini API 키이며, 생략하면 지능형 휴리스틱 대체 경로를 사용함
  • GITHUB_TOKEN: GitHub 토큰이며, 생략하면 PR 생성을 모의 실행함
  • server.main의 FastAPI 애플리케이션을 uvicorn으로 포트 8000에서 리로드 모드로 실행함
  • 브라우저에서 client/index.html을 열고 “Simulate 500 & Auto-PR”을 클릭하면 자율 복구 흐름이 실시간으로 실행됨

자동화 테스트 모음

  • pytest로 상세 모드 테스트를 실행함
  • 전체 7개 핵심 테스트가 통과함
  • 엔드포인트 상태와 텔레메트리 프로브
  • 공개 상태 페이지 데이터 무결성
  • KeyError, TypeError, ZeroDivision 오류에 대한 휴리스틱 분석기 파싱
  • 자율 인시던트 수집과 자율 복구 PR 생성
  • 동기 방식 /api/incidents/{id}/self-heal 실행

Hacker News 및 Product Hunt 게시 문안

  • 제목: Show HN: PulseFix – Git diff로 500 오류를 진단하고 수정 PR을 여는 API 모니터
  • 개발자들은 PagerDuty나 Sentry에서 /api/checkout의 “500 Internal Server Error” 알림을 받고 새벽에 깨어난 뒤, 로그를 확인하고 GitHub에서 스키마를 변경한 커밋을 찾으며 패치를 작성하는 과정을 거치게 됨
  • PulseFix는 수동 모니터링을 능동적인 SRE 엔지니어 흐름으로 전환함
  • 엔드포인트를 15~30초마다 프로빙함
  • 500 오류 발생 시 오류 트레이스백을 가로챔
  • Gemini Flash로 최근 Git 커밋과 충돌을 연관 분석함
  • 안전한 통합 diff를 합성하고 GitHub Pull Request를 자동으로 엶
  • “오류 원인과 수정 PR”을 Telegram으로 알림
  • 프로젝트는 오픈 소스이며 FastAPISQLite로 작성되고, 대시보드에 전체 라이브 데모를 포함함
  • GitHub: https://github.com/salomh46-rgb/pulseapi-monitoring-saas

작성자 및 제작자

  • 아키텍트: Javohirbek Asqarov (Jasper)
  • 포트폴리오: bestportfoliyo-o4z2.vercel.app
  • Telegram: @Dr_eviluz
  • 이메일: salomh46@gmail.com

라이선스

  • MIT License © Javohirbek Asqarov (Jasper)