feat: add detailed documentation for Live Telemetry and Network Analysis sections in Proxmox help view

This commit is contained in:
2025-12-01 09:19:31 -05:00
parent fd45689d0d
commit be82b804ce

View File

@@ -2531,6 +2531,115 @@ SELECT * FROM ext_proxmox_servers_statistics
WHERE server_id = ? AND is_automatic = false
ORDER BY DateTime DESC;</code></pre>
</div>
<h3 class="text-xl font-semibold mt-6 mb-4 flex items-center gap-2">
<x-ri-line-chart-line class="size-5 text-base/60" />
Live Telemetry Graphs
</h3>
<div class="bg-background border border-neutral rounded-md p-4 mb-4">
<p class="text-sm text-base/70 mb-3">
The Live Telemetry section at the top of the Statistics tab shows real-time performance graphs sourced directly from the Proxmox RRD API. These graphs are optimized to load quickly and to avoid overloading either the browser or the API.
</p>
<table class="w-full text-sm mb-3">
<tbody class="text-base/70">
<tr class="border-b border-neutral/20">
<td class="py-2 px-4 font-semibold w-1/3">Graphs</td>
<td class="py-2 px-4">Processor Utilization, Network Traffic, Memory Utilization, Storage I/O</td>
</tr>
<tr class="border-b border-neutral/20">
<td class="py-2 px-4 font-semibold">Update Source</td>
<td class="py-2 px-4">Proxmox RRD API (<code>/nodes/{node}/qemu/{vmid}/rrddata</code>)</td>
</tr>
<tr class="border-b border-neutral/20">
<td class="py-2 px-4 font-semibold">Auto-Refresh</td>
<td class="py-2 px-4">Graphs request fresh data every 2 minutes while the Statistics tab is open.</td>
</tr>
<tr class="border-b border-neutral/20">
<td class="py-2 px-4 font-semibold">Data Sampling</td>
<td class="py-2 px-4">Each graph is sampled down to a maximum of 40 data points to keep rendering smooth and payloads small.</td>
</tr>
<tr>
<td class="py-2 px-4 font-semibold">Aggregation</td>
<td class="py-2 px-4"><strong>Average</strong> uses RRD's AVERAGE consolidation function, and <strong>Maximum</strong> uses the MAX function.</td>
</tr>
</tbody>
</table>
</div>
<div class="bg-background border border-neutral rounded-md p-4 mb-4">
<p class="text-sm font-semibold mb-2 flex items-center gap-2">
<x-ri-ram-line class="size-4 text-secondary" />
Memory Utilization Graph Details
</p>
<ul class="list-disc list-inside text-sm text-base/70 space-y-1 ml-4">
<li>The Memory Utilization graph displays a single series showing current RAM usage over time.</li>
<li>The vertical axis locks to the VM's configured maximum memory when a valid value is available; otherwise it auto-scales to fit the data so the graph is never flat.</li>
<li>Values are shown in bytes and converted to human-readable units (KiB, MiB, GiB) on the y-axis using binary prefixes.</li>
<li>Export actions download the currently displayed memory data points as a CSV file.</li>
</ul>
</div>
<h3 class="text-xl font-semibold mt-6 mb-4 flex items-center gap-2">
<x-ri-router-line class="size-5 text-base/60" />
Network Analysis (Core Router)
</h3>
<div class="bg-background border border-neutral rounded-lg p-5 mb-4">
<p class="text-sm text-base/70 mb-3">
The Network Analysis section is powered by an external Core Router API and provides deep visibility into active firewall sessions, top peers, ports, and security events related to your server's IP addresses.
</p>
<table class="w-full text-sm mb-3">
<tbody class="text-base/70">
<tr class="border-b border-neutral/20">
<td class="py-2 px-4 font-semibold w-1/3">Data Source</td>
<td class="py-2 px-4">Core Router API firewall state table (list of active sessions).</td>
</tr>
<tr class="border-b border-neutral/20">
<td class="py-2 px-4 font-semibold">IP Filtering</td>
<td class="py-2 px-4">Only connections where the source or destination matches an IP assigned to your server are included.</td>
</tr>
<tr class="border-b border-neutral/20">
<td class="py-2 px-4 font-semibold">Sections</td>
<td class="py-2 px-4"><strong>Active Connections</strong>, <strong>Top Peers</strong>, <strong>Top Ports</strong>, and <strong>Security</strong> (threat detections).</td>
</tr>
<tr class="border-b border-neutral/20">
<td class="py-2 px-4 font-semibold">Loading Behaviour</td>
<td class="py-2 px-4">Network Analysis is loaded when the Statistics tab opens. If the Core Router API is not configured or the server has no IPs, a clear warning message is shown instead of an endless loading state.</td>
</tr>
<tr>
<td class="py-2 px-4 font-semibold">Error Handling</td>
<td class="py-2 px-4">HTTP 502 errors from the Core Router API trigger automatic, limited retries with exponential backoff before a final error is presented.</td>
</tr>
</tbody>
</table>
</div>
<div class="bg-background border border-neutral rounded-lg p-5 mb-4">
<p class="text-sm font-semibold mb-2 flex items-center gap-2">
<x-ri-table-line class="size-4 text-secondary" />
Active Connections Table & Traffic Sorting
</p>
<ul class="list-disc list-inside text-sm text-base/70 space-y-1 ml-4">
<li>The <strong>Active Connections</strong> table supports searching, filtering, and clicking any header to sort by that column.</li>
<li>The <strong>Traffic</strong> column sorts by the underlying total bytes for each connection (not the formatted text), so high-traffic sessions rise to the top or bottom depending on the sort direction.</li>
<li>Clicking the Traffic header toggles between descending (largest traffic first) and ascending order.</li>
<li>Very low or empty traffic values still participate in the sort; connections with no traffic are treated as zero.</li>
</ul>
</div>
<div class="bg-background border border-neutral rounded-lg p-5 mb-4">
<p class="text-sm font-semibold mb-2 flex items-center gap-2">
<x-ri-timer-2-line class="size-4 text-secondary" />
Loading & Performance Optimizations
</p>
<ul class="list-disc list-inside text-sm text-base/70 space-y-1 ml-4">
<li>When you first open a server page, the Statistics tab is preloaded in the background so that navigating to it later is faster.</li>
<li>Live Telemetry responses from the Proxmox RRD API are cached per graph type, time range, and aggregation to reduce redundant upstream calls.</li>
<li>Network Analysis results are cached per server for a short period to avoid repeatedly scanning the full firewall state table when you revisit the Statistics tab.</li>
<li>All graphs limit the number of rendered points to keep the UI responsive, even on busy servers with long time ranges selected.</li>
</ul>
</div>
</div>
<!-- System Section -->