Áú»¢¶Ä²©

This is the documentation page for an unsupported version of Áú»¢¶Ä²©.
Is this not what you were looking for? Switch to the current version or choose one from the drop-down menu.

2 D¨¦tails du pr¨¦traitement

Aper?u

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.

Traitement de la valeur de l'¨¦l¨¦ment

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.

  • La collecte de donn¨¦es commence par des donn¨¦es brutes provenant d'une source de donn¨¦es. ? ce stade, les donn¨¦es ne contiennent que l'ID, l'horodatage et la valeur (il peut ¨¦galement s'agir de plusieurs valeurs)
  • Quel que soit le type de collecteur de donn¨¦es utilis¨¦, l'id¨¦e est la m¨ºme pour les v¨¦rifications actives ou passives, pour les ¨¦l¨¦ments de trappeur, etc., car cela ne modifie que le format des donn¨¦es et le d¨¦marreur de communication (soit le collecteur de donn¨¦es attend une connexion et des donn¨¦es, ou le collecteur de donn¨¦es initie la communication et demande les donn¨¦es). Les donn¨¦es brutes sont valid¨¦es, la configuration des ¨¦l¨¦ments est extraite du cache de configuration (les donn¨¦es sont enrichies avec les donn¨¦es de configuration).
  • Le m¨¦canisme IPC bas¨¦ sur les sockets est utilis¨¦ pour transmettre les donn¨¦es des collecteurs de donn¨¦es au gestionnaire de pr¨¦traitement. ? ce stade, le collecteur de donn¨¦es continue de collecter des donn¨¦es sans attendre la r¨¦ponse du gestionnaire de pr¨¦traitement.
  • Un pr¨¦traitement des donn¨¦es est effectu¨¦. Cela inclut l'ex¨¦cution des ¨¦tapes de pr¨¦traitement et le traitement des ¨¦l¨¦ments d¨¦pendants.

L'¨¦l¨¦ment peut changer son ¨¦tat en NON SUPPORT? pendant le pr¨¦traitement si l'une des ¨¦tapes de pr¨¦traitement ¨¦choue.

  • Les donn¨¦es d'historique du cache de donn¨¦es local du gestionnaire de pr¨¦traitement sont vid¨¦es dans le cache d'historique.
  • ? ce stade, le flux de donn¨¦es s'arr¨ºte jusqu'¨¤ la prochaine synchronisation du cache de l'historique (lorsque le processus de synchronisation de l'historique effectue la synchronisation des donn¨¦es).
  • Le processus de synchronisation commence par la normalisation des donn¨¦es en stockant les donn¨¦es dans la base de donn¨¦es Áú»¢¶Ä²©. La normalisation des donn¨¦es effectue des conversions vers le type d'¨¦l¨¦ment souhait¨¦ (type d¨¦fini dans la configuration de l'¨¦l¨¦ment), y compris la troncature des donn¨¦es textuelles en fonction des tailles pr¨¦d¨¦finies autoris¨¦es pour ces types (HISTORY_STR_VALUE_LEN pour la cha?ne, HISTORY_TEXT_VALUE_LEN pour le texte et HISTORY_LOG_VALUE_LEN pour les valeurs de journal). Les donn¨¦es sont envoy¨¦es ¨¤ la base de donn¨¦es Áú»¢¶Ä²© apr¨¨s la normalisation.

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).

  • Les donn¨¦es collect¨¦es sont en cours de traitement - les d¨¦clencheurs sont v¨¦rifi¨¦s, la configuration de l'¨¦l¨¦ment est mise ¨¤ jour si l'¨¦l¨¦ment devient NON SUPPORT?, etc.
  • Ceci est consid¨¦r¨¦ comme la fin du flux de donn¨¦es du point de vue du traitement de la valeur de l'¨¦l¨¦ment.

Pr¨¦traitement de la valeur de l'¨¦l¨¦ment

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.

  • Les donn¨¦es d'¨¦l¨¦ment et la valeur de l'¨¦l¨¦ment sont transmises au gestionnaire de pr¨¦traitement ¨¤ l'aide du m¨¦canisme IPC bas¨¦ sur les sockets.
  • L'¨¦l¨¦ment est plac¨¦ dans la file d'attente de pr¨¦traitement.

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.

  • ? ce stade, le flux de donn¨¦es s'arr¨ºte jusqu'¨¤ ce qu'il y ait au moins un agent de pr¨¦traitement inoccup¨¦ (qui n'ex¨¦cute aucune t?che).
  • Lorsque le worker de pr¨¦traitement est disponible, la t?che de pr¨¦traitement lui est envoy¨¦e.
  • Une fois le pr¨¦traitement termin¨¦ (¨¦chec et ex¨¦cution r¨¦ussie des ¨¦tapes de pr¨¦traitement), la valeur pr¨¦trait¨¦e est renvoy¨¦e au gestionnaire de pr¨¦traitement.
  • Le gestionnaire de pr¨¦traitement convertit le r¨¦sultat au format souhait¨¦ (d¨¦fini par le type de valeur d'¨¦l¨¦ment) et place le r¨¦sultat dans la file d'attente de pr¨¦traitement. S'il existe des ¨¦l¨¦ments d¨¦pendants pour l'¨¦l¨¦ment actuel, les ¨¦l¨¦ments d¨¦pendants sont ¨¦galement ajout¨¦s ¨¤ la file d'attente de pr¨¦traitement. Les ¨¦l¨¦ments d¨¦pendants sont mis en file d'attente dans la file d'attente de pr¨¦traitement juste apr¨¨s l'¨¦l¨¦ment principal, mais uniquement pour les ¨¦l¨¦ments principaux avec une valeur d¨¦finie et non dans l'¨¦tat NON SUPPORT?.

File d'attente de pr¨¦traitement

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 :

  • Les ¨¦l¨¦ments internes sont mis en file d'attente au d¨¦but de la file d'attente
  • Les ¨¦l¨¦ments d¨¦pendants sont toujours mis en file d'attente apr¨¨s l'¨¦l¨¦ment principal

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

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:

  • Prometheus pattern (indexes input by metrics)
  • JSONPath (parses the data into object tree and indexes the first expression [?(@.path == "value")])

Processus de travail de pr¨¦traitement

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.

Pipeline de traitement de la valeur

Le traitement de la valeur de l'¨¦l¨¦ment est ex¨¦cut¨¦ en plusieurs ¨¦tapes (ou phases) par plusieurs processus. Cela peut entra?ner :

  • L'¨¦l¨¦ment d¨¦pendant peut recevoir des valeurs, contrairement ¨¤ LA valeur principale. Ceci peut ¨ºtre r¨¦alis¨¦ en utilisant le cas d'usage suivant :
    • L'¨¦l¨¦ment principal a le type de valeur UINT (l'¨¦l¨¦ment trappeur peut ¨ºtre utilis¨¦), l'¨¦l¨¦ment d¨¦pendant a le type de valeur TEXT.
    • Aucune ¨¦tape de pr¨¦traitement n'est requise pour les ¨¦l¨¦ments principaux et d¨¦pendants.
    • La valeur textuelle (comme "abc") doit ¨ºtre transmise ¨¤ l'¨¦l¨¦ment principal.
    • Comme il n'y a pas d'¨¦tapes de pr¨¦traitement ¨¤ ex¨¦cuter, le gestionnaire de pr¨¦traitement v¨¦rifie si l'¨¦l¨¦ment principal n'est pas dans l'¨¦tat NON SUPPORT? et si la valeur est d¨¦finie (les deux sont vrais) et met en file d'attente l'¨¦l¨¦ment d¨¦pendant avec la m¨ºme valeur que l'¨¦l¨¦ment principal (car il n'y a pas d'¨¦tape de pr¨¦traitement) .
    • Lorsque les ¨¦l¨¦ments principaux et d¨¦pendants atteignent la phase de synchronisation de l'historique, l'¨¦l¨¦ment principal devient NON SUPPORT?, en raison de l'erreur de conversion de valeur (les donn¨¦es textuelles ne peuvent pas ¨ºtre converties en entier non sign¨¦).

Par cons¨¦quent, l'¨¦l¨¦ment d¨¦pendant re?oit une valeur, tandis que l'¨¦l¨¦ment principal change son ¨¦tat en NON SUPPORT?.

  • L'¨¦l¨¦ment d¨¦pendant re?oit une valeur qui n'est pas pr¨¦sente dans l'historique de l'¨¦l¨¦ment principal. Le cas d'usage est tr¨¨s similaire au pr¨¦c¨¦dent, ¨¤ l'exception du type d'¨¦l¨¦ment principal. Par exemple, si le type 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.