Cette section fournit des d¨¦tails sur le pr¨¦traitement de la valeur de l'¨¦l¨¦ment. Le pr¨¦traitement des valeurs d'¨¦l¨¦ments permet de d¨¦finir et d'ex¨¦cuter des r¨¨gles de transformation pour les valeurs d'¨¦l¨¦ments re?ues.
Le pr¨¦traitement est g¨¦r¨¦ par un processus de gestionnaire de pr¨¦traitement, qui a ¨¦t¨¦ ajout¨¦ dans Áú»¢¶Ä²© 3.4, ainsi que par des agents de pr¨¦traitement qui ex¨¦cutent les ¨¦tapes de pr¨¦traitement. Toutes les valeurs (avec ou sans pr¨¦traitement) des diff¨¦rents collecteurs de donn¨¦es passent par le gestionnaire de pr¨¦traitement avant d'¨ºtre ajout¨¦es au cache de l'historique. La communication IPC bas¨¦e sur les sockets est utilis¨¦e entre les collecteurs de donn¨¦es (pollers, trappers, etc.) et le processus de pr¨¦traitement. Le serveur Áú»¢¶Ä²© ou le proxy Áú»¢¶Ä²© (pour les ¨¦l¨¦ments surveill¨¦s par le proxy) effectue des ¨¦tapes de pr¨¦traitement.
Pour visualiser le flux de donn¨¦es de la source de donn¨¦es vers la base de donn¨¦es Áú»¢¶Ä²©, nous pouvons utiliser le sch¨¦ma simplifi¨¦ suivant :
Le diagramme ci-dessus montre uniquement les processus, les objets et les actions li¨¦s au traitement de la valeur de l'¨¦l¨¦ment sous une forme ²õ¾±³¾±è±ô¾±´Ú¾±¨¦±ð. Le diagramme ne montre pas les changements de direction conditionnels, la gestion des erreurs ou les boucles. Le cache de donn¨¦es local du gestionnaire de pr¨¦traitement n'est pas affich¨¦ non plus car il n'affecte pas directement le flux de donn¨¦es. L'objectif de ce diagramme est de montrer les processus impliqu¨¦s dans le traitement de la valeur des ¨¦l¨¦ments et la fa?on dont ils interagissent.
L'¨¦l¨¦ment peut changer son ¨¦tat en NON SUPPORT? pendant le pr¨¦traitement si l'une des ¨¦tapes de pr¨¦traitement ¨¦choue.
L'¨¦l¨¦ment peut changer son ¨¦tat en NON SUPPORT? si la normalisation des donn¨¦es ¨¦choue (par exemple, lorsque la valeur textuelle ne peut pas ¨ºtre convertie en nombre).
Pour visualiser le processus de pr¨¦traitement des donn¨¦es, nous pouvons utiliser le sch¨¦ma simplifi¨¦ suivant :
Le diagramme ci-dessus montre uniquement les processus, les objets et les actions principales li¨¦s au pr¨¦traitement de la valeur de l'¨¦l¨¦ment sous une forme ²õ¾±³¾±è±ô¾±´Ú¾±¨¦±ð. Le diagramme ne montre pas les changements de direction conditionnels, la gestion des erreurs ou les boucles. Un seul agent de pr¨¦traitement est affich¨¦ sur ce diagramme (plusieurs agents de pr¨¦traitement peuvent ¨ºtre utilis¨¦s dans des sc¨¦narios r¨¦els), une seule valeur d'¨¦l¨¦ment est en cours de traitement et nous supposons que cet ¨¦l¨¦ment n¨¦cessite l'ex¨¦cution d'au moins une ¨¦tape de pr¨¦traitement. Le but de ce diagramme est de montrer l'id¨¦e derri¨¨re le pipeline de pr¨¦traitement de la valeur de l'¨¦l¨¦ment.
L'¨¦l¨¦ment peut ¨ºtre plac¨¦ ¨¤ la fin ou au d¨¦but de la file d'attente de pr¨¦traitement. Les ¨¦l¨¦ments internes de Áú»¢¶Ä²© sont toujours plac¨¦s au d¨¦but de la file d'attente de pr¨¦traitement, tandis que les autres types d'¨¦l¨¦ments sont mis en file d'attente ¨¤ la fin.
La file d'attente de pr¨¦traitement est une structure de donn¨¦es FIFO qui stocke les valeurs en pr¨¦servant l'ordre dans lequel les valeurs sont r¨¦cup¨¦r¨¦es par le gestionnaire de pr¨¦traitement. Il existe plusieurs exceptions ¨¤ la logique FIFO :
Pour visualiser la logique de la file d'attente de pr¨¦traitement, nous pouvons utiliser le sch¨¦ma suivant :
Les valeurs de la file d'attente de pr¨¦traitement sont vid¨¦es du d¨¦but de la file d'attente ¨¤ la premi¨¨re valeur non trait¨¦e. Ainsi, par exemple, le gestionnaire de pr¨¦traitement videra les valeurs 1, 2 et 3, mais ne videra pas la valeur 5 car la valeur 4 n'est pas encore trait¨¦e :
Seules deux valeurs seront laiss¨¦es dans la file d'attente (4 et 5) apr¨¨s le vidage, les valeurs sont ajout¨¦es au cache de donn¨¦es local du gestionnaire de pr¨¦traitement, puis les valeurs sont transf¨¦r¨¦es du cache local au cache d'historique. Le gestionnaire de pr¨¦traitement peut vider les valeurs du cache de donn¨¦es local en mode ¨¦l¨¦ment unique ou en mode bloc (utilis¨¦ pour les ¨¦l¨¦ments d¨¦pendants et les valeurs re?ues en bloc).
Preprocessing caching was introduced to improve the preprocessing performance for multiple dependent items having similar preprocessing steps (which is a common LLD outcome).
Caching is done by preprocessing one dependent item and reusing some of the internal preprocessing data for the rest of the dependent items. The preprocessing cache is supported only for the first preprocessing step of the following types:
[?(@.path == "value")]
)Le fichier de configuration du serveur Áú»¢¶Ä²© permet aux utilisateurs de d¨¦finir le nombre de processus de travail de pr¨¦traitement. Le param¨¨tre de configuration StartPreprocessors doit ¨ºtre utilis¨¦ pour d¨¦finir le nombre d'instances pr¨¦-fork¨¦es de processus de travail de pr¨¦traitement. Le nombre optimal de processus de travail de pr¨¦traitement peut ¨ºtre d¨¦termin¨¦ par de nombreux facteurs, y compris le nombre d'¨¦l¨¦ments "pr¨¦traitables" (¨¦l¨¦ments qui n¨¦cessitent d'ex¨¦cuter des ¨¦tapes de pr¨¦traitement), le nombre de processus de collecte de donn¨¦es, le nombre moyen d'¨¦tapes pour le pr¨¦traitement des ¨¦l¨¦ments, etc.
Mais en supposant qu'il n'y a pas d'op¨¦rations de pr¨¦traitement lourdes comme l'analyse de gros morceaux XML / JSON, le nombre de processus de travail de pr¨¦traitement peut correspondre au nombre total de collecteurs de donn¨¦es. De cette fa?on, il y aura la plupart du temps (sauf dans les cas o¨´ les donn¨¦es du collecteur arrivent en masse) au moins un agent de pr¨¦traitement inoccup¨¦ pour les donn¨¦es collect¨¦es.
Trop de processus de collecte de donn¨¦es (pollers, pollers d'inaccessibilit¨¦, pollers ODBC, pollers HTTP, pollers Java, pingers, trappeurs, proxypollers) associ¨¦s au gestionnaire IPMI, au trappeur SNMP et aux agents de pr¨¦traitement peuvent ¨¦puiser la limite de descripteur de fichier par processus pour le gestionnaire de pr¨¦traitement. Cela entra?nera l'arr¨ºt du serveur Áú»¢¶Ä²© (g¨¦n¨¦ralement peu de temps apr¨¨s le d¨¦marrage, mais parfois cela peut prendre plus de temps). Le fichier de configuration doit ¨ºtre r¨¦vis¨¦ ou la limite doit ¨ºtre augment¨¦e pour ¨¦viter cette situation.
Le traitement de la valeur de l'¨¦l¨¦ment est ex¨¦cut¨¦ en plusieurs ¨¦tapes (ou phases) par plusieurs processus. Cela peut entra?ner :
UINT
(l'¨¦l¨¦ment trappeur peut ¨ºtre utilis¨¦), l'¨¦l¨¦ment d¨¦pendant a le type de valeur TEXT
.Par cons¨¦quent, l'¨¦l¨¦ment d¨¦pendant re?oit une valeur, tandis que l'¨¦l¨¦ment principal change son ¨¦tat en NON SUPPORT?.
CHAR
est utilis¨¦ pour l'¨¦l¨¦ment principal, la valeur de l'¨¦l¨¦ment principal sera tronqu¨¦e lors de la phase de synchronisation de l'historique, tandis que les ¨¦l¨¦ments d¨¦pendants recevront leur valeur ¨¤ partir de la valeur initiale (non tronqu¨¦e) de l'¨¦l¨¦ment principal.