Skip to content

feat(openmetrics): add VDI disk size and physical usage metrics#9680

Open
mpiton wants to merge 3 commits intomasterfrom
feat/openmetrics-vdi-disk-metrics
Open

feat(openmetrics): add VDI disk size and physical usage metrics#9680
mpiton wants to merge 3 commits intomasterfrom
feat/openmetrics-vdi-disk-metrics

Conversation

@mpiton
Copy link
Copy Markdown
Collaborator

@mpiton mpiton commented Apr 7, 2026

Description

Add per-VDI disk size metrics to the OpenMetrics/Prometheus endpoint.

Two new gauge metrics are exposed for each VDI:

Metric Description
xcp_vdi_virtual_size_bytes Virtual size of the VDI in bytes
xcp_vdi_physical_usage_bytes Physical space allocated by the VDI on the SR in bytes

Labels: pool_id, pool_name, sr_uuid, sr_name, vdi_uuid, vdi_name, and optionally vm_uuid, vm_name when the VDI is attached to a VM.

The implementation follows the existing SR_METRICS IPC pipeline pattern: data collection in the parent process (#getVdiData()), IPC transport (GET_VDI_DATA/VDI_DATA), formatting in the child process (formatVdiMetrics()), and integration into the /metrics output.

Capture d’écran du 2026-04-07 11-17-44 Capture d’écran du 2026-04-07 11-15-38

Fixes XO-1995

Checklist

  • Commit
    • Title follows commit conventions
    • Reference the relevant issue (Fixes XO-1995)
    • If bug fix, add Introduced by
  • Changelog
    • If visible by XOA users, add changelog entry
    • Update "Packages to release" in CHANGELOG.unreleased.md
  • PR
    • If UI changes, add screenshots
    • If not finished or not tested, open as Draft

Review process

If you are an external contributor, you can skip this part. Simply create the pull request, and we'll get back to you as soon as possible.

This 2-passes review process aims to:

  • develop skills of junior reviewers
  • limit the workload for senior reviewers
  • limit the number of unnecessary changes by the author
  1. The author creates a PR.
  2. Review process:
    1. The author assigns the junior reviewer.
    2. The junior reviewer conducts their review:
      • Resolves their comments if they are addressed.
      • Adds comments if necessary or approves the PR.
    3. The junior reviewer assigns the senior reviewer.
    4. The senior reviewer conducts their review:
      • If there are no unresolved comments on the PR → merge.
      • Otherwise, we continue with 3.
  3. The author responds to comments and/or makes corrections, and we go back to 2.

Notes:

  1. The author can request a review at any time, even if the PR is still a Draft.
  2. In theory, there should not be more than one reviewer at a time.
  3. The author should not make any changes:
    • When a reviewer is assigned.
    • Between the junior and senior reviews.

@mpiton mpiton force-pushed the feat/openmetrics-vdi-disk-metrics branch from e40602f to a69b573 Compare April 7, 2026 08:28
@plane-sync-vates
Copy link
Copy Markdown

Linked to Plane Work Item(s)

This comment was auto-generated by Plane

@mpiton mpiton requested a review from b-Nollet April 7, 2026 09:58
@mpiton mpiton marked this pull request as ready for review April 7, 2026 09:58
@mpiton mpiton force-pushed the feat/openmetrics-vdi-disk-metrics branch from 6a6c445 to d0e59bc Compare April 8, 2026 08:52
#getVdiData(): VdiDataPayload {
const vdis: VdiDataItem[] = []

const allObjects = this.#xo.getObjects() as Record<string, XoObject>
Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is this necessary to get all the objects?
It would feel more optimal to only get the ones we'll need, which are SRs and VBDs

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Replaced the unfiltered getObjects() with specific filtered queries for SRs and VBDs. The SR lookup now goes through allSrs[vdi.$SR] directly and VBDs through allVbds[vbdId].

@b-Nollet b-Nollet requested a review from pierrebrunet289 April 8, 2026 16:55
@mpiton mpiton requested a review from b-Nollet April 10, 2026 12:59
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants