From: Lukas Wagner <l.wagner@proxmox.com>
To: pdm-devel@lists.proxmox.com
Subject: [PATCH datacenter-manager/proxmox{,-backup,-yew-comp} 00/26] metric collection for the PDM host
Date: Thu, 12 Mar 2026 14:52:01 +0100 [thread overview]
Message-ID: <20260312135229.420729-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.
proxmox:
Lukas Wagner (12):
sys: procfs: don't read from sysfs during unit tests
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 | 334 ++++
proxmox-sys/src/linux/procfs/mod.rs | 30 +-
proxmox-time/src/parse_helpers.rs | 5 -
proxmox-time/src/time_span.rs | 4 +-
29 files changed, 3818 insertions(+), 17 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:
72 files changed, 4853 insertions(+), 2314 deletions(-)
--
Generated by murpp 0.10.0
next reply other threads:[~2026-03-12 13:53 UTC|newest]
Thread overview: 31+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-03-12 13:52 Lukas Wagner [this message]
2026-03-12 13:52 ` [PATCH proxmox 01/26] sys: procfs: don't read from sysfs during unit tests Lukas Wagner
2026-03-12 13:52 ` [PATCH proxmox 02/26] parallel-handler: import code from Proxmox Backup Server Lukas Wagner
2026-03-12 13:52 ` [PATCH proxmox 03/26] parallel-handler: introduce custom error type Lukas Wagner
2026-03-12 13:52 ` [PATCH proxmox 04/26] parallel-handler: add documentation Lukas Wagner
2026-03-12 13:52 ` [PATCH proxmox 05/26] parallel-handler: add simple unit-test suite Lukas Wagner
2026-03-12 13:52 ` [PATCH proxmox 06/26] disks: import from Proxmox Backup Server Lukas Wagner
2026-03-16 13:13 ` Arthur Bied-Charreton
2026-03-12 13:52 ` [PATCH proxmox 07/26] disks: fix typo in `initialize_gpt_disk` Lukas Wagner
2026-03-12 13:52 ` [PATCH proxmox 08/26] disks: add parts of gather_disk_stats from PBS Lukas Wagner
2026-03-12 13:52 ` [PATCH proxmox 09/26] disks: gate api macro behind 'api-types' feature Lukas Wagner
2026-03-12 13:52 ` [PATCH proxmox 10/26] disks: clippy: collapse if-let chains where possible Lukas Wagner
2026-03-12 13:52 ` [PATCH proxmox 11/26] procfs: add helpers for querying pressure stall information Lukas Wagner
2026-03-16 13:25 ` Arthur Bied-Charreton
2026-03-12 13:52 ` [PATCH proxmox 12/26] time: use u64 parse helper from nom Lukas Wagner
2026-03-12 13:52 ` [PATCH proxmox-backup 13/26] tools: move ParallelHandler to new proxmox-parallel-handler crate Lukas Wagner
2026-03-12 13:52 ` [PATCH proxmox-backup 14/26] tools: replace disks module with proxmox-disks Lukas Wagner
2026-03-16 13:27 ` Arthur Bied-Charreton
2026-03-12 13:52 ` [PATCH proxmox-backup 15/26] metric collection: use blockdev_stat_for_path from proxmox_disks Lukas Wagner
2026-03-12 13:52 ` [PATCH proxmox-yew-comp 16/26] node status panel: add `children` property Lukas Wagner
2026-03-12 13:52 ` [PATCH proxmox-yew-comp 17/26] RRDGrid: fix size observer by attaching node reference to rendered container Lukas Wagner
2026-03-12 13:52 ` [PATCH proxmox-yew-comp 18/26] RRDGrid: add padding and increase gap between elements Lukas Wagner
2026-03-12 13:52 ` [PATCH datacenter-manager 19/26] metric collection: clarify naming for remote metric collection Lukas Wagner
2026-03-12 13:52 ` [PATCH datacenter-manager 20/26] metric collection: fix minor typo in error message Lukas Wagner
2026-03-12 13:52 ` [PATCH datacenter-manager 21/26] metric collection: collect PDM host metrics in a new collection task Lukas Wagner
2026-03-12 13:52 ` [PATCH datacenter-manager 22/26] api: fix /nodes/localhost/rrddata endpoint Lukas Wagner
2026-03-12 13:52 ` [PATCH datacenter-manager 23/26] pdm: node rrd data: rename 'total-time' to 'metric-collection-total-time' Lukas Wagner
2026-03-12 13:52 ` [PATCH datacenter-manager 24/26] pdm-api-types: add PDM host metric fields Lukas Wagner
2026-03-12 13:52 ` [PATCH datacenter-manager 25/26] ui: node status: add RRD graphs for PDM host metrics Lukas Wagner
2026-03-12 13:52 ` [PATCH datacenter-manager 26/26] ui: lxc/qemu/node: use RRD value render helpers Lukas Wagner
2026-03-16 13:42 ` [PATCH datacenter-manager/proxmox{,-backup,-yew-comp} 00/26] metric collection for the PDM host Arthur Bied-Charreton
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=20260312135229.420729-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.