• Vitaly Lipatov's avatar
    Add route export API, telemt metrics, chat-dns split views, massdns CNAME fallback · 357eb383
    Vitaly Lipatov authored
    route-web-api.py:
    - /api/export endpoint: filter by group/list/proto, text/mikrotik/json formats
    - /api/export/groups: list available groups with counts
    - aggregate=1 (exact) / aggregate=2 (approx via mapcidr)
    - Multiple groups support (group=gre,egw,zapret)
    - Resolved data from /var/lib/etersoft-router/state/ with in-memory cache (60s TTL)
    - Speed check: don't early-stop before checking first 2 gateways
    
    route-update.sh:
    - umask 022 for readable state files
    - chmod g+r on resolved after write
    - Per-list duration tracking (duration file in state)
    
    functions:
    - CNAME fallback: parallel dig (xargs -P 20) instead of sequential
    
    route-stats-metrics.sh:
    - New: collect route list counts and push to InfluxDB
    - Per-list duration metrics
    - Route-update total duration
    
    dns/chat-dns.sh:
    - Rewritten for split-view subzone chat.eterfund.ru via SSH to ns1
    
    dns/telemt-metrics.sh:
    - Added upstream_success/fail/slow and handshake_timeout metrics
    Co-Authored-By: 's avatarClaude Opus 4.6 (1M context) <noreply@anthropic.com>
    357eb383