Consolidate all paths to plugin flash dir, fix watchdog 7.3 triggers
- Move SCRIPTS_DIR/DATA_DIR/STATE_DIR from appdata to /boot/config/plugins/varaverk - All state files now in STATE_DIR (no more /tmp or /boot/config root writes) - Bootstrap: Gitea-first clone with GitHub fallback, no array dependency - varaverk.cfg seeded with Gitea connection settings - .gitignore: add State_Files/, varaverk.cfg, varaverk-*.txz - Partnership/transcode/fallback scripts use STATE_DIR variables - PHP config.php: DATA_DIR/STATE_DIR constants, VV_SETUP_STATE_FILE dynamic - deploy.sh PROD_ROOT updated to plugin flash dir Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Sonnet 4.6
parent
9191a54637
commit
fb0530deba
@@ -584,7 +584,17 @@ function vv_remote_hosts_stats(): array {
|
||||
if ($cached) { $results[$id] = $cached; continue; }
|
||||
}
|
||||
|
||||
$gql = '{ info { os { hostname uptime release } cpu { brand threads cores } } metrics { cpu { percentTotal } memory { percentTotal total available } } array { state } }';
|
||||
$gql = '{
|
||||
info { os { hostname uptime release } cpu { brand threads cores } }
|
||||
metrics { cpu { percentTotal } memory { percentTotal total used available } }
|
||||
array {
|
||||
state
|
||||
disks { fsSize fsUsed temp }
|
||||
caches { fsSize fsUsed temp }
|
||||
parities { temp }
|
||||
}
|
||||
vms { domains { name } }
|
||||
}';
|
||||
$data = vv_unraid_api_query(strtolower($id), $gql, 4, $key);
|
||||
|
||||
if (!$data) {
|
||||
@@ -594,22 +604,17 @@ function vv_remote_hosts_stats(): array {
|
||||
continue;
|
||||
}
|
||||
|
||||
$os = $data['info']['os'] ?? [];
|
||||
$cpu = $data['info']['cpu'] ?? [];
|
||||
$metrics = $data['metrics'] ?? [];
|
||||
$mCpu = $metrics['cpu'] ?? [];
|
||||
$mMem = $metrics['memory'] ?? [];
|
||||
$arr = $data['array'] ?? [];
|
||||
$os = $data['info']['os'] ?? [];
|
||||
$cpu = $data['info']['cpu'] ?? [];
|
||||
$mMem = $data['metrics']['memory'] ?? [];
|
||||
|
||||
$cpuLoad = round((float)($mCpu['percentTotal'] ?? 0), 1);
|
||||
$memPct = round((float)($mMem['percentTotal'] ?? 0));
|
||||
// Also compute from raw bytes as cross-check when percentTotal is missing
|
||||
$memPct = round((float)($mMem['percentTotal'] ?? 0));
|
||||
if ($memPct === 0) {
|
||||
$totalBytes = (float)($mMem['total'] ?? 0);
|
||||
$availBytes = (float)($mMem['available'] ?? 0);
|
||||
$memPct = $totalBytes > 0 ? (int)round(($totalBytes - $availBytes) / $totalBytes * 100) : 0;
|
||||
}
|
||||
$memTotalGb = isset($mMem['total']) ? round((float)$mMem['total'] / (1024 ** 3), 1) : 0;
|
||||
$memTotalGb = isset($mMem['total']) ? _vv_api_bytes_to_gb((float)$mMem['total']) : 0;
|
||||
|
||||
$uptimeRaw = $os['uptime'] ?? '';
|
||||
if (is_numeric($uptimeRaw)) {
|
||||
@@ -623,19 +628,20 @@ function vv_remote_hosts_stats(): array {
|
||||
$uptime = $uptimeRaw ?: '—';
|
||||
}
|
||||
|
||||
$entry = [
|
||||
$nodeMetrics = vv_api_node_metrics($data);
|
||||
$entry = array_merge([
|
||||
'available' => true,
|
||||
'host_id' => $id,
|
||||
'hostname' => $os['hostname'] ?? $vars[$id],
|
||||
'version' => $os['release'] ?? '',
|
||||
'uptime' => $uptime,
|
||||
'uptime_sec' => $uptimeSec,
|
||||
'cpu_load' => $cpuLoad,
|
||||
'cpu_threads' => (int)($cpu['threads'] ?? 0),
|
||||
'cpu_load' => $nodeMetrics['cpu_pct'] ?? 0,
|
||||
'cpu_threads' => (int)($cpu['threads'] ?? 0),
|
||||
'mem_total_gb' => $memTotalGb,
|
||||
'mem_used_pct' => $memPct,
|
||||
'array_state' => $arr['state'] ?? 'UNKNOWN',
|
||||
];
|
||||
'array_state' => $data['array']['state'] ?? 'UNKNOWN',
|
||||
], $nodeMetrics);
|
||||
file_put_contents($cacheFile, json_encode($entry));
|
||||
$results[$id] = $entry;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user