Skip to content

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/

별도 저장소에서 관리된다.