#!/bin/bash
IP=`ifconfig eth0 | grep "inet " | awk '{ print $2}'`
INFLUXDB=192.168.0.28
MASTERLINKSTATUS=`redis-cli -h ${IP} info | grep master_link_status: | cut -d ':' -f 2`
HOST=`hostname`
ROLE=`redis-cli -h ${IP} info | grep role: | cut -d ':' -f 2`
ROLE_ID=""
LINK_STATUS_ID=""
CLIENT_LONGEST_OUTPUT_LIST=`redis-cli -h ${IP} info clients | grep client_longest_output_list: | grep -o "[0-9]+"`
SENTINEL_STATUS=`redis-cli -h ${IP} -p 26379 info Sentinel | grep sentinel_tilt: | grep -o "[0-9]+"`
SENTINEL_CLIENTS=`redis-cli -h ${IP} -p 26379 info clients | grep connected_clients: | grep -o "[0-9]+"`
SENTINEL_OPS=`redis-cli -h ${IP} -p 26379 info Stats | grep instantaneous_ops_per_sec: | grep -o "[0-9]+"`
SENTINEL_PUBSUB_PATTERNS=`redis-cli -h ${IP} -p 26379 info Stats | grep pubsub_patterns: | grep -o "[0-9]+"`
if [[ ${ROLE} = slave* ]]; then
ROLE_ID="0"
if [[ ${MASTERLINKSTATUS} = up* ]]; then
LINK_STATUS_ID="1"
elif [[ ${MASTERLINKSTATUS} = down* ]]; then
LINK_STATUS_ID="0"
else
LINK_STATUS_ID="2"
fi
elif [[ ${ROLE} = master* ]]; then
ROLE_ID="1"
if [[ ${MASTERLINKSTATUS} = up* ]]; then
LINK_STATUS_ID="1"
elif [[ ${MASTERLINKSTATUS} = down* ]]; then
LINK_STATUS_ID="0"
else
LINK_STATUS_ID="2"
fi
else
ROLE_ID="2"
LINK_STATUS_ID="2"
fi
if [[ ${CLIENT_LONGEST_OUTPUT_LIST} =~ ^[0-9]+$ ]]; then
CLIENT_LONGEST_OUTPUT_LIST=${CLIENT_LONGEST_OUTPUT_LIST}
else
CLIENT_LONGEST_OUTPUT_LIST="0"
fi
if [[ ${CLIENT_BIGGEST_INPUT_BUF} =~ ^[0-9]+$ ]]; then
CLIENT_BIGGEST_INPUT_BUF=${CLIENT_BIGGEST_INPUT_BUF}
else
CLIENT_BIGGEST_INPUT_BUF="0"
fi
if [[ ${SENTINEL_STATUS} = 0* ]]; then
SENTINEL_STATUS="1"
else
SENTINEL_STATUS="0"
fi
if [[ ${SENTINEL_CLIENTS} =~ ^[0-9]+$ ]]; then
SENTINEL_CLIENTS=${SENTINEL_CLIENTS}
else
SENTINEL_CLIENTS="0"
fi
if [[ ${SENTINEL_PUBSUB_PATTERNS} =~ ^[0-9]+$ ]]; then
SENTINEL_PUBSUB_PATTERNS=${SENTINEL_PUBSUB_PATTERNS}
else
SENTINEL_PUBSUB_PATTERNS="0"
fi
if [[ ${SENTINEL_OPS} =~ ^[0-9]+$ ]]; then
SENTINEL_OPS=${SENTINEL_OPS}
else
SENTINEL_OPS="0"
fi
curl -X POST "http://$INFLUXDB:8086/write?db=telegraf" -d "redisstatus,host=${HOST} roleid=${ROLE_ID},linkstatusid=${LINK_STATUS_ID},client_longest_output_list=${CLIENT_LONGEST_OUTPUT_LIST},client_biggest_input_buf=${CLIENT_BIGGEST_INPUT_BUF},sentinel_status=${SENTINEL_STATUS},sentinel_clients=${SENTINEL_CLIENTS},sentinel_ops=${SENTINEL_OPS},sentinel_pubsub_patterns=${SENTINEL_PUBSUB_PATTERNS}"