Clause d'expressions retournées |
Indique les dimensions ou fonctions d'agrégation de traces ou d'intervalles qui doivent être affichées en tant que colonnes dans la liste. L'identificateur as fournit un alias facultatif pour chaque en-tête de colonne. Notez que l'alias doit être unique.
Exemple :
ServiceName as Service
Notez que s'il y a un espace après l'identificateur as , la valeur de nom de colonne doit être entre guillemets " " .
Voici les fonctions prises en charge qui peuvent être utilisées avec cette clause :
abs : Retourne la valeur absolue d'une expression numérique.
Exemple :
abs(errorcount)
avg : Retourne la valeur moyenne d'une dimension numérique.
Exemple :
avg(SpanDuration) as "Duration"
cast : Permet de spécifier une unité pour une expression, en prenant l'expression et l'unité souhaitée comme arguments. L'interface utilisateur peut alors afficher la valeur renvoyée différemment.
Syntaxe : cast(expression, unit)
expression est les données d'entrée à représenter. Il doit s'agir d'expressions numériques ou temporelles.
unit est l'unité qui détermine comment l'entrée est affichée/transformée en sortie. Les valeurs disponibles sont :
EPOCH_TIME_MS: Temps en millisecondes.
DURATION_MS : Durée en millisecondes.
BYTES : Taille en octets.
Exemple 1 :
cast(myTimeAttribute, 'EPOCH_TIME_MS')
Exemple 2 :
cast(myDuration, 'DURATION_MS')
Exemple 3 :
cast(myStorageSize, 'BYTES')
ceil : Retourne la valeur longue la plus élevée suivante si l'expression a une partie fractionnaire non nulle, sinon elle retourne la valeur en tant que valeur longue.
Exemple :
ceil(traceDuration)
conditional_count : Retourne le nombre total (nombre) d'une expression conditionnelle.
Syntaxe : conditional_count(conditional expression)
Exemples :
conditional_count(dimensionA = 'abc')
count : Retourne le nombre total pour une dimension.
Exemples :
count(OperationName)as "Operation Count"
count(*) as "Trace Count"
count_distinct : Retourne le nombre de valeurs distinctes pour une dimension.
Exemple :
count_distinct(sessionId) as "Sessions"
date_bucket : Retourne une expression temporelle transformée.
Syntaxe : date_bucket(numeric expression, string)
numeric expression est l'entrée de temps qui doit être une valeur numérique ayant une unité EPOCH_TIME_MS.
string est la chaîne qui détermine comment l'entrée de temps est transformée en sortie. Les options valides sont les suivantes :
'day_of_week' : Les valeurs de retour valides sont 1 à 7, indiquant le jour UTC de la semaine (le dimanche est 1).
'day_of_month' : Les valeurs de retour valides sont comprises entre 1 et 31, indiquant le jour UTC du mois.
'day_of_year' : Les valeurs retournées valides sont 1 à 366 en fonction d'UTC.
'month_of_year' : Les valeurs retournées valides sont 1 à 12 en fonction de UTC.
'hour_of_day' : Les valeurs retournées valides sont de 0 à 23 selon UTC.
'minute_of_hour' : Les valeurs retournées valides sont 0 à 59.
'calendar_quarter_of_year' : Les valeurs retournées valides sont 1 à 4 selon UTC.
'truncate_day' : La valeur d'heure de retour valide est le jour courant à mi-haut UTC.
'truncate_hour' : La valeur de retour valide est le début de l'heure UTC.
'truncate minute' : La valeur retournée valide est le début de la minute UTC.
floor : Tronque la partie fractionnaire de la valeur des expressions et retourne une valeur longue.
Exemple :
floor(traceDuration)
histogram : Génère un histogramme des données dans les attributs numériques. Il répartit les données dans des seaux d'une largeur égale (histogram(numeric_attr, min_value, max_value, num_buckets) ).
Exemple :
histogram(spanDuration, 0, 6000, 3)
max : Retourne la valeur maximale d'une dimension.
Exemple :
max(SpanDuration) as "Maximum Duration"
min : Retourne la valeur minimale d'une dimension.
Exemple :
min(SpanDuration) as "Minimum Duration"
mod : Retourne le reste de expression2 divisé par expression1. Si expression1 a la valeur 0, il retourne la valeur expression2.
Syntaxe : mod(expression1, expression2)
Cette fonction prend comme arguments tout type de données numériques ou tout type de données non numériques qui peut être converti implicitement en type de données numériques. L'argument ayant la priorité numérique la plus élevée est déterminé, et les arguments restants sont implicitement convertis en ce type de données, et ce type de données est retourné.
Exemple :
mod (errorcount, spancount)
omittedTo : Offre l'option d'affecter une valeur à une dimension qui n'a pas de valeur.
Exemple :
omittedTo(UserName, 'John Doe')
Dans l'exemple ci-dessus, si une valeur est affectée à la dimension UserName , la valeur affectée s'affiche dans les résultats et si aucune valeur n'est affectée, John Doe s'affiche.
percent_of_items : Retourne le pourcentage des traces ou des intervalles représentés par la rangée courante. La valeur de percent_total_items() est égale à count(*)/total_items()*100 .
Exemple :
show traces serviceName, count(*), total_items(), percent_of_items() group by serviceName
percent_with_root_error : Retourne le pourcentage de traces terminées dont l'intervalle racine est marqué d'une erreur. Cette valeur est égale à sum(traceRootSpanErrorCount)/count(traceRootSpanErrorCount)*100 .
Exemple :
show traces serviceName, sum(traceRootSpanErrorCount), count(traceRootSpanErrorCount), percent_with_root_error() group by serviceName
percentile : Retourne la valeur de centile approximative pour un attribut numérique ((numeric_attr, 0-100) ).
Exemple :
percentile(traceDuration, 90)
NOTE : Cette opération est actuellement mise en oeuvre en fonction de la fonction approx_percentile() de la base de données oracle et calcule une valeur de centile approximative.
rate : Retourne count() sur une période.
Exemple :
show traces rate() between now()-1 hour and now() timeseries 5 minutes
Dans l'exemple ci-dessus, le résultat de l'interrogation principale est calculé sur 60 minutes, de sorte que la valeur affichée dans le résultat sera count() /60. Lorsque la série chronologique est calculée, chaque point de données calcule un comptage pendant 5 minutes, de sorte que la valeur de taux pour chaque point est count() /5. Cela donne un taux par minute à la fois dans le résultat global, et pour chaque point dans les séries chronologiques.
regexp_count : Retourne le nombre total de fois où un modèle se produit dans la chaîne source à partir de la position spécifiée. Il retourne 0 si aucune correspondance n'est trouvée dans la chaîne source à partir de la position de recherche, ou retourne le nombre d'occurrences du modèle de recherche dans la chaîne source à partir de la position de début indiquée.
Syntaxe : regexp_count (expression, pattern, position, match_parameter)
expression est une expression de type chaîne. Une expression de chaîne valide (caractère source) est un attribut valide qui est actif ou une expression de chaîne créée à l'aide d'attributs et d'opérateurs (tels que serviceName || operationName ).
pattern est un modèle d'expression rationnelle valide qui sera utilisé pour le modèle à valider et à rechercher.
position est un entier positif indiquant la position du caractère source où la recherche doit commencer. Après avoir trouvé la première occurrence, il recherche la deuxième occurrence après la première.
match_parameter est le paramètre de correspondance qui indique le comportement de correspondance.
Les valeurs prises en charge sont les suivantes :
i : Spécifie une correspondance non sensible à la casse.
c : Spécifie une correspondance sensible à la casse et sensible à l'accentuation.
n : Autorise le point (.) dans l'expression rationnelle. Si ce caractère est omis, le point ne correspond pas au nouveau caractère de ligne.
m : La chaîne source est traitée comme plusieurs lignes. caret (^) est le début et $ est la fin de toute ligne n'importe où dans la chaîne source, plutôt qu'au début de la fin de toute la chaîne source. Si ce paramètre est omis, la chaîne source est traitée comme une seule ligne.
x : Ignore les caractères blancs. Par défaut, les blancs correspondent à eux-mêmes.
Exemple :
show TRACES traceId where REGEXP_COUNT(traceId, 'a', 7, 'c') >= 2
Dans l'exemple ci-dessus, l'interrogation recherche les traces qui ont 2 occurrences ou plus de la chaîne char :a dans la chaîne traceId avec la recherche commençant à la position 7 de la chaîne traceId .
Note
Vous ne pouvez également fournir que 2 arguments :
regexp_count (expression, pattern)
Exemple : show TRACES traceId where REGEXP_COUNT(traceId, 'a') >= 2
L'exemple ci-dessus recherche les traces qui ont 2 occurrences ou plus du modèle/char : a dans traceId .
regexp_instr : Recherche un modèle d'expression rationnelle dans une expression donnée et retourne la position de départ du premier caractère du modèle dans la chaîne.
Syntaxe : regexp_instr (expression, pattern)
expression est une expression de type chaîne. Une expression de chaîne valide est un attribut valide actif (par exemple, traceId et serviceName ) ou une expression de chaîne créée à l'aide d'attributs et d'opérateurs (par exemple, serviceName || operationName ).
pattern est un modèle d'expression rationnelle valide qui sera utilisé pour le modèle à valider et à rechercher.
Exemple :
show TRACES REGEXP_INSTR(serviceName, 'cli') as RegexInstr, traceId
Dans l'exemple ci-dessus, l'interrogation recherche les traces qui ont des valeurs serviceName qui commencent par le modèle/char : cli .
regexp_like : Effectue la mise en correspondance d'expressions rationnelles sur l'expression de chaîne donnée et retourne les expressions de chaîne (attributs) qui ont été mises en correspondance.
Syntaxe : regexp_like (expression, pattern, match_parameter)
expression est une expression de type chaîne. Une expression de chaîne valide est un attribut valide actif (par exemple, traceId et serviceName ) ou une expression de chaîne créée à l'aide d'attributs et d'opérateurs (par exemple, serviceName || operationName ).
pattern est un modèle d'expression rationnelle valide qui sera utilisé pour le modèle à valider et à rechercher.
match_parameter est le paramètre de correspondance qui indique le comportement de correspondance. Ce champ est facultatif.
Les valeurs prises en charge sont les suivantes :
i : Spécifie une correspondance non sensible à la casse.
c : Spécifie une correspondance sensible à la casse et sensible à l'accentuation.
n : Autorise le point (.) dans l'expression rationnelle. Si ce caractère est omis, le point ne correspond pas au nouveau caractère de ligne.
m : La chaîne source est traitée comme plusieurs lignes. caret (^) est le début et $ est la fin de toute ligne n'importe où dans la chaîne source, plutôt qu'au début de la fin de toute la chaîne source. Si ce paramètre est omis, la chaîne source est traitée comme une seule ligne.
x : Ignore les caractères blancs. Par défaut, les blancs correspondent à eux-mêmes.
Exemples :
show TRACES traceId where REGEXP_LIKE(traceId, 'aa') Dans l'exemple ci-dessus, l'interrogation recherche les traces qui ont des valeurs traceId qui correspondent au modèle/char : aa.
show TRACES traceId where REGEXP_LIKE(traceId, '^aa', 'c') Dans l'exemple ci-dessus, l'interrogation recherche les traces qui ont des valeurs traceId qui correspondent au modèle/char : aa en minuscules (sensible à la casse).
regexp_replace : Recherche un modèle source dans une chaîne donnée et retourne une chaîne avec toute occurrence du modèle source remplacée par le modèle donné.
Syntaxe : regexp_replace (expression, pattern, replace_string, numeric expression)
expression est une expression de type chaîne. Une expression de chaîne valide (caractère source) est un attribut valide actif (par exemple traceId ou serviceName ) ou une expression de chaîne créée à l'aide d'attributs et d'opérateurs (par exemple serviceName || operationName ).
pattern est un modèle d'expression rationnelle valide qui sera utilisé pour le modèle à valider et à rechercher.
replace_string est la chaîne qui remplace les occurrences de la chaîne source.
numeric expression est un nombre ou une expression numérique valide qui indique l'occurrence de la chaîne source à remplacer. Ce champ est facultatif.
Exemples :
-
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')
Note
Vous pouvez également fournir 5 arguments.
regexp_replace (expression, pattern, replace_string, numeric expression1, numeric expression2)
Dans ce cas, numeric expression1 est un nombre ou une expression numérique valide qui indique l'occurrence de la chaîne source à partir de laquelle lancer la recherche, et numeric expression2 est un nombre ou une expression numérique valide qui indique l'occurrence de la chaîne source à remplacer.
Par exemple, utilisez l'interrogation ci-dessous pour démarrer la correspondance de modèle avec la première occurrence du modèle/char a , et remplacez la deuxième occurrence de a par la chaîne apm . show TRACES regexp_replace(traceId, 'a', 'apm', 1, 2) as traceIdReplaced, traceId where REGEXP_LIKE(traceId, 'aa')
regexp_substr : Recherche un modèle d'expression rationnelle dans une expression ou un attribut de chaîne donné et retourne la sous-chaîne à partir de cette expression ou de cet attribut de chaîne.
Syntaxe : regexp_substr (expression, pattern)
expression est une expression de type chaîne. Une expression de chaîne valide (caractère source) est un attribut valide actif (par exemple traceId ou serviceName ) ou une expression de chaîne créée à l'aide d'attributs et d'opérateurs (par exemple serviceName || operationName ).
pattern est un modèle d'expression rationnelle valide qui sera utilisé pour le modèle à valider et à rechercher.
Exemple 1 :
show TRACES REGEXP_SUBSTR(serviceName, 'cli') as RegexSubstr, traceId
L'exemple ci-dessus recherche les traces dont serviceName commence par le modèle/char : cli .
Exemple 2 :
show TRACES traceId, serviceName, REGEXP_SUBSTR(serviceName, 'RUM') as RegexSubstr where REGEXP_SUBSTR(serviceName, 'RUM') = 'RUM'
L'exemple ci-dessus recherche les traces dont serviceName contient 'RUM' et supprime RUM de serviceName et retourne cette valeur.
span_summary : Retourne un sommaire des intervalles d'une trace. Cette fonction ne peut être utilisée qu'avec show(traces) et dans des interrogations non groupées.
Exemple :
span_summary() as Spans
stddev : Retourne l'écart-type de l'expression indiquée.
Exemple :
stddev(traceDuration+1)
substr : Retourne une sous-chaîne à partir de la chaîne indiquée.
Syntaxe : substr (expression, numeric expression1, numeric expression2)
expression est une expression de type chaîne. Une expression de chaîne valide (caractère source) est un attribut valide actif (par exemple traceId ou serviceName ) ou une expression de chaîne créée à l'aide d'attributs et d'opérateurs (par exemple serviceName || operationName ).
numeric expression1 (start position) est une expression numérique qui donne un nombre ou un nombre qui indique la position de début de la sous-chaîne.
Si start position a la valeur 0, il est traité comme 1.
Si start position est positif, la fonction compte à partir du début de la chaîne char pour trouver le premier caractère. Si elle est négative, la fonction compte en arrière à partir de la fin du caractère.
numeric expression2 (length) est une expression numérique qui donne un nombre ou un nombre qui indique la longueur de la sous-chaîne à partir de la position de début de la sous-chaîne.
La valeur length est toujours positive et ne retournera que le nombre de caractères existant dans la valeur.
Si length est inférieur à 1, une valeur nulle est retournée. Si length est supérieur à la longueur de l'expression de chaîne (chaîne source), la chaîne entière est retournée.
Exemple :
show TRACES SUBSTR(traceId, 0, 1) as traceShortId, traceId
L'exemple ci-dessus recherche traceShortId avec la longueur traceShortId 1, à partir de la position 1 de traceId .
sum : Retourne la valeur d'agrégation d'une dimension numérique.
Exemple :
sum(ErrorCount) as "Errors"
time_bucket : Selon l'attribut de temps de la table (StartTime ou TraceStartTime ) et une granularité temporelle prise en charge, la fonction retourne un numéro de seau dans lequel se trouve la rangée. Cette option est principalement utilisée pour exprimer des interrogations de séries chronologiques.
Exemple :
Dans une interrogation sur un intervalle : time_bucket(15, StartTime)
Dans une interrogation de trace : time_bucket(15, TraceStartTime)
Une valeur time_bucket() peut être reconvertie en une heure au format UNIX en millisecondes à l'aide de l'expression java suivante : bucketNumber * TimeUnit.MINUTES.toMillis(bucketInMinutes);
time_bucket_start : Retourne le début de la période en tant que valeur de temps en millisecondes depuis l'époque (unité : EPOCH_TIME_MS). Elle peut être appelée avec un seul argument, la taille du seau en minutes ou sans argument. Dans ce cas, le système déterminera la taille du seau en fonction de l'intervalle de temps de l'interrogation.
Exemple :
Dans une interrogation sur un intervalle : time_bucket(15)
Dans une interrogation de trace : time_bucket()
total_items : Retourne le nombre total de traces ou d'intervalles pris en compte par l'interrogation.
Exemple 1 :
show traces count(*), total_items()
Exemple 2 :
show traces count(*), total_items() group by service name
NOTE : Dans l'exemple 1, count(*) et total_items() sont identiques, car l'interrogation n'est pas regroupée. Dans l'exemple 2, count(*) fait référence au nombre d'éléments du groupe pour la rangée, alors que total_items() a la même valeur que dans l'exemple 1.
total_rows : Retourne le nombre total de rangées qui apparaîtraient dans le jeu de résultats si FIRST x ROWS pouvait être réglé à illimité.
Cela peut être utile lors de la recherche de la cardinalité d'une certaine combinaison de dimensions.
Exemple :
show spans total_rows() where component = 'SERVLET' group by serviceName, operationName first 1 rows
unique_values : Retourne les valeurs uniques d'une dimension et le nombre de fois où chacune des valeurs se produit. Si une dimension comporte cinq valeurs uniques ou moins, elles sont affichées dans un graphique circulaire. Si une dimension comporte plus de cinq valeurs uniques, un lien s'affiche dans la colonne, sur lequel vous pouvez cliquer pour afficher la liste des valeurs uniques.
Exemple :
unique_values(ApmrumPageUpdateType) as "Page Load/Update"
|