Spaces:
Runtime error
Runtime error
import logging | |
import socket | |
import threading | |
import psutil | |
import GPUtil | |
from flask import Flask, render_template | |
from flask_socketio import SocketIO, emit | |
from peer_discovery import PEERS | |
from peer_discovery import PORT | |
logging.basicConfig(level=logging.INFO) | |
app = Flask(__name__) | |
socketio = SocketIO(app, cors_allowed_origins="*") | |
node_id = socket.gethostname() | |
connected_peers_data = {} | |
# βββββββββββββββ Ψ¬Ω ΨΉ Ψ¨ΩΨ§ΩΨ§Ψͺ Ψ§ΩΨΩ Ω βββββββββββββββ | |
def get_system_status(): | |
cpu = psutil.cpu_percent() | |
ram = psutil.virtual_memory().percent | |
gpu_load = 0 | |
try: | |
gpus = GPUtil.getGPUs() | |
if gpus: | |
gpu_load = gpus[0].load * 100 | |
except: | |
pass | |
return {"cpu": cpu, "ram": ram, "gpu": gpu_load} | |
# βββββββββββββββ Ψ₯Ψ±Ψ³Ψ§Ω Ψ§ΩΨͺΨΨ―ΩΨ«Ψ§Ψͺ βββββββββββββββ | |
def broadcast_status(): | |
while True: | |
status = get_system_status() | |
socketio.emit("status_update", {node_id: status}, broadcast=True) | |
socketio.sleep(5) | |
# βββββββββββββββ Ψ΅ΩΨΨ© Ψ§ΩΩΨ§Ψ¬ΩΨ© βββββββββββββββ | |
def index(): | |
return render_template("dashboard.html", peers=connected_peers_data) | |
# βββββββββββββββ Ψ§Ψ³ΨͺΩΨ¨Ψ§Ω ΨͺΨΨ―ΩΨ«Ψ§Ψͺ Ψ§ΩΨΨ§ΩΨ© βββββββββββββββ | |
def handle_status_update(data): | |
connected_peers_data.update(data) | |
emit("update_peers", connected_peers_data, broadcast=True) | |
# βββββββββββββββ Ψ―Ψ±Ψ―Ψ΄Ψ© βββββββββββββββ | |
def handle_message(data): | |
emit("receive_message", data, broadcast=True) | |
# βββββββββββββββ ΨͺΨ΄ΨΊΩΩ βββββββββββββββ | |
if __name__ == "__main__": | |
threading.Thread(target=broadcast_status).start() | |
logging.info(f"π ΨͺΨ΄ΨΊΩΩ Dashboard ΨΉΩΩ {node_id}") | |
socketio.run(app, host="0.0.0.0", port=7000) | |