Áú»¢¶Ä²©

Esta es una traducci¨®n de la p¨¢gina de documentaci¨®n original en espa?ol. Ay¨²danos a mejorarla.

2 Detalles de preprocesamiento

Descripci¨®n general

Esta secci¨®n proporciona detalles del preprocesamiento del valor del item. El valor del item El preprocesamiento permite definir y ejecutar transformaci¨®n reglas para los valores de los elementos recibidos.

El preprocesamiento lo gestiona el proceso del administrador de preprocesamiento junto con los trabajadores de preprocesamiento que realizan los pasos de preprocesamiento. Todos los valores (con o sin preprocesamiento) de diferentes recolectores de datos pasan por el administrador de preprocesamiento antes se agrega al cach¨¦ del historial. Se utiliza comunicaci¨®n IPC basada en sockets. entre los recolectores de datos (encuestadores, tramperos, etc.) y el preprocesamiento proceso. Ya sea el servidor Áú»¢¶Ä²© o el proxy Áú»¢¶Ä²© (para los elementos monitoreados por el proxy) realiza los pasos de preprocesamiento.m¨¦tricam¨¦trica

Procesamiento del valor de la m¨¦trica

Para visualizar el flujo de datos desde la fuente de datos a la base de datos Áú»¢¶Ä²©, podemos utilizar el siguiente diagrama simplificado:

El diagrama anterior muestra solo procesos, objetos y acciones relacionados con el procesamiento del valor de la m¨¦trica en forma simplificada. El diagrama no muestra cambios de direcci¨®n condicionales, manejo de errores o bucles. La cach¨¦ de datos locales del administrador de preprocesamiento tampoco se muestra porque no afecta directamente el flujo de datos. El objetivo de este diagrama es mostrar los procesos. involucrados en el procesamiento del valor de la m¨¦trica y la forma en que interact¨²an.

  • La recopilaci¨®n de datos comienza con datos sin procesar de una fuente de datos. En este punto, los datos contienen solo ID, marca de tiempo y valor (pueden ser m¨²ltiples valores tambi¨¦n)
  • No importa qu¨¦ tipo de recolector de datos se utilice, la idea es la misma para controles activos o pasivos, para m¨¦tricas de captura, etc., ya que solo cambia el formato de datos y el iniciador de comunicaci¨®n (tanto el recolector de datos que est¨¢ esperando una conexi¨®n y datos, o el recolector de datos que inicia la comunicaci¨®n y solicita los datos). Los datos brutos son validados, la configuraci¨®n de la m¨¦trica se recupera de la cach¨¦ de configuraci¨®n (los datos se enriquecen con los datos de configuraci¨®n).
  • Se utiliza un mecanismo IPC basado en sockets para pasar datos desde los recolectores de datos al responsable de preprocesamiento. En este punto el recolector de datos contin¨²a recopilando datos sin esperar la respuesta del gestor de preprocesamiento.
  • Se realiza el preprocesamiento de datos. Esto incluye la ejecuci¨®n de pasos de preprocesamiento y procesamiento de m¨¦tricas dependientes.

Una m¨¦trica puede cambiar su estado a NO SOPORTADA mientras se realiza el preprocesamiento si alguno de los pasos de preprocesamiento falla.

  • Los datos hist¨®ricos de la cach¨¦ de datos local del administrador de preprocesamiento se descargan en la cach¨¦ del historial.
  • En este punto el flujo de datos se detiene hasta la pr¨®xima sincronizaci¨®n de cach¨¦ de historial (cuando el proceso de sincronizaci¨®n de historial realiza la sincronizaci¨®n de datos).
  • El proceso de sincronizaci¨®n comienza con la normalizaci¨®n de los datos antes de almacenarlos. en la base de datos Áú»¢¶Ä²©. La normalizaci¨®n de datos realiza conversiones al tipo de m¨¦trica deseado (tipo definido en la configuraci¨®n de la m¨¦trica), incluido el truncamiento de datos textuales basado en tama?os predefinidos permitidos para esos tipos (HISTORY_STR_VALUE_LEN para cadena, HISTORY_TEXT_VALUE_LEN para texto e HISTORY_LOG_VALUE_LEN para valores de registro). Los datos se env¨ªan a la base de datos de Áú»¢¶Ä²© despu¨¦s de que la normalizaci¨®n est¨¢ hecha.

Una m¨¦trica puede cambiar su estado a NO SOPORTADA si falla la normalizaci¨®n de datos (por ejemplo, cuando un valor textual no se puede convertir a n¨²mero).

  • Los datos recopilados se est¨¢n procesando - se verifican los iniciadores, la configuraci¨®n de la m¨¦trica se actualiza si la m¨¦trica pasa a ser NO SOPORTADA, etc.
  • Esto se considera el final del flujo de datos desde el punto de vista de procesamiento del valor de la m¨¦trica.

Preprocesamiento del valor de la m¨¦trica

El preprocesamiento de datos se realiza en los siguientes pasos:

  • El valor de la m¨¦trica se pasa al gestor de preprocesamiento mediante un mecanismo IPC basado en socket UNIX.
  • Si la m¨¦trica no tiene preprocesamiento ni m¨¦tricas dependientes, su valor se agrega a la cach¨¦ del historial o se env¨ªa al administrador de LLD. De lo contrario:
    • Se crea una tarea de preprocesamiento y se agrega a la cola y se notifica a los trabajadores de preprocesamiento sobre la nueva tarea.
    • En este punto, el flujo de datos se detiene hasta que haya al menos un trabajador de preprocesamiento desocupado (es decir, que no est¨¦ ejecutando ninguna tarea).
    • Cuando un trabajador de preprocesamiento est¨¢ disponible, toma la siguiente tarea de la cola.
    • Una vez finalizado el preprocesamiento (tanto la ejecuci¨®n fallida o exitosa de los pasos de preprocesamiento), el valor preprocesado se agrega a la cola de tareas terminadas y se notifica al gestor sobre una nueva tarea terminada.
    • El gestor de preprocesamiento convierte el resultado al formato deseado (definido por el tipo de valor de la m¨¦trica) y lo agrega a la cach¨¦ del historial o lo env¨ªa al administrador de LLD.
    • Si hay m¨¦tricas dependientes para la m¨¦trica procesada, las m¨¦tricas dependientes se agregan a la cola de preprocesamiento con el valor de la m¨¦trica principal preprocesado. Las m¨¦tricas dependientes se ponen en cola sin pasar por las solicitudes de preprocesamiento de valor normal, pero solo para las m¨¦tricas principales con el valor establecido y no en un estado NO SOPORTADA.

Tenga en cuenta que el diagrama el preprocesamiento de la m¨¦trica principal se simplifica ligeramente al omitir el almacenamiento en cach¨¦ del preprocesamiento.

Cola de preprocesamiento

La cola de preprocesamiento est¨¢ organizada como:

  • la lista de tareas pendientes:
    • tareas creadas directamente a partir de solicitudes de preprocesamiento de valor en el orden en que fueron recibidas.
  • la lista de tareas inmediatas (procesadas antes de las tareas pendientes):
    • tareas de comprobaci¨®n (creadas en respuesta a solicitudes de comprobaci¨®n de m¨¦tricas/preprocesamiento por parte del frontend)
    • tareas de m¨¦tricas dependientes
    • tareas de secuencia (tareas que deben ejecutarse en un orden estricto):
      • tener pasos de preprocesamiento utilizando el ¨²ltimo valor:
        • cambiar
        • throttling
        • JavaScript (almacenamiento en cach¨¦ de c¨®digo de bytes)
      • almacenamiento en cach¨¦ de preprocesamiento de m¨¦tricas dependientes
  • la lista de tareas terminadas

Almacenamiento en cach¨¦ de preprocesamiento

El almacenamiento en cach¨¦ del preprocesamiento se introdujo para mejorar el rendimiento del preprocesamiento de m¨²ltiples m¨¦tricas dependientes que tienen pasos de preprocesamiento similares (que es un resultado LLD com¨²n).

El almacenamiento en cach¨¦ se realiza preprocesando una m¨¦trica dependiente y reutilizando algunos de los datos de preprocesamiento interno para el resto de las m¨¦tricas dependientes. La cach¨¦ de preprocesamiento solo se admite para el primer paso de preprocesamiento de los siguientes tipos:

  • Patr¨®n Prometheus (¨ªndices ingresados por m¨¦tricas)
  • JSONPath (analiza los datos en el ¨¢rbol de objetos e indexa la primera expresi¨®n [?(@.path == "value")])

Trabajadores de preprocesamiento

El archivo de configuraci¨®n del servidor Áú»¢¶Ä²© permite a los usuarios establecer el recuento de subprocesos de trabajo de preprocesamiento. El par¨¢metro de configuraci¨®n StartPreprocessors debe usarse para establecer el n¨²mero de instancias iniciadas previamente de trabajadores de preprocesamiento. El n¨²mero ¨®ptimo de trabajadores de preprocesamiento puede ser determinado por muchos factores, incluido el recuento de m¨¦tricas "preprocesables" (m¨¦tricas que requieren ejecutar alg¨²n paso de preprocesamiento), el recuento de procesos de recopilaci¨®n de datos, el recuento promedio de pasos para el preprocesamiento de m¨¦tricas, etc.

Pero suponiendo que no haya operaciones de preprocesamiento pesadas, como analizar grandes fragmentos XML/JSON, la cantidad de trabajadores de preprocesamiento puede coincidir con la cantidad total de recolectores de datos. De esta manera, en la mayor¨ªa de los casos (excepto en los casos en que los datos del recopilador llegan en masa) habr¨¢ al menos un trabajador de preprocesamiento desocupado para los datos recopilados.

Demasiados procesos de recopilaci¨®n de datos (sondeadores, sondeadores inalcanzables, sondeadores ODBC, sondeadores HTTP, sondeadores Java, pingers, tramppers, proxypollers) junto con el administrador IPMI, el capturador SNMP y los trabajadores de preprocesamiento pueden agotar el l¨ªmite de descriptores de archivos por proceso para el administrador de preprocesamiento.

Agotar el l¨ªmite de descriptores de archivos por proceso har¨¢ que el servidor Áú»¢¶Ä²© se detenga, generalmente poco despu¨¦s del inicio, pero a veces demora m¨¢s. Para evitar tales problemas, revise el archivo de configuraci¨®n del servidor Áú»¢¶Ä²© para optimizar la cantidad de comprobaciones y procesos simult¨¢neos. Adem¨¢s, si es necesario, aseg¨²rese de que el l¨ªmite del descriptor de archivo est¨¦ establecido lo suficientemente alto verificando y ajustando los l¨ªmites del sistema.

Canal de procesamiento de valor

El procesamiento del valor del art¨ªculo se ejecuta en m¨²ltiples pasos (o fases) mediante m¨²ltiples procesos. Esto puede causar:

  • Un art¨ªculo dependiente puede recibir valores, mientras que EL valor maestro no. Esto se puede lograr mediante el siguiente caso de uso:
    • El elemento maestro tiene el tipo de valor "UINT" (se puede usar el elemento trampero), El elemento dependiente tiene el tipo de valor "TEXTO".
    • No se requieren pasos de preprocesamiento tanto para el maestro como para el elementos dependientes.
    • El valor textual (por ejemplo, "abc") debe pasarse al elemento maestro.
    • Como no hay pasos de preprocesamiento que ejecutar, el preprocesamiento El administrador verifica si el elemento maestro no est¨¢ en estado NO SOPORTADO y si se establece el valor (ambos son verdaderos) y pone en cola el elemento dependiente con el mismo valor que el elemento maestro (ya que no hay preprocesamiento pasos).
    • Cuando tanto los elementos maestros como los dependientes llegan al historial fase de sincronizaci¨®n, el elemento maestro pasa a ser NO SOPORTADO debido al error de conversi¨®n de valor (los datos textuales no pueden ser convertido a entero sin signo).

Como resultado, el art¨ªculo dependiente recibe un valor, mientras que el art¨ªculo maestro cambia su estado es NO SOPORTADO.

  • Un art¨ªculo dependiente recibe un valor que no est¨¢ presente en el art¨ªculo maestro. historia. El caso de uso es muy similar al anterior, excepto para el tipo de elemento maestro. Por ejemplo, si se utiliza el tipo "CHAR" para elemento maestro, entonces el valor del elemento maestro se truncar¨¢ en el historial fase de sincronizaci¨®n, mientras que los elementos dependientes recibir¨¢n su valores del valor inicial (no truncado) del elemento maestro.