Skip to content

Commit 9f7e0cc

Browse files
joseflauzinojoseflauzinoGutoVeronezi
authored
VM stats history visualization (#6401)
* Add VM stats view feature * Add dynamic label to the submit button of the VM stats filtering modal * Improve CPU info message * Reduce identation * Remove missed line * Fix timestamp when 'Use local timezone' is selected * Fix bug when filtering for all data * Support for toggle 'Use local timezone' button Co-authored-by: joseflauzino <jose@scclouds.com.br> Co-authored-by: Daniel Augusto Veronezi Salvador <38945620+GutoVeronezi@users.noreply.github.com>
1 parent c526244 commit 9f7e0cc

File tree

11 files changed

+1153
-0
lines changed

11 files changed

+1153
-0
lines changed

ui/package.json

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,8 @@
4242
"antd-theme-webpack-plugin": "^1.3.9",
4343
"axios": "^0.21.1",
4444
"babel-plugin-require-context-hook": "^1.0.0",
45+
"chart.js": "^3.7.1",
46+
"chartjs-adapter-moment": "^1.0.0",
4547
"core-js": "^3.21.1",
4648
"enquire.js": "^2.1.6",
4749
"js-cookie": "^2.2.1",
@@ -52,6 +54,8 @@
5254
"npm-check-updates": "^6.0.1",
5355
"nprogress": "^0.2.0",
5456
"vue": "^3.2.31",
57+
"vue-chartjs": "^4.0.7",
58+
"vue-clipboard2": "^0.3.1",
5559
"vue-cropper": "^1.0.2",
5660
"vue-i18n": "^9.1.6",
5761
"vue-loader": "^16.2.0",

ui/public/locales/en.json

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -263,6 +263,7 @@
263263
"label.alerts": "Alerts",
264264
"label.algorithm": "Algorithm",
265265
"label.all": "All",
266+
"label.all.available.data": "All available data",
266267
"label.all.ipv6": "All IPv6",
267268
"label.all.zone": "All zones",
268269
"label.allocated": "Allocated",
@@ -437,6 +438,7 @@
437438
"label.copyid": "Copy ID",
438439
"label.cpu": "CPU",
439440
"label.cpu.sockets": "CPU sockets",
441+
"label.cpu.usage.info": "CPU usage information",
440442
"label.cpuallocated": "CPU allocated for VMs",
441443
"label.cpuallocatedghz": "CPU allocated",
442444
"label.cpulimit": "CPU limits",
@@ -579,6 +581,7 @@
579581
"label.disk.offerings": "Disk offerings",
580582
"label.disk.selection": "Disk selection",
581583
"label.disk.size": "Disk size",
584+
"label.disk.usage.info": "Disk usage information",
582585
"label.diskbytesreadrate": "Disk read rate (BPS)",
583586
"label.diskbyteswriterate": "Disk write rate (BPS)",
584587
"label.diskiopsmax": "Max IOPS",
@@ -662,6 +665,7 @@
662665
"label.enable.vpc.offering": "Enable VPC offering",
663666
"label.enable.vpn": "Enable remote access VPN",
664667
"label.end": "End",
668+
"label.end.date.and.time": "End date and time",
665669
"label.end.ip": "End IP",
666670
"label.end.reserved.system.ip": "End reserved system IP",
667671
"label.end.vlan": "End VLAN",
@@ -1059,7 +1063,12 @@
10591063
"label.may.continue": "You may now continue.",
10601064
"label.mb.memory": "MB memory",
10611065
"label.memory": "Memory",
1066+
"label.memory.free": "Memory free",
1067+
"label.memory.maximum.mb": "Max memory (in MB)",
10621068
"label.memory.mb": "Memory (in MB)",
1069+
"label.memory.usage.info": "Memory usage information",
1070+
"label.memory.total": "Memory total",
1071+
"label.memory.used": "Memory used",
10631072
"label.memoryallocated": "Memory allocated",
10641073
"label.memoryallocatedgb": "Memory allocated",
10651074
"label.memorylimit": "Memory limits (MiB)",
@@ -1081,6 +1090,8 @@
10811090
"label.migrate.instance.specific.storages": "Migrate volume(s) of the instance to specific primary storages",
10821091
"label.migrate.systemvm.to": "Migrate system VM to",
10831092
"label.migrate.volume": "Migrate volume",
1093+
"message.memory.usage.info.hypervisor.additionals": "The data shown may not reflect the actual memory usage if the VM does not have the additional hypervisor tools installed",
1094+
"message.memory.usage.info.negative.value": "If the VM's memory usage cannot be obtained from the hypervisor, the lines for free memory in the raw data graph and memory usage in the percentage graph will be disabled",
10841095
"message.migrate.volume.tooltip": "Volume can be migrated to any suitable storage pool. Admin has to choose the appropriate disk offering to replace, that supports the new storage pool",
10851096
"label.migrate.with.storage": "Migrate with storage",
10861097
"label.migrating": "Migrating",
@@ -1127,6 +1138,7 @@
11271138
"label.network.permissions": "Network permissions",
11281139
"label.network.selection": "Network selection",
11291140
"label.network.service.providers": "Network service providers",
1141+
"label.network.usage.info": "Network usage information",
11301142
"label.networkdevicetype": "Type",
11311143
"label.networkdomain": "Network domain",
11321144
"label.networkid": "Network",
@@ -1182,6 +1194,8 @@
11821194
"label.offerha": "Offer HA",
11831195
"label.offeringtype": "Compute offering type",
11841196
"label.ok": "OK",
1197+
"label.only.end.date.and.time": "Only end date and time",
1198+
"label.only.start.date.and.time": "Only start date and time",
11851199
"label.open.documentation": "Open documentation",
11861200
"label.open.url": "Open URL in browser",
11871201
"label.opendaylight": "OpenDaylight",
@@ -1236,6 +1250,7 @@
12361250
"label.pcidevice": "GPU",
12371251
"label.per.account": "Per account",
12381252
"label.per.zone": "Per zone",
1253+
"label.percentage": "Percentage",
12391254
"label.perfectforwardsecrecy": "Perfect forward secrecy",
12401255
"label.perform.fresh.checks": "Perform fresh checks",
12411256
"label.performfreshchecks": "Perform fresh checks",
@@ -1349,12 +1364,14 @@
13491364
"label.rados.secret": "RADOS secret",
13501365
"label.rados.user": "RADOS user",
13511366
"label.ram": "RAM",
1367+
"label.raw.data": "Raw data",
13521368
"label.rbd": "RBD",
13531369
"label.rbdid": "Cephx user",
13541370
"label.rbdmonitor": "Ceph monitor",
13551371
"label.rbdpool": "Ceph pool",
13561372
"label.rbdsecret": "Cephx secret",
13571373
"label.read": "Read",
1374+
"label.read.and.write": "Read \u0026 Write",
13581375
"label.read.io": "Read (IO)",
13591376
"label.readonly": "Read-Only",
13601377
"label.reason": "Reason",
@@ -1491,10 +1508,15 @@
14911508
"label.securitygroups": "Security groups",
14921509
"label.securitygroupsenabled": "Security groups enabled",
14931510
"label.select": "Select",
1511+
"label.see.more.info.cpu.usage": "See more info about CPU usage",
1512+
"label.see.more.info.memory.usage": "See more info about memory usage",
1513+
"label.see.more.info.network.usage": "See more info about network usage",
1514+
"label.see.more.info.disk.usage": "See more info about disk usage",
14941515
"label.select-view": "Select view",
14951516
"label.select.a.zone": "Select a zone",
14961517
"label.select.deployment.infrastructure": "Select deployment infrastructure",
14971518
"label.select.network": "Select Network",
1519+
"label.select.period": "Select period",
14981520
"label.select.project": "Select project",
14991521
"label.select.projects": "Select projects",
15001522
"label.select.ps": "Select primary storage",
@@ -1571,6 +1593,7 @@
15711593
"label.sshkeypairs": "SSH key pairs",
15721594
"label.sslcertificates": "SSL certificates",
15731595
"label.start": "Start",
1596+
"label.start.date.and.time": "Start date and time",
15741597
"label.start.ip": "Start IP",
15751598
"label.start.lb.vm": "Start LB VM",
15761599
"label.start.reserved.system.ip": "Start reserved system IP",
@@ -1803,6 +1826,9 @@
18031826
"label.vm.password": "Password of the VM is",
18041827
"label.vm.snapshots": "VM snapshots",
18051828
"label.vm.start": "Start",
1829+
"label.vm.stats.filter.period": "From <b>{startDate}</b> to <b>{endDate}</b>",
1830+
"label.vm.stats.filter.starting": "Starting <b>{startDate}</b>.",
1831+
"label.vm.stats.filter.up.to": "Up to <b>{endDate}</b>.",
18061832
"label.vmfs": "VMFS",
18071833
"label.vmipaddress": "VM IP address",
18081834
"label.vmlimit": "Instance limits",
@@ -2008,6 +2034,7 @@
20082034
"message.adding.netscaler.device": "Adding Netscaler device",
20092035
"message.adding.netscaler.provider": "Adding Netscaler provider",
20102036
"message.advanced.security.group": "Choose this if you wish to use security groups to provide guest VM isolation.",
2037+
"message.alert.show.all.stats.data": "It can return a lot of data depending on the settings for collecting and retaining stats.",
20112038
"message.allowed": "Allowed",
20122039
"message.apply.success": "Applied successfully.",
20132040
"message.assign.instance.another": "Please specify the account type, domain, account name and network (optional) of the new account. <br> If the default NIC of the VM is on a shared network, CloudStack will check if the network can be used by the new account if you do not specify one network. <br> If the default NIC of the VM is on a isolated network, and the new account has more one isolated networks, you should specify one.",
@@ -2077,6 +2104,8 @@
20772104
"message.confirm.start.lb.vm": "Please confirm you want to start LB VM.",
20782105
"message.confirm.sync.storage": "Please confirm you want to sync the storage pool",
20792106
"message.confirm.upgrade.router.newer.template": "Please confirm that you want to upgrade router to use newer template.",
2107+
"message.cpu.usage.info.multi.cpu": "The CPU usage percentage can exceed 100% if the VM has more than 1 vCPU or when CPU Cap is not enabled. This behavior happens according to how the hypervisor being used accounts the stats.",
2108+
"message.cpu.usage.info.cpu.cap": "If a VM has only 1 vCPU and the CPU Cap on its compute offering is disabled, then the percentage of CPU usage can also go over 100%. This happens because the VM can use more CPUs than it has been allocated.",
20802109
"message.create.compute.offering": "Compute offering created",
20812110
"message.create.internallb": "Creating internal LB",
20822111
"message.create.internallb.failed": "Failed to create internal LB.",
@@ -2150,6 +2179,8 @@
21502179
"message.disable.vpn.processing": "Disabling VPN...",
21512180
"message.discovering.feature": "Discovering features, please wait...",
21522181
"message.disk.offering.created": "Disk offering created:",
2182+
"message.disk.usage.info.data.points": "Each data point represents the difference in read/write data since the last data point.",
2183+
"message.disk.usage.info.sum.of.disks": "The disk usage shown is made up of the sum of read/write data from all the disks in the VM.",
21532184
"message.download.volume": "Please click the link to download the volume:<p><a href=\"#\">00000</a>",
21542185
"message.download.volume.confirm": "Please confirm that you want to download this volume.",
21552186
"message.edit.acl.failed": "Failed to edit ACL rule",
@@ -2189,6 +2220,7 @@
21892220
"message.error.discovering.feature": "Exception caught while discovering features.",
21902221
"message.error.display.text": "Please enter display text.",
21912222
"message.error.enable.saml": "Unable to find users IDs to enable SAML single sign on, kindly enable it manually.",
2223+
"message.error.end.date.and.time": "Please select the end date and time!",
21922224
"message.error.endip": "Please enter end IP.",
21932225
"message.error.gateway": "Please enter gateway.",
21942226
"message.error.host.name": "Please enter host name.",
@@ -2254,6 +2286,7 @@
22542286
"message.error.smb.username": "Please enter SMB username.",
22552287
"message.error.specify.sticky.name": "Please specify a sticky name.",
22562288
"message.error.sr.namelabel": "Please enter SR Name-Label.",
2289+
"message.error.start.date.and.time": "Please select the start date and time!",
22572290
"message.error.startip": "Please enter start IP.",
22582291
"message.error.storage.tags": "Please enter storage tags.",
22592292
"message.error.target.iqn": "Please enter target IQN.",
@@ -2362,6 +2395,9 @@
23622395
"message.network.removenic": "Please confirm that want to remove this NIC, which will also remove the associated network from the VM.",
23632396
"message.network.secondaryip": "Please confirm that you would like to acquire a new secondary IP for this NIC. \n NOTE: You need to manually configure the newly-acquired secondary IP inside the virtual machine.",
23642397
"message.network.updateip": "Please confirm that you would like to change the IP address for this NIC on VM.",
2398+
"message.network.usage.info.data.points": "Each data point represents the difference in data traffic since the last data point.",
2399+
"message.network.usage.info.sum.of.vnics": "The network usage shown is made up of the sum of data traffic from all the vNICs in the VM.",
2400+
"message.no.data.to.show.for.period": "No data to show for the selected period.",
23652401
"message.no.description": "No description entered.",
23662402
"message.offering.internet.protocol.warning": "WARNING: IPv6 supported networks use static routing and will require upstream routes to be configured manually.",
23672403
"message.offering.ipv6.warning": "Please refer documentation for creating IPv6 enabled network/VPC offering <a href='http://docs.cloudstack.apache.org/en/latest/plugins/ipv6.html#isolated-network-and-vpc-tier'>IPv6 support in CloudStack - Isolated networks and VPC tiers</a>",
@@ -2423,9 +2459,11 @@
24232459
"message.select.affinity.groups": "Please select any affinity groups you want this VM to belong to:",
24242460
"message.select.destination.image.stores": "Please select Image Store(s) to which data is to be migrated to",
24252461
"message.select.disk.offering": "Please select a disk offering for disk",
2462+
"message.select.end.date.and.time": "Select an end date & time.",
24262463
"message.select.migration.policy": "Please select a migration policy.",
24272464
"message.select.nic.network": "Please select a network for NIC",
24282465
"message.select.security.groups": "Please select security group(s) for your new VM.",
2466+
"message.select.start.date.and.time": "Select a start date & time.",
24292467
"message.select.zone.description": "Select type of zone basic/advanced.",
24302468
"message.select.zone.hint": "This is the type of zone deployment that you want to use. Basic zone: provides a single network where each VM instance is assigned an IP directly from the network. Guest isolation can be provided through layer-3 means such as security groups (IP address source filtering). Advanced zone: For more sophisticated network topologies. This network model provides the most flexibility in defining guest networks and providing custom network offerings such as firewall, VPN, or load balancer support.",
24312469
"message.server.description": "NFS, iSCSI, or PreSetup: IP address or DNS name of the storage device. VMWare PreSetup: IP address or DNS name of the vCenter server. Linstor: http(s) url of the linstor-controller.",

0 commit comments

Comments
 (0)