49 lines
2.2 KiB
Bash
Executable File
49 lines
2.2 KiB
Bash
Executable File
#!/bin/bash
|
|
# 查看实时采集的数据
|
|
|
|
echo "════════════════════════════════════════════════════════════════"
|
|
echo " 📡 实时数据监控 "
|
|
echo "════════════════════════════════════════════════════════════════"
|
|
echo ""
|
|
|
|
# 获取当前价格
|
|
echo "📊 当前 BTC 价格:"
|
|
docker compose exec ingestion python3 -c "
|
|
import redis, orjson
|
|
r = redis.Redis(host='redis', port=6379, decode_responses=False)
|
|
messages = r.xrevrange('binance:raw:kline:5m', count=1)
|
|
if messages:
|
|
msg_id, fields = messages[0]
|
|
data = orjson.loads(fields[b'data'])
|
|
k = data['k']
|
|
print(f\" \${float(k['c']):>12,.2f} (最新)\")
|
|
print(f\" \${float(k['h']):>12,.2f} (5分钟最高)\")
|
|
print(f\" \${float(k['l']):>12,.2f} (5分钟最低)\")
|
|
print(f\" 成交量: {float(k['v']):.2f} BTC\")
|
|
else:
|
|
print(' 数据加载中...')
|
|
" 2>/dev/null
|
|
|
|
echo ""
|
|
echo "─────────────────────────────────────────────────────────────────"
|
|
echo ""
|
|
|
|
# 数据流状态
|
|
echo "📈 数据流状态:"
|
|
for stream in "binance:raw:kline:5m" "binance:raw:kline:15m" "binance:raw:kline:1h" "binance:raw:trade" "binance:raw:depth:20"; do
|
|
count=$(docker exec tradus-redis redis-cli XLEN $stream)
|
|
name=$(echo $stream | cut -d: -f3-)
|
|
printf " %-15s: %'6d 条消息\n" "$name" "$count"
|
|
done
|
|
|
|
echo ""
|
|
echo "─────────────────────────────────────────────────────────────────"
|
|
echo ""
|
|
|
|
# 服务状态
|
|
echo "🚀 服务状态:"
|
|
docker compose ps | grep -E "(tradus-redis|tradus-ingestion)" | awk '{print " "$1": "$6}'
|
|
|
|
echo ""
|
|
echo "════════════════════════════════════════════════════════════════"
|