뭘 볼까
CI도 소프트웨어야. 서비스처럼 다뤄야 해. 상태를 모니터링하고, 성능이 떨어지면 바로 대응하는 거지. 핵심 지표는 이거야:
- Main pass rate — main에서 성공하는 실행 비율이야. 95% 이상을 목표로 해. 90% 아래로 떨어지면 위기 상황이야.
- p50 / p95 소요 시간 — 피드백 지연 시간이야.
- Flake rate — 재시도하면 통과하는 실패한 실행의 비율이야. 2% 넘으면 고쳐야 할 불안정한 테스트가 있다는 뜻이야.
- 큐 시간 — 실행이 시작되기 전에 얼마나 대기하는지 봐. 늘어나면 자체 호스팅한 러너 풀이 너무 작은 거야.
- 비용 — 저장소별, 워크플로별, 운영체제별 사용량을 확인해.
데이터는 어디에 둘까
- 내장 기능 — Insights 탭이나 Actions 사용 리포트를 써. 첫 단계로는 좋은데, 세부적으로 파고들기엔 한계가 있어.
- Datadog / Honeycomb / Grafana —
workflow_runwebhook으로 관측 도구 스택에 Actions 이벤트를 보내. - 직접 구축 — GitHub API를 호출해서 지표를 계산하고 Slack, 대시보드, 데이터베이스에 게시하는 예약 작업을 만들어.
알림
Main pass rate가 임계값 아래로 떨어지면 바로 알림을 보내. Flake rate가 급등하면 Slack으로 알려. 개별 실패에 알림 보내지 마. 그건 그냥 정상적인 노이즈야.