Streamlit 로그 대시보드
동기
인수인계 시점에 시스템의 운영 상태를 객관적인 데이터로 전달할 수 있는 도구가 필요했다. "체감상 나아졌다"가 아닌, 버전별 오류 추이를 정량적으로 비교할 수 있는 분석 환경을 구축하여 인수인계의 신뢰성을 확보하고자 했다.
기능 개요
- 에러 패턴 분류: 예외 타입별(BadSqlGrammarException, NullPointerException 등) 발생 빈도와 비율을 자동 분류
- 시간대별 발생 빈도: 시간대·요일별 오류 히트맵으로 부하 집중 구간 식별
- 버전별 비교: 릴리스 전후 오류 추이를 정량 비교
- 반복 오류 추적: 동일 스택트레이스의 반복 발생 패턴을 감지하여 우선순위 결정
측정 결과
로그 분석 대시보드에서 측정한 버전별 오류 추이:
| 지표 | v2.0.0 (개선 전) | v2.1.1 (개선 후) | 변화 |
|---|---|---|---|
| 시간당 오류 | 5.0건 | 2.8건 | -44% |
| 오류 유형 수 | 31종 | 22종 | -29% |
| 영향 파일 수 | 64개 | 39개 | -39% |
BadSqlGrammarException비율: 27.1% → 3.01% — SQL 최적화의 직접적 효과DeadlockLoserDataAccessException잔존 — MSSQL SP 구조적 한계 (프로젝트 개요 참조)
이 지표는 로깅/모니터링 체계 구축을 통해 수집된 구조적 로그 데이터를 기반으로 산출했다.
설계 판단
Streamlit을 선택한 근거:
- 빠른 프로토타이핑: Python 스크립트 하나로 대화형 대시보드 구현 가능
- Python 데이터 생태계: pandas, matplotlib 등 로그 파싱·분석에 필요한 라이브러리를 그대로 활용
- 무료 배포: Streamlit Community Cloud에서 별도 인프라 없이 호스팅 가능
- 인수인계 용도: 지속적 운영 모니터링이 아닌, 프로젝트 종료 시점의 성과 정리가 목적이므로 경량 도구가 적합
대시보드
https://camtic-log-monitor.streamlit.app/
별도 저장소에서 관리된다.