🎯 개요

비트코인 자동매매 봇을 운영하면서 실시간으로 자산 변화와 거래 지표를 추적할 필요가 있었습니다.

이번 글에서는 Prometheus 메트릭 수집 → Grafana 시각화를 통해 완성한 모니터링 대시보드의 구축 과정과 최종 결과를 공유합니다.


🚨 초기 상황

봇이 실행되고 있지만:

  • 📊 손익률이 얼마나 되는지 알기 어려움
  • 📈 RSI, 가격 추이를 실시간으로 확인 불가
  • 💰 현재 자산이 정확히 얼마인지 수동으로 계산해야 함
  • 🔍 거래 신호를 놓치거나 확인하기 어려움

필요한 것: 한눈에 보는 실시간 대시보드


🛠️ 구축 과정

1단계: Prometheus 메트릭 익스포터 개발

봇이 현재 상태를 메트릭으로 내보내도록 설정:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
# prometheus_exporter.py
bitcoin_total_asset         # 총자산 (원)
bitcoin_balance_krw         # 원 잔액
bitcoin_balance_btc         # 비트코인 보유량
bitcoin_balance_eth         # 이더리움 보유량
bitcoin_asset_value_btc     # 비트코인 평가금액
bitcoin_asset_value_eth     # 이더리움 평가금액
bitcoin_rsi_btc             # BTC RSI
bitcoin_rsi_eth             # ETH RSI
bitcoin_profit_krw          # 누적 손익 (원)
bitcoin_profit_pct          # 수익률 (%)
bitcoin_win_rate            # 승률 (%)

30초마다 자동 갱신 → Prometheus가 수집

2단계: Grafana 대시보드 설계

4개 구간으로 배치:

┌─────────────────────────────────────────────────┐
│ 💎 총자산  │ 💵 원 잔액  │ ₿ 비트코인  │ Ξ 이더리움   │
│ (49.84만원) │ (29.60만원) │ (0.00만원)  │ (20.24만원)  │
└─────────────────────────────────────────────────┘

┌─────────────────────────────────────────────────┐
│ 💰 총손익 │ 🎯 승률  │ ₿ BTC RSI │ Ξ ETH RSI    │
│ (0.05만원) │ (50%)   │ (27.5)   │ (37.1)       │
└─────────────────────────────────────────────────┘

┌─────────────────────────────────────────────────┐
│        💎 자산 구성 추이 (만원)                  │
│  4개 라인: 총자산, 원, 비트코인, 이더리움       │
│  시간: 12:40 ~ 15:30 (3시간)                   │
└─────────────────────────────────────────────────┘

┌─────────────────────────────────────────────────┐
│        📈 RSI 추이                               │
│  Y축: 0~100 고정 | 비트코인/이더리움 RSI       │
│  최근 변화: BTC 25.7 → 35.3, ETH 33.3 → 41.5  │
└─────────────────────────────────────────────────┘

┌─────────────────────────────────────────────────┐
│        💎 자산 구성 추이 (만원)                  │
│  개별 자산 라인: 원, 비트코인, 이더리움          │
└─────────────────────────────────────────────────┘

┌─────────────────────────────────────────────────┐
│        📊 누적 손익 추이 (만원)                  │
│  손익 변화: 0.04 ~ 0.05만원                     │
└─────────────────────────────────────────────────┘

┌─────────────────────────────────────────────────┐
│        📈 수익률 추이 (%)                        │
│  0.22% 안정적 유지                              │
└─────────────────────────────────────────────────┘

3단계: 세부 튜닝

설정값:

  • 🔄 자동 새로고침: 30초
  • 📊 Stat 소숫점: 2자리 (세밀한 변동 감지)
  • 📈 그래프 소숫점: 2자리
  • 🌐 타임존: Asia/Seoul
  • 📊 Y축 고정: RSI (0~100)

완전 한글화:

  • 타이틀: 한글 통일
  • 범례: 원 > 비트코인 > 이더리움 순서 정렬
  • 단위: 모든 항목에 “(만원)” 표시

📊 최종 결과

실시간 모니터링

현재 상태 (15:30):
├─ 💎 총자산: 49.84만원
├─ 💵 원 잔액: 29.60만원  
├─ ₿ 비트코인: 0.00만원
├─ Ξ 이더리움: 20.24만원
├─ 손익: +0.05만원 (+0.22%)
├─ 승률: 50% (2 거래)
└─ 현재 보유: 이더리움

실시간 변화 추적

💎 가격 미세 변동 감지:
   20.24 → 20.25 → 20.23 → 20.24
   (이더리움 가격 실시간 반영)

📈 RSI 추이:
   BTC: 47.3 → 29.9 → 25.7 → 38.9 → 35.3
   ETH: 43.3 → 35.1 → 33.3 → 41.5 → 37.1

🧠 핵심 학습

1. Prometheus + Grafana의 강력함

봇 메트릭 생성 (30초)
    ↓
Prometheus 수집 (30초)
    ↓
Grafana 표시 (30초 새로고침)
    ↓
결과: 완벽한 실시간 모니터링 ✅

2. 갈아타기 로직의 정상 작동

15:00 상황:
• BTC RSI 25.7 (매수 신호 ✅)
• ETH 보유 중 (-0.2% 손실)
• 갈아타기 불가 (수익 < 0.5%)
→ 매수 미실행 (정상동작)

봇이 설계한 대로 정확하게 작동하는 것을 확인!

3. 시각화의 중요성

❌ 전: 로그 파일만 봄 (추세 파악 어려움)
✅ 후: 그래프로 시각화 (한눈에 파악)

작은 변동도 0.01 단위로 보이니까 거래 신호를 놓치지 않을 수 있습니다.


🎯 앞으로의 계획

  1. 알림 기능 추가

    • 손절/익절 시 실시간 알림
    • RSI 극값(< 20, > 80) 알림
  2. 추가 메트릭

    • 매매 횟수 (일별, 주별)
    • 평균 수익률
    • 연속 거래 일수
  3. 고급 분석

    • 코인별 수익 비교
    • 시간대별 거래 패턴
    • 손실 회복 시간

🔗 기술 스택

🤖 봇: Python (Upbit API, Prometheus)
📊 수집: Prometheus (30초 스크래프)
📈 시각화: Grafana + 12개 패널

💭 마치며

완벽하지 않은 RSI 기반 매매도, 대시보드를 통해 시각화되면 실제 작동을 명확하게 확인할 수 있습니다.

오늘의 대시보드는 단순한 모니터링을 넘어 봇의 거래 심리를 읽는 도구가 되었습니다.

다음 단계는 이 데이터를 기반으로 전략을 지속적으로 개선하는 것입니다. 🚀


Published: 2026-02-21
Time: ~3시간 (대시보드 설계부터 한글화까지)
Result: ✅ 실시간 모니터링 대시보드 완성