• v1.1.8 c0051b22be

    v1.1.7 - Add per-connection database query tracking for abuse detection

    laantungir released this 2026-02-01 20:26:37 +00:00 | 4 commits to master since this release

    Implemented comprehensive database query tracking to identify clients causing
    high CPU usage through excessive database queries. The relay now tracks and
    displays query statistics per WebSocket connection in the admin UI.

    Features Added:

    • Track db_queries_executed and db_rows_returned per connection
    • Calculate query rate (queries/minute) and row rate (rows/minute)
    • Display stats in admin UI grouped by IP address and WebSocket
    • Show: IP, Subscriptions, Queries, Rows, Query Rate, Duration

    Implementation:

    • Added tracking fields to per_session_data structure
    • Increment counters in handle_req_message() and handle_count_message()
    • Extract stats from pss in query_subscription_details()
    • Updated admin UI to display IP address and query metrics

    Use Case:
    Admins can now identify abusive clients by monitoring:

    • High query rates (>50 queries/min indicates polling abuse)
    • High row counts (>10K rows/min indicates broad filter abuse)
    • Query patterns (high queries + low rows = targeted, high both = crawler)

    This enables informed decisions about which IPs to blacklist based on
    actual resource consumption rather than just connection count.

    Downloads