Klausel für zurückgegebene Ausdrücke |
Gibt an, welche Trace- oder Span-Dimensionen oder Aggregatfunktionen als Spalten in der Liste angezeigt werden sollen. Die ID as stellt optional einen Alias für jede Spaltenüberschrift bereit. Beachten Sie, dass der Alias eindeutig sein muss.
Beispiel:
ServiceName as Service
Wenn auf die ID as ein Leerzeichen folgt, muss der Spaltenname in Anführungszeichen " " stehen.
Die folgenden unterstützten Funktionen können mit dieser Klausel verwendet werden:
abs : Gibt den absoluten Wert eines numerischen Ausdrucks zurück.
Beispiel:
abs(errorcount)
avg : Gibt den Durchschnittswert einer numerischen Dimension zurück.
Beispiel:
avg(SpanDuration) as "Duration"
cast : Ermöglicht die Angabe einer Einheit für einen Ausdruck, wobei der Ausdruck und die gewünschte Einheit als Argumente verwendet werden. Dies kann dazu führen, dass die Benutzeroberfläche den zurückgegebenen Wert anders wiedergibt.
Syntax: cast(expression, unit)
expression sind die darzustellenden Eingabedaten. Es muss sich um numerische oder Zeitausdrücke handeln.
unit ist die Einheit, die bestimmt, wie die Eingabe in die Ausgabe angezeigt/transformiert wird. Die verfügbaren Werte sind:
EPOCH_TIME_MS: Zeit in Millisekunden.
DURATION_MS : Dauer in ms.
BYTES : Größe in Byte.
Beispiel 1:
cast(myTimeAttribute, 'EPOCH_TIME_MS')
Beispiel 2:
cast(myDuration, 'DURATION_MS')
Beispiel 3:
cast(myStorageSize, 'BYTES')
ceil : Gibt den nächsthöheren Long-Wert zurück, wenn der Ausdruck einen Bruchteil ungleich Null enthält. Andernfalls wird der Wert als Long zurückgegeben.
Beispiel:
ceil(traceDuration)
conditional_count : Gibt die Gesamtanzahl (Anzahl) eines bedingten Ausdrucks zurück.
Syntax: conditional_count(conditional expression)
Beispiele:
conditional_count(dimensionA = 'abc')
count : Gibt die Gesamtanzahl für eine Dimension zurück.
Beispiele:
count(OperationName)as "Operation Count"
count(*) as "Trace Count"
count_distinct : Gibt die Anzahl der eindeutigen Werte für eine Dimension zurück.
Beispiel:
count_distinct(sessionId) as "Sessions"
date_bucket : Gibt einen transformierten Zeitausdruck zurück.
Syntax: date_bucket(numeric expression, string)
numeric expression ist die Zeiteingabe, die eine Zahl mit der Einheit EPOCH_TIME_MS sein muss.
string ist die Zeichenfolge, die bestimmt, wie die Zeiteingabe in die Ausgabe transformiert wird. Gültige Optionen sind:
'day_of_week' : Gültige Rückgabewerte sind 1-7, die den UTC-Tag der Woche angeben (Sonntag ist 1).
'day_of_month' : Gültige Rückgabewerte sind 1-31, die den UTC-Tag des Monats angeben.
'day_of_year' : Gültige Rückgabewerte sind 1-366 basierend auf UTC.
'month_of_year' : Gültige Rückgabewerte sind 1-12 basierend auf UTC.
'hour_of_day' : Gültige Rückgabewerte sind 0-23 basierend auf UTC.
'minute_of_hour' : Gültige Rückgabewerte sind 0-59.
'calendar_quarter_of_year' : Gültige Rückgabewerte sind 1-4 basierend auf UTC.
'truncate_day' : Der gültige Rückgabezeitwert ist der aktuelle Tag in der UTC-Mitte.
'truncate_hour' : Gültiger Rückgabewert ist der Stundenanfang (UTC).
'truncate minute' : Gültiger Rückgabewert ist der Beginn der Minute UTC.
floor : Schneidet einen Bruchteil des Ausdruckswerts ab und gibt einen langen Wert zurück.
Beispiel:
floor(traceDuration)
histogram : Erstellt ein Histogramm der Daten in numerischen Attributen. Sie verteilt die Daten in Buckets gleicher Breite (histogram(numeric_attr, min_value, max_value, num_buckets) ).
Beispiel:
histogram(spanDuration, 0, 6000, 3)
max : Gibt den Höchstwert einer Dimension zurück.
Beispiel:
max(SpanDuration) as "Maximum Duration"
min : Gibt den Mindestwert einer Dimension zurück.
Beispiel:
min(SpanDuration) as "Minimum Duration"
mod : Gibt den Rest von expression2 geteilt durch expression1 zurück. Wenn expression1 den Wert 0 hat, wird der Wert expression2 zurückgegeben.
Syntax: mod(expression1, expression2)
Diese Funktion verwendet als Argumente einen beliebigen numerischen Datentyp oder einen nicht numerischen Datentyp, der implizit in einen numerischen Datentyp konvertiert werden kann. Das Argument mit der höchsten numerischen Priorität wird bestimmt, und die restlichen Argumente werden implizit in diesen Datentyp konvertiert, und dieser Datentyp wird zurückgegeben.
Beispiel:
mod (errorcount, spancount)
omittedTo : Gibt die Option zum Zuweisen eines Werts zu einer Dimension an, die keinen Wert enthält.
Beispiel:
omittedTo(UserName, 'John Doe')
Wenn im obigen Beispiel der Dimension UserName ein Wert zugewiesen ist, wird der zugewiesene Wert in den Ergebnissen angezeigt. Wenn kein Wert zugewiesen ist, wird "John Doe" angezeigt.
percent_of_items : Gibt den Prozentsatz der Traces oder Spans zurück, der durch die aktuelle Zeile dargestellt wird. Der Wert von percent_total_items() ist gleich count(*)/total_items()*100 .
Beispiel:
show traces serviceName, count(*), total_items(), percent_of_items() group by serviceName
percent_with_root_error : Gibt den Prozentsatz der abgeschlossenen Traces zurück, bei denen ein Root-Span mit einem Fehler markiert ist. Dieser Wert entspricht sum(traceRootSpanErrorCount)/count(traceRootSpanErrorCount)*100 .
Beispiel:
show traces serviceName, sum(traceRootSpanErrorCount), count(traceRootSpanErrorCount), percent_with_root_error() group by serviceName
percentile : Gibt den ungefähren Perzentilwert für ein numerisches Attribut ((numeric_attr, 0-100) ) zurück.
Beispiel:
percentile(traceDuration, 90)
HINWEIS: Dies wird derzeit in Bezug auf die Funktion approx_percentile() der oracle-Datenbank implementiert und berechnet einen ungefähren Perzentilwert.
rate : Gibt den count() im Zeitverlauf zurück.
Beispiel:
show traces rate() between now()-1 hour and now() timeseries 5 minutes
Im obigen Beispiel wird das Ergebnis der Hauptabfrage über 60 Minuten berechnet, sodass der im Ergebnis angezeigte Wert count() /60 lautet. Wenn die Zeitreihe berechnet wird, berechnet jeder Datenpunkt eine Anzahl für 5 Minuten, sodass der Ratenwert für jeden Punkt count() /5 lautet. Dies ergibt eine Rate pro Minute sowohl im Gesamtergebnis als auch für jeden Punkt in der Zeitreihe.
regexp_count : Gibt die Gesamtanzahl der Vorkommen eines Musters in der Quellzeichenfolge ab der angegebenen Position zurück. Gibt 0 zurück, wenn keine Übereinstimmung in der Quellzeichenfolge gefunden wird, beginnend mit der Suchposition, oder gibt die Anzahl der Vorkommen des Suchmusters in der Quellzeichenfolge von der angegebenen Startposition zurück.
Syntax: regexp_count (expression, pattern, position, match_parameter)
expression ist ein Zeichenfolgenausdruck. Ein gültiger Zeichenfolgenausdruck (Quellzeichen) ist entweder ein gültiges Attribut, das aktiv ist, oder ein Zeichenfolgenausdruck, der mit Attributen und Operatoren erstellt wird (wie serviceName || operationName ).
pattern ist ein gültiges reguläres Ausdrucksmuster, das für das Muster zur Validierung und Suche verwendet wird.
position ist eine positive Ganzzahl, die angibt, an welcher Stelle des Quellzeichens die Suche beginnen soll. Nachdem das erste Vorkommen gefunden wurde, sucht es nach dem zweiten Vorkommen nach dem ersten.
match_parameter ist der Abgleichsparameter, der das Abgleichsverhalten angibt.
Folgende Werte werden unterstützt:
i : Gibt den Abgleich ohne Berücksichtigung der Groß-/Kleinschreibung an.
c : Gibt den Abgleich zwischen Groß- und Kleinschreibung und Akzenten an.
n : Lässt Punkt (.) im regulären Ausdruck zu. Wenn dieses Zeichen ausgelassen wird, stimmt der Punkt nicht mit dem neuen Zeilenzeichen überein.
m : Die Quellzeichenfolge wird als mehrere Zeilen behandelt. caret (^) ist der Start und $ ist das Ende einer beliebigen Zeile in der Quellzeichenfolge und nicht nur am Anfang des Endes der gesamten Quellzeichenfolge. Wenn dieser Parameter ausgelassen wird, wird die Quellzeichenfolge als einzelne Zeile behandelt.
x : Leerzeichen werden ignoriert. Standardmäßig stimmen Leerzeichen mit sich selbst überein.
Beispiel:
show TRACES traceId where REGEXP_COUNT(traceId, 'a', 7, 'c') >= 2
Im obigen Beispiel sucht die Abfrage nach Traces, die mindestens 2 Vorkommen von char:a innerhalb von traceId aufweisen, wobei die Suche an Position 7 der traceId beginnt.
Hinweis
Sie können auch nur 2 Argumente angeben:
regexp_count (expression, pattern)
Beispiel: show TRACES traceId where REGEXP_COUNT(traceId, 'a') >= 2
Das obige Beispiel sucht nach Traces, die mindestens 2 Vorkommen des Musters/Zeichens aufweisen: a innerhalb des traceId .
regexp_instr : Sucht nach einem regulären Ausdrucksmuster in einem bestimmten Ausdruck und gibt die Startposition des ersten Zeichens des Musters in der Zeichenfolge zurück.
Syntax: regexp_instr (expression, pattern)
expression ist ein Zeichenfolgenausdruck. Ein gültiger Zeichenfolgenausdruck ist entweder ein gültiges Attribut, das aktiv ist (wie traceId und serviceName ) oder ein Zeichenfolgenausdruck, der mit Attributen und Operatoren erstellt wird (wie serviceName || operationName ).
pattern ist ein gültiges reguläres Ausdrucksmuster, das für das Muster zur Validierung und Suche verwendet wird.
Beispiel:
show TRACES REGEXP_INSTR(serviceName, 'cli') as RegexInstr, traceId
Im obigen Beispiel sucht die Abfrage nach Traces mit serviceName -Werten, die mit dem Muster/Zeichen cli beginnen.
regexp_like : Führt einen Abgleich regulärer Ausdrücke mit dem angegebenen Zeichenfolgenausdruck aus und gibt die übereinstimmenden Zeichenfolgenausdrücke (Attribute) zurück.
Syntax: regexp_like (expression, pattern, match_parameter)
expression ist ein Zeichenfolgenausdruck. Ein gültiger Zeichenfolgenausdruck ist entweder ein gültiges Attribut, das aktiv ist (wie traceId und serviceName ) oder ein Zeichenfolgenausdruck, der mit Attributen und Operatoren erstellt wird (wie serviceName || operationName ).
pattern ist ein gültiges reguläres Ausdrucksmuster, das für das Muster zur Validierung und Suche verwendet wird.
match_parameter ist der Abgleichsparameter, der das Abgleichsverhalten angibt. Dies ist ein optionaler Schritt.
Folgende Werte werden unterstützt:
i : Gibt den Abgleich ohne Berücksichtigung der Groß-/Kleinschreibung an.
c : Gibt den Abgleich zwischen Groß- und Kleinschreibung und Akzenten an.
n : Lässt Punkt (.) im regulären Ausdruck zu. Wenn dieses Zeichen ausgelassen wird, stimmt der Punkt nicht mit dem neuen Zeilenzeichen überein.
m : Die Quellzeichenfolge wird als mehrere Zeilen behandelt. caret (^) ist der Start und $ ist das Ende einer beliebigen Zeile in der Quellzeichenfolge und nicht nur am Anfang des Endes der gesamten Quellzeichenfolge. Wenn dieser Parameter ausgelassen wird, wird die Quellzeichenfolge als einzelne Zeile behandelt.
x : Leerzeichen werden ignoriert. Standardmäßig stimmen Leerzeichen mit sich selbst überein.
Beispiele:
show TRACES traceId where REGEXP_LIKE(traceId, 'aa') Im obigen Beispiel sucht die Abfrage nach Traces mit traceId -Werten, die dem Muster/Zeichen entsprechen: aa.
show TRACES traceId where REGEXP_LIKE(traceId, '^aa', 'c') Im obigen Beispiel sucht die Abfrage nach Traces mit traceId -Werten, die dem Muster/Zeichen aa entsprechen (Groß-/Kleinschreibung beachten).
regexp_replace : Sucht nach einem Quellmuster in einer bestimmten Zeichenfolge und gibt eine Zeichenfolge zurück, bei der das Quellmuster durch das angegebene Muster ersetzt wird.
Syntax: regexp_replace (expression, pattern, replace_string, numeric expression)
expression ist ein Zeichenfolgenausdruck. Ein gültiger Zeichenfolgenausdruck (Quellzeichen) ist entweder ein gültiges Attribut, das aktiv ist (wie traceId oder serviceName ) oder ein Zeichenfolgenausdruck, der mit Attributen und Operatoren erstellt wird (wie serviceName || operationName ).
pattern ist ein gültiges reguläres Ausdrucksmuster, das für das Muster zur Validierung und Suche verwendet wird.
replace_string ist die Zeichenfolge, die das Vorkommen der Quellzeichenfolge ersetzt.
numeric expression ist eine Zahl oder ein gültiger numerischer Ausdruck, der das Vorkommen der zu ersetzenden Quellzeichenfolge angibt. Dies ist ein optionaler Schritt.
Beispiele:
-
show TRACES regexp_replace(traceId, 'aa', 'ee') as traceIdReplaced, traceId where REGEXP_LIKE(traceId, 'aa')
-
show TRACES regexp_replace(traceId, 'a', 'apm', 3) as traceIdReplaced, traceId where REGEXP_LIKE(traceId, 'a')
Hinweis
Sie können auch 5 Argumente angeben.
regexp_replace (expression, pattern, replace_string, numeric expression1, numeric expression2)
In diesem Fall ist numeric expression1 eine Zahl oder ein gültiger numerischer Ausdruck, der das Vorkommen der Quellzeichenfolge angibt, von der die Suche gestartet werden soll. numeric expression2 ist eine Zahl oder ein gültiger numerischer Ausdruck, der das Vorkommen der zu ersetzenden Quellzeichenfolge angibt.
Beispiel: Verwenden Sie die folgende Abfrage, um die Musterübereinstimmung mit dem ersten Vorkommen des Musters/Zeichens a zu starten, und ersetzen Sie das zweite Vorkommen von a durch die Zeichenfolge apm . show TRACES regexp_replace(traceId, 'a', 'apm', 1, 2) as traceIdReplaced, traceId where REGEXP_LIKE(traceId, 'aa')
regexp_substr : Sucht nach einem regulären Ausdrucksmuster in einem bestimmten Zeichenfolgenausdruck oder Attribut und gibt die Teilzeichenfolge aus diesem Zeichenfolgenausdruck oder -attribut zurück.
Syntax: regexp_substr (expression, pattern)
expression ist ein Zeichenfolgenausdruck. Ein gültiger Zeichenfolgenausdruck (Quellzeichen) ist entweder ein gültiges Attribut, das aktiv ist (wie traceId oder serviceName ) oder ein Zeichenfolgenausdruck, der mit Attributen und Operatoren erstellt wird (wie serviceName || operationName ).
pattern ist ein gültiges reguläres Ausdrucksmuster, das für das Muster zur Validierung und Suche verwendet wird.
Beispiel 1:
show TRACES REGEXP_SUBSTR(serviceName, 'cli') as RegexSubstr, traceId
Das obige Beispiel sucht nach Traces mit serviceName , die mit dem Muster/Zeichen cli beginnen.
Beispiel 2:
show TRACES traceId, serviceName, REGEXP_SUBSTR(serviceName, 'RUM') as RegexSubstr where REGEXP_SUBSTR(serviceName, 'RUM') = 'RUM'
Im obigen Beispiel wird nach Traces gesucht, die serviceName mit "RUM" enthalten und RUM aus serviceName entfernen und zurückgeben.
span_summary : Gibt eine Zusammenfassung der Spans in einem Trace zurück. Diese Funktion kann nur mit show(traces) und in nicht gruppierten Abfragen verwendet werden.
Beispiel:
span_summary() as Spans
stddev : Gibt die Standardabweichung des angegebenen Ausdrucks zurück.
Beispiel:
stddev(traceDuration+1)
substr : Gibt eine Teilzeichenfolge aus der angegebenen Zeichenfolge zurück.
Syntax: substr (expression, numeric expression1, numeric expression2)
expression ist ein Zeichenfolgenausdruck. Ein gültiger Zeichenfolgenausdruck (Quellzeichen) ist entweder ein gültiges Attribut, das aktiv ist (wie traceId oder serviceName ) oder ein Zeichenfolgenausdruck, der mit Attributen und Operatoren erstellt wird (wie serviceName || operationName ).
numeric expression1 (start position) ist ein numerischer Ausdruck, der eine Zahl oder eine Zahl ergibt, die die Startposition der Teilzeichenfolge angibt.
Wenn start position 0 ist, wird es als 1 behandelt.
Wenn start position positiv ist, zählt die Funktion ab dem Anfang des Zeichens, um das erste Zeichen zu finden. Wenn es negativ ist, zählt die Funktion rückwärts vom Ende des Chars.
numeric expression2 (length) ist ein numerischer Ausdruck, der eine Zahl oder eine Zahl ergibt, die die Länge der Teilzeichenfolge ab der Startposition der Teilzeichenfolge angibt.
length ist immer positiv und gibt nur so viele Zeichen zurück, wie im Wert vorhanden sind.
Wenn length kleiner als 1 ist, wird Null zurückgegeben. Wenn length größer als die Länge des Zeichenfolgenausdrucks (Quellzeichenfolge) ist, wird die gesamte Zeichenfolge zurückgegeben.
Beispiel:
show TRACES SUBSTR(traceId, 0, 1) as traceShortId, traceId
Das obige Beispiel durchsucht die traceShortId mit der traceShortId Länge 1, beginnend an Position 1 der traceId .
sum : Gibt den Aggregatwert einer numerischen Dimension zurück.
Beispiel:
sum(ErrorCount) as "Errors"
time_bucket : Aufgrund des Zeitattributs für die Tabelle (StartTime oder TraceStartTime ) und einer unterstützten Zeitgranularität gibt die Funktion eine Bucket-Nummer zurück, in die die Zeile fällt. Dies wird hauptsächlich beim Ausdrücken von Zeitreihenabfragen verwendet.
Beispiel:
In einer Span-Abfrage: time_bucket(15, StartTime)
In einer Traceabfrage: time_bucket(15, TraceStartTime)
Ein time_bucket() -Wert kann mit dem folgenden Java-Ausdruck wieder in eine unixe Epochzeit in Millisekunden konvertiert werden: bucketNumber * TimeUnit.MINUTES.toMillis(bucketInMinutes);
time_bucket_start : Gibt den Start des Zeit-Buckets als Zeitwert in Millisekunden seit epoch (Einheit: EPOCH_TIME_MS) zurück. Er kann mit einem einzelnen Argument, der Größe des Buckets in Minuten oder ohne Argumente aufgerufen werden. In diesem Fall bestimmt das System die Bucket-Größe basierend auf der Zeitspanne der Abfrage.
Beispiel:
In einer Span-Abfrage: time_bucket(15)
In einer Traceabfrage: time_bucket()
total_items : Gibt die Gesamtanzahl der Traces oder Spans zurück, die von der Abfrage berücksichtigt werden.
Beispiel 1:
show traces count(*), total_items()
Beispiel 2:
show traces count(*), total_items() group by service name
Hinweis: In Beispiel 1 sind count(*) und total_items() identisch, weil die Abfrage nicht gruppiert ist. In Beispiel 2 bezieht sich count(*) auf die Anzahl der Elemente in der Gruppe für die Zeile, während total_items() denselben Wert wie in Beispiel 1 hat.
total_rows : Gibt die Gesamtanzahl der Zeilen zurück, die in der Ergebnismenge angezeigt würden, wenn FIRST x ROWS auf unbegrenzt gesetzt werden könnte.
Dies kann bei der Suche nach der Kardinalität einer bestimmten Kombination von Abmessungen nützlich sein.
Beispiel:
show spans total_rows() where component = 'SERVLET' group by serviceName, operationName first 1 rows
unique_values : Gibt die eindeutigen Werte einer Dimension und die Häufigkeit der einzelnen Werte zurück. Wenn eine Dimension fünf oder weniger eindeutige Werte enthält, werden diese in einem Tortendiagramm angezeigt. Wenn eine Dimension mehr als fünf eindeutige Werte enthält, wird in der Spalte ein Link angezeigt, auf den Sie klicken können, um die Liste der eindeutigen Werte anzuzeigen.
Beispiel:
unique_values(ApmrumPageUpdateType) as "Page Load/Update"
|