source /etc/kolla/admin-openrc.sh IFS=$(echo -en "\n\b") function get_vm_details() { LINE=$1 SERVER_ID=$(echo ${LINE} | cut -d" " -f3) SERVER_JSON=$(openstack server show ${SERVER_ID} -f json) SERVER_NAME=$(echo ${SERVER_JSON} | jq -r .name) SERVER_PROJECT_ID=$(echo ${SERVER_JSON} | jq -r .project_id) SERVER_PROJECT_JSON=$(openstack project show ${SERVER_PROJECT_ID} -f json) SERVER_PROJECT_NAME=$(echo ${SERVER_PROJECT_JSON} | jq -r .name) echo "${LINE} ${SERVER_NAME} ${SERVER_PROJECT_NAME}" } for COMPUTE_NODE in $(openstack compute service list --service nova-compute -c Host -f value | sort); do echo "# ${COMPUTE_NODE}" echo "VMs by CPU usage" OUTPUT="$(ssh ${COMPUTE_NODE} ps -eo pid,%cpu,cmd --sort="-%cpu" --no-headers | head -5 | grep -o -P '^[0-9]?.*(?<=-uuid ).*(?= -smbios)\b' | awk '{ print $1,$2,$NF }')" for LINE in ${OUTPUT}; do get_vm_details "${LINE}" done echo "VMs by RAM usage" OUTPUT="$(ssh ${COMPUTE_NODE} ps -eo pid,size,cmd --sort="-size" --no-headers | head -5 | grep -o -P '^[0-9]?.*(?<=-uuid ).*(?= -smbios)\b' | awk '{ print $1,$2,$NF }')" for LINE in ${OUTPUT}; do get_vm_details "${LINE}" done echo done