{ console.log('Trigger Refresh StatusTab') from = new Date(Date.now() - 5 * 60 * 1000); to = new Date(Date.now()); }} />
{#if $initq.data && $nodesStateCounts.data}
{#key refinedStateData}

{cluster.charAt(0).toUpperCase() + cluster.slice(1)} Node States

sd.count, )} entities={refinedStateData.map( (sd) => sd.state, )} /> {/key}
{#key refinedStateData} {#each refinedStateData as sd, i} {/each}
Current State Nodes
{sd.state} {sd.count}
{/key}
{#key refinedHealthData}

{cluster.charAt(0).toUpperCase() + cluster.slice(1)} Node Health

sd.count, )} entities={refinedHealthData.map( (sd) => sd.state, )} /> {/key}
{#key refinedHealthData} {#each refinedHealthData as hd, i} {/each}
Current Health Nodes
{hd.state} {hd.count}
{/key}
{/if}
{#if $initq.data && $statusQuery.data} {#each $initq.data.clusters.find((c) => c.name == cluster).subClusters as subCluster, i} SubCluster "{subCluster.name}" {subCluster.processorType}

{#if totalAccs[subCluster.name] !== null} {/if}
{runningJobs[subCluster.name]} Running Jobs {activeUsers[subCluster.name]} Active Users
Flop Rate (Any) Memory BW Rate
{flopRate[subCluster.name]} {flopRateUnitPrefix[subCluster.name]}{flopRateUnitBase[subCluster.name]} {memBwRate[subCluster.name]} {memBwRateUnitPrefix[subCluster.name]}{memBwRateUnitBase[subCluster.name]}
Allocated Nodes
{allocatedNodes[subCluster.name]} / {subCluster.numberOfNodes} Nodes
Allocated Accelerators
{allocatedAccs[subCluster.name]} / {totalAccs[subCluster.name]} Accelerators
{#key $statusQuery?.data?.nodeMetrics} data.subCluster == subCluster.name, ) )} nodesData={transformNodesStatsToInfo($statusQuery?.data?.nodeMetrics.filter( (data) => data.subCluster == subCluster.name, ) )} /> {/key}
{#key $statusQuery?.data?.jobsMetricStats} data.subCluster == subCluster.name, ) )} jobsData={transformJobsStatsToInfo($statusQuery?.data?.jobsMetricStats.filter( (data) => data.subCluster == subCluster.name, ) )} /> {/key}
{/each} {:else} Cannot render status rooflines: No data! {/if}