Regrouper des logs

Présentation

Si certains logs peuvent s’avérer intéressants lorsqu’ils sont étudiés individuellement, il est parfois nécessaire de consulter un groupe entier d’événements pour faire émerger des informations utiles. Afin d’exposer ces informations, vous pouvez regrouper vos logs par champ, identifier des patterns ou agréger vos logs au sein de transactions.

L’éditeur de requête de logs vous permet de modifier rapidement l’agrégation appliquée à vos logs interrogés. Lorsque vous basculez vers une autre visualisation et un autre type d’agrégation, les champs que vous avez sélectionnés pour regrouper, agréger et mesurer vos logs sont conservés.

Un graphique à barres représentant des logs et l'option permettant de regrouper des logs dans des champs, patterns et transactions

Ajoutez plusieurs requêtes afin d’analyser simultanément différents ensembles de logs, et appliquez des formules et des fonctions à vos requêtes pour approfondir vos analyses.

Remarque : les agrégations sont uniquement prises en charge pour les logs indexés. Si vous souhaitez agréger des logs qui n’ont pas été indexés, vous pouvez désactiver temporairement vos filtres d’exclusion, générer des métriques à partir de vos logs ou procéder à une réintégration de logs à partir de vos archives.

Champs

Avec l’agrégation en fonction des champs, tous les logs correspondant à votre filtre sont agrégés sous forme de groupes en fonction de la valeur d’une ou plusieurs facettes de log. Ces agrégations vous permettent d’extraire les mesures suivantes :

  • Le nombre de logs par groupe
  • Le nombre de valeurs uniques pour une facette par groupe
  • Les opérations statistiques (min, max, avg et percentiles) effectuées sur les valeurs numériques d’une facette par groupe

Remarque : si un log individuel présente plusieurs valeurs différentes pour une facette unique, il appartient à autant de groupes qu’il existe de valeurs. Par exemple, si un log possède à la fois les tags team:sre et team:marketplace, il est comptabilisé une fois dans le groupe team:sre et une fois dans le groupe team:marketplace.

L’agrégation en fonction des champs vous permet de définir une dimension pour les top lists et jusqu’à trois dimensions pour les séries temporelles et les tableaux. Lorsque plusieurs dimensions sont définies, les valeurs les plus élevées sont déterminées en fonction de la première dimension, puis de la seconde dans la fourchette des valeurs les plus élevées de la première dimension, puis de la troisième dans la fourchette des valeurs les plus élevées de la seconde dimension.

Plusieurs requêtes

Vous pouvez utiliser plusieurs requêtes à la fois avec les séries temporelles et les Top Lists. Pour ajouter plusieurs requêtes, cliquez sur le bouton + Add en regard de l’éditeur de requêtes. Lorsque vous ajoutez une nouvelle requête, elle copie la valeur et les options de regroupement de la dernière requête définie :

Pour afficher ou masquer des requêtes dans la visualisation actuelle, cliquez sur leur lettre dans l’éditeur de requête :

L'éditeur de requête avec deux requêtes, A et B

Par défaut, lorsque vous créez une requête, elle est automatiquement affichée dans la visualisation sélectionnée.

Pour afficher la chronologie de l’une de vos requêtes, sélectionnez la requête en question dans la liste déroulante Timeline for. Pour appliquer un filtre basé sur l’une de vos requêtes de recherche, sélectionnez la requête en question dans la liste déroulante Use facets with, puis cliquez sur les valeurs dans le volet des facettes. Les facettes que vous choisissez sont uniquement appliquées à la requête sélectionnée.

L'éditeur de requête affichant la chronologie pour les données sélectionnées, avec des options pour la requête A et la requête B

Fonctions

Remarque : seules les séries temporelles et les Top Lists prennent en charge les fonctions.

Pour appliquer des fonctions à vos logs, cliquez sur l’agrégation Fields dans l’éditeur de requête. Vous pouvez également sélectionner un champ à facette auquel vous souhaitez appliquer une fonction, puis cliquer sur l’icône Σ en regard de la mesure. Sélectionnez ou recherchez ensuite la fonction que vous souhaitez appliquer au champ de log.

Toutes les fonctions proposées pour les logs dans l’éditeur graphique des dashboards sont également disponibles dans le Log Explorer :

Dans l’exemple ci-dessous, une fonction d’exclusion est appliquée afin d’exclure certaines valeurs de vos logs :

Une requête pour laquelle le paramètre cutoff_min du filtre d'exclusion a été défini sur 100

Formules

Cliquez sur le bouton + Add dans l’éditeur de requête pour appliquer une formule à une ou plusieurs requêtes. La formule de l’exemple suivant permet de calculer le taux de valeurs uniques de Cart Id dans les logs pour les clients dont le niveau est Merchant Tier: Enterprise / Merchant Tier: Premium :

L'éditeur de requête avec une formule divisant la requête A par la requête B

Remarque : pour appliquer des formules à plusieurs requêtes, toutes les requêtes doivent être regroupées en fonction de la même facette. Dans l’exemple ci-dessus, les deux requêtes sont regroupées en fonction de Webstore Store Name.

Pour appliquer une fonction à une formule, cliquez sur l’icône Σ. Dans l’exemple suivant, une fonction de décalage temporel est appliquée à la proportion de logs d’erreur parmi l’ensemble des logs, afin de comparer les dernières données avec celles de la semaine précédente :

L'éditeur de requête avec une formule utilisant un décalage temporel sur la semaine précédente

Patterns

L’agrégation en fonction des patterns vous permet de regrouper les logs dont le message possède une structure similaire. Vous avez la possibilité de sélectionner un à trois champs à facette pour effectuer une première agrégation de vos logs dans des groupes, avant que les patterns ne soient détectés dans ces groupes.

Grâce à la vue Patterns, vous pouvez identifier et filtrer facilement les patterns d’erreur inutiles qui vous empêchent de repérer les problèmes plus importants :

Le Log Explorer avec des logs regroupés en fonction de patterns

Remarque : les patterns présentés sont ceux détectés au sein d’un volume de 10 000 logs. Affinez la recherche pour afficher les modèles correspondants à un sous-ensemble de logs spécifiques.

Les patterns prennent en charge les visualisations sous forme de liste de groupes. Cliquez sur un pattern dans la liste pour ouvrir le volet latéral dédié et effectuer les actions suivantes :

  • Accéder à un échantillon de logs associés à ce pattern
  • Renseigner le filtre de recherche pour affiner le contexte et afficher uniquement les logs associés à ce pattern
  • Créer facilement une règle de parsing grok pour extraire des informations structurées à partir des logs associés à ce pattern
Le volet latéral avec le bouton View All et la règle de parsing mis en avant

Transactions

Les transactions agrègent les logs indexés en fonction d’instances d’une séquence d’événements, telle qu’une session utilisateur ou une requête traitée par plusieurs micro-services. Par exemple, un site d’e-commerce peut regrouper des logs en fonction de différentes actions utilisateur (recherche dans le catalogue, ajout d’un article au panier ou paiement) afin de générer une vue de transaction basée sur un attribut commun, tel que requestId ou orderId.

Le Log Explorer avec des logs regroupés en fonction de transactions

Remarque : les agrégations sous forme de transactions diffèrent des agrégations sous forme de groupes classiques, dans la mesure où les groupes obtenus comprennent non seulement les logs correspondant à la requête, mais aussi les logs appartenant aux transactions associées.

  • Durée : l’écart entre le timestamp du premier log et celui du dernier log dans la transaction. Cette mesure est automatiquement ajoutée.
  • Gravité maximale identifiée dans les logs de la transaction. Cette mesure est automatiquement ajoutée.
  • Recherche d’éléments clés : pour chaque facet ayant comme valeurs des chaînes, vous pouvez calculer des informations sur des logs spécifiques à l’aide des opérations count unique, latest, earliest et most frequent.
  • Consultation de statistiques : pour chaque measure, vous pouvez calculer des statistiques à l’aide des opérations min, max, avg, sum, median, pc75, pc90, pc95 et pc99.

Les transactions prennent en charge les visualisations sous forme de liste de groupes. Cliquez sur une transaction dans la liste pour ouvrir le volet latéral dédié et effectuer les actions suivantes :

  • Accéder à tous les logs associés à cette transaction
  • Rechercher des logs spécifiques associés à cette transaction
Le volet des logs de transaction avec des logs pour la transaction sélectionnée