Saltar al contenido principal

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ónDefaultResultado
Metrics300 sCCMS y métricas Operations
CCMS events300 sEventos normalizados
Jobs300 sJob runs y snapshot de long-running jobs
Program statistics300 sEjecuciones y dependencias estándar por programa ABAP
Work processes300 sSnapshots de procesos
ABAP dumps300 sDumps ST22 saneados
RFC failures300 sFallos y recuperaciones RFC sin payload
Certificates86400 sInventario 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​

  1. Asigna un connector con heartbeat reciente.
  2. Guarda la fuente y espera la revisión de configuración aplicada.
  3. Revisa capacidades y Agent logs.
  4. Comprueba Metrics/Events, Programs y los dominios Job Monitoring, Certificates y RFC & Integrations.
  5. Si aparece Agent upgrade required, actualiza el connector a 2.0; no es un cero válido.