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.

Per la procedura di utilizzo della funzione Collegamento per analizzare i record di log, vedere Visualizzazione collegamenti.

Scenari di esempio:

Caso d'uso Funzione collegamento Log di esempio

Visualizzazione dei dati delle serie temporali mediante la funzione Andamento collegamento

Andamento collegamento

EBS Concurrent Request Logs

Analizzare i log degli accessi di Oracle WebLogic Server

Collega funzioni di base

FMW WLS Server Access Logs

Genera grafici con campi virtuali

Utilizzo dei campi virtuali per i grafici

SAR CPU Logs

Collegamento mediante l'utilizzo dell'istruzione SQL come campo di analisi

Utilizzo dell'istruzione SQL come campo

Database Audit Logs, Database Audit XML Logs, Oracle Unified DB Audit Log Source Stored in Database 12.1

Analizzare il tempo impiegato tra i passi di una transazione

Analisi tempo

Access Logs

Genera grafici per più campi e relativi valori

Grafici per più campi e relativi valori

-

Aggregazione di secondo livello mediante il comando Eventstat nel collegamento

Aggregazione di secondo livello

Access Logs

Utilizzare le funzioni di navigazione dei collegamenti per identificare gli eventi in un database

Funzioni di navigazione

Database Alert Logs

Utilizzare i simboli di valuta nell'analisi del log

Utilizzo del simbolo di valuta nella tabella e nei grafici dei gruppi

Gasoline Prices

Analisi serie temporale mediante comando statistiche temporali

Analizza l'andamento di un campo

OCI VCN Flow Unified Schema Logs

Configurazione cluster serie temporale

Raggruppa valori serie temporali simili

OCI VCN Flow Unified Schema Logs

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.

  1. 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'
  2. 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 comando stats. 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.
  3. 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.

  4. 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 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 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:

  1. Visualizza i primi URL per numero di accessi

  2. Visualizza le anomalie per numero di accessi

  3. Visualizza le anomalie per durata accesso

  4. Identifica gli URL in base alla dimensione di caricamento

  5. Identifica gli URL in base alla dimensione del download

  6. Analizza la correlazione tra numero di accessi e dimensione download

  7. Determina le pagine più visitate

  8. Identifica i primi utenti

  9. Identificare i primi utenti e le relative pagine preferite

  10. Identificare la pagina di inserimento che determina il numero massimo di visite

  11. Identificare il percorso di entrata ed uscita per la maggior parte degli utenti

Nota

  • 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 comando classify 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 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 comando where dopo il comando link 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 apertura del collegamento dal pannello Visualizza. Verrà visualizzata la tabella dei gruppi 'Log di accesso al server FMW WLS' e il grafico a bolle.

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

    1. Trascinare il campo URI in Raggruppa per e rimuovere il campo Origine log da Raggruppa per.

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

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

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

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

  4. 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:

    1. Trascinare il campo Dimensione contenuto in nella sezione Valore.

    2. Rinominare il campo Dimensione contenuto in in Byte caricati modificando la query sulla riga di comando ed eseguendo la query.

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

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

  5. 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:

    1. Trascinare il campo Dimensione contenuto in uscita nella sezione Valore e rimuovere Dimensione contenuto in entrata dalla sezione Valore.

    2. Rinominare il campo Dimensione contenuto in Dimensione download modificando la query sulla riga di comando ed eseguendo la query.

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

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

  6. 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:

    1. Fare clic su Analizza, selezionare i campi Numero di accessi, Dimensione download e fare clic su OK.

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

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

    1. Trascinare il campo Nome utente nella sezione Valore.

    2. 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:

    3. 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' 
    4. 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.

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

    1. Modificare la riga di comando per rimuovere tutti i filtri: 'Log Source' = 'FMW WLS Server Access Logs' | link URI

    2. Trascinare il campo Nome utente in Raggruppa per, rimuovere URI ed eseguire la query.

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

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

    5. Fare clic sulle anomalie per identificare gli utenti che hanno registrato un numero di accessi superiore o inferiore rispetto agli altri utenti.

  9. 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:

    1. Trascinare il campo URI nella sezione Valore. Modificare la funzione da Unique a Distinct Count.

    2. Rinominare il campo URI in Numero di pagine univoche modificando la query nella riga di comando ed eseguendo la query.

    3. Fare clic su Analizza, selezionare il campo Numero di pagine univoche e fare clic su OK.

  10. 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:

    1. Per ottenere gli URL delle voci, modificare la funzione del campo URI da Conteggio distinti in Primo.

    2. Rinominare il campo URI in URL di immissione modificando la query nella riga di comando ed eseguendo la query.

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

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

    In seguito al passo 10:
    1. Trascinare il campo URI nella sezione Valore.

    2. Per ottenere la pagina di uscita, modificare la funzione del campo URI da Unico a Più recente.

    3. Modificare la riga di comando e rinominare il campo latest(URI) in URL di uscita e sottomettere la query.

    4. 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'
    5. 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 comando eval crea un campo virtuale Load % 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:

    1. Fare clic sulla scheda Istogramma.

    2. Fare clic sulla freccia giù accanto all'icona Opzioni grafico (opzioni grafico). Fare clic su Nascondi/Mostra grafici. Selezionare Carica %.

    3. Fare clic sulla freccia giù accanto all'icona Opzioni grafico (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 comando eval crea un campo virtuale Content Size (MB), calcola la dimensione del contenuto in megabyte in base al valore del campo Content 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:

    1. Fare clic sulla scheda Istogramma.

    2. Fare clic sulla freccia giù accanto all'icona Opzioni grafico (opzioni grafico). Fare clic su Nascondi/Mostra grafici. Selezionare Dimensione contenuto (MB) e Record log accessi.

    3. Fare clic sulla freccia giù accanto all'icona Opzioni grafico (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'
Nota

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 e Object 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 e SQL Type vengono determinati utilizzando il comando eval 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, and Log Records plotted against time.

    1. Nella scheda Grafico dell'istogramma, fare clic sulla freccia giù accanto all'icona Opzioni grafico (opzioni grafico).

    2. Selezionare per visualizzare i grafici di tutti i campi.

    3. In Tipo di grafico, selezionare Riga con area.

    4. 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 primo addfields seleziona i record in cui Action = 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 su Action = 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 a Time:

    Time | Session ID | Action
     T4  | 1          | purchase
     T9  | 1          | purchase
    
     T8  | 5          | purchase
  • latest(Time) seleziona il record ultimo ed estrae il campo specificato, ovvero Time:

    '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 e Last 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.

  1. Nell'interfaccia utente del collegamento, andare alla scheda Record di log > dal menu Icona Opzioni grafico 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.

  2. Accanto a Subquery, selezionare il campo dal menu, ad esempio Severity.

    Selezionare l'operatore pertinente.

    Fare clic sull'icona di modifica Icona Modifica per selezionare uno o più valori, ad esempio alert. I campi calcolati non sono supportati.

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

  4. Fare clic su Aggiungi grafico per visualizzare la query risultante. Fare clic sull'icona Modifica Icona Modifica per modificare la query.

  5. Ripetere i passi da 2 a 4 per aggiungere altri grafici, ad esempio per generare grafici per i valori error, critical e warning del campo Severity.

    Fare clic su Aggiorna.

  6. Fare clic sul menu Opzioni grafico 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;

rownum

Creare una colonna numero riga

first()

Recupera il primo valore per il campo specificato

last()

Recupera l'ultimo valore per il campo specificato

nthval()

Recupera il valore della colonna per la riga specificata

lag()

Recupera il valore della colonna per la riga precedente

lead()

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.


Gruppi identificati in base alla regione, all'ora e al tipo di benzina

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.


La tabella dei gruppi mostra il prezzo medio della benzina in varie valute

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:


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.


più righe per ogni valore in base al periodo di tempo

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.


somma (conteggio) valori 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.


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


il comando timestats restituisce solo i primi 100 IP pubblici

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'

Tracciare le serie temporali utilizzando il comando timecluster

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:


Mouse-over su qualsiasi punto per visualizzare maggiori dettagli

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