4. Streamlit Dashboard
Stock Pipeline의 Streamlit 대시보드는 실시간 주식 데이터 모니터링, 기술적 분석, API 성능 테스트 등을 위한 통합 웹 인터페이스입니다.
접속 방법
# Docker Compose로 실행 (권장)
cd /home/grey1/stock-kafka3/docker
docker-compose up -d streamlit
# 브라우저에서 접속
http://localhost:8501전체 페이지 구조
📊 Main Dashboard (monitoring_dashboard.py)
├── 05_실시간_Redis_모니터링.py
├── 06_Kafka_부하테스트_모니터링.py
└── 07_API_호출_테스트_대시보드.py
전체 페이지 구조
📊 Main Dashboard (monitoring_dashboard.py)
├── 05_실시간_Redis_모니터링.py
├── 06_Kafka_부하테스트_모니터링.py
└── 07_API_호출_테스트_대시보드.py
05 — 실시간 Redis 모니터링
Redis에 캐싱된 실시간 데이터와 기술적 신호를 모니터링합니다.
주요 기능
신호 추적 탭
- 활성 신호 타입: 볼린저, RSI, MACD 등
- Trigger Price: 신호 발생 시점 가격 (고정값)
- 현재 가격: 실시간 업데이트
- 수익률:
(현재가 - Trigger Price) / Trigger Price - 신호 강도: 조건 충족 정도
실시간 데이터 탭
- 실시간 주가, 변동률, 거래량
- RSI, MACD, 볼린저밴드 값
- 업데이트 주기: 1초 단위 자동 새로고침
Redis 상태 탭
| 지표 | Redis 키 |
|---|---|
| 메모리 사용량 | used_memory_human |
| 연결 클라이언트 수 | connected_clients |
| 초당 명령어 처리 | instantaneous_ops_per_sec |
| 캐시 히트율 | keyspace_hits / (hits + misses) |
| TTL 만료 예정 키 수 | — |
Trigger Price 개념 정리
| 구분 | 기준 | 특징 |
|---|---|---|
| 관심종목 Trigger Price | 관심종목 등록일 종가 (PostgreSQL) | 고정값 — 장기 수익률 계산용 |
| 활성 신호 Trigger Price | 기술적 조건 충족 시점 가격 (Redis) | 동적값 — 단기 매매 타이밍 판단용 |
06 — Kafka 부하테스트 모니터링
Kafka 메시지 큐의 성능 테스트 및 부하 상태를 모니터링합니다.
테스트 설정 항목
| 항목 | 설명 |
|---|---|
| 메시지 전송률 | msgs/sec 설정 |
| 테스트 기간 | 1분~60분 |
| 메시지 크기 | 소/중/대 |
| 동시 프로듀서 수 | 1~10개 |
실시간 모니터링 지표
- 초당 메시지 생산량 / 소비량
- Lag: 미처리 메시지 수
- 평균 응답 시간 (ms)
- 에러율
07 — API 호출 테스트 대시보드
외부 API 및 내부 서비스의 호출 성능을 테스트하고 모니터링합니다.
테스트 대상
| 분류 | 대상 |
|---|---|
| 외부 API | yfinance, KIS API, NASDAQ API |
| 내부 서비스 | Kafka UI, Airflow API, Redis |
성능 테스트 결과 요약
Kafka 메시지 처리 성능
| 종목 | 평균 응답시간 | TPS |
|---|---|---|
| AAPL | 4.53ms | 0.042 |
| GOOGL | 3.96ms | 0.050 |
| TSLA | 3.49ms | 0.067 |
| NVDA | 4.36ms | 0.050 |
| AMZN | 4.07ms | 0.059 |
전체 평균: 4.1ms, 처리량: ~120 msgs/sec, 성공률: 100%
API 부하테스트 결과
| 항목 | 수치 |
|---|---|
| 총 요청수 | 585개 |
| 성공률 | 70.8% (414건) |
| 평균 응답시간 | 33.9ms |
| 최대 TPS | 4.91 req/sec |