Esegui analisi avanzata con collegamento
Comprendere l'applicazione della funzione Link nell'esecuzione di analisi avanzate con il caso d'uso discusso in questo argomento.
Scenari di esempio:
Caso d'uso | Funzione collegamento | Log di esempio |
---|---|---|
Visualizzazione dei dati delle serie temporali mediante la funzione Andamento collegamento |
Andamento collegamento |
|
Collega funzioni di base |
|
|
Utilizzo dei campi virtuali per i grafici |
|
|
Collegamento mediante l'utilizzo dell'istruzione SQL come campo di analisi |
Utilizzo dell'istruzione SQL come campo |
|
Analizzare il tempo impiegato tra i passi di una transazione |
Analisi tempo |
|
Grafici per più campi e relativi valori |
- |
|
Aggregazione di secondo livello mediante il comando Eventstat nel collegamento |
Aggregazione di secondo livello |
|
Utilizzare le funzioni di navigazione dei collegamenti per identificare gli eventi in un database |
Funzioni di navigazione |
|
Utilizzo del simbolo di valuta nella tabella e nei grafici dei gruppi |
|
|
Analisi serie temporale mediante comando statistiche temporali |
Analizza l'andamento di un campo |
|
Raggruppa valori serie temporali simili |
|
Visualizzazione dei dati delle serie temporali mediante la funzione Andamento collegamento
Il collegamento viene utilizzato per raggruppare i record di log in base a campi specifici. Le varie statistiche che è possibile estrarre da questi gruppi possono essere visualizzate utilizzando la visualizzazione del grafico a bolle. La visualizzazione del grafico a bolle viene ora migliorata per supportare il campo Tempo come asse.
I passi riportati di seguito spiegano come utilizzare la funzione di andamento per analizzare la durata della mansione per le richieste concorrenti di Oracle E-Business Suite (EBS).
Considerare il seguente log di esempio nel percorso file /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
+---------------------------------------------------------------------------+
L'origine definita da Oracle EBS Concurrent Request Logs - Enhanced estrae il campo Request ID dal percorso del file. Ad esempio, i dati numerici 7474445
sono l'ID richiesta estratto dal percorso file del log di esempio precedente. L'origine estrae anche i metadati associati per ogni ID richiesta.
-
Selezionare l'origine e passare alla visualizzazione Collegamento:
Nel pannello Campi fare clic sull'origine log Origine log > Selezionare l'origine log Log richieste concorrenti EBS - Migliorato > Passare alla visualizzazione Collegamento > Trascinare e rilasciare il campo ID richiesta nel pannello Raggruppa per per ottenere l'elenco delle richieste:
La query generata automaticamente è simile alla seguente:
'Log Source' = 'EBS Concurrent Request Logs - Enhanced' | link 'Request ID'
-
Estrarre l'ora di inizio e di fine della richiesta:
Ogni richiesta ha un'ora di inizio e un'ora di fine stampate nel file. Se l'ora di fine è assente, l'ora di aggiornamento del file viene considerata come l'ora di fine. L'origine log è configurata per acquisire questi valori come campi Ora inizio evento e Ora fine evento.
Modificare la query per estrarre i seguenti campi:
'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
è una funzione del comandostats
. In questo modo, i record di ogni ID richiesta vengono ordinati in base all'ora e viene restituita l'ora di inizio evento meno recente. Analogamente,latest
restituisce l'ultima ora di fine evento.È ora possibile visualizzare i nuovi campi nella tabella dei record:
Le opzioni Ora di inizio richiesta e Ora di fine richiesta vengono automaticamente rilevate come indicatori orari e formattate nel fuso orario locale. Quando i file vengono raccolti, l'agente utilizza il fuso orario del database EBS per interpretare gli indicatori orari.
Nota
Per assicurarsi che il fuso orario del database venga visualizzato come previsto nella home di configurazione di Oracle Infrastructure Monitoring e per evitare la mancata corrispondenza dei valori, fornire il fuso orario durante il caricamento. -
Durata della richiesta di computazione:
Ora che abbiamo le ore di inizio e di fine per ogni richiesta, possiamo calcolare la durata come differenza tra questi due campi.
Modificare la query in modo appropriato:
'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'
Tempo impiegato è un nuovo campo creato per ogni gruppo di ID richiesta. Contiene la differenza tra l'ora di inizio e l'ora di fine della richiesta.
Nota
Oracle Logging Analytics rileva automaticamente Tempo impiegato come campo di durata, poiché viene prodotto dalla differenza tra due campi indicatore orario. Pertanto, viene formattato automaticamente in modo leggibile dall'utente.
-
Andamento per il tempo impiegato dalle richieste concorrenti EBS :
Il campo Tempo impiegato ora può essere analizzato per individuare gli andamenti. Fare clic sull'icona Analizza
> Selezionare i campi Ora di inizio richiesta e Ora richiesta nella finestra di dialogo Analizza > fare clic su OK.
La query verrà modificata automaticamente in:
'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'
Il comando
Classify
accetta due campi, raggruppa i risultati e contrassegna le anomalie, se applicabile. I risultati vengono visualizzati nel grafico a bolle.Quando si seleziona Ora per un asse, il grafico a bolle passa automaticamente all'opzione Andamento. Per modificare le opzioni del grafico, fare clic sull'icona Opzioni grafico
e modificare i parametri richiesti.
Nel grafico a bolle risultante, l'ora di inizio richiesta viene tracciata lungo l'asse X e i cluster di tempo impiegato vengono tracciati lungo l'asse Y:
L'ora viene visualizzata nel fuso orario locale. Le dimensioni delle bolle indicano il numero di richieste.
Nel grafico a bolle di cui sopra, la durata della richiesta di più di quattro minuti viene notata il 21 luglio 2018. La maggior parte delle richieste è terminata in meno di due minuti.
È possibile fare clic su una o più bolle per eseguire il drill-down e visualizzare le richieste specifiche.
Analizzare i log degli accessi di Oracle WebLogic Server
Si consideri l'esempio di un data set costituito dai log di accesso di Oracle WebLogic Server dall'origine log FMW WLS Server Access Logs
. I record di log contengono dati sull'accesso a Oracle WebLogic Server da parte degli utenti per un periodo di tempo specifico. Questi singoli record di log possono essere analizzati per ottenere informazioni significative sulle statistiche di utilizzo, sulla popolarità degli URL, sugli utenti più attivi e su altri dati di questo tipo. Dai log, imparare a ottenere i risultati seguenti analizzando i record di log con la selezione di campi specifici per ogni risultato:
-
Visualizza i primi URL per numero di accessi
-
Visualizza le anomalie per numero di accessi
-
Visualizza le anomalie per durata accesso
-
Identifica gli URL in base alla dimensione di caricamento
-
Identifica gli URL in base alla dimensione del download
-
Analizza la correlazione tra numero di accessi e dimensione download
-
Determina le pagine più visitate
-
Identifica i primi utenti
-
Identificare i primi utenti e le relative pagine preferite
-
Identificare la pagina di inserimento che determina il numero massimo di visite
-
Identificare il percorso di entrata ed uscita per la maggior parte degli utenti
-
Utilizzare il comando
rename
per modificare il nome del campo in uno più pertinente per il caso d'uso. -
Il comando
classify
consente di analizzare i gruppi e visualizza il risultato sotto forma di grafico a bolle. Per visualizzare semplicemente il risultato dell'esecuzione di una query in formato tabulare, rimuovere il comandoclassify
dalla query e rieseguirla. -
Fare clic sulla bolla anomala nel grafico per visualizzare i dettagli dei gruppi anomali. Per tornare al risultato originale dopo aver analizzato il fumetto, fare clic sull'icona Annulla
.
-
Quando si esegue il comando
link
, la durata del gruppo viene visualizzata in un formato leggibile nel grafico a bolle, ad esempio in minuti o secondi. Tuttavia, se si desidera eseguire un comandowhere
dopo il comandolink
per cercare le transazioni che hanno richiesto più del numero di secondi specificato (ad esempio, 200 secondi), l'unità da utilizzare è millisecondi.
Per recuperare il data set, selezionare un intervallo di date appropriato, specificare l'origine log ed eseguire la query:
'Log Source' = 'FMW WLS Server Access Logs'
Selezionare Collegamento dal pannello Visualizza. Verrà visualizzata la tabella dei gruppi 'Log di accesso al server FMW WLS' e il grafico a bolle.
-
Per visualizzare i primi URL per numero di accessi, raggruppare i record di log in base al valore dell'URL nel record di log, ottenere il conteggio totale dell'URL in ogni gruppo, rinominare i campi predefiniti nella tabella dei gruppi in base ai valori appropriati e visualizzare il risultato in formato tabulare. Questa analisi consente di determinare gli URL più utilizzati.
-
Trascinare il campo URI in Raggruppa per e rimuovere il campo Origine log da Raggruppa per.
-
After the query is executed, in the command-line, change the names of the fields Count to Number of Hits, Start Time to First Access, End Time to Last Access, and Group Duration to Access Duration.
-
Rimuovere il comando
classify
dalla riga di comando e sottomettere la query.La query sarà la seguente:
'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'
Durante l'esecuzione della query, è possibile determinare i primi URL in base al numero di accessi nella tabella. Le colonne vengono rinominate come specificato nel comando rename.
-
-
Per visualizzare le anomalie in base al numero di accessi, raggruppare i record di log in base al valore dell'URL nel record di log, rinominare i campi predefiniti nella tabella dei gruppi in base ai valori appropriati e analizzare i gruppi per il numero di accessi dell'URL. Con questa analisi, è possibile separare il modello insolito nell'accesso agli URL.
Fare clic su Analizza, selezionare Numero di accessi e fare clic su OK.
La query deve essere modificata come segue:
'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'
Questa query attiva l'analisi della colonna 'Numero di accessi' e crea bolle che rappresentano gli intervalli comunemente visualizzati. La maggior parte dei valori sono trattati come base di riferimento. Ad esempio, una bolla di grandi dimensioni può diventare la linea di base oppure un gran numero di bolle più piccole raggruppate insieme può formare la linea di base. Le bolle più lontane dalla linea di base sono contrassegnate come anomalie.
In questo modo vengono visualizzati gli URL anomali raggruppati in bolle separate nel grafico a bolle. Per visualizzare la percentuale di URL in ogni intervallo di numero di accessi, passare il puntatore del mouse sulle bolle.
-
Per visualizzare le anomalie in base alla durata dell'accesso, raggruppare i record di log in base al valore dell'URL nel record di log, rinominare i campi predefiniti nella tabella dei gruppi in base ai valori appropriati e analizzare i gruppi per la durata dell'accesso dell'URL. Con questa analisi, è possibile separare il modello insolito nel tempo impiegato per accedere agli URL. In seguito al passaggio 2:
Fare clic su Analizza, selezionare Durata accesso e fare clic su OK.
La durata dell'accesso è un'indicazione della durata dell'accesso a ciascun URL. Il valore viene calcolato come differenza tra l'ultimo indicatore orario e il primo indicatore orario nel file di log per ogni URL.
-
Per identificare gli URL in base alla dimensione di caricamento, raggruppare i record di log in base al valore dell'URL nel record di log, rinominare i campi predefiniti nella tabella dei gruppi in base ai valori appropriati e analizzare i gruppi in base alla dimensione dei dati caricati. Questa analisi consente di identificare gli URL con dimensioni insolite dei dati caricati. In seguito al passaggio 3:
-
Trascinare il campo Dimensione contenuto in nella sezione Valore.
-
Rinominare il campo Dimensione contenuto in in Byte caricati modificando la query sulla riga di comando ed eseguendo la query.
-
Fare clic su Analizza, selezionare Byte caricati e fare clic su OK.
La query sarà la seguente:
'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'
Il grafico Analizza visualizza i gruppi di URL in base ai byte caricati.
-
Per correlare i dati di Byte caricati nell'intervallo di tempo, è possibile nascondere o visualizzare in modo selettivo i grafici nelle opzioni del grafico dell'istogramma. Esplora le altre opzioni di visualizzazione oltre al grafico a barre.
-
-
Per identificare gli URL in base alla dimensione di download, raggruppare i record di log in base al valore dell'URL nel record di log, rinominare i campi predefiniti nella tabella dei gruppi in base ai valori appropriati e analizzare i gruppi in base alla dimensione dei dati scaricati. Con questa analisi è possibile identificare gli URL con dimensioni insolite dei dati scaricati. In seguito al passaggio 4:
-
Trascinare il campo Dimensione contenuto in uscita nella sezione Valore e rimuovere Dimensione contenuto in entrata dalla sezione Valore.
-
Rinominare il campo Dimensione contenuto in Dimensione download modificando la query sulla riga di comando ed eseguendo la query.
-
Fare clic su Analizza, selezionare Dimensione download e fare clic su OK.
La query sarà la seguente:
'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'
Il grafico Analizza visualizza i gruppi di URL in base alle dimensioni di download.
-
Per correlare i dati di Dimensione scaricamento nell'intervallo di tempo, è possibile nascondere o visualizzare in modo selettivo i grafici nelle opzioni del grafico dell'istogramma. Esplora le altre opzioni di visualizzazione oltre al grafico a barre.
-
-
Per analizzare la correlazione tra il numero di accessi riusciti e la dimensione di scaricamento, raggruppare i record di log in base al valore dell'URL nel record di log, rinominare i campi predefiniti nella tabella dei gruppi in base ai valori appropriati e analizzare i gruppi per la dimensione dei dati scaricati e il numero di accessi riusciti. Con questa analisi è possibile identificare gli URL con pattern insoliti di dimensioni dei dati scaricati e numero di accessi. In seguito al passaggio 5:
-
Fare clic su Analizza, selezionare i campi Numero di accessi, Dimensione download e fare clic su OK.
-
Rimuovere
topcount=300
dalla query per visualizzare tutte le bolle ed eseguire la query.La query sarà la seguente:
'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'
Nel grafico a bolle, il campo Numero di accessi viene tracciato lungo l'asse X e Dimensione download lungo l'asse Y.
Le bolle possono essere interpretate come segue:
-
Il 73,8% degli URL sono stati consultati da uno a sette volte.
-
La dimensione media dei download per il 73,8% degli URL è compresa tra 32.345 e 34.000. Questo intervallo ristretto implica che un gran numero di URL hanno un comportamento molto uniforme con riferimento alle dimensioni del download.
-
Dal momento che il 73,8% è la grande maggioranza, il resto dei punti sono contrassegnati come anomalie.
-
Con i dati reali, è comune per il sistema raggruppare i file .css, .js e immagini separatamente dagli altri URL perché tendono ad avere comportamenti di download diversi.
-
-
Per determinare le pagine più visitate, raggruppare i record di log in base al valore dell'URL nel record di log, rinominare i campi predefiniti nella tabella dei gruppi in base ai valori appropriati e analizzare i gruppi per il numero di visitatori univoci. Con questa analisi, è possibile identificare gli URL che sono più visitati dai visitatori unici. In seguito al passaggio 6:
-
Trascinare il campo Nome utente nella sezione Valore.
-
Fare clic sulla freccia giù accanto al nome del campo e modificare la funzione da Unique a Distinct Count. Vedere le altre funzioni che è possibile selezionare per un campo numerico:
-
Rinominare il campo Nome utente in Numero di utenti univoci, rimuovere il comando
classify
modificando la query sulla riga di comando ed eseguire la query. La query sarà la seguente:'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'
-
Fare clic su Analizza, selezionare il campo Numero di utenti univoci e fare clic su OK.
La tabella elenca gli URL e il numero corrispondente di utenti univoci, aiutandoci a identificare gli URL più visitati dagli utenti univoci. Nella tabella è inoltre possibile determinare il numero di accessi di cui dispone ciascun URL.
L'analisi mostra che oltre il 99% degli URL ha 0 o 1 utente univoco. Questo sarebbe il caso per gli URL che non hanno bisogno di un login, o sono raramente accessibili. L'espansione a una delle bolle più piccole indicherà le pagine specifiche, quanti colpi hanno in genere e quanti visitatori unici.
-
-
Per identificare i primi utenti, raggruppare i record di log in base al valore del nome utente nel record di log, rinominare i campi predefiniti nella tabella dei gruppi in base ai valori appropriati e analizzare i gruppi per il numero di accessi. Con questa analisi è possibile identificare gli utenti più attivi.
-
Modificare la riga di comando per rimuovere tutti i filtri:
'Log Source' = 'FMW WLS Server Access Logs' | link URI
-
Trascinare il campo Nome utente in Raggruppa per, rimuovere URI ed eseguire la query.
-
Rimuovere il comando
classify
, rinominare i campi predefiniti nella riga di comando ed eseguire la query seguente:'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 tabella è ordinata in base al numero di accessi eseguiti dall'utente.
-
Per visualizzare il comportamento dell'utente in base all'accesso, fare clic su Analizza, selezionare il campo Numero di accessi e fare clic su OK.
-
Fare clic sulle anomalie per identificare gli utenti che hanno registrato un numero di accessi superiore o inferiore rispetto agli altri utenti.
-
-
Per identificare i primi utenti e le relative pagine preferite, raggruppare i record di log in base al valore del nome utente nel record di log, rinominare i campi predefiniti nella tabella dei gruppi in base ai valori appropriati e analizzare i gruppi per il numero di pagine univoche. Questa analisi consente di identificare gli utenti meno attivi e più attivi e le relative pagine preferite. In seguito al passaggio 8:
-
Trascinare il campo URI nella sezione Valore. Modificare la funzione da Unique a Distinct Count.
-
Rinominare il campo URI in Numero di pagine univoche modificando la query nella riga di comando ed eseguendo la query.
-
Fare clic su Analizza, selezionare il campo Numero di pagine univoche e fare clic su OK.
-
-
Per identificare la pagina di immissione che determina il numero massimo di visite, raggruppare i record di log in base al valore del nome utente nel record di log, rinominare i campi predefiniti nella tabella dei gruppi in base ai valori appropriati e analizzare i gruppi per i valori degli URL di immissione e il numero di accessi agli URL. Con questa analisi, è possibile identificare le pagine visitate per prime dagli utenti. In seguito al passaggio 9:
-
Per ottenere gli URL delle voci, modificare la funzione del campo URI da Conteggio distinti in Primo.
-
Rinominare il campo URI in URL di immissione modificando la query nella riga di comando ed eseguendo la query.
-
Fare clic su Analizza, selezionare i campi Numero di accessi e URL di inserimento, topcount come 20 e fare clic su 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'
Viene visualizzato il primo URL utilizzato dagli utenti in relazione al numero di accessi. Ad esempio, /login è il primo URL utilizzato dalla maggior parte degli utenti.
-
-
Per identificare il percorso di immissione ed uscita per la maggior parte degli utenti, raggruppare i record di log in base al valore del nome utente nel record di log, rinominare i campi predefiniti nella tabella dei gruppi in base ai valori appropriati e analizzare i gruppi per i valori degli URL di immissione e di uscita. Con questa analisi è possibile identificare
-
I percorsi più comuni intrapresi dagli utenti per il transito attraverso il sito web
-
Le pagine di prodotto più popolari da cui gli utenti stanno uscendo dal sito web
-
Gli URL di uscita più comuni, come le pagine di checkout del prodotto o il gateway di pagamento
-
Gli URL di uscita insoliti e la radice causano uscite impreviste
-
Trascinare il campo URI nella sezione Valore.
-
Per ottenere la pagina di uscita, modificare la funzione del campo URI da Unico a Più recente.
-
Modificare la riga di comando e rinominare il campo latest(URI) in URL di uscita e sottomettere la query.
-
Fare clic su Analizza, selezionare i campi URL di immissione e URL di uscita, topcount come 20 e fare clic su 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'
-
Aumentare le dimensioni del grafico utilizzando le opzioni Analizza grafico.
Questa mappa ad albero mostra la relazione tra gli URL di entrata e di uscita in un sito. Ciò sarebbe molto utile per i siti di vendita al dettaglio in cui i fornitori di servizi vorrebbero identificare gli URL di immissione che portano i clienti alle pagine di checkout e gli URL dei prodotti che causano agli utenti di non procedere al checkout.
-
Genera grafici con campi virtuali
Per creare un nuovo campo virtuale, è possibile utilizzare il comando eval
nella funzione di collegamento. La query eval
sulla riga di comando genererà un grafico a linee per il campo virtuale e consentirà di tracciarlo nel tempo.
Per creare un nuovo campo virtuale, è possibile utilizzare il comando eval
nella funzione di collegamento. La query eval
sulla riga di comando genererà un grafico a linee per il campo virtuale e consentirà di tracciarlo nel tempo.
Esempi:
-
Si consideri lo scenario in cui i record di log dell'origine log
SAR CPU Logs
sono raggruppati per nome host e CPU. Per determinare il carico vissuto dalla CPU del server nel tempo, il comandoeval
crea un campo virtualeLoad %
e genera il grafico a linee.'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 (%)'
Per visualizzare il grafico a linee:
-
Fare clic sulla scheda Istogramma.
-
Fare clic sulla freccia giù accanto all'icona Opzioni grafico (
). Fare clic su Nascondi/Mostra grafici. Selezionare Carica %.
-
Fare clic sulla freccia giù accanto all'icona Opzioni grafico (
). Fare clic su Opzioni grafico. Nell'elenco Tipo di grafico, selezionare Linea senza indicatore. Fare clic su Chiudi.
-
-
Si consideri lo scenario in cui i record di log dell'origine log
OMC WLS Server Access Logs
sono raggruppati per URI. Per determinare la dimensione dei dati a cui si accede nel tempo in megabyte, il comandoeval
crea un campo virtualeContent Size (MB)
, calcola la dimensione del contenuto in megabyte in base al valore del campoContent Size
e genera il grafico a linee.'Log Source' = 'WLS Server Access Logs' | link URI | stats avg('Content Size') as 'Content Size Bytes' | eval 'Content Size (MB)' = 'Content Size Bytes' / 1024
Per visualizzare il grafico a linee:
-
Fare clic sulla scheda Istogramma.
-
Fare clic sulla freccia giù accanto all'icona Opzioni grafico (
). Fare clic su Nascondi/Mostra grafici. Selezionare Dimensione contenuto (MB) e Record log accessi.
-
Fare clic sulla freccia giù accanto all'icona Opzioni grafico (
). Fare clic su Opzioni grafico. Nell'elenco Tipo di grafico, selezionare Linea senza indicatore. Fare clic su Chiudi.
-
Collegamento mediante l'utilizzo dell'istruzione SQL come campo di analisi
Il collegamento supporta Istruzione SQL come campo per l'analisi. L'istruzione SQL contiene l'istruzione SQL eseguita e viene acquisita da origini log quali Database Audit XML Logs
e Oracle Unified DB Audit Log Source Stored in Database 12.1
.
È possibile utilizzare link 'SQL Statement'
per raggruppare le istruzioni SQL e analizzarne il comportamento e identificare le anomalie.
esempio:
Considerare la seguente query che collega i record di log in base al campo Istruzione 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
è una funzione disponibile con la visualizzazione dei collegamenti per aggiungere campi virtuali alla query. Richiede una query e convoglia l'output in un comando stats
. Il campo virtuale risultante è disponibile nella tabella e nel grafico delle serie temporali.
Per informazioni sulla sintassi e altri dettagli del comando addfields
, vedere addfields.
L'esecuzione della query precedente consente di osservare i risultati riportati di seguito.
-
In base al comando di classificazione, vengono generati i grafici a bolle per
Age
,Number of Sessions
,Number of DBs
,Number of Runs, Object Type
eObject Type, SQL Type
.Nei grafici a bolle, i record di log vengono raggruppati in base al numero di istruzioni SQL che rientrano in ogni set di parametri. I parametri
Object Type
eSQL Type
vengono determinati utilizzando il comandoeval
nella query. -
The Line with Area histogram charts illustrate the occurrence of fields like
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
, andLog Records
plotted against time.-
Nella scheda Grafico dell'istogramma, fare clic sulla freccia giù accanto all'icona Opzioni grafico (
).
-
Selezionare per visualizzare i grafici di tutti i campi.
-
In Tipo di grafico, selezionare Riga con area.
-
Regolare la larghezza per visualizzare due grafici per linea.
-
-
Nella tabella Gruppi sono elencati i gruppi identificati dal collegamento in base al campo Istruzione SQL. È possibile osservare che per ogni istruzione SQL la tabella elenca il numero di volte in cui è stata eseguita l'istruzione SQL, l'ora di inizio, l'ora di fine e la durata del gruppo. Fare clic su ciascun gruppo e visualizzare i record di log per ulteriori dettagli. È inoltre possibile visualizzare i gruppi nella visualizzazione cluster per ulteriori analisi.
Analizzare il tempo impiegato tra i passi di una transazione
La funzione di collegamento consente di analizzare le sessioni utente, estrarre i vari parametri temporali raggruppando e dedurre i dati relativi al tempo della transazione per ottenere approfondimenti aziendali.
Considera questo set di dati non ordinati preso da un file di log degli accessi. I campi riportati di seguito indicano le informazioni relative a una sessione utente e le azioni eseguite dall'utente.
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
Le azioni quali Login
, addtocart
, productlisting
e purchase
vengono registrate in un ordine casuale da T1
a T9
e si sono verificate in due sessioni con ID sessione 1
e 5
.
Per eseguire un'analisi temporale simile dei log degli accessi, estrarre Session ID
dai log in un campo. Estrarre i passi intermedi della sessione dai log di accesso applicando un'espressione regolare per ottenere URL
dai log.
In un contesto generico, le sessioni in questo esempio rappresentano tutte le transazioni utente e le azioni rappresentano i passi intermedi eseguiti dall'utente per completare una transazione.
Per analizzare questi dati non ordinati ed estrarre le informazioni richieste, è possibile eseguire la seguente query di esempio:
'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'
raggruppa i record dei log di accesso in base all'ID sessione, creando due gruppi: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
-
addfields
viene eseguito su ciascuno di questi gruppi. Il primoaddfields
seleziona i record in cuiAction = addtocart
. Il risultato di questa query è il seguente per entrambi i gruppi:Time | Session ID | Action T6 | 1 | addtocart T5 | 1 | addtocart T7 | 5 | addtocart
-
stats earliest(Time)
ordina il risultato precedente in base al tempo, per ogni gruppo:Time | Session ID | Action T5 | 1 | addtocart T6 | 1 | addtocart T7 | 5 | addtocart
-
Il campo specificato, che è
Time
, viene quindi selezionato dal primo record:'First Add To Cart Time' = T5 for Group = 1 'First Add To Cart Time' = T7 for Group = 5
-
Il secondo
addfields
viene eseguito suAction = purchase
, estraendo i seguenti record:Time | Session ID | Action T4 | 1 | purchase T9 | 1 | purchase T8 | 5 | purchase
-
latest(Time)
inoltre ordina i record precedenti in base aTime
:Time | Session ID | Action T4 | 1 | purchase T9 | 1 | purchase T8 | 5 | purchase
-
latest(Time)
seleziona il record ultimo ed estrae il campo specificato, ovveroTime
:'Last Purchase Time' = T9 for Group = 1 'Last Purchase Time' = T8 for Group = 5
-
A questo punto, entrambi i gruppi hanno i valori per
First Add to Cart Time
eLast Purchase Time
impostati. Si tratta di indicatori orari.eval
si sottrae l'uno dall'altro per ottenere il tempo trascorso. -
In effetti, è possibile ottenere il tempo impiegato dal passo Aggiunta al carrello al passo Acquisto per ogni sessione. Ora è possibile utilizzare questa opzione in
classify
per analizzare la varianza di questo tempo trascorso tra le sessioni.
Per informazioni sulla sintassi e altri dettagli del comando addfields
, vedere addfields.
Genera grafici per più campi e relativi valori
È possibile utilizzare il comando addfields
nella query per specificare più campi per generare grafici separati. A questo punto, è possibile utilizzare l'opzione Aggiungi/Modifica grafici dell'istogramma nell'interfaccia utente per eseguire la stessa operazione del comando addfields
.
In genere, si desidera confrontare i grafici di un singolo campo con vari valori, ad esempio i valori del campo Gravità come Errore, Critico, Avviso e Avvertenza. L'opzione Aggiungi grafico consente di generare più grafici da confrontare affiancati specificando il campo e i relativi valori nella finestra di dialogo.
In alternativa, è possibile digitare e aggiornare la query con il comando. L'opzione Aggiungi grafico consente di eseguire l'operazione più velocemente rispetto alla composizione della query con il comando addfields
.
-
Nell'interfaccia utente del collegamento, andare alla scheda Record di log > dal menu
Opzioni grafico, fare clic su Aggiungi/Modifica grafici per aggiornare automaticamente la query con il comando
addfields
.Viene visualizzata la finestra di dialogo Aggiungi/Modifica grafici.
-
Accanto a Subquery, selezionare il campo dal menu, ad esempio
Severity
.Selezionare l'operatore pertinente.
Fare clic sull'icona di modifica
per selezionare uno o più valori, ad esempio
alert
. I campi calcolati non sono supportati. -
Facoltativamente, selezionare la funzione Statistiche.
Accanto a Statistiche, selezionare la funzione da eseguire sul campo e il campo funzione dal menu a discesa.
Ad eccezione della funzione
count
, tutte le altre funzioni richiedono la specifica del campo Funzione. -
Fare clic su Aggiungi grafico per visualizzare la query risultante. Fare clic sull'icona Modifica
per modificare la query.
-
Ripetere i passi da 2 a 4 per aggiungere altri grafici, ad esempio per generare grafici per i valori
error
,critical
ewarning
del campoSeverity
.Fare clic su Aggiorna.
-
Fare clic sul menu Opzioni grafico
e assicurarsi che i nuovi grafici generati vengano inclusi e selezionati nell'opzione Nascondi/Mostra. È possibile selezionare ulteriormente il tipo di grafico, la dimensione dal grafico, l'altezza, la larghezza e altri attributi. Vedere Grafico istogramma.
È ora possibile visualizzare i grafici personalizzati dei campi selezionati e i relativi valori di selezione nella scheda Record di log e confrontarli visivamente.
Aggregazione di secondo livello mediante il comando Eventstat nel collegamento
Il collegamento viene utilizzato per raggruppare i record di log utilizzando una o più chiavi univoche. Ad esempio, è possibile raggruppare tutti i record di log appartenenti a una transazione utilizzando l'ID transazione univoco. Le statistiche possono essere generate su ciascun gruppo utilizzando il comando stats
. eventstats
è un nuovo comando che consente di aggregare ulteriormente queste statistiche. Gli esempi riportati di seguito illustrano i casi d'uso per eventstats
.
Prendere in considerazione il set di dati dei log degli accessi riportato di seguito.
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
Il set di dati contiene i campi riportati di seguito.
- Ora: ad esempio, 1-gen-2020 10:00:00 PST.
- Nome host (server): l'host che ha servito la richiesta, ad esempio chicago_dc1.
- URI: l'URL della richiesta, ad esempio /index.html.
- Dimensione contenuto in uscita: numero di byte scaricati, ad esempio 100.
Raggruppamento semplice:
* | link 'Host Name (Server)', URI
| stats sum('Content Size Out') as 'Bytes Downloaded'
La query precedente raggruppa i record di log utilizzando la combinazione distinta di campi Nome host (server) e URI. Il campo Dimensione contenuto in uscita di ogni record viene quindi sommato per gruppo nel nuovo campo Byte scaricati.
Somma globale mediante statistiche evento
I byte scaricati nell'esempio precedente si riferiscono a ogni combinazione di server e URL. Un semplice caso d'uso di eventstats
consiste nel calcolare i dati totali scaricati su tutti i server e gli URL:
* | link 'Host Name (Server)', URI
| stats sum('Content Size Out') as 'Bytes Downloaded'
| eventstats sum('Bytes Downloaded') as 'Total Bytes Downloaded'
Nell'esempio precedente, eventstats
aggrega i valori per ogni gruppo per produrre un unico rollup globale. Ora è possibile passare a classify
o eval
e utilizzare la clausola where
.
Più comandi eventstats
:
È possibile raggruppare o concatenare più eventstats
come nell'esempio seguente:
.. | eventstats sum('Content Size In') as 'Bytes Uploaded', sum('Content Size Out') as 'Bytes Downloaded'
| eventstats avg('Duraton') as 'Global Average Duration'
Raggruppamento mediante statistiche eventi
Il comando eventstats
dispone anche di una modalità group by. Considerare la seguente query:
* | link 'Host Name (Server)', URI
| stats sum('Content Size Out') as 'Bytes Downloaded'
| eventstats sum('Bytes Downloaded') as 'Total Bytes Downloaded' by URI
Invece di calcolare un singolo valore, eventstats
ora calcola un valore per URI univoco:
La somma viene generata prima ottenendo gli URI distinti e quindi eseguendo l'aggregazione:
index.html -> 300 + 400 + 350 = 1050
/report/download -> 5000 + 1024 = 6024
/users/auth -> 50 = 50
Statistiche eventi con valutazione
Il comando eventstats
può anche operare su un campo prodotto da un comando eval
. Ad esempio, anziché l'URL, è possibile produrre i totali per il data center:
* | 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 funzione sum
viene eseguita dopo il raggruppamento per sottostringhe:
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
Il raggruppamento può essere eseguito utilizzando una o più proprietà. Le proprietà sono le chiavi di gruppo o i valori stringa prodotti da stats
o eval
.
Calcola percentuali per confronto gruppi
Un'applicazione molto importante per il comando eventstats
consiste nel produrre un valore globale e identificare il contributo percentuale alta o bassa da vari gruppi:
* | 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
Il valore di Scarica % contributo viene calcolato utilizzando il valore globale prodotto da eventstats..by
e il valore per gruppo prodotto da 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
Questa query consente di vedere quali URL causano il traffico di download più elevato rispetto agli altri URL nello stesso data center. Il campo Scarica % contributo può essere utilizzato per filtrare i gruppi utilizzando:
- la clausola
where
- Comando
sort
per la classificazione - Comando
classify
per il rilevamento delle anomalie
Utilizzare le funzioni di navigazione dei collegamenti per identificare gli eventi in un database
Utilizzare Link per creare dati strutturati da record di log e visualizzare i dati come tabella ordinata. Le funzioni statistiche possono essere applicate alle colonne della tabella utilizzando il comando stats per creare le colonne derivate. Queste colonne derivate possono essere ulteriormente aggregate utilizzando il comando eventstats.
Funzioni di navigazione
Le funzioni di navigazione sono utili per recuperare i valori di una colonna specifica da una riga specifica. Essi producono risultati diversi a seconda del comando di ordinamento precedente.
Le seguenti funzioni di navigazione possono essere utilizzate con il comando eventstats
nel collegamento:
Funzione | descrizione; |
---|---|
|
Creare una colonna numero riga |
|
Recupera il primo valore per il campo specificato |
|
Recupera l'ultimo valore per il campo specificato |
|
Recupera il valore della colonna per la riga specificata |
|
Recupera il valore della colonna per la riga precedente |
|
Recupera il valore della colonna per la riga successiva |
Per ulteriori informazioni sulle funzioni, vedere eventstats.
Recupera contesto per un evento
Oracle Log Analytics fornisce etichette pronte all'uso per i log degli avvisi del database. L'etichetta Arresto anomalo indica un problema grave che causa la chiusura del database. Un triage tipico comporta l'analisi della sequenza di eventi che si sono verificati prima di tale arresto. È anche utile conoscere gli eventi dopo un arresto.
Le sezioni seguenti illustrano i passi da eseguire per valutare utilizzando alcune delle funzioni eventstats
per Alert log database.
Collega eventi nei log degli avvisi del database
Eseguire la query seguente per collegare gli eventi per un database selezionato:
'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'
In questo modo viene creata una riga univoca per ogni etichetta nel database. Poiché è stata inclusa la colonna Ora, sono presenti più righe per la stessa etichetta, se vengono ripetute in momenti diversi.
Il comando sort
consente di ordinare la tabella in base all'ordine di Etichetta, con la tabella più vecchia alla prima riga.
Aggiungi numero riga
Eseguire la query seguente per aggiungere un numero a ogni riga:
'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
Se la query disponeva di più database, il numero riga verrà reimpostato per ogni database, a causa della clausola by Database
.
Identifica la riga con l'evento di arresto anomalo del database
L'etichetta Arresto anomalo indica che il database si è bloccato. Identificare tali righe con la query seguente:
'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'
]
addfields
viene utilizzato per identificare un subset dei record di log. In questo caso, addfields
esegue la ricerca in più righe della tabella. Le righe corrispondenti vengono passate a eventstats
e last('Row Number')
seleziona il numero riga dell'ultima riga corrispondente. Viene ora popolato come nuovo campo Riga crash. Si noti che Crash Row avrà un valore solo per le righe che corrispondono alla condizione specificata in addfields
.
La riga di arresto anomalo viene popolata solo per righe specifiche. Utilizzare un altro eventstats
per inserire il valore in tutte le righe:
'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
Questa operazione crea la colonna Riga evento in ogni riga e contiene la riga con l'ultimo arresto anomalo del database.
Identifica eventi vicino al crash del database
La tabella ha ancora diversi eventi, ad esempio centinaia. Per identificare alcuni eventi prima della riga evento e pochi dopo la riga evento, modificare la query per filtrare le righe:
'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 tabella mostra gli eventi che si sono verificati prima della cessazione anomala. Possiamo anche vedere gli eventi che si sono verificati dopo la cessazione anomala.
Eventi precedenti e successivi
È possibile utilizzare lag()
per ottenere l'evento precedente. È possibile passare un numero di riga facoltativo per ottenere una riga precedente specifica. È possibile utilizzare lead()
in modo simile per ottenere la riga successiva:
'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'
]
Inoltre, nthVal()
può ottenere il valore da una riga specifica.
Utilizzare i simboli di valuta nell'analisi del log
È possibile utilizzare la funzione unit
nel comando eval
per contrassegnare un campo come valuta contenente. È quindi possibile utilizzare tale valore di campo nell'analisi e visualizzare il simbolo di valuta corrispondente nella tabella delle visualizzazioni e dei gruppi.
È innanzitutto possibile specificare l'unità di valuta utilizzando il formato definito in val. Successivamente, la tabella collegamenti e i grafici visualizzeranno i simboli di valuta corretti.
Nell'esempio seguente, il valore del campo Prezzo viene utilizzato per calcolare i valori dei nuovi campi Prezzo (USD), Prezzo (GBP), Prezzo (JPY), Prezzo (CNY) e Prezzo (INR) e li contrassegna come valuta contenente la valuta. Gli stessi nuovi campi sono utilizzati per l'analisi per ottenere il prezzo medio regionale della benzina per un periodo di diversi anni.
'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'
Nella seguente immagine, i gruppi sono identificati in base alla regione, al tempo e al tipo di benzina. La fascia di prezzo media della benzina viene utilizzata per tracciare le bolle lungo l'asse y.

Nella seguente immagine, la tabella dei gruppi mostra il prezzo medio della benzina in varie valute. I grafici mostrano la variazione del costo in diversi anni per ogni valore di valuta.

Analisi delle serie temporali mediante il comando timestats
È possibile analizzare l'andamento di un campo utilizzando il comando timestats
. Il comando timestats
, se utilizzato dopo il comando link
, fornisce ulteriori funzionalità di analitica delle serie temporali e visualizzazione avanzata.
Considera l'esempio dei log dello schema unificato del flusso VCN OCI. Il campo Azione nei log dello schema unificato del flusso VCN OCI indica se una determinata richiesta di rete è stata accettata o rifiutata. Utilizzare il comando timestats
per analizzare l'andamento di questo campo. Vedere timestat.
A partire dal comando link
di base:
'Log Source' = 'OCI VCN Flow Unified Schema Logs' | link Action
Vengono visualizzati due valori distinti per il periodo di tempo selezionato:

Nel caso precedente, per ogni azione univoca è disponibile una sola riga, poiché il funzionamento predefinito prevede il raggruppamento in base al campo specificato. Il primo passo consiste nell'assicurarsi che vi siano più righe per ogni valore in base al periodo di tempo. Per eseguire questa operazione, aggiungere Time come altro campo al comando link
.
'Log Source' = 'OCI VCN Flow Unified Schema Logs' | link span=1day Time, Action
Il parametro span è facoltativo. Se non viene specificato, viene calcolato un valore predefinito appropriato per il periodo di tempo selezionato. È ora possibile visualizzare la stessa azione per un giorno diverso in una riga separata.

Ora utilizzare il comando timestats
. In questo caso, si desidera Ora di inizio nell'asse X e il valore Conteggio nell'asse Y. Poiché timestats
richiede sempre una funzione, utilizzare la funzione sum() per sommare il numero di record con il valore Azione specificato, per ogni intervallo.
'Log Source' = 'OCI VCN Flow Unified Schema Logs'
| link span=1day Time, Action
| timestats name="Trend of Action" sum(Count) as Records by Action
Vengono visualizzati i valori sum(Count) per ogni azione.

Per informazioni dettagliate sulla rappresentazione della serie temporale mediante il comando timestats
, i campi, i limiti e le opzioni di configurazione, vedere Utilizzare il comando timestats per rappresentare una serie temporale.
Configurazione cluster serie temporale
È possibile raggruppare valori simili di serie temporali utilizzando il comando timecluster
dopo il comando link
. La configurazione cluster è utile quando sono presenti un numero elevato di serie temporali da analizzare o quando si desidera identificare comportamenti diversi nei valori delle serie temporali.
I log dello schema unificato del flusso VCN OCI registrano le informazioni sul traffico di rete per una VNIC OCI. Per identificare la quantità di dati trasferiti da IP pubblici diversi, è possibile comporre una query utilizzando i campi IP pubblico e Dimensione contenuto.
A partire dal comando link
di base:
'Log Source' = 'OCI VCN Flow Unified Schema Logs' | eval 'Content Size Out (bytes)' = unit('Content Size Out', byte) | link 'Public IP'
Ciò mostra che nel sistema sono presenti oltre 25k IP pubblici univoci.

La tabella contiene una riga per ogni IP pubblico univoco. Deve essere frazionato in modo da avere una riga per ogni periodo di tempo. Per eseguire questa operazione, aggiungere il campo Time al comando link
:
'Log Source' = 'OCI VCN Flow Unified Schema Logs'
| eval 'Content Size Out (bytes)' = unit('Content Size Out', byte)
| link Time, 'Public IP'
Vengono visualizzate più righe per ogni valore IP pubblico.
Se si utilizza il comando timestats
per rappresentare la serie temporale, vengono restituiti solo i primi 100 IP pubblici. Non è possibile tracciare gli IP 25k in un grafico.

Pertanto, invece di timestats
, utilizzare timecluster
per ottenere gli esempi rappresentativi.
'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'

Ogni riga rappresenta uno o più valori di IP pubblico con valori simili per il trasferimento di rete.
Mouse-over su qualsiasi punto per visualizzare ulteriori dettagli:

Per ulteriori informazioni sul comando timecluster
e sul clustering delle serie temporali, vedere timecluster e Use timecluster Command to Plot a Time Series.