check_cardinality.sh 613 B

123456789101112131415161718192021222324
  1. #!/usr/bin/env bash
  2. # CI helper: check cardinality of a given label field over the last 24h using logcli
  3. # Usage: ./check_cardinality.sh event 5000
  4. FIELD=${1:-event}
  5. THRESHOLD=${2:-5000}
  6. if ! command -v logcli >/dev/null 2>&1; then
  7. echo "logcli not found in PATH"
  8. exit 2
  9. fi
  10. echo "Checking cardinality for label: $FIELD"
  11. RESULT=$(logcli query '{env="prod"}' --since=24h | jq -r ".[].${FIELD}" | sort | uniq -c | awk -v t=$THRESHOLD '$1>t{print $2, $1}')
  12. if [ -n "$RESULT" ]; then
  13. echo "High cardinality detected for field '$FIELD':"
  14. echo "$RESULT"
  15. exit 1
  16. else
  17. echo "Cardinality OK"
  18. exit 0
  19. fi