diff --git a/ui/package.json b/ui/package.json
index 42d33a402f8d..bc35e50b123f 100644
--- a/ui/package.json
+++ b/ui/package.json
@@ -42,6 +42,8 @@
"antd-theme-webpack-plugin": "^1.3.9",
"axios": "^0.21.1",
"babel-plugin-require-context-hook": "^1.0.0",
+ "chart.js": "^3.7.1",
+ "chartjs-adapter-moment": "^1.0.0",
"core-js": "^3.21.1",
"enquire.js": "^2.1.6",
"js-cookie": "^2.2.1",
@@ -52,6 +54,8 @@
"npm-check-updates": "^6.0.1",
"nprogress": "^0.2.0",
"vue": "^3.2.31",
+ "vue-chartjs": "^4.0.7",
+ "vue-clipboard2": "^0.3.1",
"vue-cropper": "^1.0.2",
"vue-i18n": "^9.1.6",
"vue-loader": "^16.2.0",
diff --git a/ui/public/locales/en.json b/ui/public/locales/en.json
index cf7bbe1cbb06..14b65805929a 100644
--- a/ui/public/locales/en.json
+++ b/ui/public/locales/en.json
@@ -263,6 +263,7 @@
"label.alerts": "Alerts",
"label.algorithm": "Algorithm",
"label.all": "All",
+"label.all.available.data": "All available data",
"label.all.ipv6": "All IPv6",
"label.all.zone": "All zones",
"label.allocated": "Allocated",
@@ -437,6 +438,7 @@
"label.copyid": "Copy ID",
"label.cpu": "CPU",
"label.cpu.sockets": "CPU sockets",
+"label.cpu.usage.info": "CPU usage information",
"label.cpuallocated": "CPU allocated for VMs",
"label.cpuallocatedghz": "CPU allocated",
"label.cpulimit": "CPU limits",
@@ -579,6 +581,7 @@
"label.disk.offerings": "Disk offerings",
"label.disk.selection": "Disk selection",
"label.disk.size": "Disk size",
+"label.disk.usage.info": "Disk usage information",
"label.diskbytesreadrate": "Disk read rate (BPS)",
"label.diskbyteswriterate": "Disk write rate (BPS)",
"label.diskiopsmax": "Max IOPS",
@@ -662,6 +665,7 @@
"label.enable.vpc.offering": "Enable VPC offering",
"label.enable.vpn": "Enable remote access VPN",
"label.end": "End",
+"label.end.date.and.time": "End date and time",
"label.end.ip": "End IP",
"label.end.reserved.system.ip": "End reserved system IP",
"label.end.vlan": "End VLAN",
@@ -1059,7 +1063,12 @@
"label.may.continue": "You may now continue.",
"label.mb.memory": "MB memory",
"label.memory": "Memory",
+"label.memory.free": "Memory free",
+"label.memory.maximum.mb": "Max memory (in MB)",
"label.memory.mb": "Memory (in MB)",
+"label.memory.usage.info": "Memory usage information",
+"label.memory.total": "Memory total",
+"label.memory.used": "Memory used",
"label.memoryallocated": "Memory allocated",
"label.memoryallocatedgb": "Memory allocated",
"label.memorylimit": "Memory limits (MiB)",
@@ -1081,6 +1090,8 @@
"label.migrate.instance.specific.storages": "Migrate volume(s) of the instance to specific primary storages",
"label.migrate.systemvm.to": "Migrate system VM to",
"label.migrate.volume": "Migrate volume",
+"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",
+"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",
"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",
"label.migrate.with.storage": "Migrate with storage",
"label.migrating": "Migrating",
@@ -1127,6 +1138,7 @@
"label.network.permissions": "Network permissions",
"label.network.selection": "Network selection",
"label.network.service.providers": "Network service providers",
+"label.network.usage.info": "Network usage information",
"label.networkdevicetype": "Type",
"label.networkdomain": "Network domain",
"label.networkid": "Network",
@@ -1182,6 +1194,8 @@
"label.offerha": "Offer HA",
"label.offeringtype": "Compute offering type",
"label.ok": "OK",
+"label.only.end.date.and.time": "Only end date and time",
+"label.only.start.date.and.time": "Only start date and time",
"label.open.documentation": "Open documentation",
"label.open.url": "Open URL in browser",
"label.opendaylight": "OpenDaylight",
@@ -1236,6 +1250,7 @@
"label.pcidevice": "GPU",
"label.per.account": "Per account",
"label.per.zone": "Per zone",
+"label.percentage": "Percentage",
"label.perfectforwardsecrecy": "Perfect forward secrecy",
"label.perform.fresh.checks": "Perform fresh checks",
"label.performfreshchecks": "Perform fresh checks",
@@ -1349,12 +1364,14 @@
"label.rados.secret": "RADOS secret",
"label.rados.user": "RADOS user",
"label.ram": "RAM",
+"label.raw.data": "Raw data",
"label.rbd": "RBD",
"label.rbdid": "Cephx user",
"label.rbdmonitor": "Ceph monitor",
"label.rbdpool": "Ceph pool",
"label.rbdsecret": "Cephx secret",
"label.read": "Read",
+"label.read.and.write": "Read \u0026 Write",
"label.read.io": "Read (IO)",
"label.readonly": "Read-Only",
"label.reason": "Reason",
@@ -1491,10 +1508,15 @@
"label.securitygroups": "Security groups",
"label.securitygroupsenabled": "Security groups enabled",
"label.select": "Select",
+"label.see.more.info.cpu.usage": "See more info about CPU usage",
+"label.see.more.info.memory.usage": "See more info about memory usage",
+"label.see.more.info.network.usage": "See more info about network usage",
+"label.see.more.info.disk.usage": "See more info about disk usage",
"label.select-view": "Select view",
"label.select.a.zone": "Select a zone",
"label.select.deployment.infrastructure": "Select deployment infrastructure",
"label.select.network": "Select Network",
+"label.select.period": "Select period",
"label.select.project": "Select project",
"label.select.projects": "Select projects",
"label.select.ps": "Select primary storage",
@@ -1571,6 +1593,7 @@
"label.sshkeypairs": "SSH key pairs",
"label.sslcertificates": "SSL certificates",
"label.start": "Start",
+"label.start.date.and.time": "Start date and time",
"label.start.ip": "Start IP",
"label.start.lb.vm": "Start LB VM",
"label.start.reserved.system.ip": "Start reserved system IP",
@@ -1803,6 +1826,9 @@
"label.vm.password": "Password of the VM is",
"label.vm.snapshots": "VM snapshots",
"label.vm.start": "Start",
+"label.vm.stats.filter.period": "From {startDate} to {endDate}",
+"label.vm.stats.filter.starting": "Starting {startDate}.",
+"label.vm.stats.filter.up.to": "Up to {endDate}.",
"label.vmfs": "VMFS",
"label.vmipaddress": "VM IP address",
"label.vmlimit": "Instance limits",
@@ -2008,6 +2034,7 @@
"message.adding.netscaler.device": "Adding Netscaler device",
"message.adding.netscaler.provider": "Adding Netscaler provider",
"message.advanced.security.group": "Choose this if you wish to use security groups to provide guest VM isolation.",
+"message.alert.show.all.stats.data": "It can return a lot of data depending on the settings for collecting and retaining stats.",
"message.allowed": "Allowed",
"message.apply.success": "Applied successfully.",
"message.assign.instance.another": "Please specify the account type, domain, account name and network (optional) of the new account.
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.
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 @@
"message.confirm.start.lb.vm": "Please confirm you want to start LB VM.",
"message.confirm.sync.storage": "Please confirm you want to sync the storage pool",
"message.confirm.upgrade.router.newer.template": "Please confirm that you want to upgrade router to use newer template.",
+"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.",
+"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.",
"message.create.compute.offering": "Compute offering created",
"message.create.internallb": "Creating internal LB",
"message.create.internallb.failed": "Failed to create internal LB.",
@@ -2150,6 +2179,8 @@
"message.disable.vpn.processing": "Disabling VPN...",
"message.discovering.feature": "Discovering features, please wait...",
"message.disk.offering.created": "Disk offering created:",
+"message.disk.usage.info.data.points": "Each data point represents the difference in read/write data since the last data point.",
+"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.",
"message.download.volume": "Please click the link to download the volume:
00000",
"message.download.volume.confirm": "Please confirm that you want to download this volume.",
"message.edit.acl.failed": "Failed to edit ACL rule",
@@ -2189,6 +2220,7 @@
"message.error.discovering.feature": "Exception caught while discovering features.",
"message.error.display.text": "Please enter display text.",
"message.error.enable.saml": "Unable to find users IDs to enable SAML single sign on, kindly enable it manually.",
+"message.error.end.date.and.time": "Please select the end date and time!",
"message.error.endip": "Please enter end IP.",
"message.error.gateway": "Please enter gateway.",
"message.error.host.name": "Please enter host name.",
@@ -2254,6 +2286,7 @@
"message.error.smb.username": "Please enter SMB username.",
"message.error.specify.sticky.name": "Please specify a sticky name.",
"message.error.sr.namelabel": "Please enter SR Name-Label.",
+"message.error.start.date.and.time": "Please select the start date and time!",
"message.error.startip": "Please enter start IP.",
"message.error.storage.tags": "Please enter storage tags.",
"message.error.target.iqn": "Please enter target IQN.",
@@ -2362,6 +2395,9 @@
"message.network.removenic": "Please confirm that want to remove this NIC, which will also remove the associated network from the VM.",
"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.",
"message.network.updateip": "Please confirm that you would like to change the IP address for this NIC on VM.",
+"message.network.usage.info.data.points": "Each data point represents the difference in data traffic since the last data point.",
+"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.",
+"message.no.data.to.show.for.period": "No data to show for the selected period.",
"message.no.description": "No description entered.",
"message.offering.internet.protocol.warning": "WARNING: IPv6 supported networks use static routing and will require upstream routes to be configured manually.",
"message.offering.ipv6.warning": "Please refer documentation for creating IPv6 enabled network/VPC offering IPv6 support in CloudStack - Isolated networks and VPC tiers",
@@ -2423,9 +2459,11 @@
"message.select.affinity.groups": "Please select any affinity groups you want this VM to belong to:",
"message.select.destination.image.stores": "Please select Image Store(s) to which data is to be migrated to",
"message.select.disk.offering": "Please select a disk offering for disk",
+"message.select.end.date.and.time": "Select an end date & time.",
"message.select.migration.policy": "Please select a migration policy.",
"message.select.nic.network": "Please select a network for NIC",
"message.select.security.groups": "Please select security group(s) for your new VM.",
+"message.select.start.date.and.time": "Select a start date & time.",
"message.select.zone.description": "Select type of zone basic/advanced.",
"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.",
"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.",
diff --git a/ui/public/locales/pt_BR.json b/ui/public/locales/pt_BR.json
index 1e861397b19a..88972c5da10b 100644
--- a/ui/public/locales/pt_BR.json
+++ b/ui/public/locales/pt_BR.json
@@ -249,6 +249,7 @@
"label.alerts": "Alertas",
"label.algorithm": "Algoritmo",
"label.all": "Todos",
+"label.all.available.data": "Todos os dados dispon\u00edveis",
"label.all.zone": "Todas as zonas",
"label.allocated": "Alocado",
"label.allocationstate": "Estado da aloca\u00e7\u00e3o",
@@ -405,6 +406,7 @@
"label.copyid": "Copiar ID",
"label.cpu": "CPU",
"label.cpu.sockets": "Sockets da CPU",
+"label.cpu.usage.info": "Informa\u00e7\u00f5es sobre o uso de CPU",
"label.cpuallocated": "CPU alocada por VMs",
"label.cpuallocatedghz": "Alocado",
"label.cpulimit": "Limite de CPU",
@@ -541,6 +543,7 @@
"label.disk.offerings": "Ofertas de disco",
"label.disk.selection": "Sele\u00e7\u00e3o de disco",
"label.disk.size": "Tamanho do disco",
+"label.disk.usage.info": "Informa\u00e7\u00f5es sobre o uso de disco",
"label.diskbytesreadrate": "Taxa de leitura de bytes do disco (BPS)",
"label.diskbyteswriterate": "Taxa de escrita de bytes no disco (BPS)",
"label.diskiopsmax": "M\u00e1x IOPS",
@@ -617,6 +620,7 @@
"label.enable.vpc.offering": "Habilitar oferta VPC",
"label.enable.vpn": "Habilitar VPN",
"label.end": "Fim",
+"label.end.date.and.time": "Data e hor\u00e1rio final",
"label.end.ip": "IP final",
"label.end.reserved.system.ip": "Fim dos IPs reservados para o sistema",
"label.end.vlan": "VLAN final",
@@ -678,6 +682,7 @@
"label.forceencap": "For\u00e7ar encapsulamento UDP de pacotes ESP",
"label.forgedtransmits": "Transmiss\u00f5es forjadas",
"label.format": "Formato",
+"label.free": "Livre",
"label.friday": "Sexta-feira",
"label.from": "de",
"label.from.lb": "de LB",
@@ -989,6 +994,10 @@
"label.may.continue": "Voc\u00ea pode continuar agora",
"label.mb.memory": "MB de mem\u00f3ria",
"label.memory": "Mem\u00f3ria (em MB)",
+"label.memory.free": "Mem\u00f3ria livre",
+"label.memory.total": "Mem\u00f3ria total",
+"label.memory.usage.info": "Informa\u00e7\u00f5es sobre o uso de mem\u00f3ria",
+"label.memory.used": "Mem\u00f3ria usada",
"label.memory.mb": "Mem\u00f3ria (em MB)",
"label.memoryallocated": "Mem\u00f3ria alocada",
"label.memoryallocatedgb": "Alocado",
@@ -1051,6 +1060,7 @@
"label.network.offerings": "Oferta de rede",
"label.network.selection": "Sele\u00e7\u00e3o da rede",
"label.network.service.providers": "Provedores de servi\u00e7os de rede",
+"label.network.usage.info": "Informa\u00e7\u00f5es sobre o uso de rede",
"label.networkdevicetype": "Tipo",
"label.networkdomain": "Dom\u00ednio de rede",
"label.networkid": "Rede",
@@ -1105,6 +1115,8 @@
"label.offerha": "Oferta HA",
"label.offeringtype": "Tipo da oferta de computa\u00e7\u00e3o",
"label.ok": "OK",
+"label.only.end.date.and.time": "Apenas data e hor\u00e1rio final",
+"label.only.start.date.and.time": "Apenas data e hor\u00e1rio inicial",
"label.open.documentation": "Abrir documenta\u00e7\u00e3o",
"label.open.url": "Abrir URL no navegador",
"label.opendaylight": "OpenDaylight",
@@ -1157,6 +1169,7 @@
"label.pcidevice": "GPU",
"label.per.account": "Por conta",
"label.per.zone": "Por zona",
+"label.percentage": "Porcentagem",
"label.perfectforwardsecrecy": "Perfect Forward secrecy",
"label.perform.fresh.checks": "Realizar novas verifica\u00e7\u00f5es",
"label.permission": "Permiss\u00e3o",
@@ -1267,12 +1280,14 @@
"label.rados.secret": "Segredo RADOS",
"label.rados.user": "Usu\u00e1rio RADOS",
"label.ram": "RAM",
+"label.raw.data": "Dados Brutos",
"label.rbd": "RDB",
"label.rbdid": "Usu\u00e1rio Ceph",
"label.rbdmonitor": "Monitor Ceph",
"label.rbdpool": "Pool Ceph",
"label.rbdsecret": "Segredo Cephx",
"label.read": "Leitura",
+"label.read.and.write": "Leitura e escrita",
"label.read.io": "Leitura (IO)",
"label.readonly": "Apenas leitura",
"label.reason": "Motivo",
@@ -1404,10 +1419,15 @@
"label.securitygroup": "Grupo de seguran\u00e7a",
"label.securitygroupenabled": "Grupo de seguran\u00e7a ativado",
"label.securitygroups": "Grupos de seguran\u00e7a",
+"label.see.more.info.cpu.usage": "Ver mais informa\u00e7\u00f5es sobre o uso de CPU",
+"label.see.more.info.memory.usage": "Ver mais informa\u00e7\u00f5es sobre o uso de mem\u00f3ria",
+"label.see.more.info.network.usage": "Ver mais informa\u00e7\u00f5es sobre o uso de rede",
+"label.see.more.info.disk.usage": "Ver mais informa\u00e7\u00f5es sobre o uso de disco",
"label.select": "Selecionar",
"label.select-view": "Selecionar visualiza\u00e7\u00e3o",
"label.select.a.zone": "Selecione uma zona",
"label.select.deployment.infrastructure": "Selecione uma infraestrutura de implanta\u00e7\u00e3o",
+"label.select.period": "Selecionar per\u00edodo",
"label.select.project": "Selecionar projeto",
"label.select.projects": "Selecionar projetos",
"label.select.tier": "Selecionar camada",
@@ -1480,6 +1500,7 @@
"label.sshkeypairs": "Par de chaves SSH",
"label.sslcertificates": "Certificados SSL",
"label.start": "Iniciar",
+"label.start.date.and.time": "Data e hor\u00e1rio inicial",
"label.start.ip": "IP do in\u00edcio",
"label.start.lb.vm": "Iniciar VM LB",
"label.start.reserved.system.ip": "In\u00edcio dos IPs reservados para o sistema",
@@ -1689,6 +1710,9 @@
"label.vm.password": "Senha para a VM \u00e9",
"label.vm.snapshots": "Snapshot de VM",
"label.vm.start": "In\u00edcio",
+"label.vm.stats.filter.period": "De {startDate} at\u00e9 {endDate}.",
+"label.vm.stats.filter.starting": "A partir de {startDate}.",
+"label.vm.stats.filter.up.to": "At\u00e9 {endDate}.",
"label.vmfs": "VMFS",
"label.vmipaddress": "Endere\u00e7o IP da VM",
"label.vmlimit": "Limites de inst\u00e2ncias",
@@ -1882,6 +1906,7 @@
"message.adding.netscaler.device": "Adicionando dispositivo Nescaler",
"message.adding.netscaler.provider": "Adicionando Netscaler provider",
"message.advanced.security.group": "Escolha esta op\u00e7\u00e3o se desejar utilizar grupos de seguran\u00e7a para isolamento das VMs guest.",
+"message.alert.show.all.stats.data": "Isso pode retornar muitos dados dependendo das configura\u00e7\u00f5es de coleta e reten\u00e7\u00e3o de estat\u00edsticas.",
"message.apply.success": "Aplicado com sucesso",
"message.assign.instance.another": "Favor especificar o tipo de conta, dom\u00ednio, nome da conta e rede (opcional) da nova conta.
+ {{ messages[0] }}.
+
Se o NIC padr\u00e3o da VM estiver em uma rede compartilhada, o CloudStack verificar\u00e1 se a rede pode ser usada pela nova conta se voc\u00ea n\u00e3o especificar uma rede.
Se o NIC padr\u00e3o da VM estiver em uma rede isolada, e a nova conta tiver mais uma rede isolada, voc\u00ea deve especificar uma.",
"message.assign.vm.failed": "Falha na designa\u00e7\u00e3o de VM",
@@ -1945,6 +1970,8 @@
"message.confirm.start.lb.vm": "Confirme que voc\u00ea deseja iniciar esta LB VM",
"message.confirm.sync.storage": "Por favor, confirme que voc\u00ea gostaria de sincronizar o pool de armazenamento",
"message.confirm.upgrade.router.newer.template": "Por favor confirme que voc\u00ea deseja atualizar o roteador para usar o template mais recente.",
+"message.cpu.usage.info.multi.cpu": "O percentual de uso de CPU pode passar de 100% quando uma VM possui mais de 1 vCPU. Isso pode acontecer dependendo da forma que o virtualizador contabiliza as estat\u00edsticas.",
+"message.cpu.usage.info.cpu.cap": "Se uma VM possui apenas 1 vCPU e o CPU Cap da oferta de computa\u00e7\u00e3o estiver desabilitado, o percentual de uso de CPU tamb\u00e9m pode passar de 100%. Isso porque a VM pode utilizar mais CPUs do que lhe foi atribu\u00eddo",
"message.create.compute.offering": "Oferta de computa\u00e7\u00e3o criada",
"message.create.internallb": "Criando LB interno",
"message.create.internallb.failed": "Falha ao criar LB interno",
@@ -2016,6 +2043,8 @@
"message.disable.vpn.processing": "Desabilitando VPN...",
"message.discovering.feature": "Descobrindo funcionalidades, por favor aguarde...",
"message.disk.offering.created": "Oferta de disco criada:",
+"message.disk.usage.info.data.points": "Cada ponto no gr\u00e1fico representa a diferen\u00e7a de dados lidos/escritos desde a \u00faltima coleta de estat\u00edstica realizada (o ponto anterior)",
+"message.disk.usage.info.sum.of.disks": "O uso de disco apresentado \u00e9 composto pela soma de dados lidos/escritos por todos os discos da VM",
"message.download.volume": "Clique 00000 para baixar o disco",
"message.download.volume.confirm": "Por favor confirme que voc\u00ea quer baixar este volume",
"message.edit.acl.failed": "Falha ao editar regra ACL",
@@ -2052,6 +2081,7 @@
"message.error.discovering.feature": "Exce\u00e7\u00e3o lan\u00e7ada durante a descoberta de funcionalidades",
"message.error.display.text": "Por favor, insira o texto de exibi\u00e7\u00e3o",
"message.error.enable.saml": "Incapaz de encontrar IDs de usu\u00e1rios para ativar o SAML Single Sign On, por favor, ative-o manualmente.",
+"message.error.end.date.and.time": "Por favor, selecione a data e hor\u00e1rio final.",
"message.error.endip": "Por favor, insira o IP final",
"message.error.gateway": "Por favor, insira o gateway",
"message.error.host.name": "Por favor, insira o nome do host",
@@ -2113,6 +2143,7 @@
"message.error.smb.username": "Por favor, insira o usu\u00e1rio do SMB",
"message.error.specify.sticky.name": "Por favor, especifique o nome sticky",
"message.error.sr.namelabel": "Por favor, insira o nome-R\u00f3tulo SR",
+"message.error.start.date.and.time": "Por favor, selecione a data e hor\u00e1rio inicial.",
"message.error.startip": "Por favor, insira o IP de \u00cdnicio",
"message.error.storage.tags": "Por favor, insira as tags de armazenamento",
"message.error.target.iqn": "Por favor, insira o Target IQN",
@@ -2181,6 +2212,8 @@
"message.load.host.failed": "Falha ao carregar os hosts",
"message.lock.account": "Confirme se voc\u00ea deseja bloquear esta conta. Bloqueando a conta, todos os usu\u00e1rios desta conta n\u00e3o estar\u00e3o mais habilitados a gerenciar os recursos na nuvem. Os recursos existentes (cloud server) ainda poder\u00e3o ser acessados.",
"message.login.failed": "Falha no login",
+"message.memory.usage.info.hypervisor.additionals": "Os dados apresentados podem n\u00e3o refletir o real uso de mem\u00f3ria se a VM n\u00e3o possuir as ferramentas adicionais do virtualizador instaladas",
+"message.memory.usage.info.negative.value": "Se n\u00e3o for poss\u00edvel obter do hypervisor o uso de mem\u00f3ria da VM, ser\u00e3o desabilitadas as linhas de mem\u00f3ria livre do gr\u00e1fico de dados brutos e de uso de mem\u00f3ria no gr\u00e1fico de percentual",
"message.migrate.instance.to.host": "Por favor confirme que voc\u00ea deseja migrar a inst\u00e2ncia para outro host.",
"message.migrate.instance.to.ps": "Por favor confirme que voc\u00ea deseja migrar a inst\u00e2ncia para outro armazenamento prim\u00e1rio.",
"message.migrate.router.confirm": "Por favor confirme o host que voc\u00ea deseja migrar o roteador para:",
@@ -2210,6 +2243,9 @@
"message.network.removenic": "Por favor, confirme que deseja remover esta interface de rede, esta a\u00e7\u00e3o tamb\u00e9m ir\u00e1 remover a rede associada \u00e0 VM.",
"message.network.secondaryip": "Por favor, confirme que voc\u00ea gostaria de adquirir um novo IP secund\u00e1rio para este NIC. \n NOTA: Voc\u00ea precisa configurar manualmente o IP secund\u00e1rio rec\u00e9m-adquirido dentro da m\u00e1quina virtual.",
"message.network.updateip": "Por favor, confirme que voc\u00ea gostaria de mudar o endere\u00e7o IP da NIC em VM.",
+"message.network.usage.info.data.points": "Cada ponto no gr\u00e1fico representa a diferen\u00e7a de dados trafegados desde a \u00faltima coleta de estat\u00edstica realizada (o ponto anterior)",
+"message.network.usage.info.sum.of.vnics": "O uso de rede apresentado \u00e9 composto pela soma de dados trafegados por todas as vNICs da VM",
+"message.no.data.to.show.for.period": "Nenhum dado para mostrar no per\u00edodo selecionado.",
"message.no.description": "Nenhuma descri\u00e7\u00e3o inserida.",
"message.ovf.configurations": "H\u00e1 propriedades OVF dispon\u00edveis para a personaliza\u00e7\u00e3o do aparelho selecionado. Por favor, edite os valores de forma apropriada.As ofertas incompat\u00edveis de computa\u00e7\u00e3o ser\u00e3o desativadas.",
"message.path.description": "NFS: caminho exportado do servidor. VMFS: /datacenter name/datastore name. SharedMountPoint: caminho onde o armazenamento prim\u00e1rio \u00e9 montado, tal como /mnt/primary",
@@ -2267,9 +2303,11 @@
"message.select.affinity.groups": "Por favor, selecione quaisquer grupos de afinidade que voc\u00ea deseja que esta VM perten\u00e7a:",
"message.select.destination.image.stores": "Por favor, selecione o(s) armazenamento(s) de imagem(ns) para os quais os dados devem ser migrados",
"message.select.disk.offering": "Por favor, selecione uma oferta de disco para o disco",
+"message.select.end.date.and.time": "Selecione uma data e hor\u00e1rio final.",
"message.select.migration.policy": "Por favor, selecione uma pol\u00edtica de migra\u00e7\u00e3o",
"message.select.nic.network": "Por favor, selecione uma rede para o NIC",
"message.select.security.groups": "Por favor selecione o(s) grupo(s) de seguran\u00e7a para sua nova VM",
+"message.select.start.date.and.time": "Selecione uma data e hor\u00e1rio inicial.",
"message.select.zone.description": "Selecione o tipo de zona b\u00e1sica/avan\u00e7ada",
"message.select.zone.hint": "Este \u00e9 o tipo de implanta\u00e7\u00e3o de zona que voc\u00ea deseja utilizar. Zona b\u00e1sica: fornece uma \u00fanica rede na qual para cada inst\u00e2ncia de VM \u00e9 atribu\u00eddo um IP diretamente da rede. O isolamento do guest pode ser fornecido atrav\u00e9s de meios da camada 3, tais como grupos de seguran\u00e7a (filtragem de source IP). Zona avan\u00e7ada: para topologias de rede mais sofisticadas. este modelo de rede oferece maior flexibilidade na defini\u00e7\u00e3o de redes guest e oferece ofertas de rede personalizadas, como firewall, VPN, ou suporte de balanceamento de carga.",
"message.server.description": "NFS, iSCSI, ou PreSetup: endere\u00e7o IP ou nome DNS do dispositivo de armazenamento. VMWare PreSetup: endere\u00e7o IP ou nome DNS do servidor vCenter. Linstor: URL HTTP(S) do linstor-controller.",
diff --git a/ui/src/components/view/StatsTab.vue b/ui/src/components/view/StatsTab.vue
new file mode 100644
index 000000000000..60d5793f8b59
--- /dev/null
+++ b/ui/src/components/view/StatsTab.vue
@@ -0,0 +1,714 @@
+// Licensed to the Apache Software Foundation (ASF) under one
+// or more contributor license agreements. See the NOTICE file
+// distributed with this work for additional information
+// regarding copyright ownership. The ASF licenses this file
+// to you under the Apache License, Version 2.0 (the
+// "License"); you may not use this file except in compliance
+// with the License. You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing,
+// software distributed under the License is distributed on an
+// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+// KIND, either express or implied. See the License for the
+// specific language governing permissions and limitations
+// under the License.
+
+
+
+
+
@@ -307,6 +310,7 @@ import { mixinDevice } from '@/utils/mixin.js'
import ResourceLayout from '@/layouts/ResourceLayout'
import Status from '@/components/widgets/Status'
import DetailsTab from '@/components/view/DetailsTab'
+import StatsTab from '@/components/view/StatsTab'
import EventsTab from '@/components/view/EventsTab'
import DetailSettings from '@/components/view/DetailSettings'
import NicsTable from '@/views/network/NicsTable'
@@ -320,6 +324,7 @@ export default {
components: {
ResourceLayout,
DetailsTab,
+ StatsTab,
EventsTab,
DetailSettings,
NicsTable,