Áú»¢¶Ä²©

2 Detalles de preprocesamiento

Descripci¨®n general

Esta secci¨®n proporciona detalles del preprocesamiento del valor de la m¨¦trica. El preprocesamiento del valor de la m¨¦trica permite definir y ejecutar reglas de transformaci¨®n para los valores de las m¨¦tricas recibidos.

El preprocesamiento lo gestiona el proceso del administrador de preprocesamiento, incorporado en Áú»¢¶Ä²© 3.4, 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 de ser agregados a la cach¨¦ del historial. Se utiliza comunicaci¨®n IPC basada en sockets entre los recolectores de datos (sondeadores, capturadores, etc.) y el proceso de preprocesamiento. Tanto el servidor Áú»¢¶Ä²© como el proxy Áú»¢¶Ä²© (para elementos monitoreados por el proxy) realizan los pasos de preprocesamiento.

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 los datos locales del administrador de preprocesamiento tampoco se muestra porque no afectan directamente al 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 elementos de trampero, etc., ya que solo cambia el formato de datos y el iniciador de comunicaci¨®n (ya sea datos El recolector est¨¢ esperando una conexi¨®n y datos, o recolector de datos. inicia la comunicaci¨®n y solicita los datos). Los datos brutos son validado, la configuraci¨®n de la m¨¦trica se recupera del cach¨¦ de configuraci¨®n (los datos se enriquecen con los datos de configuraci¨®n).
  • El mecanismo IPC basado en sockets se utiliza para pasar datos desde los recolectores de datos. al administrador de preprocesamiento. En este punto, el recolector de datos contin¨²a recopilar datos sin esperar la respuesta del preprocesamiento gerente.
  • Se realiza el preprocesamiento de datos. Esto incluye la ejecuci¨®n de pasos de preprocesamiento y procesamiento de art¨ªculos dependientes.

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

  • Se est¨¢n actualizando los datos hist¨®ricos del cach¨¦ de datos local del administrador de preprocesamiento. descargado en el 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 datos sincronizaci¨®n).
  • El proceso de sincronizaci¨®n comienza con la normalizaci¨®n de datos y el almacenamiento de datos. 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 logar¨ªtmicos). Los datos se env¨ªan a la base de datos de Áú»¢¶Ä²© despu¨¦s de realizar la normalizaci¨®n.

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

  • Se est¨¢n procesando los datos recopilados - 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

Para visualizar el proceso de preprocesamiento de datos, podemos utilizar el siguiente diagrama simplificado:

El diagrama anterior muestra solo procesos, objetos y acciones principales relacionadas al preprocesamiento del valor de la m¨¦trica en una forma simplificada. El diagrama no muestra los cambios de direcci¨®n condicionales, manejo de errores o bucles. En este diagrama solo se muestra un trabajador de preprocesamiento ( los trabajadores de preprocesamiento m¨²ltiples se pueden utilizar en escenarios de la vida real), solo un valor de m¨¦trica se est¨¢ procesando y asumimos que esta m¨¦trica requiere ejecutar al menos un paso de preprocesamiento. El objetivo de este diagrama es mostrar la idea detr¨¢s del proceso de preprocesamiento del valor de la m¨¦trica.

  • Los datos y el valor de la m¨¦trica se pasan al administrador de preprocesamiento mediante el mecanismo IPC basado en sockets.
  • La m¨¦trica se coloca en la cola de preprocesamiento.

La m¨¦trica se puede colocar al final o al principio de la cola de preprocesamiento. Las m¨¦tricas internas de Áú»¢¶Ä²© siempre se colocan en el comienzo de la cola de preprocesamiento, mientras que otros tipos de m¨¦tricas se ponen en la cola al final.

  • En este punto el flujo de datos se detiene hasta que haya al menos un trabajador de preprocesamiento desocupado (que no est¨¢ ejecutando ninguna tarea).
  • Cuando el trabajador de preprocesamiento est¨¢ disponible, la tarea de preprocesamiento se env¨ªa al trabajador.
  • Despu¨¦s de realizar el preprocesamiento (ejecuci¨®n fallida y exitosa de los pasos de preprocesamiento), el valor preprocesado se devuelve al administrador de preprocesamiento.
  • El administrador de preprocesamiento convierte el resultado al formato deseado (definido por el tipo de valor de la m¨¦trica) y pone el resultado en la cola de preprocesamiento. S¨ª hay m¨¦tricas dependientes para la m¨¦trica actual, luego se agregan las m¨¦tricas dependientes a la cola de preprocesamiento tambi¨¦n. Las m¨¦tricas dependientes se ponen en la cola de preprocesamiento justo despu¨¦s de la m¨¦trica principal, pero solo para las m¨¦tricas principales con valor establecido y no en estado NO SOPORTADO.
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:

  • El art¨ªculo dependiente puede recibir valores, mientras que EL valor maestro no puede. 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 (como "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 NO SOPORTARSE, 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.

  • El 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 valor del valor inicial (no truncado) del elemento maestro.

Cola de preprocesamiento

La cola de preprocesamiento es una estructura de datos FIFO que almacena valores preservando el orden en el que se revisan los valores mediante el administrador de preprocesamiento. Existen m¨²ltiples excepciones a la l¨®gica FIFO:

  • Las m¨¦tricas internas se ponen en cola al principio de la cola.
  • Las m¨¦tricas dependientes siempre se ponen en cola despu¨¦s de la m¨¦trica principal

Para visualizar la l¨®gica de la cola de preprocesamiento, podemos usar el siguiente diagrama:

Los valores de la cola de preprocesamiento se vac¨ªan desde el principio de la cola al primer valor sin procesar. As¨ª, por ejemplo, el administrador de preprocesamiento eliminar¨¢ los valores 1, 2 y 3, pero no eliminar¨¢ el valor 5 ya que el valor 4 a¨²n no se ha procesado:

S¨®lo quedar¨¢n dos valores en la cola (4 y 5) despu¨¦s del vaciado, los valores se agregan al cach¨¦ de datos local del administrador de preprocesamiento y luego los valores se transfieren del cach¨¦ local al cach¨¦ hist¨®rico. El administrador de preprocesamiento puede vaciar valores de la cach¨¦ de datos local m¨¦trica a m¨¦trica o en modo masivo (utilizado para m¨¦tricas dependientes y valores recibidos de forma masiva).

Trabajadores de preprocesamiento

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

Pero suponiendo que no haya operaciones de preprocesamiento pesadas como an¨¢lisis de grandes fragmentos XML/JSON, la cantidad de trabajadores de preprocesamiento puede coincidir con el n¨²mero total de recolectores de datos. De esta manera, en su mayor¨ªa habr¨¢ (excepto en los casos en que los datos del recolector vienen en masa) ser al menos un trabajador de preprocesamiento desocupado para los datos recopilados.

Demasiados procesos de recopilaci¨®n de datos (recolectores, recolectores inalcanzables, recolectores ODBC, recolectores HTTP, recolectores Java, pingers, tramppers, proxypollers) junto con el administrador IPMI, el capturador SNMP y el preprocesamiento Los trabajadores pueden agotar el l¨ªmite de descriptores de archivos por proceso para el gerente de preprocesamiento. Esto har¨¢ que el servidor Áú»¢¶Ä²© se detenga (normalmente poco despu¨¦s del inicio, aunque a veces puede llevar m¨¢s tiempo). El El archivo de configuraci¨®n debe revisarse o el l¨ªmite debe elevarse a evitar esta situaci¨®n.