Effectuer des analyses avancées avec Link
Comprenez le champ d'application de la fonction Link lors de l'exécution d'analyses avancées à l'aide du cas d'utilisation présenté dans cette rubrique.
Exemples de scénarios :
Cas d'utilisation | Fonction Link | Exemples de journaux |
---|---|---|
Visualiser les données de série chronologique à l'aide de la fonction de tendance Link |
Tendance Link |
|
Fonction Link de base |
|
|
Utilisation de champs virtuels pour les graphiques |
|
|
Utilisation d'un énoncé SQL en tant que champ |
|
|
Analyser le temps nécessaire entre les étapes d'une transaction |
Analyse temporelle |
|
Générer des graphiques pour plusieurs champs et leurs valeurs |
Graphiques pour plusieurs champs et leurs valeurs |
- |
Agrégation de deuxième niveau à l'aide de la commande Eventstats dans Link |
Agrégation de deuxième niveau |
|
Utiliser les fonctions de navigation Link pour identifier des événements dans une base de données |
Fonctions de navigation |
|
Utiliser les symboles de devise dans votre analyse de journal |
Utiliser le symbole de devise dans la table et les graphiques des groupes |
|
Analyse de séries chronologiques à l'aide de la commande timestats |
Analyser la tendance d'un champ |
|
Regrouper les valeurs de série chronologique similaires |
|
Visualiser les données de série chronologique à l'aide de la fonction de tendance Link
Link permet de regrouper les enregistrements de journal par champs spécifiques. Vous pouvoir voir les différentes statistiques que vous pouvez extraire de ces groupes à l'aide de la visualisation du graphique à bulles. La visualisation du graphique à bulles est maintenant améliorée pour prendre en charge le champ Temps comme axe.
Les étapes suivantes expliquent comment utiliser la fonction de tendance pour analyser la durée de tâche des demandes concurrentes Oracle E-Business Suite (EBS).
Examinons l'exemple de journal suivant dans le chemin de fichier /u01/oracle/appl_top/req/l7474445.req
:
Human Resources: Version : 12.2
Copyright (c) 1998, 2013, Oracle and/or its affiliates. All rights reserved.
AME_MIGRATIONB: Approvals Management Post Upgrade Process
+---------------------------------------------------------------------------+
Current system time is 24-JUL-2018 01:04:29
+---------------------------------------------------------------------------+
**Starts**24-JUL-2018 01:04:30
**Ends**24-JUL-2018 01:04:30
Migration of item class usages successful
+---------------------------------------------------------------------------+
Start of log messages from FND_FILE
+---------------------------------------------------------------------------+
+---------------------------------------------------------------------------+
End of log messages from FND_FILE
+---------------------------------------------------------------------------+
+---------------------------------------------------------------------------+
No completion options were requested.
Output file size:
0
Deleting empty output file.
+---------------------------------------------------------------------------+
Concurrent request completed successfully
Current system time is 24-JUL-2018 01:04:32
+---------------------------------------------------------------------------+
La source définie par Oracle Journaux des demandes concurrentes EBS - Améliorés extrait le champ ID demande du chemin d'accès au fichier. Par exemple, les données numériques 7474445
représentent l'ID demande extrait du chemin d'accès de l'exemple de journal ci-dessus. La source extrait également les métadonnées associées pour chaque ID demande.
-
Sélectionnez la source et passez à la visualisation Link :
Dans le panneau Champs, cliquez sur Source de journaux > Sélectionnez la source de journaux Journaux des demandes concurrentes EBS - Améliorés > Passez à la visualisation Link > Glissez-déposez le champ ID demande dans le panneau Regrouper par pour obtenir la liste des demandes :
L'interrogation générée automatiquement se présente comme suit :
'Log Source' = 'EBS Concurrent Request Logs - Enhanced' | link 'Request ID'
-
Extrayez les heures de début et de fin de la demande :
Chaque demande comporte une heure de début et une heure de fin imprimées dans le fichier. Si l'heure de fin est absente, l'heure à laquelle le fichier est mis à jour est considérée comme l'heure de fin. La source de journaux est configurée pour saisir ces valeurs en tant que champs Heure de début de l'événement et Heure de fin de l'événement.
Modifiez l'interrogation pour extraire les champs suivants :
'Log Source' = 'EBS Concurrent Request Logs - Enhanced' | link 'Request ID' | stats earliest('Event Start Time') as 'Request Start Time', latest('Event End Time') as 'Request End Time'
earliest
est une fonction de la commandestats
. Elle trie les enregistrements de chaque ID demande par heure et retourne l'heure de début de l'événement la plus ancienne. De même,latest
retourne la dernière Heure de fin de l'événement.Vous pouvez maintenant voir les nouveaux champs de la table des enregistrements :
Les Heure de début de la demande et Heure de fin de la demande sont automatiquement détectées en tant qu'horodatages et formatées dans votre fuseau horaire local. Lorsque les fichiers sont collectés, l'agent utilise le fuseau horaire de la base de données EBS pour interpréter les horodatages.
Note
Pour vous assurer que le fuseau horaire de la base de données est affiché comme prévu dans le répertoire de base de configuration d'Oracle Infrastructure Monitoring et pour éviter la non-concordance des valeurs, indiquez le fuseau horaire lors du chargement. -
Calculez la durée de la demande :
Maintenant que les heures de début et de fin sont définies pour chaque demande, nous pouvons calculer la durée en tant que différence entre ces deux champs.
Modifiez l'interrogation de façon appropriée :
'Log Source' = 'EBS Concurrent Request Logs - Enhanced' | link 'Request ID' | stats earliest('Event Start Time') as 'Request Start Time', latest('Event End Time') as 'Request End Time' | eval 'Time Taken' = 'Request End Time' - 'Request Start Time'
Time Taken (Temps utilisé) est un nouveau champ créé pour chaque groupe d'ID demande. Il doit contenir la différence entre l'heure de début et l'heure de fin de la demande.
Note
Oracle Logging Analytics détecte automatiquement le temps utilisé en tant que champ de durée, car il est produit par la différence entre deux champs d'horodatage. Par conséquent, il est automatiquement formaté de manière lisible par l'homme.
-
Tendance du temps utilisé par les demandes concurrentes EBS :
Vous pouvez maintenant analyser les tendances pour le champ Temps utilisé. Cliquez sur l'icône Analyser
>Sélectionnez les champs Heure de début de la demande et Temps utilisé dans la boîte de dialogue Analyser > Cliquez sur OK.
L'interrogation est alors automatiquement remplacée par la suivante :
'Log Source' = 'EBS Concurrent Request Logs - Enhanced' | link 'Request ID' | stats earliest('Event Start Time') as 'Request Start Time', latest('Event End Time') as 'Request End Time' | eval 'Time Taken' = 'Request End Time' - 'Request Start Time' | classify topcount = 300 'Request Start Time', 'Time Taken'
La commande
Classify
prend deux champs, regroupe les résultats et marque les anomalies, le cas échéant. Les résultats sont affichés dans le graphique à bulles.Lorsque l'option Temps est sélectionnée pour un axe, le graphique à bulles passe automatiquement à l'option Tendance. Pour modifier les options de graphique, cliquez sur l'icône Options de graphique
et modifiez les paramètres requis.
Dans le graphique à bulles obtenu, la valeur du paramètre Heure de début de la demande est tracée le long de l'axe x et celle du paramètre Temps utilisé le long de l'axe y :
L'heure est affichée dans le fuseau horaire local. La taille des bulles indique le nombre de demandes.
Dans le graphique à bulles ci-dessus, vous pouvez noter que la durée de la demande dépasse quatre minutes le 21 juillet 2018. La majorité des demandes s'est terminée en moins de deux minutes.
Vous pouvez cliquer sur une ou plusieurs bulles pour forer et visualiser les demandes spécifiques.
Analyser les journaux d'accès d'Oracle WebLogic Server
Prenons l'exemple d'un jeu de données constitué de journaux d'accès d'Oracle WebLogic Server issus de la source de journaux FMW WLS Server Access Logs
. Les enregistrements de journal contiennent des données sur l'accès des utilisateurs à Oracle WebLogic Server au cours d'une période spécifique. Ces enregistrements de journal individuels peuvent être analysés pour obtenir des informations pertinentes sur les statistiques d'utilisation, la popularité des URL, les utilisateurs les plus actifs et bien plus encore. À partir des journaux, apprenez à obtenir les résultats suivants en analysant les enregistrements des journaux avec la sélection de champs spécifiques pour chaque résultat :
-
Afficher les URL principales par nombre d'occurrences
-
Afficher les anomalies par nombre d'occurrences
-
Afficher les anomalies par durée d'accès
-
Identifier les URL par taille de chargement
-
Identifier les URL par taille de téléchargement
-
Analyser la corrélation entre le nombre d'occurrences et la taille de téléchargement
-
Déterminer les pages les plus consultées
-
Identifier les principaux utilisateurs
-
Identifier les principaux utilisateurs et leurs pages favorites
-
Identifier la page d'entrée qui génère le plus de visites
-
Identifier le chemin d'entrée et de sortie pour la plupart des utilisateurs
-
Utilisez la commande
rename
pour remplacer le nom du champ par un nom plus pertinent pour le cas d'utilisation. -
La commande
classify
vous permet d'analyser les groupes et affiche le résultat sous la forme d'un graphique à bulles. Pour voir simplement le résultat de l'exécution d'une interrogation dans le format tabulaire, supprimez la commandeclassify
de l'interrogation et réexécutez-la. -
Cliquez sur la bulle anormale dans le graphique pour afficher les détails des groupes anormaux. Pour revenir au résultat initial après avoir analysé la bulle, cliquez sur l'icône Annuler (
).
-
Lorsque vous exécutez la commande
link
, la durée de groupe est affichée dans un format lisible dans le graphique à bulles, par exemple, en minutes ou en secondes. Toutefois, si vous voulez exécuter une commandewhere
après la commandelink
pour rechercher les transactions dont la durée est supérieure au nombre de secondes spécifié (par exemple, 200 secondes), vous devez utiliser l'unité millisecondes.
Pour extraire le jeu de données, sélectionnez un intervalle de dates approprié, indiquez la source de journaux et exécutez l'interrogation :
'Log Source' = 'FMW WLS Server Access Logs'
Sélectionnez Link dans le panneau Visualiser. Ceci affiche la table des groupes 'FMW WLS Server Access Logs' et le graphique à bulles.
-
Pour afficher les URL principales par nombre d'occurrences, regroupez les enregistrements de journal en fonction de la valeur de l'URL dans l'enregistrement de journal, obtenez le nombre total de l'URL dans chaque groupe, renommez les champs par défaut dans la table des groupes en fonction des valeurs appropriées et affichez le résultat dans le format tabulaire. Cette analyse vous permet de déterminer les URL les plus utilisées.
-
Glissez-déposez le champ URI vers Regrouper par et supprimez le champ Source de journaux de Regrouper par.
-
Après l'exécution de l'interrogation, dans la ligne de commande, remplacez les noms des champs Count par Number of Hits, Start Time par First Access, End Time par Last Access et Group Duration par Access Duration.
-
Supprimez la commande
classify
de la ligne de commande et soumettez l'interrogation.L'interrogation se présente comme suit :
'Log Source' = 'FMW WLS Server Access Logs' | link URI | rename Count as 'Number of Hits', 'Start Time' as 'First Access', 'End Time' as 'Last Access', 'Group Duration' as 'Access Duration'
Lors de l'exécution de l'interrogation, vous pouvez déterminer les principales URL en fonction du nombre d'occurrences dans la table. Les colonnes sont renommées comme indiqué dans la commande rename.
-
-
Pour afficher les anomalies par nombre d'occurrences, regroupez les enregistrements de journal en fonction de la valeur de l'URL dans l'enregistrement de journal, renommez les champs par défaut dans la table des groupes en fonction des valeurs appropriées et analysez les groupes pour le nombre d'occurrences de l'URL. Grâce à cette analyse, vous pouvez distinguer les modèles inhabituels d'accès aux URL.
Cliquez sur Analyser, sélectionnez Nombre d'occurrences et cliquez sur OK.
L'interrogation doit maintenant être la suivante :
'Log Source' = 'FMW WLS Server Access Logs' | link URI | rename Count as 'Number of Hits', 'Start Time' as 'First Access', 'End Time' as 'Last Access', 'Group Duration' as 'Access Duration' | classify topcount = 300 'Number of Hits'
Cette interrogation déclenche l'analyse de la colonne 'Number of Hits' (Nombre d'occurrences) et crée des bulles représentant les intervalles les plus courants. La majorité des valeurs sont traitées comme des valeurs de référence. Par exemple, une grande bulle peut devenir la référence, ou un grand nombre de bulles plus petites regroupées peuvent former la référence. Les bulles les plus éloignées de la référence sont marquées comme étant des anomalies.
Ainsi, les URL anormales sont regroupées en bulles distinctes dans le graphique à bulles. Pour afficher le pourcentage d'URL dans chaque intervalle de nombre d'occurrences, pointez le curseur de la souris sur les bulles.
-
Pour afficher les anomalies par durée d'accès, regroupez les enregistrements de journal en fonction de la valeur de l'URL dans l'enregistrement de journal, renommez les champs par défaut dans la table des groupes en fonction des valeurs appropriées et analysez les groupes pour la durée d'accès de l'URL. Cette analyse vous permet de distinguer les modèles inhabituels de temps d'accès aux URL. Après l'étape 2 :
Cliquez sur Analyser, sélectionnez Durée d'accès et cliquez sur OK.
La durée d'accès est une indication de la durée d'accès à chaque URL. Elle est calculée comme la différence entre le dernier horodatage et le premier horodatage dans le fichier journal pour chaque URL.
-
Pour identifier les URL par taille de chargement, regroupez les enregistrements de journal en fonction de la valeur de l'URL dans l'enregistrement de journal, renommez les champs par défaut dans la table des groupes en fonction des valeurs appropriées et analysez les groupes pour la taille des données chargées. Cette analyse vous permet d'identifier les URL dont la taille de données chargées est inhabituelle. Après l'étape 3 :
-
Glissez-déposez le champ Content Size In (Taille de contenu en entrée) vers la section Value (Valeur).
-
Remplacez le champ Content Size In (Taille de contenu en entrée) par Bytes Uploaded (Octets chargés) en modifiant l'interrogation sur la ligne de commande et exécutez l'interrogation.
-
Cliquez sur Analyser, sélectionnez Bytes Uploaded et cliquez sur OK.
L'interrogation se présente comme suit :
'Log Source' = 'FMW WLS Server Access Logs' | link URI | stats avg('Content Size In') as 'Bytes Uploaded' | rename Count as 'Number of Hits', 'Start Time' as 'First Access', 'End Time' as 'Last Access', 'Group Duration' as 'Access Duration' | classify topcount = 300 'Bytes Uploaded'
Le graphique d'analyse affiche les groupes d'URL en fonction des octets chargés.
-
Pour corréler les données des octets chargés sur l'intervalle de temps, vous pouvez masquer ou afficher des graphiques de manière sélective dans les options d'histogramme. Explorez les autres options de visualisation à côté du graphique à barres.
-
-
Pour identifier les URL par taille de téléchargement, regroupez les enregistrements de journal en fonction de la valeur de l'URL dans l'enregistrement de journal, renommez les champs par défaut dans la table des groupes en fonction des valeurs appropriées et analysez les groupes pour la taille des données téléchargées. Cette analyse vous permet d'identifier les URL dont la taille de données téléchargées est inhabituelle. Après l'étape 4 :
-
Glissez-déposez le champ Content Size Out (Taille de contenu en sortie) dans la section Value (Valeur) et supprimez Content Size In (Taille de contenu en entrée) de la section Value (Valeur).
-
Remplacez le champ Content Size Out (Taille de contenu en sortie) par Download Size (Taille de téléchargement) en modifiant l'interrogation sur la ligne de commande et exécutez l'interrogation.
-
Cliquez sur Analyser, sélectionnez Taille de téléchargement et cliquez sur OK.
L'interrogation se présente comme suit :
'Log Source' = 'FMW WLS Server Access Logs' | link URI | stats avg('Content Size Out') as 'Download Size' | rename Count as 'Number of Hits', 'Start Time' as 'First Access', 'End Time' as 'Last Access', 'Group Duration' as 'Access Duration' | classify topcount = 300 'Download Size'
Le graphique d'analyse affiche les groupes d'URL en fonction de la taille de téléchargement.
-
Pour corréler les données de taille de téléchargement sur l'intervalle de temps, vous pouvez masquer ou afficher des graphiques de manière sélective dans les options d'histogramme. Explorez les autres options de visualisation à côté du graphique à barres.
-
-
Pour analyser la corrélation entre le nombre d'occurrences et la taille de téléchargement, regroupez les enregistrements de journal en fonction de la valeur de l'URL dans l'enregistrement de journal, renommez les champs par défaut dans la table des groupes en fonction des valeurs appropriées et analysez les groupes pour la taille des données téléchargées et le nombre d'occurrences. Grâce à cette analyse, vous pouvez identifier les URL qui ont des modèles inhabituels de taille de données téléchargées et le nombre d'occurrence. Après l'étape 5 :
-
Cliquez sur Analyser, sélectionnez les champs Nombre d'occurrences, Taille de téléchargement, puis cliquez sur OK.
-
Supprimez
topcount=300
de l'interrogation pour voir toutes les bulles et exécutez l'interrogation.L'interrogation se présente comme suit :
'Log Source' = 'FMW WLS Server Access Logs' | link URI | stats avg('Content Size Out') as 'Download Size' | rename Count as 'Number of Hits', 'Start Time' as 'First Access', 'End Time' as 'Last Access', 'Group Duration' as 'Access Duration' | classify 'Download Size', 'Number of Hits'
Dans le graphique à bulles, le champ Nombre d'occurrences est tracé le long de l'axe X et la Taille de téléchargement le long de l'axe Y.
Les bulles peuvent être interprétées comme suit :
-
73,8 % des URL ont été consultées une à sept fois.
-
La taille moyenne de téléchargement pour les 73,8 % des URL est comprise entre 32 345 et 34 000. Cet intervalle étroit implique qu'un grand nombre d'URL ont un comportement très uniforme en ce qui concerne la taille de téléchargement.
-
Comme 73,8% est la grande majorité, les autres points sont marqués comme des anomalies.
-
Avec des données réelles, il est courant que le système regroupe les fichiers .css, .js et d'image séparément des autres URL car elles ont généralement des comportements de téléchargement différents.
-
-
Pour déterminer les pages les plus consultées, regroupez les enregistrements de journal en fonction de la valeur de l'URL dans l'enregistrement de journal, renommez les champs par défaut dans la table des groupes en fonction des valeurs appropriées et analysez les groupes pour le nombre de visiteurs uniques. Grâce à cette analyse, vous pouvez identifier les URL les plus consultées par les visiteurs uniques. Après l'étape 6 :
-
Glissez-déposez le champ User Name (Nom d'utilisateur) vers la section Value (Valeur).
-
Cliquez sur la flèche vers le bas à côté du nom du champ, remplacez la fonction Unique par Distinct Count. Consultez les autres fonctions que vous pouvez sélectionner pour un champ numérique :
-
Renommez le champ User Name (Nom d'utilisateur) en Number of Unique Users (Nombre d'utilisateurs uniques), supprimez la commande
classify
en modifiant l'interrogation sur la ligne de commande et exécutez l'interrogation. L'interrogation se présente comme suit :'Log Source' = 'FMW WLS Server Access Logs' | link URI | stats avg('Content Size In') as 'Bytes Uploaded', avg('Content Size Out') as 'Download Size', distinctcount('User Name') as 'Number of Unique Users' | rename Count as 'Number of Hits', 'Start Time' as 'First Access', 'End Time' as 'Last Access', 'Group Duration' as 'Access Duration'
-
Cliquez sur Analyser, sélectionnez le champ Nombre d'utilisateurs uniques et cliquez sur OK.
Le tableau répertorie les URL et le nombre correspondant d'utilisateurs uniques, ce qui nous aide à identifier les URL les plus visitées par des utilisateurs uniques. À partir de la table, vous pouvez également déterminer le nombre d'occurrences de chaque URL.
L'analyse montre que plus de 99 % des URL ont 0 ou 1 utilisateur unique. Cela serait le cas pour les URL qui n'ont pas besoin de connexion ou qui sont rarement consultées. Le forage de n'importe quelle bulle plus petite pointe vers les pages spécifiques, le nombre d'occurrences qu'elles ont généralement et le nombre de visiteurs uniques.
-
-
Pour identifier les utilisateurs principaux, regroupez les enregistrements de journal en fonction de la valeur du nom d'utilisateur dans l'enregistrement de journal, renommez les champs par défaut dans la table des groupes en fonction des valeurs appropriées et analysez les groupes en fonction du nombre d'occurrences. Cette analyse vous permet d'identifier les utilisateurs les plus actifs.
-
Modifiez la ligne de commande pour supprimer tous les filtres :
'Log Source' = 'FMW WLS Server Access Logs' | link URI
-
Glissez-déposez le champ Nom d'utilisateur dans Regrouper par, supprimez URI et exécutez l'interrogation.
-
Supprimez la commande
classify
, renommez les champs par défaut dans la ligne de commande et exécutez l'interrogation suivante :'Log Source' = 'FMW WLS Server Access Logs' | link 'User Name' | rename Count as 'Number of Hits', 'Start Time' as 'First Access', 'End Time' as 'Last Access', 'Group Duration' as 'Access Duration'
La table est triée en fonction du nombre d'occurrences par l'utilisateur.
-
Pour voir le comportement de l'utilisateur par accès, cliquez sur Analyser, sélectionnez le champ Nombre d'occurrences et cliquez sur OK.
-
Cliquez sur les anomalies pour identifier les utilisateurs qui ont enregistré un nombre de résultats supérieur ou inférieur à celui des autres utilisateurs.
-
-
Pour identifier les utilisateurs principaux et leurs pages favorites, regroupez les enregistrements de journal en fonction de la valeur du nom d'utilisateur dans l'enregistrement de journal, renommez les champs par défaut dans la table des groupes en fonction des valeurs appropriées et analysez les groupes pour le nombre de pages uniques. Cette analyse vous permet d'identifier les utilisateurs les plus et les moins actifs, ainsi que leurs pages favorites. Après l'étape 8 :
-
Glissez-déposez le champ URI vers la section Value (Valeur). Remplacez la fonction Unique par Distinct Count.
-
Renommez le champ URI en Number of Unique Pages (Nombre de pages uniques) en modifiant l'interrogation dans la ligne de commande et exécutez l'interrogation.
-
Cliquez sur Analyser, sélectionnez le champ Nombre de pages uniques et cliquez sur OK.
-
-
Pour identifier la page d'entrée qui génère le plus de visites, regroupez les enregistrements de journal en fonction de la valeur du nom d'utilisateur dans l'enregistrement de journal, renommez les champs par défaut dans la table des groupes en fonction des valeurs appropriées et analysez les groupes pour les valeurs des URL d'entrée et le nombre d'occurrences pour les URL. Cette analyse vous permet d'identifier les pages que les utilisateurs ont consultées en premier. Après l'étape 9 :
-
Pour obtenir les URL d'entrée, faites passer la fonction du champ URI de Distinct Count à Earliest.
-
Renommez le champ URI en Entry URL (URL d'entrée) en modifiant l'interrogation dans la ligne de commande et exécutez l'interrogation.
-
Cliquez sur Analyser, sélectionnez les champs Number of Hits et Entry URL, sélectionnez 20 pour topcount et cliquez sur OK.
'Log Source' = 'FMW WLS Server Access Logs' | link 'User Name' | stats earliest(URI) as 'Entry URL' | rename Count as 'Number of Hits', 'Start Time' as 'First Access', 'End Time' as 'Last Access', 'Group Duration' as 'Access Duration' | classify topcount = 20 'Number of Hits', 'Entry URL'
La première URL utilisée par les utilisateurs est affichée en fonction du nombre d'occurrences. Par exemple, /login est la première URL majoritaire des utilisateurs.
-
-
Pour identifier le chemin d'entrée et de sortie pour la plupart des utilisateurs, regroupez les enregistrements de journal par la valeur du nom d'utilisateur dans l'enregistrement de journal, renommez les champs par défaut dans la table des groupes en fonction des valeurs appropriées et analysez les groupes pour les valeurs des URL d'entrée et des URL de sortie. Grâce à cette analyse, vous pouvez identifier :
-
Les chemins les plus courants empruntés par les utilisateurs pour transiter par le site Web
-
Les pages de produits les plus populaires à partir desquelles les utilisateurs quittent le site Web
-
Les URL de sortie les plus courantes, comme les pages de sortie de produit ou la passerelle de paiement
-
Les URL de sortie inhabituelles, et la cause fondamentale des sorties inattendues
-
Glissez-déposez le champ URI vers la section Value (Valeur).
-
Pour obtenir la page de sortie, faites passer la fonction du champ URI de Unique à Latest.
-
Modifiez la ligne de commande et renommez le champ latest(URI) en Exit URL (URL de sortie), puis soumettez l'interrogation.
-
Cliquez sur Analyser, sélectionnez les champs Entry URL et Exit URL, sélectionnez 20 pour topcount et cliquez sur OK.
'Log Source' = 'FMW WLS Server Access Logs' | link 'User Name' | stats earliest(URI) as 'Entry URL', latest(URI) as 'Exit URL' | rename Count as 'Number of Hits', 'Start Time' as 'First Access', 'End Time' as 'Last Access', 'Group Duration' as 'Access Duration' | classify topcount = 20 'Entry URL', 'Exit URL'
-
Augmentez la taille du graphique à l'aide des options d'analyse de graphique.
Ce graphique à cases affiche la relation entre les URL d'entrée et de sortie d'un site. Cela serait très utile pour les sites de vente au détail où les fournisseurs de services voudraient identifier les URL d'entrée qui mènent les clients aux pages de paiement, et les URL de produits qui font que les utilisateurs ne passent pas au paiement.
-
Générer des graphiques avec des champs virtuels
Pour créer un champ virtuel, vous pouvez utiliser la commande eval
dans la fonction Link. L'interrogation eval
sur la ligne de commande va générer un graphique linéaire pour le champ virtuel et permettre d'en effectuer le suivi dans le temps.
Pour créer un champ virtuel, vous pouvez utiliser la commande eval
dans la fonction Link. L'interrogation eval
sur la ligne de commande va générer un graphique linéaire pour le champ virtuel et permettre d'en effectuer le suivi dans le temps.
Exemples :
-
Considérons le scénario dans lequel les enregistrements de journal de la source de journaux
SAR CPU Logs
sont regroupés en fonction du nom d'hôte et de l'UC. Pour déterminer la charge subie par l'UC du serveur au fil du temps, la commandeeval
crée un champ virtuelLoad %
et génère le graphique linéaire.'Log Source' = 'SAR CPU Logs' | rename Instance as CPU | link 'Host Name (Server)', CPU | stats avg('CPU Idle Time (%)') as 'CPU Idle Time (%)' | eval 'Load %' = 100 - 'CPU Idle Time (%)'
Pour afficher le graphique linéaire :
-
Cliquez sur l'onglet Histogramme.
-
Cliquez sur la flèche vers le bas à côté de l'icône Options de graphique (
). Cliquez sur Masquer/Afficher les graphiques. Sélectionnez Load % (% de charge).
-
Cliquez sur la flèche vers le bas à côté de l'icône Options de graphique (
). Cliquez sur Options de graphique. Dans la liste Type de graphique, sélectionnez Ligne sans marqueur. Cliquez sur Fermer.
-
-
Prenons le scénario dans lequel les enregistrements de journal de la source de journaux
OMC WLS Server Access Logs
sont regroupés en fonction de l'URI. Pour déterminer la taille des données consultées au fil du temps en mégaoctets, la commandeeval
crée un champ virtuelContent Size (MB)
, calcule la taille du contenu en mégaoctets en fonction de la valeur du champContent Size
et génère le graphique linéaire.'Log Source' = 'WLS Server Access Logs' | link URI | stats avg('Content Size') as 'Content Size Bytes' | eval 'Content Size (MB)' = 'Content Size Bytes' / 1024
Pour afficher le graphique linéaire :
-
Cliquez sur l'onglet Histogramme.
-
Cliquez sur la flèche vers le bas à côté de l'icône Options de graphique (
). Cliquez sur Masquer/Afficher les graphiques. Sélectionnez Content Size (MB) (Taille de contenu (Mo)) et Access Log Records (Enregistrements de journal d'accès).
-
Cliquez sur la flèche vers le bas à côté de l'icône Options de graphique (
). Cliquez sur Options de graphique. Dans la liste Type de graphique, sélectionnez Ligne sans marqueur. Cliquez sur Fermer.
-
Link à l'aide de l'énoncé SQL en tant que champ d'analyse
La commande Link prend en charge l'énoncé SQL en tant que champ d'analyse. L'énoncé SQL contient le code SQL qui exécuté et saisi par des sources de journaux telles que Database Audit XML Logs
et Oracle Unified DB Audit Log Source Stored in Database 12.1
.
Vous pouvez utiliser link 'SQL Statement'
pour regrouper des énoncés SQL et analyser leur comportement afin d'identifier des anomalies.
Exemple :
Examinons l'interrogation suivante qui lie les enregistrements de journal en fonction du champ Énoncé SQL :
'Log Source' in ('Database Audit Logs', 'Database Audit XML Logs')
| rename 'Host Name (Server)' as 'DB Server', 'User Name (Originating)' as 'OS User', 'User Name' as 'DB User'
| link 'SQL Statement'
| rename Count as 'Number of Runs', 'Start Time' as 'First Run', 'End Time' as 'Last Run', 'Group Duration' as Age
| addfields [ Object = dual | stats count as 'dual Table Access' ],
[ Object like 'all_%' | stats count as 'ALL_ Table Access' ],
[ Object like 'dba_%' | stats count as 'DBA_ Table Access' ],
[ Object like 'user_%' | stats count as 'USER_ Table Access' ],
[ Object like 'v$%' | stats count as 'VDollar Table Access' ],
[ Object = null | stats count as 'No Table Access' ],
[ Action = '2' | stats count as 'Insert Count' ],
[ Action = '3' | stats count as 'Select Count' ],
[ Action = '6' | stats count as 'Update Count' ],
[ Action = '7' | stats count as 'Delete Count' ],
[ Type = '8' | stats count as 'Connect Count' ],
[ 'Status Code' = 1 | stats count as Failures ]
| eval 'Object Type' = if('dual Table Access' > 0, Dual,
'ALL_ Table Access' > 0, System,
'DBA_ Table Access' > 0, System,
'USER_ Table Access' > 0, System,
'VDollar Table Access' > 0, System,
'No Table Access' > 0, 'No Table', Other)
| eval 'SQL Type' = if('Insert Count' > 0, Insert,
'Select Count' > 0, Select,
'Update Count' > 0, Update,
'Delete Count' > 0, Delete,
'Connect Count' > 0, Connect, Other)
| stats distinctcount(Object) as Objects, distinctcount('Database ID') as 'Number of DBs',
distinctcount(Session) as 'Number of Sessions'
| fields -'dual Table Access', -'No Table Access', -'ALL_ Table Access',
-'USER_ Table Access', -'DBA_ Table Access', -'VDollar Table Access', -'Insert Count',
-'Select Count', -'Update Count', -'Delete Count', -'Connect Count', -'SQL Type', -'Object Type'
| classify Age
| classify 'Number of Sessions'
| classify 'Number of DBs'
| classify 'Number of Runs', 'Object Type'
| classify 'Object Type', 'SQL Type'
addfields
est une fonction disponible avec la visualisation Link pour ajouter des champs virtuels à l'interrogation. Il effectue une interrogation et transmet la sortie à une commande stats
. Le champ virtuel obtenu est disponible dans la table ainsi que dans le graphique de séries chronologiques.
Pour la syntaxe et d'autres détails de la commande addfields
, voir addfields.
L'exécution de l'interrogation ci-dessus permet d'observer les résultats suivants :
-
En fonction de la commande classify, les graphiques à bulles pour
Age
,Number of Sessions
,Number of DBs
,Number of Runs, Object Type
etObject Type, SQL Type
sont générés.Dans les graphiques à bulles, les enregistrements de journal sont regroupés en fonction du nombre d'énoncés SQL figurant dans chaque jeu de paramètres. Les paramètres
Object Type
etSQL Type
sont déterminés à l'aide de la commandeeval
dans l'interrogation. -
Les histogrammes de type Ligne avec zone illustrent l'occurrence des champs tels que
dual Table Access
,No Table Access
,ALL_ Table Access
,USER_ Table Access
,DBA_ Table Access
,VDollar Table Access
,Insert Count
,Select Count
,Update Count
,Delete Count
,Connect Count
etLog Records
tracés par rapport au temps.-
Dans l'onglet d'histogramme, cliquez sur la flèche vers le bas à côté de l'icône Options de graphique (
).
-
Affichez les graphiques pour tous les champs.
-
Sous Type de graphique, sélectionnez Ligne avec zone.
-
Ajustez la largeur pour afficher deux graphiques par ligne.
-
-
La table des groupes répertorie les groupes identifiés par Link en fonction du champ Énoncé SQL. Pour chaque énoncé SQL, la table indique le nombre de fois où l'énoncé SQL a été exécuté, l'heure de début, l'heure de fin et la durée de groupe. Cliquez sur chaque groupe et consultez les enregistrements de journal pour plus de détails. Vous pouvez également afficher les groupes dans la visualisation de regroupements pour une analyse plus approfondie.
Analyser le temps nécessaire entre les étapes d'une transaction
La fonction Link vous permet d'analyser les sessions utilisateur, d'extraire les différents paramètres de temps par regroupement et de dériver des données sur le temps de transaction pour vous aider à obtenir des données clés sur l'entreprise.
Prenons ce jeu de données non trié extrait d'un fichier journal d'accès. Les champs suivants présentent les informations concernant une session d'utilisateur et les actions effectuées par l'utilisateur :
Time | Session ID | Action
T2 | 1 | Login
T1 | 5 | Login
T6 | 1 | addtocart
T3 | 1 | productlisting
T4 | 1 | purchase
T9 | 1 | purchase
T7 | 5 | addtocart
T5 | 1 | addtocart
T8 | 5 | purchase
Les actions telles que Login
, addtocart
, productlisting
et purchase
sont enregistrées dans un ordre aléatoire T1
à T9
et sont survenues dans deux sessions avec l'ID session 1
et 5
.
Pour effectuer une analyse temporelle similaire de vos journaux d'accès, extrayez Session ID
des journaux dans un champ. Extrayez les étapes intermédiaires de la session à partir des journaux d'accès en appliquant une expression rationnelle pour obtenir la valeur URL
à partir des journaux.
Dans un contexte générique, les sessions de cet exemple représentent toutes les transactions d'utilisateur, et les actions représentent les étapes intermédiaires effectuées par l'utilisateur pour terminer une transaction.
Pour analyser ces données non triées et extraire les informations requises, exécutez l'exemple d'interrogation suivant :
'Upload Name' = logadmin
| link 'Session ID'
| rename 'Group Duration' as 'Session Duration'
| addfields
[ Action = addtocart | stats earliest(Time) as 'First Add To Cart Time' ],
[ Action = purchase | stats latest(Time) as 'Last Purchase Time' ]
| eval 'Time Taken for Purchase (Secs)' = ('Last Purchase Time' - 'First Add To Cart Time') / 1000
| fields -'First Add To Cart Time',
-'Last Purchase Time'
| classify 'Time Taken for Purchase (Secs)'
-
link 'Session ID'
regroupe les enregistrements des journaux d'accès par ID session en créant deux groupes :Time | Session ID | Action T2 | 1 | Login T6 | 1 | addtocart T3 | 1 | productlisting T4 | 1 | purchase T5 | 1 | addtocart T9 | 1 | purchase T1 | 5 | Login T7 | 5 | addtocart T8 | 5 | purchase
-
La commande
addfields
est exécutée sur chacun de ces groupes. La première commandeaddfields
sélectionne les enregistrements oùAction = addtocart
. Le résultat de cette interrogation est le suivant pour les deux groupes :Time | Session ID | Action T6 | 1 | addtocart T5 | 1 | addtocart T7 | 5 | addtocart
-
stats earliest(Time)
trie les résultats ci-dessus en fonction du temps, pour chaque groupe :Time | Session ID | Action T5 | 1 | addtocart T6 | 1 | addtocart T7 | 5 | addtocart
-
Le champ spécifié, qui est
Time
, est ensuite extrait du premier enregistrement :'First Add To Cart Time' = T5 for Group = 1 'First Add To Cart Time' = T7 for Group = 5
-
La seconde commande
addfields
s'exécute surAction = purchase
, en extrayant les enregistrements suivants :Time | Session ID | Action T4 | 1 | purchase T9 | 1 | purchase T8 | 5 | purchase
-
latest(Time)
trie également les enregistrements ci-dessus en fonction deTime
:Time | Session ID | Action T4 | 1 | purchase T9 | 1 | purchase T8 | 5 | purchase
-
latest(Time)
sélectionne le dernier enregistrement et extrait le champ spécifié, qui estTime
:'Last Purchase Time' = T9 for Group = 1 'Last Purchase Time' = T8 for Group = 5
-
À ce stade, les valeurs
First Add to Cart Time
etLast Purchase Time
sont définies pour les deux groupes. Ce sont des horodatages.eval
soustrait l'un de l'autre pour obtenir le temps écoulé. -
En effet, vous pouvez obtenir le temps écoulé entre l'ajout au panier et l'étape Achat pour chaque session. Cela peut maintenant être utilisé dans
classify
pour analyser la variation de ce Temps écoulé dans toutes les sessions.
Pour la syntaxe et d'autres détails de la commande addfields
, voir addfields.
Générer des graphiques pour plusieurs champs et leurs valeurs
Vous pouvez utiliser la commande addfields
dans l'interrogation pour spécifier plusieurs champs afin de générer des graphiques distincts. Vous pouvez à présent utiliser l'option Ajouter/Modifier des graphiques de l'histogramme dans l'interface utilisateur pour effectuer la même opération que la commande addfields
.
Généralement, vous souhaitez comparer les graphiques d'un seul champ avec diverses valeurs, par exemple, les valeurs du champ Gravité comme Erreur, Critique, Alerte et Avertissement. L'option Ajouter un graphique vous permet de générer plusieurs graphiques pour les comparer côte à côte en spécifiant le champ et ses valeurs dans la boîte de dialogue.
Vous pouvez également entrer et mettre à jour l'interrogation avec la commande. L'option Ajouter un graphique vous permet d'effectuer l'opération plus rapidement que de composer l'interrogation avec la commande addfields
.
-
Dans l'interface utilisateur Link, allez à l'onglet Enregistrements de journaux > à partir du menu
Options de graphique, cliquez sur Ajouter/Modifier des graphiques pour mettre à jour automatiquement l'interrogation à l'aide de la commande
addfields
.La boîte de dialogue Ajouter/Modifier des graphiques s'ouvre.
-
À côté de Sous-interrogation, sélectionnez le champ dans le menu, par exemple
Severity
.Sélectionnez l'opérateur approprié.
Cliquez sur l'icône de modification
pour sélectionner une ou plusieurs valeurs, par exemple
alert
. Les champs calculés ne sont pas pris en charge. -
Sélectionnez éventuellement la fonction Stats.
À côté de Stats, sélectionnez la fonction à exécuter sur le champ et le champ de fonction dans le menu déroulant.
À l'exception de la fonction
count
, toutes les autres fonctions nécessitent que le champ de fonction soit spécifié. -
Cliquez sur Ajouter un graphique pour voir l'interrogation obtenue. Cliquez sur l'icône de modification
pour modifier l'interrogation.
-
Répétez les étapes 2 à 4 pour ajouter d'autres graphiques, par exemple pour générer des graphiques pour les valeurs
error
,critical
etwarning
du champSeverity
.Cliquez sur Mettre à jour.
-
Cliquez sur le menu Options de graphique
et assurez-vous que les nouveaux graphiques que vous avez générés sont inclus et sélectionnés dans l'option Masquer/Afficher. Vous pouvez également sélectionner le type de graphique, la taille à partir du graphique, la hauteur, la largeur et d'autres attributs. Voir Histogramme.
Vous pouvez maintenant voir les graphiques personnalisés des champs de sélection et leurs valeurs de sélection dans l'onglet Enregistrements de journal, et les comparer visuellement.
Agrégation de deuxième niveau à l'aide de la commande Eventstats dans Link
Link permet de regrouper les enregistrements de journal à l'aide d'une ou de plusieurs clés uniques. Par exemple, vous pouvez regrouper tous les enregistrements de journal appartenant à une transaction à l'aide de l'ID transaction unique. Vous pouvez générer des statistiques pour chaque groupe à l'aide de la commande stats
. eventstats
est une nouvelle commande qui permet d'agréger davantage ces statistiques. Les exemples suivants illustrent les cas d'utilisation pour eventstats
.
Prenons le jeu de données de journaux d'accès suivant pour tous les exemples :
1-Jan-2020 10:00:00 PST, chicago_dc1 /index.html 100
1-Jan-2020 10:00:00 PST, chicago_dc1 /index.html 100
1-Jan-2020 10:00:00 PST, chicago_dc1 /index.html 50
1-Jan-2020 10:00:00 PST, chicago_dc1 /index.html 50
1-Jan-2020 10:00:00 PST, chicago_dc2 /index.html 200
1-Jan-2020 10:00:00 PST, chicago_dc2 /index.html 200
1-Jan-2020 10:00:00 PST, austin_dc7 /report/download 5000
1-Jan-2020 10:00:00 PST, austin_dc7 /users/auth 50
1-Jan-2020 10:00:00 PST, amsterdam_dc1 /index.html 350
1-Jan-2020 10:00:00 PST, amsterdam_dc1 /report/download 1024
Le jeu de données contient les champs suivants :
- Date/heure : Par exemple, 1-Jan-2020 10:00:00 PST.
- Nom d'hôte (serveur) : Hôte qui a servi cette demande, par exemple chicago_dc1.
- URI : URL de la demande, par exemple /index.html.
- Taille de contenu en sortie : Nombre d'octets téléchargés, par exemple 100.
Regroupement simple :
* | link 'Host Name (Server)', URI
| stats sum('Content Size Out') as 'Bytes Downloaded'
L'interrogation ci-dessus regroupe les enregistrements de journal à l'aide de la combinaison distincte des champs Nom d'hôte (serveur) et URI. Le champ Taille de contenu en sortie de chaque enregistrement est ensuite additionné par groupe dans le nouveau champ Octets téléchargés.
Somme globale à l'aide de la commande eventstats
Les octets téléchargés dans l'exemple précédent concernent chaque combinaison serveur-URL. Un cas d'utilisation simple de la commande eventstats
consiste à calculer le total des données téléchargées sur tous les serveurs et URL :
* | link 'Host Name (Server)', URI
| stats sum('Content Size Out') as 'Bytes Downloaded'
| eventstats sum('Bytes Downloaded') as 'Total Bytes Downloaded'
Dans l'exemple ci-dessus, eventstats
agrège les valeurs de chaque groupe pour produire un seul regroupement global. Cela peut maintenant être transmis à classify
ou eval
, ainsi qu'utilisé dans la clause where
.
Commandes eventstats
multiples :
Plusieurs commandes eventstats
peuvent être regroupées ou chaînées comme dans l'exemple suivant :
.. | eventstats sum('Content Size In') as 'Bytes Uploaded', sum('Content Size Out') as 'Bytes Downloaded'
| eventstats avg('Duraton') as 'Global Average Duration'
Regroupement à l'aide de la commande evenstats
La commande eventstats
a également un mode regrouper par. Prenons l'interrogation suivante :
* | link 'Host Name (Server)', URI
| stats sum('Content Size Out') as 'Bytes Downloaded'
| eventstats sum('Bytes Downloaded') as 'Total Bytes Downloaded' by URI
Au lieu de calculer une seule valeur, eventstats
calcule maintenant une valeur par URI unique :
La somme est produite en obtenant d'abord les URI distincts, puis en effectuant l'agrégation :
index.html -> 300 + 400 + 350 = 1050
/report/download -> 5000 + 1024 = 6024
/users/auth -> 50 = 50
Commande eventstats avec commande eval
La commande eventstats
peut également fonctionner sur un champ produit par une commande eval
. Par exemple, au lieu de l'URL, nous pouvons produire les totaux par rapport au centre de données :
* | link 'Host Name (Server)', URI
| stats sum('Content Size Out') as 'Bytes Downloaded'
| eval offset = indexof('Host Name (Server)', _)
| eval Datacenter = substr('Host Name (Server)', 0, offset)
| eventstats sum('Bytes Downloaded') as 'Total Bytes Downloaded' by Datacenter
| fields -offset
La fonction sum
est exécutée après le regroupement par sous-chaînes :
chicago_dc1 = 300
chicago_dc2 = 400
-> chicago = 300+400 = 700
amsterdam_dc1 = 350
amsterdam_dc1 = 1024
-> amsterdam = 350 + 1024 = 1374
austin_dc7 = 5000
austin_dc7 = 50
-> austin = 5000 + 50 = 5050
Le regroupement peut être effectué à l'aide d'une ou de plusieurs propriétés. Les propriétés sont les clés de groupe ou les valeurs de chaîne produites par stats
ou eval
.
Calculer des pourcentages pour la comparaison de groupes
Une application très importante de la commande eventstats
est de produire une valeur globale, et d'identifier le pourcentage élevé ou faible de contribution de divers groupes :
* | link 'Host Name (Server)', URI
| stats sum('Content Size Out') as 'Bytes Downloaded'
| eval offset = indexof('Host Name (Server)', _)
| eval Datacenter = substr('Host Name (Server)', 0, offset)
| eventstats sum('Bytes Downloaded') as 'Total Bytes Downloaded' by Datacenter
| eval 'Download Contribution %' = 100 / ('Total Bytes Downloaded' / 'Bytes Downloaded')
| fields -offset
Le champ Download Contribution % (% de contribution au téléchargement) est calculé à l'aide de la valeur globale produite par eventstats..by
et de la valeur par groupe produite par stats
:
chicago_dc1, index.html => 100/(700/300) = 42.857
chicago_dc2, index.html => 100/(700/400) = 57.143
amsterdam_dc1, index.html => 100/(1374/350) = 25.473
amsterdam_dc1, /report/download => 100/(1374/1024) = 74.527
austin_dc7, /report/download => 100/(5050/5000) = 99.01
austin_dc7, /users/auth => 100/(5050/50) = 0.99
Cette interrogation vous permet de voir quelles URL génèrent le trafic de téléchargement le plus élevé par rapport aux autres URL du même centre de données. Le champ Download Contribution % (% de contribution au téléchargement) peut être utilisé pour filtrer les groupes à l'aide de :
- la clause
where
- la commande
sort
pour le classement - la commande
classify
pour la détection d'anomalies
Utiliser les fonctions de navigation Link pour identifier des événements dans une base de données
Utilisez Link pour créer des données structurées à partir d'enregistrements de journal et afficher les données sous la forme d'une table triée. Les fonctions statistiques peuvent être appliquées aux colonnes de la table à l'aide de la commande stats pour créer des colonnes dérivées. Ces colonnes dérivées peuvent être agrégées plus avant à l'aide de la commande eventstats.
Fonctions de navigation
Les fonctions de navigation sont utiles pour extraire les valeurs d'une colonne spécifique d'une rangée spécifique. Elles produisent des résultats différents selon la commande de tri précédente.
Les fonctions de navigation suivantes peuvent être utilisées avec la commande eventstats
dans link :
Fonction | Description |
---|---|
|
Créer une colonne de numéro de rangée |
|
Obtenir la première valeur pour le champ spécifié |
|
Obtenir la dernière valeur pour le champ spécifié |
|
Obtenir la valeur de colonne pour la rangée indiquée |
|
Obtenir la valeur de colonne pour la rangée précédente |
|
Obtenir la valeur de colonne pour la rangée suivante |
Pour plus d'informations sur les fonctions, voir eventstats.
Obtenir le contexte d'un événement
Oracle Log Analytics fournit des étiquettes prêtes à l'emploi pour les journaux d'alerte de base de données. L'étiquette Abnormal Termination (Arrêt anormal) indique un problème grave qui provoque l'arrêt de la base de données. Un tri typique consiste à analyser la séquence des événements qui se sont produits avant un tel arrêt. Il est également utile de connaître les événements après un arrêt.
Les sections suivantes expliquent les étapes de tri à l'aide de certaines des fonctions eventstats
pour les journaux d'alerte de base de données.
Lier des événements dans les journaux d'alertes de base de données
Exécutez l'interrogation suivante pour lier les événements d'une base de données sélectionnée :
'Log Source' = 'Database Alert Logs' and Label != null and Entity = MyDB
| rename Entity as Database
| link span = 1minute Time, Database, Label
| sort Database, 'Start Time'
Cela crée une rangée unique pour chaque étiquette dans la base de données. Puisque nous avons inclus la colonne Time, il y aurait plusieurs rangées pour la même Étiquette, si elles se répètent à des moments différents.
La commande sort
trie la table par ordre d'étiquette, la plus ancienne figurant à la première rangée.
Ajouter un numéro de rangée
Exécutez l'interrogation suivante pour ajouter un numéro à chaque rangée :
'Log Source' = 'Database Alert Logs' and Label != null and Entity = MyDB
| rename Entity as Database
| link span = 1minute Time, Database, Label
| sort Database, 'Start Time'
| eventstats rownum as 'Row Number' by Database
Si l'interrogation comporte plusieurs bases de données, le numéro de rangée est réinitialisé pour chaque base de données, en raison de la clause by Database
.
Identifier la rangée avec un événement de panne de base de données
L'étiquette Abnormal Termination (Arrêt anormal) indique une panne de la base de données Identifiez ce type de rangées avec l'interrogation suivante :
'Log Source' = 'Database Alert Logs' and Label != null and Entity = MyDB
| rename Entity as Database
| link span = 1minute Time, Database, Label
| sort Database, 'Start Time'
| eventstats rownum as 'Row Number' by Database
| addfields
[ * | where Label = 'Abnormal Termination'
| eventstats last('Row Number') as 'Crash Row'
]
La commande addfields
est utilisée pour identifier un sous-jeu des enregistrements de journal. Dans ce cas, addfields
effectue une recherche dans plusieurs rangées de la table. Les rangées correspondantes sont transmises à eventstats
et last('Row Number')
sélectionne le numéro de rangée de la dernière rangée correspondante. Ce champ est maintenant alimenté en tant que nouveau champ Crash Row (Rangée de la panne). Notez que Crash Row n'aura une valeur que pour les rangées correspondant à la condition spécifiée dans addfields
.
Le champ Crash Row est alimenté uniquement pour des rangées spécifiques. Utilisez une autre commande eventstats
pour alimenter toutes les rangées avec la valeur :
'Log Source' = 'Database Alert Logs' and Label != null and Entity = MyDB
| rename Entity as Database
| link span = 1minute Time, Database, Label
| sort Database, 'Start Time'
| eventstats rownum as 'Row Number' by Database
| addfields
[ * | where Label = 'Abnormal Termination'
| eventstats last('Row Number') as 'Crash Row'
]
| eventstats max('Crash Row') as 'Event Row' by Database
Cette opération crée la colonne Event Row (Rangée d'événement) dans chaque rangée et contient la rangée qui a été la dernière panne de base de données.
Identifier les événements proche d'une panne de base de données
La table comporte encore plusieurs événements, par exemple des centaines. Pour identifier quelques événements avant la rangée d'événement et quelques événements après la rangée d'événement, modifiez l'interrogation pour filtrer les rangées :
'Log Source' = 'Database Alert Logs' and Label != null and Entity = MyDB
| rename Entity as Database
| link span = 1minute Time, Database, Label
| sort Database, 'Start Time'
| eventstats rownum as 'Row Number' by Database
| addfields
[ * | where Label = 'Abnormal Termination'
| eventstats last('Row Number') as 'Crash Row'
]
| eventstats max('Crash Row') as 'Event Row' by Database
| eval 'Start Row' = 'Event Row' - 3
| eval 'End Row' = 'Event Row' + 2
| where 'Row Number' >= 'Start Row' and 'Row Number' <= 'End Row'
La table présente maintenant les événements qui se sont produits avant l'arrêt anormal. Nous pouvons également voir les événements qui se sont produits après l'arrêt anormal.
Événements précédents et suivants
lag()
peut être utilisé pour obtenir l'événement précédent. Un numéro de rangée facultatif peut être transmis pour obtenir une rangée précédente spécifique. lead()
peut également être utilisé pour obtenir la rangée suivante :
'Log Source' = 'Database Alert Logs' and Label != null and Entity = MyDB
| rename Entity as Database
| link span = 1minute Time, Database, Label
| sort Database, 'Start Time'
| addfields
[ *
| where Label != null
| eventstats lag(Label) as 'Previous Event',
lead(Label) as 'Next Event'
]
De plus, nthVal()
peut obtenir la valeur d'une rangée spécifique.
Utiliser les symboles de devise dans votre analyse de journal
Vous pouvez utiliser la fonction unit
dans la commande eval
pour marquer un champ comme contenant la devise. Vous pouvez ensuite utiliser cette valeur de champ dans votre analyse et afficher le symbole de devise correspondant dans la table des visualisations et des groupes.
Vous pouvez d'abord spécifier l'unité de devise à l'aide du format défini dans Eval. Après cela, la table de liens et les graphiques afficheront les symboles de devise appropriés.
Dans l'exemple suivant, la valeur du champ Prix est utilisée pour calculer les valeurs des nouveaux champs Prix (USD), Prix (GBP), Prix (JPY), Prix (CNY) et Prix (INR) et les marquer comme contenant la devise. Les mêmes nouveaux champs sont utilisés pour l'analyse dans l'obtention du prix moyen régional de l'essence sur une période de plusieurs années.
'Log Source' = 'Gasoline Prices'
| eval 'Price (USD)' = unit(Price, currency_usd)
| eval 'Price (GBP)' = unit(Price * 0.72, currency_gbp)
| eval 'Price (JPY)' = unit(Price * 110.6, currency_jpy)
| eval 'Price (CNY)' = unit(Price * 6.47, currency_cny)
| eval 'Price (INR)' = unit(Price * 74.79, currency_inr)
| link Time, Type, Region
| stats avg('Price (USD)') as 'Cost (USD)',
avg('Price (GBP)') as 'Cost (GBP)',
avg('Price (JPY)') as 'Cost (JPY)',
avg('Price (CNY)') as 'Cost (CNY)',
avg('Price (INR)') as 'Cost (INR)'
| classify 'Start Time', 'Cost (USD)', Region, Type as 'Gas Price Analysis'
Dans l'image suivante, les groupes sont identifiés en fonction de la région, du temps et du type d'essence. La fourchette de prix moyen de l'essence est utilisée pour tracer les bulles le long de l'axe y.

Dans l'image suivante, le tableau des groupes indique le prix moyen de l'essence dans différentes devises. Les graphiques montrent la variation du coût sur plusieurs années pour chaque valeur monétaire.

Analyse de séries chronologiques à l'aide de la commande timestats
Vous pouvez analyser la tendance d'un champ à l'aide de la commande timestats
. La commande timestats
, lorsqu'elle est utilisée après la commande link
, fournit des analyses de série chronologique supplémentaires et une visualisation riche.
Prenons l'exemple des journaux de schéma unifié de flux de VCN OCI. Le champ Action dans les journaux de schéma unifié de flux de VCN OCI indique si une demande de réseau particulière a été acceptée ou rejetée. Utilisez la commande timestats
pour analyser la tendance de ce champ. Voir timestats.
À partir de la commande link
de base :
'Log Source' = 'OCI VCN Flow Unified Schema Logs' | link Action
Cela montre qu'il existe deux valeurs distinctes pour la période sélectionnée :

Dans le cas ci-dessus, une seule rangée est disponible pour chaque action unique, car le comportement par défaut est de regrouper par le champ indiqué. La première étape consiste à s'assurer qu'il existe plusieurs lignes pour chaque valeur en fonction de la période. Pour ce faire, ajoutez Time comme autre champ à la commande link
.
'Log Source' = 'OCI VCN Flow Unified Schema Logs' | link span=1day Time, Action
Le paramètre span est facultatif. S'il n'est pas indiqué, une valeur par défaut appropriée pour la période sélectionnée est calculée. Vous pouvez maintenant voir la même action pour un jour différent apparaître dans une ligne distincte.

Utilisez maintenant la commande timestats
. Dans ce cas, nous voulons Heure de début dans l'axe des X et la valeur Nombre dans l'axe des Y. Comme timestats
requiert toujours une fonction, utilisez la fonction sum() pour additionner le nombre d'enregistrements avec la valeur d'action indiquée, pour chaque intervalle.
'Log Source' = 'OCI VCN Flow Unified Schema Logs'
| link span=1day Time, Action
| timestats name="Trend of Action" sum(Count) as Records by Action
Affiche les valeurs somme (nombre) pour chaque action.

Pour plus de détails sur le traçage des séries chronologiques à l'aide de la commande timestats
, des champs, des limites et des options de configuration, voir Utiliser la commande timestats pour tracer une série chronologique.
Regroupement de séries chronologiques
Vous pouvez regrouper des valeurs de série chronologique similaires à l'aide de la commande timecluster
après la commande link
. La mise en grappe est utile lorsqu'il y a un grand nombre de séries chronologiques à analyser ou lorsque vous souhaitez identifier différents comportements dans vos valeurs de séries chronologiques.
Les journaux de schéma unifié de flux de VCN OCI enregistrent les informations de trafic réseau pour une carte VNIC OCI. Pour identifier la quantité de données transférées par différentes adresses IP publiques, une interrogation peut être composée à l'aide des champs Adresse IP publique et Taille du contenu dépassée.
À partir de la commande link
de base :
'Log Source' = 'OCI VCN Flow Unified Schema Logs' | eval 'Content Size Out (bytes)' = unit('Content Size Out', byte) | link 'Public IP'
Cela montre qu'il y a plus de 25k adresses IP publiques uniques dans le système.

La table comporte une rangée pour chaque adresse IP publique unique. Il doit être fractionné pour avoir une rangée pour chaque période. Pour ce faire, ajoutez le champ Heure à la commande link
:
'Log Source' = 'OCI VCN Flow Unified Schema Logs'
| eval 'Content Size Out (bytes)' = unit('Content Size Out', byte)
| link Time, 'Public IP'
Plusieurs rangées apparaissent pour chaque valeur d'adresse IP publique.
Si la commande timestats
est utilisée pour tracer la série chronologique, elle retourne uniquement les 100 principales adresses IP publiques. Il n'est pas possible de tracer les adresses IP 25k dans un graphique.

Par conséquent, au lieu de timestats
, utilisez timecluster
pour obtenir les exemples représentatifs.
'Log Source' = 'OCI VCN Flow Unified Schema Logs'
| eval 'Content Size Out (bytes)' = unit('Content Size Out', byte)
| link Time, 'Public IP'
| timecluster avg('Content Size Out (bytes)') as 'Network Transfer' by 'Public IP'

Chaque ligne représente une ou plusieurs valeurs d'adresse IP publique ayant des valeurs similaires pour le transfert réseau.
Passez la souris sur n'importe quel point pour voir plus de détails :

Pour plus de détails sur la mise en grappe de commandes et de séries chronologiques timecluster
, voir timecluster et Utiliser la commande timecluster pour tracer une série chronologique.