Machine learning, score y forecast
SPOT aprende el comportamiento esperado de cada target SAP, métrica, parámetros y
serie. adaptive-robust-v4 está orientado a precisión: un score alto exige que
el cambio sea raro, material y perjudicial para la salud de esa métrica.
ML complementa los thresholds. No confirma una causa raíz ni sustituye Events, Jobs, Alerts o el contexto SAP.
Controles globales
El menú global Analysis empieza desactivado y permite mostrar:
- Static thresholds: líneas warning y critical.
- Expected range: banda calibrada y valor típico.
- Forecast: predicción de las próximas 24 horas.
- ML score points: puntos sobre la serie real y selector de score 0–100.
El ajuste se aplica a todas las gráficas temporales compatibles. Al expandir una gráfica puedes activar Forecast o ML scores sólo para ese modal.
Qué aprende el modelo
- Usa hasta 42 días de observaciones en buckets internos de 5 minutos.
- Trabaja en la zona horaria de la fuente para respetar el ciclo diario, semanal y los cambios de horario.
- Compara modelos de nivel/tendencia, estacionalidad diaria, semanal, combinada y señales esporádicas. Conserva el modelo más sencillo que obtenga una precisión equivalente en validación temporal.
- En el entrenamiento diario elige el modelo para el valor central de cada horizonte por separado, según errores de pronósticos anteriores. Cada pronóstico histórico se evalúa sólo con datos disponibles antes de emitirlo; por eso una misma serie puede usar modelos distintos a una hora y a 24 horas.
- Para las señales de nivel compara el último bucket cerrado con la mediana de la última hora y la de 24 horas. Elige por horizonte con validación causal diaria; si la opción reciente no mejora más de un 5 %, conserva la de 24 horas.
- Calibra la banda esperada con errores de predicciones pasadas que no vieron el futuro. El forecast de una hora y de 24 horas calibra su intervalo con errores de su propio horizonte. Usa los últimos 14 días de errores evaluables y da la mitad de peso a los de hace 7 días frente a los recientes.
- La banda histórica que usan el score y las alertas conserva un intervalo conservador del 99 %. El forecast presenta por separado un objetivo nominal de cobertura del 95 %.
- Permanece
warming_uphasta disponer de al menos 21 días, tres ciclos completos y 70 % de cobertura.
La cobertura respeta la cadencia canónica de cada métrica. Por ejemplo, las tasas de error ICM se recogen cada 15 minutos aunque el motor mantenga buckets internos de cinco minutos; esas muestras regulares no se contabilizan como datos ausentes.
SPOT consulta los 42 días en fragmentos de siete días y, si una consulta es
demasiado grande o agota su tiempo, la divide hasta seis horas. Sólo publica el
modelo cuando la ventana está completa; un fragmento fallido deja la variante
en training_error y no crea un modelo parcial.
Cada vista usa la identidad exacta del target SAP, metricId, parámetros y clave
canónica de serie. Un nombre visible no se usa para unir modelos. El score de
una observación corresponde sólo a ese timestamp; SPOT no reutiliza el último
score para un valor más reciente.
En on-prem, modelos, series y cachés se separan por readScopeId + targetId y
las búsquedas filtran el source_id exacto. Dos SAP que comparten namespace
nunca entrenan un modelo común. El ID del scope y el alias visible no forman
parte de la identidad SAP.
Elasticsearch externo on-prem
En una suite external, el connector sólo publica telemetría. El backend SPOT descubre los targets desde sus read scopes y, después de que un administrador habilite ML, ejecuta automáticamente:
- inferencia cada cinco minutos;
- actualización de forecast cada hora;
- entrenamiento diario.
Antes de la primera activación, Configuración > Elasticsearch read scopes >
Run ML preflight exige como Data Streams nativos los nombres exactos de
metrics y logs, comprueba la zona IANA por target y los permisos de una
credencial writer independiente. Además consulta las mismas series canónicas
que entrenará el worker: al menos una debe alcanzar 21 días, tres ciclos
semanales y 70 % de cobertura dentro de la ventana de 42 días. Otros documentos
schema v2 no sustituyen esa evidencia. Es una prueba de sólo lectura y no
modifica el Elastic externo. Si falla, SPOT no guarda el estado habilitado ni
inicia workers.
Los cuatro destinos de modelos, baselines, forecasts y anomalías son datos
derivados administrados por SPOT. No son Data Streams de telemetría y no
autorizan a SPOT a crear o cambiar metrics, logs, templates o ILM. Un error
operativo aparece como preflight, readiness, writer, storage o runtime
sin mostrar endpoints, credenciales ni errores crudos.
Cómo interpretar el score
El score 0–100 combina:
- Rareza: qué probabilidad tenía una desviación igual o mayor según el patrón calibrado.
- Impacto: cuánto supera el cambio un mínimo material para la unidad y la escala habitual.
- Dirección: en latencia, utilización, errores o edad suele importar la subida; en espacio libre, disponibilidad o ratios saludables, la bajada.
- Persistencia: además del punto actual, se revisan ventanas de 3, 6 y 12 observaciones nuevas.
Una mejora no abre una incidencia ML. Por ejemplo, bajar la latencia o aumentar el espacio libre puede salir de la banda, pero no representa degradación.
La escala está calibrada para que 75 represente aproximadamente una
desviación rara y 90 una desviación mucho más excepcional, siempre que el
impacto también sea material. Los thresholds efectivos siguen siendo
configurables con 0 ≤ warning < critical ≤ 100.
Picos, persistencia y alertas
Un punto aislado puede aparecer en la gráfica como evidencia sin abrir una incidencia. Con el perfil predeterminado de precisión, ML requiere dos observaciones anómalas distintas durante al menos cinco minutos. Sólo un evento excepcional de score 100 e impacto extremo puede abrirse con un punto.
Repetir la evaluación del mismo bucket no incrementa la persistencia ni genera
otra incidencia. Dos observaciones sanas distintas resuelven la condición ML.
Los estados warming_up, no_recent_data, insufficient_history,
insufficient_coverage, training_error, no_matching_series o unavailable
no disparan ML.
Al activar adaptive-robust-v4, cada serie conserva su evidencia histórica,
score y anomalías de v3 estrictamente anteriores a su propio momento de corte.
La evidencia v4 empieza en ese momento: un mismo timestamp no combina ambas
generaciones. Las alertas pasadas no se recalculan. Consulta el estado y la
generación del modelo de cada serie para interpretar puntos antes y después
del cambio.
Forecast y explicación
El forecast cubre 24 horas con el modelo seleccionado y una banda calibrada. La línea Now separa histórico y futuro, sombreado en la gráfica. Los nuevos valores observados actualizan el forecast horario, pero la selección del modelo para cada horizonte sólo cambia tras el siguiente entrenamiento diario. Si llega tarde un bucket ya cerrado o se corrige su valor, el siguiente forecast horario incorpora esa observación. Esta actualización no cambia la selección diaria del modelo ni las alertas pasadas. Así puede seguir un nivel reciente cuando la evidencia lo respalda; una línea plana también puede ser válida. Una mejora en memoria no implica la misma mejora en todas las métricas. La precisión del valor central y la cobertura del intervalo son medidas distintas: mejorar una no garantiza mejorar la otra.
Señala un timestamp para comparar todas las series visibles en una tarjeta
compacta. En el histórico muestra el valor observado de cada serie; en el
futuro identifica los valores como Forecast, no como mediciones. Si una
serie no tiene muestra en ese instante, indica que falta. Al señalar un punto
ML o un forecast aparece al lado el contexto de esa serie: centro, rango y
score o estado de calibración. La tarjeta se mueve al lado con espacio o se
apila en una pantalla estrecha. Pulsa View details para abrir la explicación
completa del punto y cerrarla con Escape; también puedes activar un marcador
ML con clic o teclado. El detalle incluye límites, tipo y generación de modelo,
estado y evidencia disponible, incluido Model confidence index (por
ejemplo, 91 / 100), que no es una probabilidad. El mismo flujo funciona en
la gráfica expandida. Las listas largas se desplazan sin salir de la pantalla.
Un hueco no hereda valores de otra serie ni del timestamp anterior.
Cada muestra futura sólo se muestra cerca de su propio timestamp según la
cadencia observada de esa serie; un forecast aislado no se extiende por un hueco.
En el histórico, Sampling coverage (Data coverage) indica qué proporción
de muestras esperadas llegó. Validation coverage indica qué proporción de
observaciones de validación quedó dentro de la banda calibrada. Son medidas
distintas y siempre pertenecen a la serie señalada.
Un ML score 0 o Validation coverage 0 % medido es evidencia válida de
esa serie y ese instante; si el campo no aparece, no hay evidencia disponible
para él. No interpretes un campo ausente como cero.
En cada punto futuro, Nominal coverage es el objetivo del forecast (95 %),
no un resultado observado ni la cobertura del intervalo histórico de alertas
(99 %). Validation coverage mide qué proporción de intervalos de forecast
v4 realmente emitidos cubrió el valor observado tras vencer su horizonte.
Sólo aparece cuando existe evidencia emitida y ya evaluable;
0 % medido es válido y un campo ausente no significa cero. Calibration
samples cuenta los errores de pronósticos históricos ya evaluables usados
para estimar la banda; no es el número de intervalos emitidos con el que se
calcula Validation coverage. Calibration
status indica ready si hay evidencia suficiente, limited si es limitada
o insufficient si aún no alcanza para estimarla con confianza. Si faltan muestras,
no leas el objetivo nominal como cobertura conseguida. Los 21 días mínimos
de entrenamiento tampoco garantizan suficientes errores ya evaluables para
todos los horizontes; revisa las muestras y el estado de calibración de cada
uno. El 95 % es un objetivo, no una cobertura garantizada. Model confidence
index usa una escala de 0 a 100: no es una probabilidad calibrada ni una
garantía de que el valor futuro caerá dentro de la banda.
Para calibrar la banda operativa, SPOT compara el valor central de pronósticos
realmente emitidos con observaciones posteriores ya cerradas de la misma
serie y horizonte. Un intervalo antiguo sin valor central emitido no aporta un
error estimable; SPOT no lo reconstruye. Por eso puede verse un forecast mientras
Calibration status sigue en insufficient: tener mucho histórico no
sustituye los pronósticos emitidos y ya evaluables.
Baseline y forecast muestran estados independientes. Un forecast disponible no oculta que el baseline todavía esté calentando o no tenga cobertura suficiente. Los mensajes distinguen datos recientes ausentes, historia o cobertura insuficiente, error de entrenamiento, serie no coincidente e indisponibilidad. Los forecasts listos se actualizan una vez por hora.
Si warming_up permanece sin cambios durante más de un ciclo de entrenamiento
aunque la gráfica siga recibiendo datos recientes, revisa Alerts → ML
coverage. El estado debe reflejar cobertura o historia insuficiente; un error
de procesamiento persistente requiere revisión del administrador de SPOT.
En la gráfica y en Alert Center puedes revisar:
- valor observado, valor típico y banda;
- cambio absoluto y relativo;
point scoreymulti-bucket score;- rareza, impacto, dirección y persistencia;
- modelo, muestras efectivas, cobertura y motivos del score.
Consulta Alerts → ML coverage para confirmar versión, generación, zona horaria, estado, cobertura, calibración y última inferencia antes de usar una regla ML. Forecast sigue siendo evidencia visual y no abre alertas predictivas.
Los tooltips de evidencia se mantienen dentro de la ventana y se pueden desplazar cuando la explicación es larga; vuelve a señalar un punto tras cambiar el tamaño o desplazar la pantalla. En Analysis, los dos controles de rango ML conservan el uso con teclado incluso si ambos límites tienen el mismo valor.