mirror of
https://github.com/OpenNebula/one.git
synced 2024-12-22 13:33:52 +03:00
110 lines
4.1 KiB
Bash
Executable File
110 lines
4.1 KiB
Bash
Executable File
#!/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 |