#!/usr/bin/bash
set -euo pipefail

json_file="/var/lib/zabbix/telemt-active-ips.json"
metrics_file="/var/lib/zabbix/telemt-metrics.prom"

case "${1:-}" in
  active_ips_count)
    jq '[.users[].active_unique_ips[]] | unique | length' "${json_file}"
    ;;
  connections_current)
    awk '$1 ~ /^telemt_user_connections_current\{/ {sum += $2} END {print sum + 0}' "${metrics_file}"
    ;;
  connections_total)
    awk '$1 ~ /^telemt_user_connections_total\{/ {sum += $2} END {print sum + 0}' "${metrics_file}"
    ;;
  bytes_received)
    awk '$1 ~ /^telemt_user_octets_from_client\{/ {sum += $2} END {printf "%.0f\n", sum + 0}' "${metrics_file}"
    ;;
  bytes_sent)
    awk '$1 ~ /^telemt_user_octets_to_client\{/ {sum += $2} END {printf "%.0f\n", sum + 0}' "${metrics_file}"
    ;;
  uptime)
    awk '$1 == "telemt_uptime_seconds" {printf "%.0f\n", $2; found=1} END {if (!found) exit 1}' "${metrics_file}"
    ;;
  *)
    printf 'unsupported Telemt value: %s\n' "${1:-}" >&2
    exit 2
    ;;
esac
