refactor(monitoring): simplify monitoring scripts and remove state tracking
- Remove consecutive breach tracking for statement queue (immediate alerts) - Consolidate script initialization into init_script() function - Remove unused helper functions (send_ok, run_as_hana_user, get_mount_point) - Flatten sld_watchdog.sh structure by removing main() wrapper - Remove state directory and lock directory configuration from hana.conf - Simplify alert messages to include threshold values This continues the simplification effort from previous commits by removing stateful tracking mechanisms and streamlining the monitoring logic for easier maintenance.
This commit is contained in:
65
hana_lib.sh
65
hana_lib.sh
@@ -3,13 +3,22 @@
|
||||
# SAP HANA Monitoring Library - Shared Functions
|
||||
# =============================================================================
|
||||
|
||||
# Logging function with script name prefix
|
||||
# Usage: log_message "SCRIPT_NAME" "message"
|
||||
log_message() {
|
||||
local script_name="$1"
|
||||
local message="$2"
|
||||
local timestamp=$(date "+%Y-%m-%d %H:%M:%S")
|
||||
echo "[${timestamp}] [${script_name}] ${message}" | tee -a "${LOG_FILE}"
|
||||
# Initialize script with common setup
|
||||
# Usage: init_script "SCRIPT_NAME"
|
||||
# Sets up: SCRIPT_DIR, SCRIPT_NAME, LOG_FILE, LOCK_DIR
|
||||
init_script() {
|
||||
SCRIPT_NAME="$1"
|
||||
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" &>/dev/null && pwd)"
|
||||
|
||||
# Load configuration
|
||||
source "${SCRIPT_DIR}/hana.conf"
|
||||
|
||||
# Setup logging
|
||||
LOG_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" &>/dev/null && pwd)"
|
||||
LOG_FILE="${LOG_DIR}/hana_monitor.log"
|
||||
|
||||
# Setup lock directory
|
||||
LOCK_DIR="/tmp"
|
||||
}
|
||||
|
||||
# Acquire lock for script execution
|
||||
@@ -38,6 +47,15 @@ release_lock() {
|
||||
fi
|
||||
}
|
||||
|
||||
# Logging function with script name prefix
|
||||
# Usage: log_message "SCRIPT_NAME" "message"
|
||||
log_message() {
|
||||
local script_name="$1"
|
||||
local message="$2"
|
||||
local timestamp=$(date "+%Y-%m-%d %H:%M:%S")
|
||||
echo "[${timestamp}] [${script_name}] ${message}" | tee -a "${LOG_FILE}"
|
||||
}
|
||||
|
||||
# Send notification via ntfy
|
||||
# Usage: send_notification "TITLE" "MESSAGE"
|
||||
send_notification() {
|
||||
@@ -64,23 +82,6 @@ send_alert() {
|
||||
log_message "$script_name" "ALERT: ${message}"
|
||||
}
|
||||
|
||||
# Send OK notification (state change from alert to normal)
|
||||
# Usage: send_ok "SCRIPT_NAME" "TITLE_PREFIX" "MESSAGE"
|
||||
send_ok() {
|
||||
local script_name="$1"
|
||||
local title_prefix="$2"
|
||||
local message="$3"
|
||||
send_notification "${title_prefix} Resolved" "✅ Resolved: ${message}"
|
||||
log_message "$script_name" "RESOLVED: ${message}"
|
||||
}
|
||||
|
||||
# Run command as HANA user using su
|
||||
# Usage: run_as_hana_user "COMMAND"
|
||||
run_as_hana_user() {
|
||||
local command="$1"
|
||||
su - "$HANA_USER" -c "$command"
|
||||
}
|
||||
|
||||
# Execute SQL query as HANA user
|
||||
# Usage: execute_hana_sql "SQL_QUERY"
|
||||
# Returns: SQL output on stdout, returns 0 on success, 1 on failure
|
||||
@@ -131,19 +132,3 @@ get_disk_usage_percentage() {
|
||||
fi
|
||||
df "$dir" 2>/dev/null | awk 'NR==2 {gsub(/%/,"",$5); print $5}'
|
||||
}
|
||||
|
||||
# Get mount point for a directory
|
||||
# Usage: get_mount_point "/path/to/dir"
|
||||
# Returns: Mount point path
|
||||
get_mount_point() {
|
||||
local dir="$1"
|
||||
df "$dir" 2>/dev/null | awk 'NR==2 {print $NF}'
|
||||
}
|
||||
|
||||
# Get available disk space in KB for a directory
|
||||
# Usage: get_available_space_kb "/path/to/dir"
|
||||
# Returns: Available space in KB
|
||||
get_available_space_kb() {
|
||||
local dir="$1"
|
||||
df -k "$dir" 2>/dev/null | awk 'NR==2 {print $4}'
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user