1
0
mirror of https://github.com/OpenNebula/one.git synced 2024-12-23 17:33:56 +03:00
one/share/scripts/onegate_metrics.sh
2013-07-03 12:33:41 +02:00

110 lines
4.1 KiB
Bash
Executable File

#!/bin/bash
# -------------------------------------------------------------------------- #
# Copyright 2002-2013, OpenNebula Project (OpenNebula.org), C12G Labs #
# #
# 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