#!/usr/bin/env bash set -euo pipefail OUT_DIR=${1:-/var/lib/prometheus/node-exporter} OUT_FILE="$OUT_DIR/lisglosips_s20.prom" TMP_FILE="$OUT_FILE.$$" BASE_DIR=/dev/shm/voip_rec mkdir -p "$OUT_DIR" tmp_total=0 tmp_used=0 tmp_avail=0 if df_out=$(df -B1 "$BASE_DIR" 2>/dev/null | awk 'NR==2 {print $2" "$3" "$4}'); then read -r tmp_total tmp_used tmp_avail <<<"$df_out" fi ready_count=$(find "$BASE_DIR/ready" -type f -name '*.ready' 2>/dev/null | wc -l) part_count=$(find "$BASE_DIR/ready" -type f -name '*.part' 2>/dev/null | wc -l) oldest_age=0 oldest_epoch=$(find "$BASE_DIR/ready" -type f -name '*.ready' -printf '%T@\n' 2>/dev/null | sort -n | head -n 1 || true) if [ -n "$oldest_epoch" ]; then now_epoch=$(date +%s) oldest_sec=${oldest_epoch%.*} oldest_age=$(( now_epoch - oldest_sec )) if [ "$oldest_age" -lt 0 ]; then oldest_age=0 fi fi redis_reachable=0 if timeout 2 bash -c '/dev/null; then redis_reachable=1 fi rtpengine_sessions=0 if command -v rtpengine-ctl >/dev/null 2>&1; then rtpengine_sessions=$(rtpengine-ctl -ip 127.0.0.1 -port 2224 list numsessions 2>/dev/null | awk -F: '/Current sessions total/ {gsub(/ /, "", $2); print $2; found=1} END {if (!found) print 0}') fi cat > "$TMP_FILE" </dev/null || true chmod 0644 "$TMP_FILE" mv "$TMP_FILE" "$OUT_FILE"