본문으로 건너뛰기

수집기 모듈

marginking-data-collectors 는 모듈별 컨테이너로 구성됩니다. 각 모듈은 index.mjs(엔트리 + Sentry 초기화 + 스케줄 등록)와 항목별 콜렉터 디렉터리로 이루어지며, 공통 로직은 libs/ 에 있습니다.

한눈에 보기

모듈소스저장소비고
onchaincoinglass · coinank · HyperliquidRediscoinglass 디코더, liqmap은 SOCKS
marketsinvesting · nasdaq · 거래소Redis일부 SOCKS 경유, kimp 선계산
newscoinness · sedaily · stockhubRDS + Redis일반=DB, 롤링뉴스=redis
themescoinnessRedistheme_{interval}
calendarsinvestingRDS경제캘린더 DB 적재
coinmarkets거래소 · coinglassRDS(marginking-db)랭킹/트렌드/오더블록
crypto-exchangeccxt(6개 거래소)Redis1초 폴링
whalesBinance · Bybit WSRDS(whale)유일한 MySQL 수집기

onchain

온체인/파생 지표. 항목별 콜렉터 디렉터리 구조(onchain/<item>/index.mjs).

  • 소스: coinglass(대부분, libs/coinglass 디코더), coinank(visualmap = visualScreener), Hyperliquid(whale-positions), marginking-db(top-traderstracked_trader 목록 조회)
  • 저장: Redis (altindex, funding_rate_hitmap, rsi_hitmap, liq_symbols, rektinfo, whale_positions, top_traders, liqmap, mvrv, visualmap_{interval}, liq_hitmap_{pair}_{i}_{l}, liquidationinfo_{time}_{symbol}, liquidationheatmap2_{time}_{type})
  • 특이: coinglass 호출은 fetchCoinglass(url,{direct,retries,socksUrl}) — 간헐 null 내장 재시도, liqmap 만 상용 SOCKS egress(IP 게이팅 우회). mvrv = coinglass marv/z-score + binance 일봉 btcPrice 머지.

markets

시장 지표.

  • 소스: investing/nasdaq(일부 SOCKS 경유), 환율/도미넌스/테더, 거래소 티커(업비트·빗썸), coinglass(롱숏/청산카운트 등)
  • 저장: Redis (nasdaq, exchange_rate, dominance, tether_price, kimp, fear_greed, spot_ddari, feds, cme, longshort_ratio, ub_tickers, ub_rised, liq_count)
  • 특이: kimp·spot_ddari 는 프리미엄을 선계산해 적재. nasdaq/investing 류는 상용 SOCKS 프록시 경유.

news

뉴스.

  • 소스: coinness, sedaily, stockhub
  • 저장: 일반 뉴스 → RDS news (목록/단건 조회). 네비바 롤링뉴스(경제) → Redis economic_news
  • 특이: 백엔드 뉴스크론 이관분.

themes

코인 테마(섹터).

  • 소스: coinness 테마
  • 저장: Redis theme_{interval} (1d/1w/1M/3M/6M)

calendars

경제 캘린더.

  • 소스: investing.com (SOCKS 경유)
  • 저장: RDS economic_calendar — 과거분 백필 + 신규분 주기 적재(DB 전용). data-api 가 from/to/minStars 로 조회.

coinmarkets

백엔드 마켓 크론 이관분(랭킹/트렌드/오더블록).

  • 소스: 거래소 데이터, coinglass(오더블록 유동성 히트맵, 디코더 direct)
  • 저장: RDS marginking-db
  • 특이: 일부 in-memory 크론은 이관 진행 중.

crypto-exchange

거래소 티커 폴링.

  • 소스: ccxt — Binance/Bybit/OKX/Gate(현물·선물), Upbit/Bithumb(현물)
  • 저장: Redis ticker:{exchange}:{market} (심볼별 {last,bid,ask,pct,ts} 맵)
  • 주기: 1초 폴링

whales

고래 체결/청산.

  • 소스: Binance/Bybit WebSocket(체결 + 청산 스트림)
  • 저장: RDS whale (유일한 MySQL 적재 수집기)
  • 소비: data-api /api/v1/whaletx, /api/v1/liquidation (raw 응답)

공통 라이브러리 (libs/)

라이브러리역할
config/secretsAWS Secrets Manager 로더(시크릿별 메모이즈)
db/redisRedis 클라이언트(에러 captureException)
db/mysqlRDS 풀 2종(main/whale), 풀 레벨 error → Sentry
coinglass로그인/OTP/복호화 디코더 + fetchCoinglass(direct/SOCKS/retry)
coinank · coinness각 소스 API 클라이언트(서명/페이로드 포팅)
observability/sentryGlitchTip init + reportError/captureException
net/proxy상용 SOCKS URL(getSocksProxyUrl) — investing/coinglass-liqmap egress

배포 (Docker)

  • 공용 Dockerfile(ARG MODULE)로 모듈마다 이미지 빌드, distroless 런타임.
  • docker-compose.yml 에 모듈별 서비스 정의(모듈에 맞는 env: redis/DB 터널, SOCKS 등).
  • 예) docker compose up -d --build onchain