diff --git a/CHANGELOG.unreleased.md b/CHANGELOG.unreleased.md
index a13bf7d94..abeaa7e49 100644
--- a/CHANGELOG.unreleased.md
+++ b/CHANGELOG.unreleased.md
@@ -9,6 +9,7 @@
- [Backup] Run backup jobs on different system processes (PR [#5660](https://github.com/vatesfr/xen-orchestra/pull/5660))
- [VM] Display the full driver version in the general and advanced tab instead of `major.minor` [#5680](https://github.com/vatesfr/xen-orchestra/issues/5680) (PR [#5691](https://github.com/vatesfr/xen-orchestra/pull/5691))
+- [Usage report] Add VM IP addresses to the report (PR [#5696](https://github.com/vatesfr/xen-orchestra/pull/5696))
### Bug fixes
@@ -37,6 +38,7 @@
>
> In case of conflict, the highest (lowest in previous list) `$version` wins.
+- xo-server-usage-report minor
- xo-server-backup-reports patch
- @vates/disposable patch
- xo-server-transport-email minor
diff --git a/packages/xo-server-usage-report/report.html.tpl b/packages/xo-server-usage-report/report.html.tpl
index 38dbb3372..381802155 100644
--- a/packages/xo-server-usage-report/report.html.tpl
+++ b/packages/xo-server-usage-report/report.html.tpl
@@ -520,6 +520,7 @@
UUID |
Name |
+ IP addresses |
CPU |
RAM (GiB) |
Disk read (MiB) |
@@ -534,6 +535,7 @@
{{shortUUID this.uuid}} |
{{this.name}} |
+ {{formatAddresses this.addresses}} |
{{normaliseValue this.cpu}} % {{normaliseEvolution this.evolution.cpu}} |
{{normaliseValue this.ram}} {{normaliseEvolution this.evolution.ram}} |
{{normaliseValue this.diskRead}} {{normaliseEvolution this.evolution.diskRead}} |
diff --git a/packages/xo-server-usage-report/src/index.js b/packages/xo-server-usage-report/src/index.js
index af121a03b..244ddb5e6 100644
--- a/packages/xo-server-usage-report/src/index.js
+++ b/packages/xo-server-usage-report/src/index.js
@@ -136,6 +136,10 @@ Handlebars.registerHelper('math', function (lvalue, operator, rvalue, options) {
Handlebars.registerHelper('shortUUID', shortUuid)
+Handlebars.registerHelper('formatAddresses', addresses =>
+ addresses.length === 0 ? 'No IP record' : addresses.join(', ')
+)
+
Handlebars.registerHelper('normaliseValue', normaliseValue)
Handlebars.registerHelper(
@@ -285,6 +289,7 @@ async function getVmsStats({ runningVms, xo }) {
return {
uuid: vm.uuid,
name: vm.name_label,
+ addresses: Object.values(vm.addresses),
cpu: METRICS_MEAN.cpu(stats.cpus),
ram: METRICS_MEAN.ram(stats),
diskRead: METRICS_MEAN.disk(get(stats.xvds, 'r')),
@@ -640,6 +645,7 @@ const CSV_CAST = {
}
const CSV_COLUMNS = {
+ addresses: { key: 'addresses', header: 'IP addresses' },
cpu: { key: 'cpu', header: 'CPU (%)' },
cpuEvolution: { key: 'evolution.cpu', header: 'CPU evolution (%)' },
diskRead: { key: 'diskRead', header: 'Disk read (MiB)' },
@@ -771,6 +777,7 @@ class UsageReportPlugin {
columns: [
CSV_COLUMNS.uuid,
CSV_COLUMNS.name,
+ CSV_COLUMNS.addresses,
CSV_COLUMNS.cpu,
CSV_COLUMNS.cpuEvolution,
CSV_COLUMNS.ram,