eventstats

Mit dem Befehl eventstats können Sie allgemeine Übersichtsstatistiken (optional gruppiert nach Feldern) für Eigenschaften von Gruppen abrufen, die durch einen Gruppierungsbefehl wie stats, link oder timestats identifiziert werden. Die Ausgabe enthält ein Feld für jede Aggregation.

Syntax

Hinweis

Der Aggregatoperator trend ist mit eventstats nicht zulässig.
eventstats <stats_function> (<field_name>) [as <new_field_name>] [, <stats_function> (<field_name>) [as <new_field_name>]]* [by <field_name> [, <field_name>]*]

Parameter

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

Parameter Beschreibung

field_name

Mit diesem Parameter geben Sie das Feld an, nach dem die Ergebnisse gruppiert werden sollen.

new_field_name

Mit diesem Parameter können Sie den neuen Namen für das Feld nach dem Anwenden des stats-Befehls angeben.

Die unterstützten Funktionen finden Sie unter Funktionen, Positionsfunktionen und Funktionen zur Zeitreihenanalyse.

Funktionen

In der folgenden Tabelle sind die mit diesem Befehl verfügbaren Funktionen sowie die zugehörigen Beispiele aufgeführt.

Funktion Beispiele

Werte

Führt die ersten 10 Werte für ein bestimmtes Feld mit optionalen Begrenzungszeichen auf. Kann auf jeden Felddatentyp angewendet werden.

values(field_name)

  • values(Label)

  • values(Severity)

  • values(‘Client Host City’)

  • values(‘Client Host Country’)

  • values(‘Client Host Continent’)

Eindeutig

Führt die ersten 10 eindeutigen Werte für ein bestimmtes Feld mit optionalen Begrenzungszeichen auf. Kann auf jeden Felddatentyp angewendet werden.

unique(field_name)

  • unique(Label)

  • unique(Severity)

  • unique(‘Client Host City’)

  • unique(‘Client Host Country’)

  • unique(‘Client Host Continent’)

Erstes

Gibt den ältesten Wert ungleich Null für das angegebene Feld zurück. Null wird zurückgegeben, wenn das Feld für bestimmte Abfrageergebnisse vollständig leer ist.

earliest(field_name)

  • earliest(‘OS Process ID’)

Letzte

Gibt den neuesten Wert ungleich Null für das angegebene Feld zurück. Null wird zurückgegeben, wenn das Feld für bestimmte Abfrageergebnisse vollständig leer ist.

latest(field_name)

  • latest(‘Error ID’)

Durchschnitt

Hinweis: Diese Funktion wird nur für numerische Felder unterstützt.

avg(field_name)

  • avg(‘Content Size’)

Anzahl

Hinweis: Diese Funktion verwendet ähnliche Semantik wie SQL. Das heißt, die Anzahl gibt die Anzahl für alle Zeilen zurück. "count(field)" gibt jedoch die Anzahl für alle Zeilen zurück, bei denen das Feld nicht Null ist.

count(field_name)

  • count(Source)

Eindeutige Anzahl

distinctcount(field_name)

  • distinctcount(Severity)

Maximum

Hinweis: Diese Funktion wird nur für numerische Felder unterstützt.

max(field_name)

  • max('Content Size')

Median

Hinweis: Diese Funktion wird nur für numerische Felder unterstützt.

median(field_name)

  • median('Content Size')

Minimum

Hinweis: Diese Funktion wird nur für numerische Felder unterstützt.

min(field_name)

  • min('Content Size')

Prozentsatz

Hinweis: Diese Funktion wird nur für numerische Felder unterstützt.

pct(field_name, n)

  • pct('Content Size', 90)

Summe

Hinweis: Diese Funktion wird nur für numerische Felder unterstützt.

sum(field_name)

  • sum(‘Content Size’)

Standardabweichung

Hinweis: Diese Funktion wird nur für numerische Felder unterstützt.

stddev(field_name)

  • stddev(‘Content Size’)

Wenn Null

Ändert den Wert, wenn der Wert null ist.

Hinweis: Diese Funktion gilt nur für Ereignisstatistiken, Geostats, Statistiken und Zeitstatistiken (nicht nach dem Link).

ifnull(stats_function(field_name), return value)

  • ifnull(avg('Content Size)', 0)

  • ifnull(latest(message), none)

Positionsfunktionen

In der folgenden Tabelle sind die für diesen Befehl eindeutigen Funktionen sowie die zugehörigen Beispiele aufgeführt.

Funktion Beispiele

first

Ruft den Eigenschaftswert aus der ersten Zeile, wie durch die aktuelle Sortierfolge definiert, innerhalb des abgerufenen Ergebnisses ab.

Syntax: first(field_name)

  • | eventstats first('Content Size')

last

Ruft den Eigenschaftswert aus der letzten Zeile, wie durch die aktuelle Sortierfolge definiert, innerhalb des abgerufenen Ergebnisses ab.

Syntax: last(field_name)

  • | eventstats last('Content Size')

nthval

Ruft den Eigenschaftswert aus der nten Zeile, wie durch die aktuelle Sortierfolge definiert, im abgerufenen Ergebnis ab ab.

Syntax: nthval(field_name, n)

  • | eventstats nthval('Content Size', 2)

lag

Ruft den Eigenschaftswert aus einer Zeile bei einem bestimmten Offset vor der aktuellen Zeile ab. Der Standard-Offset lautet 1.

Syntax: lag(field_name)

  • | eventstats lag('Content Size')

lead

Ruft den Eigenschaftswert aus einer Zeile bei einem bestimmten Offset nach der aktuellen Zeile ab. Der Standard-Offset lautet 1.

Syntax: lead(field_name)

  • | eventstats lead('Content Size')

rownum

Weist jeder Zeile im abgerufenen Ergebnis eine eindeutige Folgenummer ab 1 zu, wie durch die aktuelle Sortierfolge definiert.

Syntax: rownum

  • | eventstats rownum

Funktionen zur Zeitreihenanalyse

In der folgenden Tabelle sind die Funktionen für die Zeitreihenanalyse sowie die zugehörigen Beispiele aufgeführt.

Funktion Beispiele

peak

Ruft den Eigenschaftswert mit höchster Größe innerhalb des abgerufenen Ergebnisses ab. Ein höherer Größenwert gibt größere absolute Werte an.

Syntax: peak

  • | eventstats peak('Content Size')

peakscore

Ruft den Eigenschaftswert mit einem normalisierten Spitzenscore zwischen 0 und 1 innerhalb des abgerufenen Ergebnisses ab. Der Score kann verwendet werden, um die Spitzen zu vergleichen. Dabei erhält die höchste Spitze 1 als Score und alle anderen Werte Scores zwischen 0 und 1.

Syntax: peakscore

  • | eventstats peakscore('Content Size')

valley

Ruft den Eigenschaftswert mit niedrigster Größe innerhalb des abgerufenen Ergebnisses ab. Ein niedrigerer Größenwert gibt kleinere absolute Werte an.

Syntax: valley

  • | eventstats valley('Content Size')

valleyscore

Ruft den Eigenschaftswert mit einem normalisierten Tiefstandscore zwischen 0 und 1 innerhalb des abgerufenen Ergebnisses ab. Der Score kann verwendet werden, um die Tiefstände zu vergleichen. Dabei erhält der niedrigste Tiefstand 0 als Score und alle anderen Werte Scores zwischen 0 und 1.

Syntax: valleyscore

  • | eventstats valleyscore('Content Size')

Mit den Funktionen peak und peakscore können Sie sequenzielle Daten in der Linkvisualisierung für die Spitzengröße und einen normalisierten Score zwischen 0 und 1 analysieren. Beispiel: Die folgende Abfrage hebt die höchsten Spitzen in der Benutzerantwortzeit hervor. Dabei wird das Feld für die Dauer aus der Logquelle für Zugriffslogs verwendet:

'Log Source' = 'OCI API Gateway Access Logs' 
| link span = 5minute Time, Server 
| stats avg(Duration) as 'Avg. Duration' 
| sort Server, 'Start Time' 
| eventstats peak('Avg. Duration')      as 'Peak Magnitude', 
             peakscore('Avg. Duration') as 'Peak Score' by Server 
| highlightgroups priority = high 
  [ * | where 'Peak Score' > 0.9 ] as 'High Response Time - Needs Attention'

Funktionen "peak" und "peakscore" zur Analyse sequenzieller Daten in Linkvisualisierung

Dieses Feature kann zum Suchen und Gruppieren von Zeitreihendaten verwendet werden, wie zum Beispiel zum Identifizieren aller Out-of-Memory-Ereignisse, die nach einer Spitze aufgetreten sind. Ein höherer Wert für die Spitzengröße gibt größere absolute Werte an. Der Score kann verwendet werden, um Spitzen zu vergleichen. Dabei erhält die höchste Spitze 1 als Score und alle anderen Werte Scores zwischen 0 und 1.

Beispiele zur Verwendung des Befehls eventstats in typischen Szenarios finden Sie unter:

Gruppieren Sie alle Logs mit schwerwiegenden Fehlern nach Transaktion, und rufen Sie die gesamte durchschnittliche verstrichene Zeit für alle Gruppen ab:

severity = fatal | link 'Transaction ID' | stats avg('Elapsed Time (System)') as 'Average Elapsed Time' | eventstats avg('Average Elapsed Time') as 'Overall Average Elapsed Time'
severity = fatal | stats avg('Elapsed Time (system)') as 'Average Elapsed Time' | eventstats avg('Average elapsed time') as 'Overall Average elapsed time'

Gruppieren Sie alle Logs mit schwerwiegenden Fehlern nach Entitytyp und Transaktion, und rufen Sie die gesamte durchschnittliche verstrichene Zeit für alle Gruppen mit demselben Entitytyp ab:

severity = fatal | link 'Entity Type', 'Transaction ID' | stats avg('Elapsed Time (System)') as 'Average Elapsed Time' | eventstats avg('Average Elapsed Time') as 'Overall Average Elapsed Time' by 'Entity Type'
severity = fatal | stats avg('Elapsed Time (System)') as 'Average Elapsed Time' by 'Entity Type', 'Transaction ID'  | eventstats avg('Average Elapsed Time') as 'Overall Average Elapsed Time' by 'Entity Type'

Fügen Sie in der Linkvisualisierung jeder Zeile eine Zahl hinzu:

'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

Identifizieren Sie das letzte Ereignis anhand der Zeilennummer:

'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'
   ]

Identifizieren Sie vorherige und nächste Ereignisse eines ausgewählten Ereignisses:

'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'
   ]