#!/bin/bash # -------------------------------------------------------------------------- # # Copyright 2002-2021, OpenNebula Project, OpenNebula Systems # # # # Licensed 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. # #--------------------------------------------------------------------------- # ################################################################################ # Initialization ################################################################################ ERROR=0 if [ -z $ONEGATE_TOKEN ]; then echo "ONEGATE_TOKEN env variable must point to the token.txt file" ERROR=1 fi if [ -z $ONEGATE_URL ]; then echo "ONEGATE_URL env variable must be set" ERROR=1 fi if [ $ERROR = 1 ]; then exit -1 fi TMP_DIR=`mktemp -d` echo "" > $TMP_DIR/metrics ################################################################################ # Memory metrics ################################################################################ MEM_TOTAL=`grep MemTotal: /proc/meminfo | awk '{print $2}'` MEM_FREE=`grep MemFree: /proc/meminfo | awk '{print $2}'` MEM_USED=$(($MEM_TOTAL-$MEM_FREE)) MEM_USED_PERC="0" if ! [ -z $MEM_TOTAL ] && [ $MEM_TOTAL -gt 0 ]; then MEM_USED_PERC=`echo "$MEM_USED $MEM_TOTAL" | \ awk '{ printf "%.2f", 100 * $1 / $2 }'` fi SWAP_TOTAL=`grep SwapTotal: /proc/meminfo | awk '{print $2}'` SWAP_FREE=`grep SwapFree: /proc/meminfo | awk '{print $2}'` SWAP_USED=$(($SWAP_TOTAL - $SWAP_FREE)) SWAP_USED_PERC="0" if ! [ -z $SWAP_TOTAL ] && [ $SWAP_TOTAL -gt 0 ]; then SWAP_USED_PERC=`echo "$SWAP_USED $SWAP_TOTAL" | \ awk '{ printf "%.2f", 100 * $1 / $2 }'` fi #echo "MEM_TOTAL = $MEM_TOTAL" >> $TMP_DIR/metrics #echo "MEM_FREE = $MEM_FREE" >> $TMP_DIR/metrics #echo "MEM_USED = $MEM_USED" >> $TMP_DIR/metrics echo "MEM_USED_PERC = $MEM_USED_PERC" >> $TMP_DIR/metrics #echo "SWAP_TOTAL = $SWAP_TOTAL" >> $TMP_DIR/metrics #echo "SWAP_FREE = $SWAP_FREE" >> $TMP_DIR/metrics #echo "SWAP_USED = $SWAP_USED" >> $TMP_DIR/metrics echo "SWAP_USED_PERC = $SWAP_USED_PERC" >> $TMP_DIR/metrics ################################################################################ # Disk metrics ################################################################################ /bin/df -k -P | grep '^/dev' > $TMP_DIR/df cat $TMP_DIR/df | while read line; do NAME=`echo $line | awk '{print $1}' | awk -F '/' '{print $NF}'` DISK_TOTAL=`echo $line | awk '{print $2}'` DISK_USED=`echo $line | awk '{print $3}'` DISK_FREE=`echo $line | awk '{print $4}'` DISK_USED_PERC="0" if ! [ -z $DISK_TOTAL ] && [ $DISK_TOTAL -gt 0 ]; then DISK_USED_PERC=`echo "$DISK_USED $DISK_TOTAL" | \ awk '{ printf "%.2f", 100 * $1 / $2 }'` fi #echo "DISK_TOTAL_$NAME = $DISK_TOTAL" >> $TMP_DIR/metrics #echo "DISK_FREE_$NAME = $DISK_FREE" >> $TMP_DIR/metrics #echo "DISK_USED_$NAME = $DISK_USED" >> $TMP_DIR/metrics echo "DISK_USED_PERC_$NAME = $DISK_USED_PERC" >> $TMP_DIR/metrics done ################################################################################ # PUT command ################################################################################ curl -X "PUT" --header "X-ONEGATE-TOKEN: `cat $ONEGATE_TOKEN`" $ONEGATE_URL \ --data-binary @$TMP_DIR/metrics