{ "node.last_seen": "last seen %s ago", "node.never_seen": "never seen", "node.nav.cluster": "cluster", "node.cores": "%d cores", "node.ram_in_use_of": "RAM in use · of %s", "node.load": "load · %s 5m · %s 15m", "node.inlet": "inlet air", "node.not_measured": "CPU and RAM not measured lately", "node.disk_free": "disk free · of %dG", "node.gpus_free": "GPUs free", "node.gpus": "GPUs", "node.gpu.busy": "Busy", "node.gpu.memory_used": "Memory used", "node.gpu.temp": "Temperature", "node.gpu.memory_temp": "Memory temp.", "node.gpu.power": "Power", "node.gpu.clock": "Clock", "node.gpu.held_back": "Held back by, and wear", "node.gpu.memory_util": "memory %s%%", "node.of_gb": "of %s GB", "node.of": "of %s", "node.gpu.nothing": "nothing", "node.gpu.ecc": "%s uncorrected ECC errors", "node.gpu.pcie": "%s PCIe retries", "node.fabric": "Fabric", "node.fabric.on": "On %s", "node.fabric.map": "the map →", "node.fabric.none": "On no fabric: no port a declared fabric names can carry traffic, so no multi-node replica is placed here.", "node.ib.adapter": "Adapter", "node.ib.rate": "Rate", "node.ib.physically": "Physically on", "node.ib.errors": "Errors since boot", "node.ib.sent": "Sent", "node.ib.received": "Received", "node.unknown": "unknown", "node.none": "none", "node.ib.note": "Re-read on every heartbeat. A port that goes down takes its fabric off this node within seconds; one that comes back returns it. Errors are cumulative since the adapter came up: a number that grows is the one to look at.", "node.nvl.title": "GPUs and NVLink", "node.nvl.domain": "In NVLink domain %s: tensor parallelism can span this node and the rest of its domain.", "node.nvl.ends_here": "NVLink ends at this machine.", "node.imex.active": "active", "node.imex.channels.one": "1 channel", "node.imex.channels.other": "%d channels", "node.imex.not_installed": "not installed", "node.nvl.matrix": "NVLink between GPUs", "node.nvl.over_nvlink": "GPU %d ↔ GPU %d over NVLink", "node.nvl.over_pcie": "GPU %d ↔ GPU %d over PCIe", "node.gpu.name": "Name", "node.gpu.compute": "Compute", "node.gpu.numa": "NUMA", "node.gpu.nearest": "Nearest adapter", "node.gpu.multinode": "Multi-node NVLink", "node.gpu.joined": "joined", "node.gpu.bandwidth": "%s bandwidth", "node.nvl.note": "NV is a pair of cards joined by NVLink; a tensor-parallel group kept to NV pairs runs its all-reduces at NVLink speed, and placement picks it that way. The nearest adapter is where a card's share of traffic between nodes should go: PIX and PXB are under the same PCIe switch, SYS is across the processors.", "node.runs": "What runs here", "node.memory": "Memory", "node.cores_f": "%s cores", "node.no_engines": "No engines are placed on this node.", "node.engines": "Engines: %s", "node.engines_none": "Engines: none installed", "node.model_files": "%d model file(s) on disk", "node.last": "The last %s", "node.chart.cpu_note": "All cores together, from the node's heartbeat.", "node.chart.ram": "RAM in use", "node.chart.ram_note": "Total less what the kernel could hand to a new process.", "node.chart.cores": "Cores busy, by model", "node.chart.cores_note": "Each engine's process group, the way top counts it.", "node.chart.engine_memory": "Engine memory, by model", "node.chart.engine_memory_note": "Resident memory, including the weights mapped from disk. The kernel can take those pages back, so this can exceed RAM in use.", "node.chart.gpu_busy": "GPU busy, by card", "node.chart.gpu_busy_note": "Of each sample period, the share a kernel was running. A card held by a replica and idle here is one nobody is asking.", "node.chart.gpu_memory": "GPU memory used, by card", "node.chart.gpu_memory_note": "Framebuffer in use: the weights and the KV cache an engine reserved, and anything not llmgw's.", "node.chart.gpu_temp": "GPU temperature, °C", "node.chart.gpu_temp_note": "Throttling usually starts in the high 80s; see what holds a card back in the table above.", "node.chart.gpu_power": "GPU power, W", "node.chart.gpu_power_note": "Draw against the card's enforced limit; at the limit is sw_power_cap.", "node.chart.load": "Load average", "node.chart.load_note": "Above the core count means work is waiting for a CPU.", "node.chart.queue_note": "Requests accepted and not yet started, on the replicas here now.", "node.no_store": "No metrics store is configured, so there is no history here; monitoring.prometheus in the server configuration adds it.", "logs.title": "%s logs", "logs.agent": "the agent's log", "logs.engine": "output of engine %s", "logs.last_lines": "last %d lines", "logs.lines": "lines", "logs.stop": "stop following", "logs.follow": "follow", "logs.follow_every": "(refresh every 5s)", "logs.empty": "Nothing logged yet.", "logs.cannot_read": "this control plane cannot read node logs", "nodeengine.notice.auto": "%s installs %s in the build its hardware runs; the node is told now, and installs it in the background", "nodeengine.notice.none": "%s installs %s no longer; the node is told now, and installs it in the background", "nodeengine.notice.build": "%s installs %s built for %s; the node is told now, and installs it in the background" }