실행 이력 DB와 운영 대시보드
오늘은 서비스에서 발생한 요청과 오류 기록을 DB에 저장하고, 이를 대시보드로 확인하는 방법을 배웠다.
이전에는 로그 파일을 통해 오류를 확인했지만, 기록이 많아지면 원하는 내용을 찾거나 비교하기 어렵다는 문제가 있었다. 그래서 실행 이력을 PostgreSQL DB에 저장하고, SQL을 이용해 필요한 정보를 조회하는 방법을 살펴보았다.
로그는 오류의 원인을 확인할 때 사용하고, 실행 이력은 요청 기록을 모아서 조회하거나 통계를 낼 때 사용한다. 대시보드는 이러한 정보를 한 화면에서 쉽게 확인할 수 있도록 보여주는 역할을 한다.
실습에서는 요청 기록을 저장하는 request_history와 AI 모델의 호출 기록을 저장하는 llm_history 테이블을 다뤘다. SQL을 사용하면 최근 요청 내역이나 서버 오류, 요청별 평균 응답 시간, 토큰 사용량 등을 확인할 수 있다는 것을 알게 되었다.
또한 Streamlit을 이용해 총 요청 수, 서버 오류율, 평균 응답 시간, LLM 비용 등을 그래프와 숫자로 보여주는 운영 대시보드의 구성도 살펴보았다. 특히 전체 평균 응답 시간만 확인하면 어떤 기능이 느린지 알기 어렵기 때문에 요청 경로별로 나누어 확인하는 것이 중요하다는 점이 기억에 남았다.
DB 장애 상황에서는 기록을 저장하지 못하더라도 서비스 자체는 계속 동작하도록 하는 비치명 처리(Non-fatal)에 대해 배웠다. 이때 /health는 서비스가 완전히 중단된 상태가 아니라 일부 기능에 문제가 있는 degraded 상태를 반환한다.
다만 DB가 꺼져 있는 동안의 기록은 저장되지 않고, 연결을 시도하는 과정에서 응답이 느려질 수도 있다는 점을 알게 되었다.
이번 수업을 통해 서비스를 운영할 때는 단순히 정상적으로 실행되는지만 확인하는 것이 아니라, 실행 기록을 남기고 오류나 성능 상태를 지속적으로 확인하는 과정도 필요하다는 것을 배웠다.
댓글
댓글이 없습니다.
