2024년 어느 새벽, 저는 Slack 알림에 눈을 떴습니다. 우리 팀의 챗봇 서비스가 새벽 3시부터 5시간 동안 GPT-4.1 호출에서 ConnectionError: HTTPSConnectionPool(host='api.openai.com', port=443): Read timed out. 오류를 반복하고 있었습니다. 문제는 우리 서비스가 시간당 평균 $42의 API 비용을 소모하고 있다는 것이었습니다 — 새벽 3시에도 트래픽이 없어야 할 시간에. 로그가 없다는 것은 곧 보이지 않는 비용이 발생한다는 뜻이었고, 이를 해결하기 위해 ELK 스택 기반의 완전한 로그 수집·분석 인프라를 구축하게 되었습니다.

이 글에서는 HolySheep AI를 단일 게이트웨이로 사용하여 모든 모델 호출을 통합 로깅하고, Logstash로 수집하여 Elasticsearch에 적재한 뒤 Kibana에서 시각화하는 전체 파이프라인을 단계별로 공유합니다. 지금 가입하면 무료 크레딧으로 즉시 검증할 수 있습니다.

왜 AI API 호출 로그 수집이 필수인가

AI API는 일반적인 HTTP API와 다르게 비용·지연·토큰 사용량이 호출마다 달라집니다. 다음은 제가 직접 겪었던 시나리오입니다:

ELK 스택은 이 모든 문제를 단일 대시보드에서 가시화합니다. Elasticsearch는 검색·집계 엔진, Logstash는 입력·파싱·출력 파이프라인, Kibana는 시각화 도구입니다. 세 가지의 결합만으로 페타바이트 규모 로그를 실시간 분석할 수 있습니다.

아키텍처 개요

+------------------+        +-----------+        +-----------------+        +-----------+
|  Application     | -----> | Filebeat  | -----> | Logstash        | -----> | Elastic   |
|  (Python/Node)   |        | (optional)|        | (parse/enrich)  |        | search    |
+------------------+        +-----------+        +-----------------+        +-----------+
        |                                                                       |
        | structured JSON logs (NDJSON)                                         v
        +---------------------------------------------------->  +-----------------------------+
                                                              |  Kibana Visualizations       |
                                                              |  - Cost per model per day    |
                                                              |  - P95 latency heatmap       |
                                                              |  - Error rate per endpoint   |
                                                              |  - Token usage trend         |
                                                              +-----------------------------+

애플리케이션은 모든 AI 호출을 NDJSON(Newline-Delimited JSON) 형식으로 파일에 기록하고, Filebeat가 이를 읽어 Logstash로 전달합니다. Logstash는 json 파서로 필드를 분리하고 모델명·비용·지연 등 enrichment를 수행한 뒤 Elasticsearch에 인덱싱합니다.

1단계: Python 로거 구현 (HolySheep 게이트웨이 통합)

아래 코드는 단일 API 키로 GPT-4.1, Claude Sonnet 4.5, Gemini 2.5 Flash, DeepSeek V3.2를 모두 호출하면서 각 요청의 메타데이터를 NDJSON으로 기록합니다. base_url은 반드시 https://api.holysheep.ai/v1을 사용하며, 이를 통해 모든 호출이 단일 진입점으로 통합됩니다.

# ai_logger.py