APILog
서비스 로그를 수집해 AI 리포트와 커스텀 위젯을 자동으로 생성하는 오픈소스 로그 분석 플랫폼

Overview
서비스 로그를 수집해 AI 리포트와 커스텀 위젯을 자동으로 만들어주는 오픈소스 로그 분석 플랫폼입니다. 운영자가 직접 쿼리를 짜고 지표를 조합하던 일을, LLM 기반 에이전트가 대신 수행하도록 설계했습니다. '그래서 지금 서비스가 어떤 상태인지, 뭐가 문제인지'를 에이전트가 알려줍니다.
Key Features
- InfluxDB 기반 대용량 시계열 로그 수집 및 저장
- FastAPI 라우터 자동 스캔 및 응답 샘플 수집으로 LLM 컨텍스트 구성
- Pydantic 스키마 기반 구조적 LLM 응답 파싱 및 검증
- 세션 통계, 이탈률, 인기 페이지 등 기본 위젯 13종 제공
- 자연어 요청으로 쿼리 및 위젯 스펙 자동 생성
- 플러그인 아키텍처 기반 오픈소스 확장 구조
Problem
운영자는 수많은 로그와 대시보드를 가지고 있지만, '그래서 지금 서비스가 어떤 상태인지, 뭐가 문제인지'를 이해하기 위해 매번 수동으로 쿼리를 짜고 지표를 조합해야 했습니다. 이 과정을 에이전트가 대신해 줄 수 없을까?라는 질문에서 APILog를 시작했습니다.
Challenges & Solutions
Challenges
- 로컬 LLM(Ollama)으로 긴 JSON 응답 생성 시 중간에 잘리는 현상 발생 (48GB VRAM 필요)
- InfluxDB path_raw가 필드로 저장되어 전체 스캔 발생, 3분 타임아웃 초과 및 CPU 100% 점유
- LLM 응답의 불안정성을 실서비스에서 사용 가능한 수준으로 개선 필요
Solutions
- OpenAI SDK 기반 API로 마이그레이션하여 긴 JSON 응답 안정적 생성
- path_raw를 field → tag로 스키마 변경하여 full scan → 인덱스 조회로 전환, AI 리포트 정상화
- Pydantic 스키마로 LLM 응답 검증 후 일부 필드 오류 시 목업 값으로 대체하는 폴백 로직 구현
Outcomes
- 1.
SSAFY 프로젝트 우수상 수상
- 2.
LLM을 쿼리/스펙/코드 생성 에이전트로 활용하는 패턴 확립
- 3.
스키마, 폴백, 샘플 기반 컨텍스트로 실사용 가능한 안정성 확보
- 4.
운영자의 로그 분석 시간 대폭 단축
Approach & My Role
AI 리포트 파이프라인 구축 - FastAPI 백엔드의 모든 라우터를 코드 레벨에서 스캔하고 실제 응답 샘플을 자동 수집해 LLM 컨텍스트로 전달. 리포트가 항상 동일한 구조로 반환되도록 응답 스키마 정의 후 파싱
Pydantic 기반 신뢰도 높은 LLM 응답 설계 - 스키마로 LLM 응답을 구조적으로 파싱하고 검증. 일부 필드 오류 시 목업 값으로 대체하는 폴백 로직으로 실서비스 안정성 확보
AI 커스텀 위젯 자동 생성 - 사용자 자연어 요청 + DB 스키마 정보를 LLM에 전달해 쿼리와 위젯 스펙(지표, 차트 타입, 축 정보) 자동 생성 후 대시보드 등록
플러그인 아키텍처 설계 - 코어 로직과 확장 기능 분리, 외부 기여자가 독립적인 위젯 모듈 제작/배포 가능한 구조
What I Learned
LLM을 '답변 봇'이 아닌 쿼리/스펙/코드 생성 에이전트로 활용하는 패턴
'LLM은 항상 틀릴 수 있다'는 전제 하에 스키마, 폴백, 샘플 기반 컨텍스트로 안정성 확보하는 방법
시계열 DB의 태그(tag) vs 필드(field) 설계가 쿼리 성능에 미치는 영향