CreaRack-SL

MonitoringTargetListOut — lista de equipos sin las claves solo-Agente (1,05 MB → ~0,1 MB)

Propósito

La lista de targets de monitorización viajaba al frontend con TODAS sus claves, incluidas varias que solo usa el Agente local (monitoring_oids, selected_interfaces, fast_poll_oids) y que el navegador nunca necesita. En el CCIB, con la flota real del evento, esa lista pesaba 1,05 MB por recarga; el presupuesto de payload medido el 16-09 exigía la mitad.

Contrato

  • MonitoringTargetListOut (schema Ninja en monitoring/api/schemas.py) es la forma slim de la lista — sin las claves solo-Agente. El endpoint de listado la usa por defecto.
  • public_config_slim (en monitoring/models.py) es el método del modelo que produce esa versión reducida a partir de la configuración completa.
  • La ficha completa (GET /targets/{id}) sigue devolviendo TODAS las claves — nada cambia ahí, y un PUT desde una fila de la lista no borra las claves solo-Agente porque nunca las tuvo que enviar de vuelta.
  • El Observatory pide la ficha completa una sola vez al abrir la pestaña de detalle (ObservatoryTargetDetail.js); el refresco periódico de la lista usa siempre la versión slim y no la pierde.

Resultado medido

1,05 MB → ~0,1 MB por recarga de la lista (factor ~10x), medido contra la carga real del CCIB.

Dependencias

  • monitoring/api/targets.py — endpoint de listado, usa el schema slim.
  • static/js/pages/observatory.js + ObservatoryTargetDetail.js — consumen la ficha completa solo al abrir detalle.
  • Tests: tests/monitoring/test_targets_list_slim_config.py (86 líneas, pytest) + 4 tests vitest (observatory_target_detail.test.js).

Commits relacionados

  • 3b047c97 (16-09-2026) — v1.135.3, s329.

Véase también

  • [[feature—monitoring—dashboard-customize]]
  • [[feature—network—deep-discovery-batch-dispatch]]
  • [[incident—20260916—graficas-bandwidth-caidas-falsas-eurofinance]]
  • [[incident—20260915—vmalert-alertas-ciegas]]