Add RAM usage in GB and swap metrics to agent, server, UI and CSV export
This commit is contained in:
@@ -68,6 +68,12 @@ def heartbeat(
|
||||
computer.current_cpu_percent = payload.cpu_percent
|
||||
computer.current_ram_percent = payload.ram_percent
|
||||
computer.current_ram_total_gb = payload.ram_total_gb
|
||||
computer.current_ram_used_gb = payload.ram_used_gb
|
||||
computer.current_ram_available_gb = payload.ram_available_gb
|
||||
computer.current_swap_total_gb = payload.swap_total_gb
|
||||
computer.current_swap_used_gb = payload.swap_used_gb
|
||||
computer.current_swap_free_gb = payload.swap_free_gb
|
||||
computer.current_swap_percent = payload.swap_percent
|
||||
|
||||
sessions = payload.sessions
|
||||
if sessions:
|
||||
@@ -83,6 +89,12 @@ def heartbeat(
|
||||
cpu_percent=payload.cpu_percent,
|
||||
ram_percent=payload.ram_percent,
|
||||
ram_total_gb=payload.ram_total_gb,
|
||||
ram_used_gb=payload.ram_used_gb,
|
||||
ram_available_gb=payload.ram_available_gb,
|
||||
swap_total_gb=payload.swap_total_gb,
|
||||
swap_used_gb=payload.swap_used_gb,
|
||||
swap_free_gb=payload.swap_free_gb,
|
||||
swap_percent=payload.swap_percent,
|
||||
disk_info=payload.disk_info or [],
|
||||
cpu_temp=payload.cpu_temp,
|
||||
load_avg=payload.load_avg,
|
||||
@@ -202,7 +214,9 @@ def export_csv(
|
||||
writer = csv.writer(output)
|
||||
writer.writerow([
|
||||
"ID", "Hostname", "User", "IP", "Status", "OS", "CPU %", "RAM %",
|
||||
"RAM Total GB", "Uptime sec", "Last seen", "First seen",
|
||||
"RAM Used GB", "RAM Total GB", "RAM Available GB", "Swap %",
|
||||
"Swap Used GB", "Swap Total GB", "Swap Free GB", "Uptime sec",
|
||||
"Last seen", "First seen",
|
||||
])
|
||||
for c in computers:
|
||||
writer.writerow([
|
||||
@@ -214,7 +228,13 @@ def export_csv(
|
||||
c.os_info or "",
|
||||
c.current_cpu_percent or "",
|
||||
c.current_ram_percent or "",
|
||||
c.current_ram_used_gb or "",
|
||||
c.current_ram_total_gb or "",
|
||||
c.current_ram_available_gb or "",
|
||||
c.current_swap_percent or "",
|
||||
c.current_swap_used_gb or "",
|
||||
c.current_swap_total_gb or "",
|
||||
c.current_swap_free_gb or "",
|
||||
c.current_uptime_sec or "",
|
||||
c.last_seen.isoformat() if c.last_seen else "",
|
||||
c.first_seen.isoformat() if c.first_seen else "",
|
||||
|
||||
@@ -127,12 +127,22 @@ def computer_page(computer_id: int, request: Request, db: Session = Depends(get_
|
||||
"local_ip": h.local_ip,
|
||||
"cpu_percent": h.cpu_percent,
|
||||
"ram_percent": h.ram_percent,
|
||||
"ram_total_gb": h.ram_total_gb,
|
||||
"ram_used_gb": h.ram_used_gb,
|
||||
"ram_available_gb": h.ram_available_gb,
|
||||
"swap_total_gb": h.swap_total_gb,
|
||||
"swap_used_gb": h.swap_used_gb,
|
||||
"swap_free_gb": h.swap_free_gb,
|
||||
"swap_percent": h.swap_percent,
|
||||
"cpu_temp": h.cpu_temp,
|
||||
"processes": h.processes or [],
|
||||
"sessions": h.sessions or [],
|
||||
})
|
||||
if not latest_sessions and h.sessions:
|
||||
# Take the most recent heartbeat that actually has session data
|
||||
for h in reversed(heartbeats):
|
||||
if h.sessions:
|
||||
latest_sessions = h.sessions
|
||||
break
|
||||
|
||||
return templates.TemplateResponse(
|
||||
"computer.html",
|
||||
|
||||
Reference in New Issue
Block a user