- Move blockchain scripts to apps/blockchain-node/scripts/ - Move marketplace scripts to apps/marketplace/scripts/ - Move agent daemon to apps/agent-coordinator/scripts/ - Move monitor to apps/monitor/ - Update systemd service files to point to new locations - Update internal path references in moved scripts - Remove empty /opt/aitbc/services directory
49 lines
1.7 KiB
Python
49 lines
1.7 KiB
Python
#!/usr/bin/env python3
|
|
"""
|
|
AITBC Monitor Service
|
|
"""
|
|
|
|
import time
|
|
import logging
|
|
import json
|
|
from pathlib import Path
|
|
import psutil
|
|
|
|
def main():
|
|
logging.basicConfig(level=logging.INFO)
|
|
logger = logging.getLogger('aitbc-monitor')
|
|
|
|
while True:
|
|
try:
|
|
# System stats
|
|
cpu_percent = psutil.cpu_percent()
|
|
memory_percent = psutil.virtual_memory().percent
|
|
logger.info(f'System: CPU {cpu_percent}%, Memory {memory_percent}%')
|
|
|
|
# Blockchain stats
|
|
blockchain_file = Path('/var/lib/aitbc/data/blockchain/aitbc/blockchain.json')
|
|
if blockchain_file.exists():
|
|
with open(blockchain_file, 'r') as f:
|
|
data = json.load(f)
|
|
logger.info(f'Blockchain: {len(data.get("blocks", []))} blocks')
|
|
|
|
# Marketplace stats
|
|
marketplace_dir = Path('/var/lib/aitbc/data/marketplace')
|
|
if marketplace_dir.exists():
|
|
listings_file = marketplace_dir / 'gpu_listings.json'
|
|
if listings_file.exists():
|
|
with open(listings_file, 'r') as f:
|
|
listings = json.load(f)
|
|
logger.info(f'Marketplace: {len(listings)} GPU listings')
|
|
|
|
time.sleep(30)
|
|
except (json.JSONDecodeError, FileNotFoundError, PermissionError, IOError) as e:
|
|
logger.error(f'Monitoring error: {type(e).__name__}: {e}')
|
|
time.sleep(60)
|
|
except psutil.Error as e:
|
|
logger.error(f'System monitoring error: {type(e).__name__}: {e}')
|
|
time.sleep(60)
|
|
|
|
if __name__ == "__main__":
|
|
main()
|