Volver a la wiki

AIInsight · Modelo monitoring

AIInsight · Modelo monitoring

Propósito

AIInsight es el registro central del diagnóstico generado por CNS (CreaRack Network Sentinel). Cada instancia encapsula el análisis de una anomalía: causa raíz detectada por IA, comandos correctivos sugeridos, nivel de riesgo y trazabilidad ITSM completa (SLA, grupo de incidentes, runbook). Transita por el ciclo pending → executing → applied/acknowledged/failed/expired.

Contrato

Campos principales:

CampoTipoDescripción
incident_idUUIDFieldIdentificador único global auto-generado
case_numberPositiveIntegerFieldSecuencial por organización (CNS-000042)
organizationFK(Organization)Tenant propietario
targetFK(MonitoringTarget)Dispositivo que originó la anomalía
summaryCharField(200)Resumen breve
root_causeTextFieldCausa raíz identificada
confidence_scoreFloatFieldConfianza del modelo (0.0-1.0)
osi_layerIntegerField(null)Capa OSI afectada (1-7)
risk_levelTextChoicesLOW / MEDIUM / HIGH
commandsJSONFieldComandos correctivos
rollback_commandsJSONFieldComandos de reversión
statusTextChoicespending/executing/applied/acknowledged/expired/failed
ai_providerCharField(20)gemini o static
anomaly_triggerTextFieldDescripción original de la anomalía
raw_snmp_dataJSONField(null)Telemetría SNMP cruda
raw_ssh_logsTextField(null)Logs SSH crudos
sla_ack_deadlineDateTimeFieldLímite SLA para acknowledgement
sla_resolve_deadlineDateTimeFieldLímite SLA para resolución
sla_ack_breachedBooleanFieldFlag de brecha SLA
incident_groupFK(IncidentGroup, null)Correlación (SET_NULL)
known_issueFK(KnownIssue, null)Problema conocido (SET_NULL)
suggested_runbookFK(Runbook, null)Runbook auto-asignado
expires_atDateTimeFieldTTL: created_at + episode_ttl() — 4h por defecto, 48h si category=CONNECTIVITY (desde v1.87.2, task #239)

Métodos y propiedades:

Meta:

Dependencias entrantes

MóduloArchivoRol
insight_servicemonitoring/services/insight_service.pyCrea, aplica, revierte, expira — orquesta ciclo de vida
escalation_servicemonitoring/services/escalation_service.pyEscala pending/executing según EscalationPolicy
correlation_servicemonitoring/services/correlation_service.pyAgrupa en IncidentGroup por target/subnet/causa
sla_servicemonitoring/services/sla_service.pyCalcula deadlines, detecta brechas, MTTA/MTTR
API insightsmonitoring/api/insights.pyREST: consulta, acknowledge, purge
API insight_executionmonitoring/api/insight_execution.pyEndpoint de aplicación vía Agent — apply/rollback exigen Agente conectado antes de mutar el insight y revierten el estado si el despacho falla (cola de auditoría B, task #286)

Dependencias salientes

Ejemplos

# Creación desde insight_service.create_insight()
insight = await AIInsight.objects.acreate(
    organization=org,
    target=target,
    summary=result.diagnosis.summary[:200],
    root_cause=result.diagnosis.root_cause,
    confidence_score=result.diagnosis.confidence_score,
    risk_level=result.recommendation.risk_level,
    commands=result.recommendation.commands,
    rollback_commands=result.recommendation.rollback_commands,
    status=AIInsight.Status.PENDING,
    ai_provider=provider.name,
    anomaly_trigger=anomaly_description,
)

Rate limiting: máx 5 insights/dispositivo/hora y 100/tenant/hora. Si Gemini falla, fallback a static_rules.

Véase también

Subir