Volver a la wiki

Servicio Sync-Throttle del Local Agent (terminal/agent/core/sync.py)

Propósito

El módulo sync.py del Local Agent gestiona la sincronización de métricas histórico/unsynced con el servidor SaaS. Desde v2.16.0, implementa un throttle inteligente del backfill histórico para evitar amplificación de datos en caso de reconexiones frecuentes.

Funciones principales

on_connected()

push_unsynced()

push_historical(hours=24)

on_disconnected()

Parámetros de configuración

ParámetroValorSignificado
DISCONNECT_GAP_MINUTES600 (10 min)Umbral para considerar un corte “largo”
MAX_BATCH_PER_REQUEST1000Máximo de métricas por POST al servidor
HISTORICAL_RESYNC_COOLDOWN_MIN15 (min)Mínimo de tiempo entre resyncs completados
HISTORICAL_RESYNC_CAP_HOURS24Techo máximo de ventana histórica a recuperar

Diagrama de estado

[CONECTADO]
    ↓ (on_disconnected)
[DESCONECTADO] → registra _disconnected_at
    ↓ (reconexión)
[VALIDANDO DOWNTIME]
    ├─ downtime < 10 min → push_unsynced() [bajo costo]
    └─ downtime ≥ 10 min → (cooldown expired?) 
         ├─ SÍ → push_historical(downtime + 15min) [caro, ~30-40s]
         └─ NO → push_unsynced() [bajo costo]
[CONECTADO]

Fuente de datos

Impacto v2.16.0

Problema resuelto

Solución implementada

Verificación post-deploy

Tests

Referencias de código

Véase también

Subir