Funcionalidadactivecreado Mon Aug 24#monitoring#frontend#agent#fleet#onboarding#ux#observability#javascript
User value
Cuando una organización nueva entra al Observatory sin tener todavía ningún agente instalado, ahora lo sabe de inmediato: un aviso destacado aparece arriba del contenido, en cualquier pestaña, explicando que la monitorización necesita el Local Agent y ofreciendo el botón Download Agent para instalarlo. Antes de este cambio, la única pista existente (el panel “No agents registered” del widget Agent Fleet) vivía al final de la pestaña Overview, bajo el pliegue — un ensayo end-to-end con una organización recién creada demostró que nadie llegaba a verlo.
Cómo usarla
- El aviso se pinta solo — no requiere acción del usuario para aparecer.
- Mientras la flota de agentes de la organización esté vacía (
fleet.length === 0), el contenedor#observatory-agent-callout(declarado entemplates/monitoring/observatory.html, justo antes de.tabs-content-area) muestra el mensaje “Monitoring needs the Local Agent” con el botón Download Agent. - El botón dispara
Observatory.startAgentRecovery(función ya existente enObservatorySentinel.js, reutilizada aquí — no es un flujo nuevo de descarga). - En cuanto se empareja el primer agente, el aviso desaparece solo en el siguiente ciclo de polling.
Implementación
static/js/pages/observatory/ObservatoryAgent.js— dentro deloadAgentStatus(), la rama “Truly offline / no agent” marcashowInstallCallout = true; al final de la función se llama a la nueva_updateInstallCallout(show), que pinta o vacía el contenedor#observatory-agent-callout. Usacallout.dataset.renderedcomo guarda para no repintar en cada ciclo de poll.templates/monitoring/observatory.html— nuevo<div id="observatory-agent-callout"></div>fuera del área de pestañas (tabs-content-area), por eso el aviso es visible sin importar qué pestaña esté activa.- Strings: nuevos textos con
t()(“Monitoring needs the Local Agent”, “Install the CreaRack Agent on a machine in your network…”, “Download Agent”) con su traducción ES añadida al catálogo (locale/es/LC_MESSAGES/djangojs.po). - Reutiliza el botón/flujo de recuperación existente (
startAgentRecovery, protocolocrearack://start) en vez de crear un mecanismo de descarga nuevo — distinto del banner de [[feature—network—agent-onboarding-descarga-guiada]] (ese es específico de los flujos de auto-discovery de red). - Fix de paso, mismo commit:
ObservatoryOverview.jsse importaba con dos query strings?v=distintas a la vez (?v=8desdeobservatory.js,?v=7desdeObservatoryWebSocket.js) → dos URLs para el mismo módulo lógico → doble ejecución (misma clase de fallo que [[incident—20260821—add-rack-doble-post-manifest-hash]], aunque con mecanismo distinto: aquí es un desajuste manual de cache-busting, no manifest hasheado). Alineadas ambas a?v=9, con comentario centinela enObservatoryWebSocket.jsrecordando que el?v=debe coincidir siempre con el deobservatory.js.
Commits relacionados
a06de1689fa84dddc9b28154ff673534138579e0(2026-08-24) — PR #427, v1.82.9. Hallazgo de Edu en el ensayo E2E de una organización nueva.
Véase también
- [[feature—monitoring—avisos-sentinel-24-7]]
- [[feature—network—agent-onboarding-descarga-guiada]]
- [[crearack—monitoring—fleet-manager]]
- [[crearack—terminal—local-agent]]
- [[crearack-tech—agents—dev-observatory]]
- [[incident—20260821—add-rack-doble-post-manifest-hash]]