Tous les produits
Search
Centre de documentation

Simple Log Service:Fonctionnement

Dernière mise à jour :Sep 12, 2026

La fonctionnalité de transformation de données de Simple Log Service utilise des groupes de consommateurs pour ingérer et traiter les données de journal. Vous pouvez orchestrer plus de 200 fonctions intégrées afin de créer des règles de transformation. Cette rubrique explique comment les données sont planifiées lors de la transformation et comment le moteur de règles fonctionne.

Principes de base de la planification

La fonctionnalité de transformation de données de Simple Log Service utilise un groupe de consommateurs pour ingérer les données de journal du Logstore source sous forme de flux. Elle traite chaque journal à l'aide d'une règle de transformation, puis produit le résultat.

  • Scheduling mechanism

    Pour chaque règle de transformation, le planificateur démarre une ou plusieurs instances en cours d'exécution. Chaque instance agit en tant que consommateur pour un ou plusieurs shards du Logstore source. Le planificateur détermine le nombre d'instances parallèles en fonction de leur utilisation de la mémoire et du CPU. Le nombre maximal d'instances est égal au nombre de shards dans le Logstore source.

  • Running instance

    Une instance en cours d'exécution lit les journaux source depuis les shards qui lui sont attribués, conformément à votre configuration. Elle traite les données à l'aide de la règle de transformation et produit le résultat dans le Logstore de destination. Les règles de transformation peuvent utiliser des ressources externes pour enrichir les données de journal. L'instance utilise le mécanisme de groupe de consommateurs pour enregistrer sa position de consommation dans un shard. Cela garantit que si l'instance s'arrête de manière inattendue, elle peut reprendre la consommation à partir du dernier point de contrôle enregistré.

  • Task stop

    • Si vous ne configurez pas d'heure de fin pour la tâche, les instances en cours d'exécution continuent de s'exécuter par défaut et la tâche de transformation de données ne s'arrête pas.

    • Si vous configurez une heure de fin pour la tâche, les instances en cours d'exécution traitent tous les journaux reçus jusqu'à cette heure. Ensuite, les instances se terminent automatiquement et la tâche de transformation de données s'arrête.

    • Si une tâche s'arrête pour une raison quelconque et est redémarrée, elle reprend la consommation à partir de la dernière position enregistrée par défaut.

Principes de base du moteur de règles : Opérations de base

Vous pouvez utiliser les fonctions intégrées fournies par le SLS DSL pour écrire des règles de transformation. Chaque fonction représente une étape de transformation et le moteur de règles exécute les fonctions séquentiellement.

e_set("log_type", "access_log")
e_drop_fields("__action")
e_if(e_search("ret: pass"), e_set("result", "pass"))
e_if(e_search("ret: unknown"), DROP)

La figure suivante illustre la logique.

  • Logique de base

    Chaque fonction d'événement dans une règle est exécutée séquentiellement. Chaque fonction traite et modifie un événement avant de transmettre l'événement modifié à la fonction suivante.

    Par exemple, e_set("log_type", "access_log") ajoute un champ nommé log_type avec la valeur access_log à chaque événement. La fonction suivante reçoit alors l'événement mis à jour, qui inclut désormais le champ log_type.

  • Logique conditionnelle

    Les étapes peuvent comporter des conditions. Si un événement ne remplit pas une condition, il ignore l'opération de cette étape.

    Par exemple, la fonction e_if(e_search("ret: pass"), e_set("result", "pass")) vérifie d'abord si le champ ret contient pass. Si la condition n'est pas remplie, aucune action n'est entreprise. Si la condition est remplie, la fonction définit la valeur du champ result sur pass.

  • Arrêt du traitement

    Si une étape renvoie zéro événement, l'événement est considéré comme supprimé.

    Par exemple, e_if(e_search("ret: unknown"), DROP) ignore les événements dont la valeur du champ ret est unknown. Une fois qu'un événement est ignoré, aucune opération ultérieure n'est effectuée sur celui-ci et le traitement commence sur l'événement suivant.

Principes de base du moteur de règles : Production, copie et fractionnement

Le moteur de règles prend également en charge la copie, la production et le fractionnement des événements.

e_coutput("archive_Logstore") )
e_split("log_type")
e_if(e_search("log_type: alert"), e_output("alert_Logstore") )
e_set("result", "pass")

Supposons que le journal source à traiter soit le suivant :

log_type: access,alert
content: admin login to database.

La figure suivante illustre la logique.Diagramme logique du principe du moteur de règles

  • Production d'événement

    Une opération de production peut être considérée comme un type spécial d'arrêt du traitement. Par exemple, à l'étape 3, si un événement possède un champ log_type avec la valeur alert, la fonction e_output("alert_Logstore") est appelée. Cette fonction produit l'événement vers la destination spécifiée, puis supprime l'événement. Les opérations ultérieures ne sont pas effectuées sur cet événement.

  • Copie et production d'événement

    La fonction e_coutput copie l'événement actuel et produit la copie. L'événement original continue vers l'étape de traitement suivante. Par exemple, à l'étape 1, tous les événements reçus sont copiés, puis produits vers la destination archive_Logstore.

  • Fractionnement et traitement parallèle

    À l'étape 2, si le champ log_type contient les valeurs access et alert, e_split("log_type") fractionne l'événement en deux événements distincts en fonction des valeurs du champ log_type. Les deux nouveaux événements sont identiques, à l'exception du champ log_type, qui aura la valeur access dans un événement et alert dans l'autre. Chaque nouvel événement poursuit ensuite indépendamment son parcours à travers les étapes suivantes.

    Après le fractionnement, chaque événement résultant poursuit indépendamment son parcours à travers les étapes suivantes.