aboutsummaryrefslogtreecommitdiffstats
path: root/charms/trusty/cassandra/files/check_cassandra_heap.sh
diff options
context:
space:
mode:
Diffstat (limited to 'charms/trusty/cassandra/files/check_cassandra_heap.sh')
-rw-r--r--charms/trusty/cassandra/files/check_cassandra_heap.sh36
1 files changed, 36 insertions, 0 deletions
diff --git a/charms/trusty/cassandra/files/check_cassandra_heap.sh b/charms/trusty/cassandra/files/check_cassandra_heap.sh
new file mode 100644
index 0000000..395aa06
--- /dev/null
+++ b/charms/trusty/cassandra/files/check_cassandra_heap.sh
@@ -0,0 +1,36 @@
+#!/bin/bash
+#---------------------------------------------------
+# This file is Juju managed
+#---------------------------------------------------
+
+# Copyright (C) 2012 Canonical Ltd.
+# Author: Liam Young
+#
+# Script used to check Cassandra is alive and that it has space left in the heap
+
+set -u
+
+if [[ $# -lt 3 ]]; then
+ echo "$0 <jmx-ipadress> <warnpct> <criticalpct>"
+ exit 1
+fi
+WARN_PCT=$2
+CRIT_PCT=$3
+
+NODE_INF0="$(nodetool -h $1 info 2>/dev/null)"
+if [[ $? -ne 0 ]]; then
+ echo "ERROR: Failed to connect to Cassandra"
+ exit 2
+fi
+PCT_USED=$(echo "$NODE_INF0" | awk 'BEGIN {FS=":"} $1 ~ /^Heap Memory/ {print $2}' | awk '{ printf("%i\n", $1*100/$3) }')
+USAGE_INFO="${PCT_USED}% of heap memory used"
+if [[ $PCT_USED -lt $WARN_PCT ]]; then
+ echo "OK: ${USAGE_INFO}"
+ exit 0
+elif [[ $PCT_USED -lt $CRIT_PCT ]]; then
+ echo "WARNING: ${USAGE_INFO}"
+ exit 1
+else
+ echo "CRITICAL: ${USAGE_INFO}"
+ exit 1
+fi