fix(crowdsec-dashboard): Fix decision count showing 0
- Remove --no-api flag which returned empty results - Use jq length instead of jsonfilter for counting arrays - Add grep fallback when jq is not available - Count all decisions, alerts, and bouncers correctly Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
parent
947182ae54
commit
dd6ecd2567
@ -293,26 +293,52 @@ remove_ban() {
|
|||||||
# Get aggregated stats for dashboard
|
# Get aggregated stats for dashboard
|
||||||
get_dashboard_stats() {
|
get_dashboard_stats() {
|
||||||
check_cscli
|
check_cscli
|
||||||
|
|
||||||
json_init
|
json_init
|
||||||
|
|
||||||
# Count decisions - local + CAPI
|
# Count decisions - use jq if available, fallback to grep
|
||||||
local local_decisions capi_decisions decisions_count
|
local decisions_count=0 local_decisions=0 capi_decisions=0
|
||||||
local_decisions=$(run_cscli decisions list --no-api -o json 2>/dev/null | jsonfilter -e '@[*]' 2>/dev/null | wc -l)
|
local decisions_json
|
||||||
|
decisions_json=$(run_cscli decisions list -o json 2>/dev/null)
|
||||||
|
if [ -n "$decisions_json" ] && [ "$decisions_json" != "null" ] && [ "$decisions_json" != "[]" ]; then
|
||||||
|
if command -v jq >/dev/null 2>&1; then
|
||||||
|
decisions_count=$(echo "$decisions_json" | jq 'length' 2>/dev/null)
|
||||||
|
else
|
||||||
|
decisions_count=$(echo "$decisions_json" | grep -c '"id":' 2>/dev/null)
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
# Count CAPI decisions from metrics
|
||||||
capi_decisions=$(run_cscli metrics 2>/dev/null | grep 'CAPI.*ban' | awk -F'|' '{sum += $5} END {print sum+0}')
|
capi_decisions=$(run_cscli metrics 2>/dev/null | grep 'CAPI.*ban' | awk -F'|' '{sum += $5} END {print sum+0}')
|
||||||
decisions_count=$((local_decisions + capi_decisions))
|
local_decisions=$((decisions_count - capi_decisions))
|
||||||
|
[ "$local_decisions" -lt 0 ] && local_decisions=0
|
||||||
json_add_int "total_decisions" "${decisions_count:-0}"
|
json_add_int "total_decisions" "${decisions_count:-0}"
|
||||||
json_add_int "local_decisions" "${local_decisions:-0}"
|
json_add_int "local_decisions" "${local_decisions:-0}"
|
||||||
json_add_int "capi_decisions" "${capi_decisions:-0}"
|
json_add_int "capi_decisions" "${capi_decisions:-0}"
|
||||||
|
|
||||||
# Count alerts (last 24h)
|
# Count alerts (last 24h) - use jq if available
|
||||||
local alerts_count
|
local alerts_count=0
|
||||||
alerts_count=$(run_cscli alerts list -o json --since 24h 2>/dev/null | jsonfilter -e '@[*]' 2>/dev/null | wc -l)
|
local alerts_json
|
||||||
|
alerts_json=$(run_cscli alerts list -o json --since 24h 2>/dev/null)
|
||||||
|
if [ -n "$alerts_json" ] && [ "$alerts_json" != "null" ] && [ "$alerts_json" != "[]" ]; then
|
||||||
|
if command -v jq >/dev/null 2>&1; then
|
||||||
|
alerts_count=$(echo "$alerts_json" | jq 'length' 2>/dev/null)
|
||||||
|
else
|
||||||
|
alerts_count=$(echo "$alerts_json" | grep -c '"id":' 2>/dev/null)
|
||||||
|
fi
|
||||||
|
fi
|
||||||
json_add_int "alerts_24h" "${alerts_count:-0}"
|
json_add_int "alerts_24h" "${alerts_count:-0}"
|
||||||
|
|
||||||
# Count bouncers
|
# Count bouncers - use jq if available
|
||||||
local bouncers_count
|
local bouncers_count=0
|
||||||
bouncers_count=$(run_cscli bouncers list -o json 2>/dev/null | jsonfilter -e '@[*]' 2>/dev/null | wc -l)
|
local bouncers_json
|
||||||
|
bouncers_json=$(run_cscli bouncers list -o json 2>/dev/null)
|
||||||
|
if [ -n "$bouncers_json" ] && [ "$bouncers_json" != "null" ] && [ "$bouncers_json" != "[]" ]; then
|
||||||
|
if command -v jq >/dev/null 2>&1; then
|
||||||
|
bouncers_count=$(echo "$bouncers_json" | jq 'length' 2>/dev/null)
|
||||||
|
else
|
||||||
|
bouncers_count=$(echo "$bouncers_json" | grep -c '"name":' 2>/dev/null)
|
||||||
|
fi
|
||||||
|
fi
|
||||||
json_add_int "bouncers" "${bouncers_count:-0}"
|
json_add_int "bouncers" "${bouncers_count:-0}"
|
||||||
|
|
||||||
# Top scenarios (from cscli metrics - includes CAPI blocklist breakdown)
|
# Top scenarios (from cscli metrics - includes CAPI blocklist breakdown)
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user