From: Lukas Wagner <l.wagner@proxmox.com>
To: pdm-devel@lists.proxmox.com
Subject: [PATCH datacenter-manager/proxmox{,-backup,-yew-comp} v2 00/25] metric collection for the PDM host
Date: Thu, 19 Mar 2026 10:45:20 +0100 [thread overview]
Message-ID: <20260319094617.169594-1-l.wagner@proxmox.com> (raw)
This series add metric collection physical PDM hosts.
The patches for `proxmox` introduce three new crates:
- proxmox-disks: broken out from proxmox-backup, needed to read disk stats
- proxmox-parallel-handler: also broken out from proxmox-backup,
needed as a dependency for proxmox-disks. Since the scope was manageable,
this series improves the existing code a bit by adding a dedicated error type,
some documentation and basic unit tests
- proxmox-procfs: as a new home for any procfs related modules. this patch series adds
a `pressure` module for reading pressure stall information for the host and cgroups.
The general idea is that we should move other procfs helpers from proxmox-sys into
this new crate, but to avoid scope explosion this is not done as a part of this
series
The patches for proxmox-backup just switch over to the new moved implementations of proxmox-disks
and proxmox-parallel-handler.
The patches for proxmox-yew-comp slight adapt the existing NodeStatusPanel to allow the application
to inject child components into the same panel.
The proxmox-datacenter-manager patches do some initial refactoring (naming), and then add the needed
collection loop, API types and UI elements.
Changes since v1:
- rebased
- fixed failing unit test
- fixed mistake in Cargo.toml
- dropped patch for proxmox-sys, Fabian fixed the issue
using another approach
proxmox:
Lukas Wagner (11):
parallel-handler: import code from Proxmox Backup Server
parallel-handler: introduce custom error type
parallel-handler: add documentation
parallel-handler: add simple unit-test suite
disks: import from Proxmox Backup Server
disks: fix typo in `initialize_gpt_disk`
disks: add parts of gather_disk_stats from PBS
disks: gate api macro behind 'api-types' feature
disks: clippy: collapse if-let chains where possible
procfs: add helpers for querying pressure stall information
time: use u64 parse helper from nom
Cargo.toml | 10 +
proxmox-disks/Cargo.toml | 34 +
proxmox-disks/debian/changelog | 5 +
proxmox-disks/debian/control | 94 ++
proxmox-disks/debian/copyright | 18 +
proxmox-disks/debian/debcargo.toml | 7 +
proxmox-disks/src/lib.rs | 1434 +++++++++++++++++
proxmox-disks/src/lvm.rs | 60 +
proxmox-disks/src/parse_helpers.rs | 52 +
proxmox-disks/src/smart.rs | 228 +++
proxmox-disks/src/zfs.rs | 205 +++
proxmox-disks/src/zpool_list.rs | 294 ++++
proxmox-disks/src/zpool_status.rs | 496 ++++++
proxmox-parallel-handler/Cargo.toml | 16 +
proxmox-parallel-handler/debian/changelog | 5 +
proxmox-parallel-handler/debian/control | 36 +
proxmox-parallel-handler/debian/copyright | 18 +
proxmox-parallel-handler/debian/debcargo.toml | 7 +
proxmox-parallel-handler/src/lib.rs | 344 ++++
proxmox-procfs/Cargo.toml | 18 +
proxmox-procfs/debian/changelog | 5 +
proxmox-procfs/debian/control | 50 +
proxmox-procfs/debian/copyright | 18 +
proxmox-procfs/debian/debcargo.toml | 7 +
proxmox-procfs/src/lib.rs | 1 +
proxmox-procfs/src/pressure.rs | 332 ++++
proxmox-time/src/parse_helpers.rs | 5 -
proxmox-time/src/time_span.rs | 4 +-
28 files changed, 3796 insertions(+), 7 deletions(-)
create mode 100644 proxmox-disks/Cargo.toml
create mode 100644 proxmox-disks/debian/changelog
create mode 100644 proxmox-disks/debian/control
create mode 100644 proxmox-disks/debian/copyright
create mode 100644 proxmox-disks/debian/debcargo.toml
create mode 100644 proxmox-disks/src/lib.rs
create mode 100644 proxmox-disks/src/lvm.rs
create mode 100644 proxmox-disks/src/parse_helpers.rs
create mode 100644 proxmox-disks/src/smart.rs
create mode 100644 proxmox-disks/src/zfs.rs
create mode 100644 proxmox-disks/src/zpool_list.rs
create mode 100644 proxmox-disks/src/zpool_status.rs
create mode 100644 proxmox-parallel-handler/Cargo.toml
create mode 100644 proxmox-parallel-handler/debian/changelog
create mode 100644 proxmox-parallel-handler/debian/control
create mode 100644 proxmox-parallel-handler/debian/copyright
create mode 100644 proxmox-parallel-handler/debian/debcargo.toml
create mode 100644 proxmox-parallel-handler/src/lib.rs
create mode 100644 proxmox-procfs/Cargo.toml
create mode 100644 proxmox-procfs/debian/changelog
create mode 100644 proxmox-procfs/debian/control
create mode 100644 proxmox-procfs/debian/copyright
create mode 100644 proxmox-procfs/debian/debcargo.toml
create mode 100644 proxmox-procfs/src/lib.rs
create mode 100644 proxmox-procfs/src/pressure.rs
proxmox-backup:
Lukas Wagner (3):
tools: move ParallelHandler to new proxmox-parallel-handler crate
tools: replace disks module with proxmox-disks
metric collection: use blockdev_stat_for_path from proxmox_disks
Cargo.toml | 6 +
src/api2/admin/datastore.rs | 10 +-
src/api2/config/datastore.rs | 2 +-
src/api2/node/disks/directory.rs | 10 +-
src/api2/node/disks/mod.rs | 20 +-
src/api2/node/disks/zfs.rs | 14 +-
src/api2/tape/restore.rs | 25 +-
src/backup/verify.rs | 3 +-
src/bin/proxmox_backup_manager/disk.rs | 9 +-
src/server/metric_collection/mod.rs | 50 +-
src/server/pull.rs | 5 +-
src/tape/pool_writer/new_chunks_iterator.rs | 3 +-
src/tools/disks/lvm.rs | 60 -
src/tools/disks/mod.rs | 1394 -------------------
src/tools/disks/smart.rs | 227 ---
src/tools/disks/zfs.rs | 205 ---
src/tools/mod.rs | 3 -
src/tools/parallel_handler.rs | 160 ---
18 files changed, 62 insertions(+), 2144 deletions(-)
delete mode 100644 src/tools/disks/lvm.rs
delete mode 100644 src/tools/disks/mod.rs
delete mode 100644 src/tools/disks/smart.rs
delete mode 100644 src/tools/disks/zfs.rs
delete mode 100644 src/tools/parallel_handler.rs
proxmox-yew-comp:
Lukas Wagner (3):
node status panel: add `children` property
RRDGrid: fix size observer by attaching node reference to rendered
container
RRDGrid: add padding and increase gap between elements
src/node_status_panel.rs | 16 ++++++++++++++++
src/rrd_grid.rs | 5 +++--
2 files changed, 19 insertions(+), 2 deletions(-)
proxmox-datacenter-manager:
Lukas Wagner (8):
metric collection: clarify naming for remote metric collection
metric collection: fix minor typo in error message
metric collection: collect PDM host metrics in a new collection task
api: fix /nodes/localhost/rrddata endpoint
pdm: node rrd data: rename 'total-time' to
'metric-collection-total-time'
pdm-api-types: add PDM host metric fields
ui: node status: add RRD graphs for PDM host metrics
ui: lxc/qemu/node: use RRD value render helpers
Cargo.toml | 2 +
cli/client/src/metric_collection.rs | 4 +-
debian/control | 1 +
lib/pdm-api-types/src/metric_collection.rs | 2 +-
lib/pdm-api-types/src/rrddata.rs | 74 ++++-
lib/pdm-client/src/lib.rs | 8 +-
server/Cargo.toml | 2 +
server/src/api/metric_collection.rs | 10 +-
server/src/api/nodes/mod.rs | 2 +-
server/src/api/nodes/rrddata.rs | 73 +++-
server/src/api/remotes.rs | 2 +-
server/src/api/rrd_common.rs | 2 +-
.../local_collection_task.rs | 199 +++++++++++
server/src/metric_collection/mod.rs | 40 ++-
...tion_task.rs => remote_collection_task.rs} | 8 +-
server/src/metric_collection/rrd_task.rs | 187 ++++++++++-
server/src/metric_collection/state.rs | 2 +-
ui/src/administration/node_status.rs | 312 +++++++++++++++++-
ui/src/pbs/node/overview.rs | 29 +-
ui/src/pve/lxc/overview.rs | 34 +-
ui/src/pve/node/overview.rs | 29 +-
ui/src/pve/qemu/overview.rs | 34 +-
ui/src/renderer.rs | 49 +++
23 files changed, 954 insertions(+), 151 deletions(-)
create mode 100644 server/src/metric_collection/local_collection_task.rs
rename server/src/metric_collection/{collection_task.rs => remote_collection_task.rs} (99%)
Summary over all repositories:
71 files changed, 4831 insertions(+), 2304 deletions(-)
--
Generated by murpp 0.10.0
next reply other threads:[~2026-03-19 9:46 UTC|newest]
Thread overview: 25+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-03-19 9:45 Lukas Wagner [this message]
2026-03-19 9:45 ` [PATCH proxmox v2 01/25] parallel-handler: import code from Proxmox Backup Server Lukas Wagner
2026-03-19 9:45 ` [PATCH proxmox v2 02/25] parallel-handler: introduce custom error type Lukas Wagner
2026-03-19 9:45 ` [PATCH proxmox v2 03/25] parallel-handler: add documentation Lukas Wagner
2026-03-19 9:45 ` [PATCH proxmox v2 04/25] parallel-handler: add simple unit-test suite Lukas Wagner
2026-03-19 9:45 ` [PATCH proxmox v2 06/25] disks: fix typo in `initialize_gpt_disk` Lukas Wagner
2026-03-19 9:45 ` [PATCH proxmox v2 07/25] disks: add parts of gather_disk_stats from PBS Lukas Wagner
2026-03-19 9:45 ` [PATCH proxmox v2 08/25] disks: gate api macro behind 'api-types' feature Lukas Wagner
2026-03-19 9:45 ` [PATCH proxmox v2 09/25] disks: clippy: collapse if-let chains where possible Lukas Wagner
2026-03-19 9:45 ` [PATCH proxmox v2 10/25] procfs: add helpers for querying pressure stall information Lukas Wagner
2026-03-19 9:45 ` [PATCH proxmox v2 11/25] time: use u64 parse helper from nom Lukas Wagner
2026-03-19 9:45 ` [PATCH proxmox-backup v2 12/25] tools: move ParallelHandler to new proxmox-parallel-handler crate Lukas Wagner
2026-03-19 9:45 ` [PATCH proxmox-backup v2 13/25] tools: replace disks module with proxmox-disks Lukas Wagner
2026-03-19 9:45 ` [PATCH proxmox-backup v2 14/25] metric collection: use blockdev_stat_for_path from proxmox_disks Lukas Wagner
2026-03-19 9:45 ` [PATCH proxmox-yew-comp v2 15/25] node status panel: add `children` property Lukas Wagner
2026-03-19 9:45 ` [PATCH proxmox-yew-comp v2 16/25] RRDGrid: fix size observer by attaching node reference to rendered container Lukas Wagner
2026-03-19 9:45 ` [PATCH proxmox-yew-comp v2 17/25] RRDGrid: add padding and increase gap between elements Lukas Wagner
2026-03-19 9:45 ` [PATCH datacenter-manager v2 18/25] metric collection: clarify naming for remote metric collection Lukas Wagner
2026-03-19 9:45 ` [PATCH datacenter-manager v2 19/25] metric collection: fix minor typo in error message Lukas Wagner
2026-03-19 9:45 ` [PATCH datacenter-manager v2 20/25] metric collection: collect PDM host metrics in a new collection task Lukas Wagner
2026-03-19 9:45 ` [PATCH datacenter-manager v2 21/25] api: fix /nodes/localhost/rrddata endpoint Lukas Wagner
2026-03-19 9:45 ` [PATCH datacenter-manager v2 22/25] pdm: node rrd data: rename 'total-time' to 'metric-collection-total-time' Lukas Wagner
2026-03-19 9:45 ` [PATCH datacenter-manager v2 23/25] pdm-api-types: add PDM host metric fields Lukas Wagner
2026-03-19 9:45 ` [PATCH datacenter-manager v2 24/25] ui: node status: add RRD graphs for PDM host metrics Lukas Wagner
2026-03-19 9:45 ` [PATCH datacenter-manager v2 25/25] ui: lxc/qemu/node: use RRD value render helpers Lukas Wagner
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20260319094617.169594-1-l.wagner@proxmox.com \
--to=l.wagner@proxmox.com \
--cc=pdm-devel@lists.proxmox.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.