SAP connections
Una SAP connection define el sistema SAP, el connector asignado y las familias que ese runtime extrae. La contraseña y el scope son globales a la fuente; los Data Streams y credenciales los resuelve el servidor.
Cada conexión conserva una identidad estable aunque cambie el orden de las fuentes. Si la configuración aplicada carece de esa identidad, el connector la rechaza y muestra un error saneado en lugar de asociar cursores o estado a otra conexión.
Campos
Configura alias, ASHOST, SYSNR, mandante, usuario RFC, contraseña, idioma, zona IANA y connector. Una fuente deshabilitada o sin connector no se procesa.
La contraseña guardada queda ligada al connector asignado y a ASHOST, SYSNR,
mandante y usuario RFC. Puedes editar alias, idioma, zona o colecciones sin
volver a escribirla. Si cambias cualquiera de esos cinco campos de confianza,
SPOT exige una contraseña nueva; ******** o un campo vacío no reutilizan la
credencial anterior para otro runtime o sistema SAP.
Ocho colecciones
| Colección | Default | Resultado |
|---|---|---|
| Metrics | 300 s | CCMS y métricas Operations |
| CCMS events | 300 s | Eventos normalizados |
| Jobs | 300 s | Job runs y snapshot de long-running jobs |
| Program statistics | 300 s | Ejecuciones y dependencias estándar por programa ABAP |
| Work processes | 300 s | Snapshots de procesos |
| ABAP dumps | 300 s | Dumps ST22 saneados |
| RFC failures | 300 s | Fallos y recuperaciones RFC sin payload |
| Certificates | 86400 s | Inventario y transiciones de certificados |
Cada control se puede habilitar/deshabilitar y ajustar por separado. Mantén 300 segundos en operación normal; certificados se consultan una vez al día. El intervalo es una frecuencia fija alineada al reloj, no una espera que empieza cuando acaba la extracción anterior. Con 300 segundos, las ocho familias empiezan en fases deterministas después de la frontera exacta y dentro del primer minuto de cada bloque de cinco minutos. Un dispatcher acotado conserva como máximo una ejecución pendiente por source/familia, reserva capacidad para Metrics, Work Processes y el snapshot de long-running jobs, y agrupa el resto con reparto justo. Así, una lectura CCMS o Jobs lenta no crea decenas de workers, no acumula backlog y no retrasa las colecciones prioritarias ni el heartbeat. Cada tarea ordinaria tiene un límite de 75 segundos: al vencer, sólo se cancela y retira su conexión SAP, sin confirmar estado parcial. Antes de iniciar el hijo aislado de Program statistics, la admisión de la fuente tiene un límite independiente de 30 segundos. Sólo después de obtenerla procesa una única subventana con un presupuesto nuevo de 240 segundos y reservas finitas para terminar y recoger el worker. Nunca hereda el tiempo residual de otra lectura. Si la admisión vence o se cancela, no se ejecuta el worker, no se subdivide la ventana, no se exporta, no se confirma ACK ni se mueve el cursor; la siguiente fuente en cola puede continuar. Si vence el presupuesto, el worker se interrumpe y se recoge de forma acotada. El padre conserva fronteras saneadas de descriptor, preparación de parámetros, selección de outputs, invocación y decodificación aun sin terminal. Duración cero marca entrada y una positiva, finalización; no se incluyen valores RFC. Esta evidencia diagnostica la última etapa observada, pero no valida datos ni permite exportación, ACK o avance del checkpoint. Si el hijo alcanza exactamente su deadline de 240 segundos y la subventana activa aún es divisible, el coordinador no exporta y mantiene intactos el cursor y los ACK previos. Sustituye duraderamente sólo esa subventana por dos mitades contiguas, conserva el resto de la cola y el backoff, y reencola la continuación inmediatamente con reparto justo. Una cancelación por actualización o recarga prevalece, nunca autoriza esta división y se mantiene como cancelación, no como fallo de handoff. Las familias prioritarias conservan su planificación independiente. Tras arrancar o recargar configuración se hace una primera extracción escalonada sin esperar un intervalo completo.
Las subventanas parten de 60 segundos. Una lectura completa que tarda al menos 60 segundos o devuelve más de 400 registros principales reduce a la mitad el máximo durable de esa fuente, hasta un segundo. Exactamente 400 no lo reduce y la hoja aceptada conserva todas sus ejecuciones. El máximo puede recuperarse tras ocho hojas rápidas y confirmadas, sólo para el siguiente horizonte; no modifica cobertura confirmada ni se comparte con otra conexión SAP.
Capabilities
Tras el probe, cada colección muestra:
supported: lectura disponible;partial: medidas principales con subregistros opcionales incompletos;unsupported: la release o la forma expuesta no es compatible;unauthorized: faltan permisos RFC;unavailable: el sistema SAP no ofrece esa subcapacidad;error: fallo saneado de lectura.
La tarjeta separa Scoped telemetry del heartbeat del connector: sólo indica
datos disponibles cuando existe un documento v2 del source_id exacto. Cada
consulta distingue No source data yet —consulta válida sin documentos— de
Source data status unavailable —no se pudo verificar el estado—, sin mostrar
detalles internos de Elasticsearch. Cada
colección muestra el estado vigente, Last success y Last check. Un error
anterior deja de mostrarse tras un éxito; Details pliega el último resultado
de cada subcapacidad, no un historial de errores. Una colección no soportada no
bloquea las demás.
Una tabla o lista obligatoria omitida por SAP no se interpreta como un resultado vacío. La colección queda en error, conserva el último estado confirmado y no publica retiradas o recuperaciones falsas. Un vacío explícito y válido sí se muestra como una consulta correcta sin resultados.
Program statistics usa la función RFC estándar SWNC_GET_STATRECS_FRAME del
grupo SCSM_NW_WORKLOAD; no instala un transport ni código ABAP propio. El
usuario técnico necesita el acceso S_RFC mínimo a esa función. SPOT expresa
la ventana con el código SAP UTC, fija el mandante de la conexión y envía
READ_START_DATE/TIME, READ_END_DATE/TIME y READ_TIME_ZONE. El descriptor
de la misma invocación debe declarar MAX_RECORDS como IMPORT INT opcional
con default -1, READ_ONLY_MAINRECORDS como IMPORT CHAR, y
ALL_STATRECS/PROTOCOL como EXPORT TABLE; SPOT envía
READ_ONLY_MAINRECORDS="X", omite MAX_RECORDS y aplica su default nativo, sin
un límite artificial. La release debe exponer la función de forma remota y
conservar los registros. Cada ciclo relee 15 minutos de solape e intenta avanzar como máximo
30, en frames de hasta 60 segundos. El count no indica truncación; superar 400
registros adapta sólo las hojas futuras de esa fuente. El
protocolo puede estar vacío o contener sólo filas estándar de finalización con
RC decimal cero; si falta, es ambiguo, tiene otra forma o un RC no cero, la
hoja queda pendiente y su texto de error no se registra. La truncación explícita también deja la hoja pendiente. La
truncación explícita puede subdividirse hasta un segundo. El connector admite
hasta 32 lecturas RFC de Programs por ventana móvil de 60 segundos entre todas
las fuentes, incluso tras reinicio. Las hojas menores pueden consumir antes
esa capacidad; la continuación espera sin reservar conexión SAP ni iniciar
otro worker. SPOT exporta cada hoja completa con su manifiesto y confirma su
extremo sólo tras el ACK. Si una hoja queda pendiente por cancelación, error o
falta de ACK, conserva sus subventanas exactas y las reintenta con backoff sin
volver a leer hojas anteriores ya confirmadas. Esto también se aplica a la
primera ronda. Sólo tras completar ese horizonte, el ciclo siguiente vuelve a
releer 15 minutos desde el checkpoint. Si el atraso supera el intervalo de
colección más 120 segundos, empieza inmediatamente; cerca del presente vuelve
la cadencia normal. Ningún tramo no leído se presenta como cubierto. Comprueba
el último instante SAP confirmado y no sólo la llegada. La respuesta
de cada RFC tiene un presupuesto de decodificación de 20.000 filas y 64 MiB.
Cada hoja retiene como máximo 50.000 documentos y 32 MiB normalizados
serializados, incluido el manifiesto. Superar un límite o repetir una identidad
con contenido incompatible deja esa hoja sin export ni checkpoint.
Estos límites no acotan la memoria interna del invoke RFC nativo. Una hoja
válida conserva todos los registros principales y un manifiesto con conteo y
ventana exactos; sólo el ACK confirma su extremo. La lectura queda partial
porque batchstep, rfc, http y epp están explícitamente no disponibles;
su ausencia no demuestra que esos pasos, llamadas o contextos no ocurrieran.
Si la capacidad queda en error, el diagnóstico saneado separa agotamiento de
llamadas, saturación en el frame mínimo, ventana inválida, tamaño agregado y
conflicto de identidad/sistema. Esas clases sólo son concluyentes cuando la
versión instalada las reporta; no reinterpretan un error genérico anterior.
La ventana adaptativa reduce el working set esperado, pero no garantiza un
techo universal de memoria para todos los SAP. Tras ocho hojas seguidas del
tamaño aprendido, completas y confirmadas, de menos de diez segundos, hasta
100 registros principales y 8 MiB normalizados cada una, puede duplicarse
hasta 60 segundos sólo para el siguiente horizonte. Los fallos reinician la
racha; timeout o saturación impone 15 minutos sin crecimiento. Si
Program statistics coincide con presión sostenida de memoria o deja de
completar mientras avanzan heartbeat u otras familias, deshabilita sólo esa
colección temporalmente, conserva la configuración anterior y deja habilitado el
resto. Reclaim bajo
memory.high sin OOM requiere medir el proceso completo; no demuestra por sí
solo una fuga de heap ni un spin nativo. Instala una versión corregida y
soportada del connector, mídela con carga SAP real y el headroom del host, y
confirma el progreso de todas las familias antes de volver a habilitar la
colección. No eleves límites de recursos como primer paso.
En Jobs, el connector encola las ejecuciones terminales y recoge su Job Log
completo de forma asíncrona. SAP no pagina esa respuesta, por lo que la lectura
puede elevar transitoriamente el consumo de memoria del agent; las siguientes
observaciones de Job Runs siguen avanzando de forma independiente. Los estados
job_runs=supported y job_logs=unavailable aún pueden coexistir cuando SAP no
ofrece la lectura del log. Esto no bloquea ejecuciones, estados,
canceled-jobs, long-running jobs ni las líneas históricas ya indexadas.
Privacidad
Dumps nunca incluyen variables de memoria o datos de negocio. RFC nunca incluye payload de llamadas. Certificados sólo exponen metadatos públicos y nunca claves privadas.
Validación
- Asigna un connector con heartbeat reciente.
- Guarda la fuente y espera la revisión de configuración aplicada.
- Revisa capacidades y Agent logs.
- Comprueba Metrics/Events, Programs y los dominios Job Monitoring, Certificates y RFC & Integrations.
- Si aparece
Agent upgrade required, actualiza el connector a 2.0; no es un cero válido.