eval

Mit dem Befehl eval können Sie den Wert eines Ausdrucks berechnen und in einem neuen Feld anzeigen.

Hinweis

  • Während der Befehl stats Statistiken auf Basis vorhandener Felder berechnet, erstellt der Befehl eval neue Felder mit vorhandenen Feldern und beliebigen Ausdrücken.

  • Zeichenfolgenverarbeitungsfunktionen wie indexof und substr sind ressourcenintensiv. Aus diesem Grund wird die Ausführung des Befehls eval mit diesen Funktionen für eine große Anzahl von Logdatensätzen oder große Feldwerte nicht empfohlen. Extrahieren Sie diese Werte stattdessen mithilfe der erweiterten Felddefinitionen (EFD) oder Labels in der Logquelle. Siehe Erweiterte Felder in Quellen verwenden und Labels in Quellen verwenden.

  • Stellen Sie sicher, dass der im Befehl eval verwendete Feldname die Zeichen [ und ] nicht enthält.

Syntax

*|eval <new_field_name>=<expression>

Mit dem Befehl verfügbare Operatoren und Funktionen:

In der folgenden Tabelle sind die mit dem Befehl eval verfügbaren Operatoren aufgelistet.

Kategorie Beispiel

Arithmetische Operatoren

+, -, *, /, %

Vergleichsoperatoren

=, !=, <, >, <=, >=

Logische Operatoren

and, or, not

Bedingungsoperatoren

if(<expression>,<expression>,<expression>)

Mehrere Vergleichsoperatoren

in, not in

In der folgenden Tabelle sind die mit dem Befehl eval verfügbaren Funktionen aufgelistet.

Zeichenfolgenfunktionen

Im Allgemeinen kann die Eingabe für die Funktionen ein literales Zeichenfolgen- oder Zeichenfolgenfeld sein.

Funktion Beschreibung Beispiel

capitalize(String)

Das erste Zeichen der Zeichenfolge groß schreiben.

capitalize("hello world") ergibt "Hello world".

Wenn severity="fatal", ergibt capitalize(severity) "Fatal".

concat(String, String)

Verknüpft zwei oder mehr Zeichenfolgen von Ende zu Ende zu einer einzigen Zeichenfolge.

  • Für die concat()-Funktion können Sie numerische Datentypen wie Integer, Float oder Long eingeben. Die numerischen Felder werden automatisch in die entsprechenden Zeichenfolgenwerte konvertiert.

  • Mit || können Sie n Eingaben verketten. Auch hier können Sie numerische Datentypen eingeben, die automatisch in die entsprechenden Zeichenfolgenwerte konvertiert werden.

concat("System, Error") ergibt "SystemError".

Wenn severity="fatal" und host="my_host_123", ergibt concat(severity, concat("_", host)) "fatal_my_host_123".

decode64(String)

Dekodiert den Base64-codierten Text zurück in die lesbare Zeichenfolge (UTF-8), sodass er in der Ergebnistabelle angezeigt oder anderweitig verwendet werden kann. Mit dieser Funktion können Sie den tatsächlichen Inhalt anzeigen, wenn eine Log-Payload oder ein Metadatenfeld codiert wird.

Hinweis: Wenn der Zeichenfolgenwert ein Feld ist, muss die Groß-/Kleinschreibung beachtet werden.

decode64("SGVsbG8gV29ybGQ=") ergibt "Hello Word".

encode64(String)

Codiert die Eingabezeichenfolge in das Base64-Format.

encode64("Hello World") ergibt "SGVsbG8gV29ybGQ=".

fieldName(String)

Gibt den Namen des angegebenen Feldes als Zeichenfolge zurück.

fieldName(Entity) ergibt "Entity". (Gibt den Stringnamen des referenzierten Feldes zurück)

fieldType(String)

Gibt den Datentyp des angegebenen Feldes zurück, z.B. STRING, NUMBER.

fieldType(Entity) gibt "STRING" zurück.

fieldType(Content_Size) gibt "NUMBER" zurück.

indexof (String, String [,int])

Gibt die Position (Index) des ersten Vorkommens einer Teilzeichenfolge (Literalzeichenfolge oder Zeichenfolgenfeld) innerhalb einer Zeichenfolge (Literalzeichenfolge oder Zeichenfolgenfeld) zurück. Sie können optional einen Startindex für die Suche mit dem optionalen dritten Argument angeben.

Siehe Indexof-Funktionsdetails.

indexOf("error_log_01", "_") gibt 5 zurück.

indexOf("error_log_01", "_", 6) gibt 9 zurück. (Beginnt die Suche nach angegebenem Index=6)

lastindexof(String, String, int)

Gibt die Position (Index) des letzten Vorkommens einer Teilzeichenfolge (Literalzeichenfolge oder Zeichenfolgenfeld) innerhalb einer Zeichenfolge (Literalzeichenfolge oder Zeichenfolgenfeld) zurück. Sie können optional einen Startindex angeben, von dem aus gesucht werden soll (nach hinten suchen).

Siehe lastindexof-Funktionsdetails.

lastIndexOf("error_log_01", "_") gibt 9 zurück.

lastIndexOf("error_log_01", "_", 8) gibt 5 zurück. (Suche rückwärts ab Index=8).

length(String)

Gibt die Anzahl der Zeichen in der Zeichenfolge wieder.

length("Oracle") gibt 6 zurück

length(host1) gibt 10 zurück. (wobei der Wert des referenzierten host1 eine 10-Zeichenfolge ist, host1="my_host_13")

literal(String)

Konvertiert einen Feldwert oder Ausdruck in eine literale Zeichenfolge.

literal(Severity) gibt "Severity" zurück (gibt den Feldnamen als statische Zeichenfolge zurück)

lower(String)

Konvertiert alle Zeichen in der Zeichenfolge, in Kleinbuchstaben.

lower("WARNING") gibt "warning" zurück

Wenn severity="FATAL", lower(severity) "fatal" zurückgibt

ltrim(String, Character)

Entfernt führende Leerzeichen (wenn kein zweites Argument angegeben wird) oder einen angegebenen Zeichensatz (optionales zweites Argument) vom Anfang (links) der Zeichenfolge.

ltrim(" data") gibt "data" zurück

ltrim("xxdata", "x") gibt "data" zurück

replace(String, String, String, String, String, ..)

Ersetzt Vorkommen einer Teilzeichenfolge durch eine neue Zeichenfolge. Sie können mehrere Paare von Such- und Ersetzungszeichenfolgen angeben, um mehrere Ersetzungen gleichzeitig auszuführen.

Siehe Funktionsdetails ersetzen.

replace("aabbcc", "bb", "xx") gibt "aaxxcc" zurück

replace("aabbcc", "aa", "11", "cc", "33") gibt "11bb33" zurück

reverse(String)

Kehrt die Reihenfolge der Zeichen in der Zeichenfolge um.

reverse("flow") gibt "wolf" zurück

rtrim(String, Character)

Entfernt nachgestellte Leerzeichen eines angegebenen Zeichensatzes am Ende (rechts) der Zeichenfolge.

rtrim("data ") gibt "data" zurück

rtrim("dataxxx", "x") gibt "data" zurück

substr(String, int [, int])

Gibt einen Teil der Zeichenfolge ab dem angegebenen Index zurück. Sie können optional die Länge der zurückzugebenden Teilzeichenfolge angeben.

Siehe Untergeordnete Funktionsdetails.

substr("OCI Log Analytics", 4) gibt "Log Analytics" zurück

substr("OCI Log Analytics", 0, 3) gibt "OCI" zurück

todate(String [, format])

Konvertiert einen Zeichenfolgenzeitstempel in ein Datumsobjekt. Sie können optional das Format für das Parsen des Zeichenfolgenzeitstempels angeben.

toDate("2025-01-01") gibt 2025-01-01T00:00:00.00Z zurück

toDate("01/01/2025", "MM/dd/yyyy") gibt 2025-01-01T00:00:00.00Z zurück

toduration(String)

Bedeckt eine Zeichenfolge, die für die Dauer (HH:mm:ss) steht, in ein Dauer-Objekt, sodass Zeitberechnungs- und Vergleichsvorgänge möglich sind.

toDuration("1:30:00") gibt 1:30:00 zurück (dies entspricht einer Dauer von 1 Stunde und 30 Minuten)

tonumber(String)

Konvertiert eine Zeichenfolgendarstellung einer Zahl in einen tatsächlichen numerischen Datentyp.

toNumber("400") gibt 400 zurück

Wenn employees = "2000" der Wert von toNumber(employees) 2000 ist

trim(String, Character)

Entfernt Leerzeichen an beiden Enden einer Zeichenfolge (Standard) oder entfernt die angegebene Teilzeichenfolge, wenn sie als zweites Argument angegeben wird (optional).

trim(" 12Error12 ") gibt "12Error12" zurück

trim("12Error12", "12") gibt "Error" zurück

upper(String)

Konvertiert alle Zeichen in der Zeichenfolge, in Großbuchstaben.

upper("warning") gibt "WARNING" zurück

Wenn severity="fatal", upper(severity) "FATAL" zurückgibt

urlDecode(String)

Dekodiert eine URL-codierte Zeichenfolge zurück in das ursprüngliche Format.

urlDecode("query%20text") gibt "query text" zurück

urlEncode(String)

Codiert eine Zeichenfolge in das entsprechende URL-Format.

urlEncode("query text") gibt "query%20text" zurück

url(String [, Name [, Parameter]])

Erstellt einen anklickbaren URL-Link (Default) mit dem Anzeigenamen und den Parametern, sofern diese im zweiten bzw. dritten optionalen Argument angegeben sind.

Siehe URL-Funktionsdetails und Von Oracle definierte URL-Short-Cuts.

url("https://oracle.com", "Home") gibt Home zurück (das an die angegebene URL umleitet)

Numerische Funktionen

Funktion Beschreibung Beispiel

abs(number)

Gibt den absoluten Wert (positiv) einer Zahl zurück.

abs(-13) gibt 13 zurück

ceil(number)

Rundet eine Zahl auf die nächste Ganzzahl (Ganzzahl).

ceil(10.2) gibt 11 zurück

distance(number, number, number, number)

Berechnet den Abstand zwischen zwei in Zahlen angegebenen Koordinatengruppen. Der von der Funktion zurückgegebene Wert ist in Meilen angegeben. Die Zahlen sind in Grad. toRadians() konvertiert Grad in Radiane.

distance(0.71, -1.2, 0.5, -1.1) gibt 892.29 zurück

distance(string, string)

Berechnet den Abstand zwischen zwei Koordinatensätzen in Zeichenfolgen. Der von der Funktion zurückgegebene Wert ist in Meilen angegeben. Die Zahlen sind in Grad.

distance('0.71, -1.2', '0.5, -1.1') gibt 892.29 zurück

floor(number)

Rundet eine Zahl auf die nächste Ganzzahl (Ganzzahl) ab.

floor(13.8) gibt 13 zurück

formatduration(number)

Konvertiert einen numerischen Wert für die Dauer (in Sekunden) in das Zeitcodeformat HH:mm:ss.

formatDuration(3660) gibt 01:01:00 zurück

max(number, number)

Gibt den höheren Wert der beiden angegebenen Zahlen zurück.

max(13, 27) gibt 27 zurück

min(number, number)

Gibt den niedrigeren Wert der beiden angegebenen Zahlen zurück.

min(13, 27) gibt 13 zurück

power(number, int)

Gibt den Wert einer Zahl zurück, die auf die angegebene Potenz erhöht wurde.

power(2, 3) gibt 8 zurück

round(number, int)

Rundet eine Zahl auf die nächste Ganzzahl (Standard) oder auf eine bestimmte Anzahl von Dezimalstellen, falls im zweiten Argument angegeben.

round(13.3) gibt 13 zurück

round(10.576, 2) gibt 10.58 zurück

sqrt(number)

Berechnet die Quadratwurzel einer Zahl.

sqrt(16) gibt 4 zurück

tostring(number)

Umfasst einen numerischen Wert für eine Zeichenfolge.

toString(200) gibt "200" zurück

unit(number, unit).

Formatiert eine Zahl mit der angegebenen spezifischen Einheit, z.B. KB, MB, Byte, Sekunden.

Siehe Unterstützte Typen für die Einheit-Funktion, Unterstützte Typen für die Einheit-Funktion und Zeichenfolgenfunktionen.

unit(1024, KB) gibt 1024 KB zurück

Datumsfunktionen

Ähnlich wie der Befehl where können Sie die Zeit in der Abfrage mit einer lesbaren Zeichenfolge bearbeiten. Beispiel: So erstellen Sie ein neues Feld namens 10mins Später, das 10 Minuten vor dem Wert im Feld Zeit liegt:

* | eval '10mins Later' = Time + 10mins

Siehe Benutzerfreundliche Zeitzeichenfolgen in Vergleichen.

Funktion Beschreibung Beispiel

dateadd(date, property, amount)

Addiert oder subtrahiert die angegebene Zeit (Eigenschaft = Stunde, Tag, Min usw.) von einem Datum.

dateAdd(now(), day, 1) gibt following day's date zurück

dateset(date, property, value [, property, value])

Legt einen bestimmten Teil eines Datums fest (d.h. setzt die Stunde auf 0, um "Mitternacht" zu finden).

dateSet(now(), hour, 0) gibt today at 00:00 zurück

formatdate(date [,format])

Formatiert ein Datumsobjekt in eine benutzerdefinierte Zeichenfolge für die Anzeige

now() = the current date (01/27) and time.

formatDate(now(), "MM/dd") gibt 01/27 zurück

now()

Gibt das aktuelle Systemdatum und die aktuelle Systemuhrzeit zurück.

now() gibt 2026-01-28T23:16:53Z zurück (aktuelles Datum und aktuelle Uhrzeit)

Bedingungsfunktionen

Funktion Beschreibung Beispiel

cidrmatch(String, String)

Prüft, ob eine IP-Adresse zu einem bestimmten CIDR-Block gehört.

cidrMatch("192.168.1.15", "192.168.1.0/24") gibt true zurück

contains(String, String)

Gibt TRUE zurück, wenn die erste Zeichenfolge die zweite Zeichenfolge enthält. Andernfalls wird "false" zurückgegeben.

contains("error_log_123", "error") gibt true zurück

contains("error_log_123", "666") gibt false zurück

endsWith(String, String)

Gibt "true" zurück, wenn die Zeichenfolge (erstes Argument) mit der angegebenen Teilzeichenfolge (zweites Argument) endet. Andernfalls wird "false" zurückgegeben.

endsWith("image.png", "png") gibt true zurück

if(<expression1>, <expression2>, <expression3>)

Bewertet einen Bedingungsausdruck1 und gibt expression2 zurück, wenn true, gibt expression3 zurück, wenn false.

Wenn Status = 200, if(Status == 200, "OK", "ERROR") "OK" zurückgibt

startsWith(String, String)

Gibt "true" zurück, wenn die Zeichenfolge mit der angegebenen Teilzeichenfolge beginnt.

startsWith("http://www.example.com", "http") gibt true zurück

anyOf(condition1, condition2, ..., conditionN)

Gibt "Wahr" zurück, wenn eine der Bedingungen wahr ist. Andernfalls wird "Falsch" zurückgegeben.

Wenn Severity="ERROR", anyOf(Severity=="ERROR", Severity=="WARNING", Severity=="FATAL" ) true zurückgibt

allOf(condition1, condition2, ..., conditionN)

Gibt "true" zurück, wenn alle Bedingungen wahr sind. Andernfalls wird "false" zurückgegeben.

Wenn Severity="ERROR", anyOf(Severity=="ERROR", Severity=="WARNING", Severity=="FATAL" ) false zurückgibt

anyFields(wildCardExpression) = value

Gibt "true" zurück, wenn eines der Felder den angegebenen Wert aufweist. Andernfalls wird "false" zurückgegeben.

Wenn StatusId = 34721, anyFields('*Id') = 34721 true zurückgibt (wird auf Werte aller Felder geprüft, die Id im Feldnamen enthalten)

allFields(wildCardExpression) = value

Gibt "true" zurück, wenn alle Felder den angegebenen Wert aufweisen. Andernfalls wird "false" zurückgegeben.

Wenn StatusId = 34721, allFields('*Id') = 34721 false zurückgibt (wird auf Werte aller Felder geprüft, die Id im Feldnamen enthalten)

Beispiele zur Verwendung der Funktionen anyOf, allOf, anyFields und allFields finden Sie unter search und where.

Hashfunktionen

Funktion Beschreibung Beispiel

md5(<value to hash>)

Generiert einen MD5-Hash des Eingabewerts.

md5("password123") gibt 42f749ade7f9e195bf475f37a44cafcb zurück

sha1(<value to hash>)

Generiert einen SHA-1-Hash des Eingabewerts.

sha1("data") gibt 84983c60f7daadc1cb86986216801e7929f60fef zurück

sha256(<value to hash>)

Generiert einen SHA-256-Hash des Eingabewerts.

sha256("data") gibt 3a6eb0790f39ac87c94f3856b2dd2c5d110e6811602261a9a923d3bb23adc8b7 zurück

sha512(<value to hash>)

Generiert eine SHA-512 des Eingabewerts.

sha512("data") gibt 0a747012543e1d6d84d169e54d0399d8d1e34582f34e6d425b8b... zurück

Hinweis: Die Funktionen md5 und sha arbeiten derzeit mit den Kleinbuchstabenfeldwerten.

Trigonometrische Funktionen

Funktion Beschreibung Beispiel

arccos(<number>)

Gibt den Arkosinus (umgekehrter Kosinus) einer Zahl in Radianten zurück.

arccos(1) gibt 0 zurück

arcsin(<number>)

Gibt den Arkussinus (inverser Sinus) einer Zahl in Radianten zurück.

arcsin(1) gibt 1.570796 zurück

arctan(<number>)

Gibt den Arkustangente einer Zahl in Radianten zurück.

arctan(1) gibt 0.785398 zurück (Dezimalwert ca. π/4)

atan2(<numbera>,<numberb>)

Gibt die Arcustangente des Quotienten ihrer Argumente zurück (y=num1,x=num2).

Winkel in Radien auf einer Polarkoordinate, für die kartesischen Koordinaten a=num1 und b=num2.

arctan(1) gibt 0.785398 zurück (Dezimalwert ca. π/4)

cos(<number>)

Gibt den Kosinus eines Winkels in Radianten zurück.

cos(0) gibt 1 zurück

e()

Gibt die mathematische Konstante e (ca. 2,718) zurück.

e() gibt 2.718281 zurück

pi()

Gibt die mathematische Konstante pi zurück (ca. 3.141)

pi() gibt 3.141592... zurück

sin(<number>)

Gibt den Sinus eines Winkels in Radianten zurück.

sin(1.5708) gibt 1 zurück

tan(<number>)

Gibt den Tangens eines Winkels in Radianten zurück.

tan(0.7854) gibt 1 zurück

toDegrees(<number>)

Wandelt einen Winkel von Radiant in Grad um.

toDegrees(3.14159) gibt 180 zurück

toRadians(<number>)

Wandelt einen Winkel von Grad in Radiant um.

toRadians(180) gibt 3.14159 zurück

Parameter

In der folgenden Tabelle sind die in diesem Befehl verwendeten Parameter sowie deren Beschreibungen aufgeführt.

Parameter Beschreibung

new_field_name

Geben Sie den Namen des Feldes an, in dem der berechnete Wert des Ausdrucks angezeigt werden soll.

expression

Geben Sie den Ausdruck an, für den der Wert berechnet werden soll.

Beispiele für den Befehl eval:

*|eval newField = 'foo'
*|eval newField = 123
*|eval newField = upper(Target)
*|eval newField = length('hello world')
*|eval s =capitalize(severity)
*|eval newField = concat(host, concat (':', port))
*|eval n = contains(uri, '.com')
*|eval n =endsWith(uri, '.com')
*|eval n =startsWith(uri, 'http://oracle')
*|eval s = decode64(value)
*|eval s = encode64(uri)
*|eval s = reverse(Command)
*|eval newField = host || ':'|| port
*|eval newField = round(123.4)
*|eval newField = floor(4096/1024)+Length
*|eval newField = if (max(Length)(Target), length(Severity)) <= 20, 'OK', 'ERROR')
*|eval newField = urlDecode('http%3A%2F%2Fexample.com%3A893%2Fsolr%2FCORE_0_0%2Fquery')
*|eval s = urlEncode(uri)
*|eval newField = 'Host Name (Destination)' in (host1, host2)
*|eval value = arccos(angle)
*|eval value = arcsin(angle)
*|eval value = arctan(angle)
*|eval value = atan2(x, y)
*|eval value = cos(angle)
*|eval value = e()
*|eval value = pi()
*|eval value = sin(angle)
*|eval value = tan(angle)
*|eval value =toDegrees(angle)
*|eval value =toRadians(angle)

Im folgenden Beispiel werden die IP-Adressen im Feld srvrhostip mit einem Subnetzbereich verglichen.

*|eval newField = if (cidrmatch(srvrhostip, '192.0.2.254/25') = 1, 'local', 'not local')

Im folgenden Beispiel wird die Zeichenfolge "Target" zurückgegeben.

*|eval newField = literal(Target)

Im folgenden Beispiel werden die Leerzeichen und Tabulatorzeichen von beiden Enden entfernt.

*|eval newField = trim(Label)

Im folgenden Beispiel wird das übereinstimmende Zeichen von beiden Enden entfernt.

*|eval newField = trim('User Name',h)

Im folgenden Beispiel wird das übereinstimmende Zeichen vom linken Ende entfernt.

*|eval newField = ltrim('Error ID',0)

Im folgenden Beispiel wird das übereinstimmende Zeichen vom rechten Ende entfernt.

*|eval newField = rtrim('OS Process ID',2)

Im folgenden Beispiel wird das Feld date auf Start Date gesetzt und das Format des Datums als MM/dd/yyyy HH:mm definiert.

*|eval date = toDate('Start Date', 'MM/dd/yyyy HH:mm')

Die Funktion toDate kann auch verwendet werden, um Epochen wie folgt zu behandeln:

... | where 'Start Time' > toDate(1405544998000)

Im folgenden Beispiel wird der Wert des Feldes duration auf 1.30 gesetzt.

*|eval duration = toduration("1.30")

Im folgenden Beispiel wird der Wert des Feldes duration auf einen numerischen Wert gesetzt, der die Differenz zwischen End Time und Start Time darstellt.

*|eval duration = formatDuration('End Time' - 'Start Time')

Die folgenden Beispiele veranschaulichen die Verwendung von Datumsfunktionen.

*| eval lastHour = dateAdd(now(), hour, -1)
*| eval midnight = dateSet(now(), hour, 0, minute, 0, sec, 0, msec, 0)
*| eval timeOnly = formatDate(now(), 'HH:mm:ss')
*| eval now = now()

Sie können die Hashfunktionen MD5, SHA1, SHA256 und SHA512 mit dem eval-Befehl verwenden, um Logdaten zu filtern. Im folgenden Beispiel wird der Wert des Feldes user mit dem Wert sha1("jane") festgelegt.

*|eval user = sha1("jane")

Im folgenden Beispiel wird ein Hexadezimalwert in eine Dezimalzahl konvertiert, und n ergibt den Wert 255:

* | eval n = toNumber('0xFF')

Im folgenden Beispiel wird eine Oktalzahl in eine Dezimalzahl konvertiert, und n ergibt 10:

* | eval n = toNumber('012')

Der folgende Befehl berechnet den Abstand (in Meilen) zwischen zwei Paaren lat-langer Koordinaten, die in Grad angegeben sind, wenn die Eingabewerte Zahlen sind:

* | eval n = distance(lat1, long1, lat2, long2) 

Der folgende Befehl berechnet den Abstand (in Meilen) zwischen zwei Paaren lat-langer Koordinaten (in Grad), wenn die Eingabewerte zwei Zeichenfolgen sind:

* | eval n = distance('lat1,long1', 'lat2,long2')

Beispiele für die Funktion unit

Sie können die Funktion unit mit Linktabellen-, Tortendiagramm-, Balken- oder beliebigen Tabellendiagrammen verwenden.

Einige einfache Beispiele:

* | eval newField = unit('Content Size', KB)
* | eval 'File Size (bytes)' = unit('File Size', 'byte')
* | eval 'File Size (KB)' = unit('File Size'/1024, 'kb')
* | eval 'File Size (MB)' = unit('File Size'/(1024*1024), 'mb')
* | eval 'Time Taken (Sec)' = unit(Time/1000, 'SEC')

Beispiele für gemeinsame Einheiten wie Byte, Währung und Dauer:

* | eval Vol = unit('Content Size Out', byte) | stats sum(Vol) as 'Total Volume'
* | eval Sales = unit('Sales Amount', currency_usd) | stats sum('Sales') as 'Total Sales'
* | eval 'Disk Read Time' = unit('Disk Read Time (millis)', ms) | stats avg('Disk Read Time') as 'Avg Disk Read Time'

Führen Sie die oben genannten drei Abfragen zur Kachelvisualisierung aus, wobei die Option Zahl formatieren aktiviert ist, um die besten Ergebnisse zu erhalten.

Ein Feld mit der Art Einheit für Größe oder Dauer wird verwendet, um die Werte im Linkanalysediagramm, in den addfields-Histogrammen, in der Linktabelle und in der Kachelvisualisierung zu formatieren:

'Log Source' = 'FMW WebLogic Server Access Logs'
| link span = 5minute Time, Server
| stats avg('Duration')     as 'Raw Avg. Duration'
        avg('Content Size') as 'Raw Avg. Transfer Size'
| eval 'Average Duration'      = unit('Raw Avg. Duration', ms)
| eval 'Average Transfer Size' = unit('Raw Avg. Transfer Size', byte)
| classify 'Start Time', 'Average Duration', 
          'Average Transfer Size' as 'Response Time vs. Download Sizes'

Markieren Sie ein Feld, das US-Dollar, Tausende US-Dollar, Millionen US-Dollar oder Milliarden US-Dollar enthält:

| eval 'Amount in USD' = unit('Sales Price', currency_usd)
| eval 'Amount in Thousands (USD)' = usd('Quarterly Sales', currency_usd_thousand)
| eval 'Amount in Millions (USD)' = usd('Annual Profit', currency_usd_million)
| eval 'Amount in Billions (USD)' = usd('Annual Sales', currency_usd_billion)

Unterstützte Typen für die unit-Funktion

Einheitsnamen:

  • PERCENT | PCT
  • Datengröße:
    • BYTE
    • KILOBYTE | KB
    • MEGABYTE | MB
    • GIGABYTE | GB
    • TERABYTE | TB
    • PETABYTE | PB
    • EXABYTE | EB
  • Uhrzeit:
    • MILLISECOND | MS
    • S | SEC | SECS | SECOND | SECONDS
    • M | MIN | MINS | MINUTE | MINUTES
    • H | HR | HRS | HOUR | HOURS
    • D | DAY | DAYS
    • W | WEEK | WEEKS
    • MON | MONTH | MONTHS
    • Y | YR | YRS | YEAR | YEARS
    • MICRO | µs
  • Leistung:
    • WATT
    • KILOWATT | kW
    • MEGAWATT | MW
    • GIGAWATT | GW
    • TERAWATT | TW
    • PETAWATT | PW
    • EXAWATT | EW
  • Temperatur:
    • KELVIN | K
    • CELSIUS | C
    • FAHRENHEIT | F
  • Häufigkeit:
    • HERTZ | Hz
    • KILOHERTZ | kHz
    • MEGAHERTZ | MHz
    • GIGAHERTZ | GHz
    • TERAHERTZ | THz
    • PETAHERTZ | PHz
    • EXAHERTZ | EHz

Unterstützte Währungstypen in der Funktion unit

Informationen zur Verwendung der Funktion in typischen Szenarios finden Sie unter eval-Befehlsbeispiellinks.

Geben Sie die Währungseinheit im folgenden Format an:

eval <New Field> = unit(<Field>, currency_<ISO-4217 Code>)
eval <New Field> = unit(<Field>, currency_<ISO-4217 Code>_k)
eval <New Field> = unit(<Field>, currency_<ISO-4217 Code>_m)
eval <New Field> = unit(<Field>, currency_<ISO-4217 Code>_b)

Die Suffixe _k, _m und _b werden verwendet, um die Währung in Tausenden, Millionen oder Milliarden anzugeben. Eine vollständige Liste der Währungscodes finden Sie unter ISO-Standards.

NLS_Territory Currency
AFGHANISTAN AFN
ALBANIEN ALLE
ALGERIEN DZD
AMERIKA USD
ANGOLA AOA
ANTIGUA & BARBUDA XCD
ARGENTINIEN ARS
ARMENIEN AMD
ARUBA AWG
AUSTRALIEN AUD
ÖSTERREICH EUR
ASERBAIDSCHAN AZN
BAHAMAS BSD
BAHRAIN BHD
BANGLADESCH BDT
BARBADOS BBD
WEISSRUSSLAND BYN
BELGIEN EUR
BELIZE BZD
BERMUDA BMD
BOLIVIEN BOB
BOSNIEN-HERZEGOWINA BAM
BOTSUANA BWP
BRASILIEN BRL
BULGARIEN BGN
KAMBODSCHA KHR
KAMERUN XAF
KANADA CAD
KAIMANINSELN KYD
CHILE CLP
CHINA CNY
KOLUMBIEN COP
KONGO-BRAZZAVILLE XAF
KONGO KINSHASA Kumulative Verteilungsfunktion
COSTA-RICA CRC
KROATIEN HRK
CURAÇAO ANG
ZYPERN EUR
CZECH REPUBLIC CZK
DÄNEMARK DKK
DSCHIBUTI DJF
DOMINICA XCD
DOMINIKANISCHE REP. DOP
ECUADOR USD
EGYPT EGP
EL SALVADORE SVC
ESTLAND EUR
ÄTHIOPIEN ETB
FINLAND EUR
FRANKREICH EUR
FYR MAZEDONIEN MKD
GABON XAF
GEORGIEN GEL
DEUTSCHLAND EUR
GHANA GHS
GREECE EUR
GRENADA XCD
GUATEMALA GTQ
GUYANA GYD
HAITI HTG
HONDURAS HNL
HONGKONG HKD
UNGARN HUF
ISLAND ISK
Indien INR
INDONESIEN IDR
IRAN IRR
IRAQ IQD
IRLAND EUR
ISRAEL ILS
ITALIEN EUR
ELFENBEINKÜSTE XOF
JAMAIKA JMD
JAPAN JPY
JORDAN JOD
KASACHSTAN KZT
KENIA KES
KOREA KRW
KUWAIT KWD
KYRGYZSTAN KGS
LAOS LAK
LETTLAND EUR
LIBANON LBP
LIBYA LYD
LIECHTENSTEIN CHF
LITAUEN EUR
LUXEMBURG EUR
MACAO MOP
MALAWI MWK
MALAYSIA MYR
MALEDIVEN MVR
MALTA EUR
MAURETANIEN MRU
MAURITIUS MUR
MEXIKO MXN
MOLDAU MDL
MONTENEGRO EUR
MAROKKO MAD
MOSAMBIK MZN
MYANMAR MMK
NAMIBIA NAD
NEPAL NPR
NEUSEELAND NZD
NICARAGUA NIO
NIGERIA NGN
NORWEGEN NOK
OMAN OMR
PAKISTAN PKR
PANAMA PAB
PARAGUAY PYG
PERU PEN
PHILIPPINEN PHP
POLAND PLN
PORTUGAL EUR
PUERTO RIKO USD
QATAR QAR
RUMÄNIEN RON
RUSSLAND RUB
ST. KITTS AND NEVIS XCD
ST. LUCIA XCD
SAUDI-ARABIENS SAR
SENEGAL XOF
SERBIA RSD
SIERRA-LEONE SLL
SINGAPUR SGD
SLOWAKEI EUR
SLOWENIEN EUR
SOMALIA SOS
SOUTH AFRICA ZAR
SÜDSUDAN Einzelverkaufspreis
SPANIEN EUR
SRI-LANKA LKR
SUDAN SDG
SURINAM SRD
SWASILAND SZL
SCHWEDEN SEK
SCHWEIZ CHF
SYRIEN SYP
TAIWAN TWD
TANSANIA TZS
THAILAND THB
NIEDERLANDE EUR
TRINIDAD AND TOBAGO TTD
TUNESIEN TND
TÜRKEI TRY
TURKMENISTAN TMT
UGANDA UGX
UKRAINE UAH
VEREINIGTE ARABISCHE EMIRATE AED
VEREINIGTES GROSSBRITANNIEN GBP
URUGUAY UYU
USBEKISTAN UZS
VENEZUELA VES
VIETNAM VND
JEMEN YER
SAMBIA ZMW
SIMBABWE ZWL

indexof Funktionsdetails

Die Syntax für die Funktion index0f:

indexof (String, String [,int])

indexof (String, String [,start_pos]): Die Indexanzahl beginnt mit 0, gibt den Übereinstimmungsindex ab start_pos (falls angegeben) zurück und gibt -1 zurück, wenn keine Übereinstimmung vorhanden ist.

Im folgenden Beispiel wird der Wert des Feldes newField mit der Position von .com in der uri-Zeichenfolge festgelegt.

*|eval newField = indexOf(uri, '.com')

Anwendungsfall: Extrahieren Sie den relevanten Teil des API-Pfads aus dem Feld "OCI-Auditlogs, Pfad"

Das Feld Pfad enthält einen Wert wie /apis/coordination.k8s.io/v1/namespaces/default/leases/oracle.com-oci.

Sie können den Wert coordination.k8s aus dem obigen Feld extrahieren, indem Sie die folgenden Schritte ausführen:

  • Suchen Sie die Position des ersten und zweiten / mit der Funktion indexOf().
  • Finden Sie die Position der dritten /.
  • Extrahieren Sie die Werte nach der zweiten / bis zur dritten / mit der Funktion substr().
'Log Source' = 'OCI Audit Logs'
| eval firstPos = indexOf(Path, '/')
| eval secondPos = indexOf(Path, '/', firstPos + 1)
| eval API = substr(Path, secondPos + 1, indexOf(Path, '/', secondPos + 1))
| link Path, API

Beispielausgabe:


Anwendungsfall: Extrahieren Sie den relevanten Teil des API-Pfads aus dem Feld "OCI-Auditlogs, Pfad"

lastindexof Funktionsdetails

Die Syntax für die Funktion lastindexof:

lastindexof(String, String, int)

lastindexof (String, String [, end_pos]): Die Indexanzahl beginnt mit 0, gibt den Index des letzten Vorkommens der Teilzeichenfolge vor end_pos (falls angegeben) zurück und gibt -1 zurück, wenn keine Übereinstimmung vorhanden ist. Das Argument end_pos ist optional.

Einige Beispiele für die Verwendung der Funktion lastindexof:

*|eval n = lastindexof(uri, '.com')

Anwendungsfall: Extrahieren Sie den Bereich aus dem Feld Typ in OCI-Auditlogs

Das Feld Typ enthält einen Wert wie com.oraclecloud.computeApi.GetInstance.

Um computeAPI aus dem obigen Wert zu extrahieren, können Sie das folgende Schema verwenden:

  • Identifizieren Sie die Position der letzten . mit lastIndexOf().
  • Identifizieren Sie aus diesem Offset die Position der vorherigen . mit einer anderen lastIndexOf(), indem Sie jedoch den Offset angeben, von dem aus die Suche zurückgehen soll.
  • Extrahieren Sie den Wert zwischen diesen beiden Positionen mit substr().
'Log Source' = 'OCI Audit Logs' 
| eval lastDot = lastIndexOf(Type, '.') 
| eval prevDot = lastIndexOf(Type, '.', lastDot - 1) 
| eval Area    = substr(Type, prevDot + 1, lastDot) 
| link Type, Area

Beispielausgabe:


Anwendungsfall: Bereich aus dem Feld "Typ" in OCI-Auditlogs extrahieren

replace Funktionsdetails

Die Syntax für die Funktion replace:

replace(String, String, String, String, String, ..)

replace unterstützt mehrere Ersetzungen in einer einzelnen Funktion. Einige Beispiele für die Verwendung der Funktion replace:

  • *|eval newField = replace('aabbcc', 'bb', 'xx')
  • *|eval newField = replace('aabbcc', 'bb', 'xx', 'cc', 'yy')
  • Beispiel für mehrere Ersetzungsaktionen in einer einzelnen replace-Funktion:

    * | eval CopiedURL = 'https://cloud.oracle.com/loganalytics/explorer?viz=<VIZ>&encodedQuery=<QUERY>&startTime=<START_TIME>&endTime=<END_TIME>&region=us-phoenix-1&tenant=testtenant'| eval Query = encode64('* | stats count as "Log Records" by "Log Source"') 
    | eval 'Start Epoch' = toString(toNumber(toDate(dateRelative(30day)))) 
    | eval 'End Epoch' = toString(toNumber(now())) 
    | eval Viz = pie 
    | eval URL = replace(CopiedURL, '<VIZ>', Viz, '<QUERY>', Query, '<START_TIME>', 'Start Epoch', '<END_TIME>', 'End Epoch')

substr Funktionsdetails

Die Syntax für die Funktion substr:

substr(String, int [, int])

substr(String, start_pos, end_pos - 1): Die Indexanzahl beginnt mit start_pos und endet mit der end_pos - 1.

Im folgenden Beispiel ist newField die Teilzeichenfolge von aabbcc, wobei der Startindex (einschließlich) 2 und der Endindex (ausschließlich) 4 ist. Beachten Sie, dass die Indexanzahl bei Zeichenfolgen mit 0 beginnt. Die resultierende Teilzeichenfolge lautet also bb.

*|eval newField = substr('aabbcc', 2, 4)

Anwendungsfälle, in denen die Funktion substr verwendet wird, finden Sie unter Indexof-Funktionsdetails und lastindexof-Funktionsdetails.

Details zur url-Funktion

Syntax für die url-Funktion:

url(String, Name, Parameter)

Die Werte Name und Parameter sind optional.

  • String: Dabei kann es sich um eine URL oder einen der vordefinierten Kurznamen handeln. Beispiel:
    eval Link = url('https://www.oracle.com')
  • Name: Optionaler Name für die URL. Beispiel:
    eval Link = url('https://www.oracle.com', 'Oracle Home Page')
  • Parameter: Optionaler Parameter, wenn eine Verknüpfung für String verwendet wird. Beispiel:
    eval Link = url('tech', 'Search Oracle', 'ORA-600')

Einige Beispiele für die Verwendung der Funktion url:

  • * | stats latest(Status) as Status
     | eval ‘HTTP Status Code’ = url(‘https://www.google.com/search?q=http+code+’, Status, Status)
  • Status != null
     | eval 'HTTP Status Code' = url('https://www.google.com/search?q=http+code+', Status, Status)
     | stats count by Status

Beispiele für die Verwendung der Funktion url nach dem Befehl link:

  • * | link status
     | eval ‘HTTP Status Code’ = url(‘https://www.google.com/search?q=http+code+’, Status, Status)
  • * | link Type
     | stats latest(Status) as Status
     | eval ‘HTTP Status Code’ = url(‘[https://www.google.com/search?q=http+code+]’, Status, Status)

Von Oracle definierte url Short-Cuts

Die folgenden von Oracle definierten Shortcuts können mit der Funktion url für den Befehl eval verwendet werden.

Kürzel URL und Beschreibung Beispiel

ora

Suche:oracle

https://www.google.com/search?q=site:oracle.com%20

Generieren Sie einen Link, um alle oracle.com nach den angegebenen Zeichenfolgen zu suchen

eval Help = url('ora', 'Search Oracle', 'ORA-600')

eval Help = url('search:oracle', 'Search Oracle', 'ORA-600')

Technik

oracle-tech

https://community.oracle.com/tech/search?query=

Link zur Suche in Oracle Technologieforen generieren

eval Help = url('tech', 'Search Oracle Tech Forums', 'ORA-600')

eval Help = url('oracle-tech', 'Search Oracle Tech Forums', 'ORA-600')

Moschee

oracle-mosc

https://community.oracle.com/mosc/search?query=

Link zur Suche in My Oracle Support-Foren generieren

eval Help = url('mosc', 'Search Oracle Support', 'ORA-600')

eval Help = url('oracle-mosc', 'Search Oracle Support', 'ORA-600')

google https://www.google.com/search?q=

Link zur Suche mit Google generieren

eval 'More Info' = url('google', 'Search using Google', 'ORA-600')

Bing https://www.bing.com/search?q=

Link zur Suche mit Bing generieren

eval 'More Info' = url('bing', 'Search using Bing', 'ORA-600')

ddg

Duckduckgo

https://duckduckgo.com/?q=

Generieren Sie einen Link für die Suche mit DuckDuckGo

eval 'More Info' = url('ddg', 'Search using DuckDuckGo', 'ORA-600')

eval 'More Info' = url('duckduckgo', 'Search using DuckDuckGo', 'ORA-600')

so

Stapelüberlauf

https://stackoverflow.com/search?q=

Link für die Suche unter StackOverflow generieren

eval 'More Info' = url('so', 'Search using StackOverflow', 'ORA-600')

eval 'More Info' = url('stackoverflow', 'Search using StackOverflow', 'ORA-600')

Cve

https://www.cve.org/CVERecord?id=

Link für die angegebene CVE-ID generieren

* | link

| eval 'CVE Details' = url(cve, 'CVE-2021-22931 - Improper Null Termination in Node.js', 'CVE-2021-22931')

Generates a link to https://www.cve.org/CVERecord?id=CVE-2021-22931