Mostrar estatísticas de uma determinada VM

Para mostrar as estatísticas de uso de uma VM em particular, podemos utilizar o comando abaixo:

[root@server ~ keystone_admin] nova diagnostics edbb3969-7c19-4f98-afea-823da2490fee
+----------------+----------------------------------------------------------------------------------+
| Property       | Value                                                                            |
+----------------+----------------------------------------------------------------------------------+
| config_drive   | False                                                                            |
| cpu_details    | [{"utilisation": null, "id": 0, "time": 4008966900000000}, {"utilisation": null, |
|                | "id": 1, "time": 3901655890000000}, {"utilisation": null, "id": 2, "time":       |
|                | 3935796580000000}, {"utilisation": null, "id": 3, "time": 3899931760000000}]     |
| disk_details   | [{"read_requests": 114231349, "errors_count": -1, "read_bytes": 1955429977600,   |
|                | "write_requests": 50461543, "write_bytes": 854058974208}]                        |
| driver         | libvirt                                                                          |
| hypervisor     | kvm                                                                              |
| hypervisor_os  | linux                                                                            |
| memory_details | {"used": 8, "maximum": 8}                                                        |
| nic_details    | [{"rx_packets": 398909373, "rx_drop": 0, "tx_octets": 97208832040, "tx_errors":  |
|                | 0, "mac_address": "fa:16:3e:3b:18:56", "rx_octets": 217402820352, "rx_rate":     |
|                | null, "rx_errors": 0, "tx_drop": 0, "tx_packets": 408664911, "tx_rate": null},   |
|                | {"rx_packets": 634224429, "rx_drop": 0, "tx_octets": 75711410646, "tx_errors":   |
|                | 0, "mac_address": "fa:16:3e:74:6e:5b", "rx_octets": 141738161699, "rx_rate":     |
|                | null, "rx_errors": 0, "tx_drop": 0, "tx_packets": 627015990, "tx_rate": null}]   |
| num_cpus       | 4                                                                                |
| num_disks      | 1                                                                                |
| num_nics       | 2                                                                                |
| state          | running                                                                          |
| uptime         | 45433382                                                                         |
+----------------+----------------------------------------------------------------------------------+

Vincular PID com Instância

Por vezes é interessante sabermos qual nome de intância no Openstack refere-se a um PID que está consumindo bastante recursos de hardware. Abaixo mostramos um roteiro.

Diretamente no compute node, podemos usar o PS para mostrar detalhes daquele PID, conforme mostra o exemplo abaixo. No exemplo vamos truncar a saída do comando, para melhorar a compreensão e não mostrar detalhes desnecessários:

[root@compute-node ~] ps -aux | grep 9749
qemu       9749 34.1  6.4 9917472 8467756 ?     Sl    2020 71833:57 /usr/libexec/qemu-kvm -name guest=instance-00000062,debug-threads=on -S -object secret,id=masterKey0,format=raw,file=/var/lib/libvirt/qemu/domain-7-instance-00000062/master-key.aes -machine pc-i440fx-rhel7.4.0,accel=kvm,usb=off,dump-guest-core=off -cpu Haswell-noTSX -m 8196 -realtime mlock=off -smp 4,sockets=4,cores=1,threads=1 -uuid 8fc3a694-0b8c-4262-a27e-c650ecb94dfb -smbios type=1,manufacturer=RDO,product=OpenStack Compute,version=16.0.3-2.el7,serial=aad631e8-96d8-4374-bbaf-ddf14795903d,uuid=8fc3a694-0b8c-4262-a27e-c650ecb94dfb  ......

O importante é o UUID da VM: 8fc3a694-0b8c-4262-a27e-c650ecb94dfb.

Interessante notar também o nome que aparece no virsh list: instance-00000062.

Agora, com o UUID podemos pesquisar no Controller:

[root@controller ~ keystone_admin] openstack server list --all-projects | grep 8fc3a6
| 8fc3a694-0b8c-4262-a27e-c650ecb94dfb | <NOME DA INSTANCIA!> | ACTIVE  | ....interfaces ....                                |       | ...flavor...  |