all lists on lists.proxmox.com
 help / color / mirror / Atom feed
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




             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.
Service provided by Proxmox Server Solutions GmbH | Privacy | Legal