Volver a la wiki

sentinel/tcp_check.py — Loop Asyncio de Sondeo TCP del Agente

Propósito

Loop asyncio en el Local Agent que prueba puertos TCP de targets de la LAN. Estado: dormido (sin bump AGENT_VERSION aún) — despierta cuando el .exe reciba actualización (tanda #196/#197).

Función principal

async def tcp_loop(sched: SentinelScheduler):
    """Sondea targets con tcp_enabled en ventana PING_FLOOR-PING_CAP."""

Sub-función: _probe_one()

async def _probe_one(target) -> (target, bool, float):
    """Abre conexión a target.ip:tcp_port, devuelve (target, up, latency_ms)."""

Integración

En sentinel/scheduler.py:

Modelo de datos

Clase SentinelTarget en scheduler.py extendida con:

Poblada desde MonitoringTarget via from_store_row().

Métricas

Escriben en store SQLite, luego ingest REST del Agente envía al SaaS → sentinel_ingest.py → persiste en BD.

Constantes

TCP_TIMEOUT_S = 3.0
MAX_CONCURRENT_TCP = 20

Tests

Incluidos en tests/api/test_tcp_probe.py (cobertura de lote, metrics, circuit breaker).

Véase también

Subir