Utiliser des interrogations dans l'explorateur de trace

Vous pouvez utiliser les interrogations prêtes à l'emploi affichées dans l'explorateur de trace ou les modifier pour filtrer les données de trace par dimension.

À propos des interrogations dans l'explorateur de trace

Dans l'explorateur de trace, une interrogation suit une syntaxe SQL simplifiée et se compose des éléments suivants :

  • Clauses : Énoncés qui filtrent, catégorisent et affichent les informations dans l'explorateur de trace.
  • Dimensions : Métadonnées ou attributs définis en marquant un intervalle, qui permettent de surveiller efficacement les différents niveaux d'une application. Une liste complète des dimensions est disponible dans la zone Champs dans l'explorateur de trace.

Les interrogations dans l'explorateur de trace sont une combinaison de clauses et de dimensions, que vous pouvez utiliser pour filtrer les données de trace. Vous pouvez utiliser les interrogations prêtes à l'emploi disponibles dans chaque prélèvement rapide, telles que Traces et Services, ou modifier ces interrogations pour personnaliser les résultats selon vos besoins.

Lors de la modification d'interrogations, ajoutez ou mettez à jour des clauses dans l'ordre indiqué dans la syntaxe suivante. La clause requise est indiquée en italiques; les autres clauses sont facultatives.

SHOW (TRACES) or (SPANS)
dimensioncolumnsToShow_oneOrMore 
WHERE filtersdimensions_oneOrMore
GROUP BY dimensioncolumnsToShow_oneOrMore
HAVING expressionOverdimensionColumns_one
ORDER BY dimensioncolumnsToShow_oneOrMore
FIRST <n> ROWS
TIMESERIES (FOR dimensions_oneOrMore) (<n> minutes) 
BETWEEN time expression AND time expression

Dans la syntaxe, notez que des ' ' (apostrophes) sont utilisés pour les constantes de type chaîne et des " " (guillemets droits) pour les identificateurs entre guillemets. Si l'identificateur est un seul mot, les guillemets droits sont facultatifs. Notez que les valeurs de dimension ajoutées avec diverses clauses telles que where et group by sont sensibles à la casse.

Les opérations arithmétiques telles que l'ajout, la soustraction, la multiplication et la division peuvent être utilisées dans des expressions comme vous pouvez le voir ci-dessous :

show (traces) min(UserName) as "User Name",
    min(BrowserName) as "Browser Name",
    min(BrowserVersion) as "Browser Version",
    sum(PageResponseTime) as "Total Response Time",
    sum(PageViews) as "Page Views",
    sum(ErrorCount) as "Error Count",
    count(*) as "Traces",
    avg(ConnectTime) as "Connect Time",
    max(TraceLatestSpanEndTime) - min(TraceFirstSpanStartTime) as "Session Duration"  
where ApmrumPageUpdateType is not omitted OR ApmrumType='Connection'
group by SessionId
order by max(TraceLatestSpanEndTime) - min(TraceFirstSpanStartTime)

Aide sur les interrogations : Lorsque vous utilisez des interrogations, une liste des attributs et des fonctions disponibles s'affiche après avoir entré un espace et mis en pause automatiquement. La fonction d'aide à l'interrogation peut être appelée à l'aide de CTRL+Space manuellement si nécessaire.

Langage d'interrogation de l'explorateur de trace

Le tableau suivant présente des informations détaillées sur les clauses pouvant être utilisées dans une requête dans l'explorateur de trace :

Clause Description
show Indique la source des données de base pour l'interrogation, qui peuvent être des intervalles, des traces ou une demande de dimensions de trace ou d'intervalle.

Exemple 1 : show (traces)

Exemple 2 : show (spans)

Cette clause n'est pas requise. Si elle n'est pas indiquée, l'interrogation suppose que toutes les traces doivent être affichées.

Interrogations et sous-interrogations imbriquées : Vous pouvez utiliser des interrogations imbriquées avec la clause show.

Exemple 1 : show (show (show traces * ) count(*) as c ) c

Exemple 2 : show traces traceid where serviceName in (show spans serviceName where serviceName is not omitted and operationName= 'A' group by serviceName first 10 rows)

Restrictions relatives aux interrogations imbriquées :
  • Ne peut pas contenir de clause de sélection. Utilisez plutôt les interrogations imbriquées IN et NOT IN.
  • Une interrogation imbriquée ne peut pas contenir d'opérations à passes multiples (également appelées interrogations dépendantes). Seule la clause show la plus externe peut les contenir, auquel cas elles s'exécutent sur les résultats de l'interrogation imbriquée.
  • Il n'y a pas de limite de rangée par défaut pour une interrogation imbriquée. Par défaut, une interrogation imbriquée prend en compte toutes les lignes. Voir ci-dessus l'exemple 1.

    Si nécessaire, moins de rangées peuvent être demandées en ajoutant une clause first n rows explicite à l'interrogation imbriquée.

  • Ne peut pas faire référence à des valeurs dans une interrogation externe (aucune interrogation imbriquée corrélée).
Restriction de sous-interrogations :
  • Une sous-interrogation utilisée dans une expression, comme indiqué dans l'exemple 2 ci-dessus, doit avoir une clause first n rows ou l'interrogation retournera une erreur. Le nombre maximal de rangées pouvant être demandées dans une expression IN ou NOT IN est de 1 million.

Clause de sélection

Recherche un ensemble de traces ou de portées qui seront recherchées par le reste de la requête.

Syntaxe : FROM <virtualTable> WHERE <whereClause> FIRST n rows

Exemple :

show traces from spans where serviceName='a' first 100 rows *

Une limite est requise dans cette clause, car seul un nombre limité d'éléments peut être utilisé pour la recherche, et cette clause ne peut être utilisée que dans une interrogation de trace.

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"

where Filtre les résultats avant leur regroupement.

Exemple :

where ApmrumPageUpdateType is not omitted OR ApmrumType='Connection' OR ApmrumType='Script Error'

Voici les expressions prises en charge :

  • AND booléen de deux expressions.

    Exemple :

    ServiceName='service1' and OperationName='operation1'

  • OR booléen de deux expressions.

    Exemple :

    ServiceName='service1' or ServiceName='service2'

  • Regroupement () pour déterminer l'ordre des expressions dans une expression complexe.

    Exemple :

    (ServiceName ='a' or ServiceName='b') and (OperationName='a' or OperationName='b')

  • Comparaison d'une dimension effectuée au moyen d'une référence de dimension et d'une valeur constante. Les opérations prises en charge sont les suivantes :

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

    Exemple :

    ServiceName <> 'DoNotReturn'

  • Expression de valeur IN qui compare la dimension aux valeurs indiquées.

    Exemple :

    ServiceName in ('service1', 'service2')

  • Expression de valeur IN et NOT IN qui compare plusieurs dimensions aux valeurs listées.

    Exemple :

    (ServiceName, OperationName) in (('service1', 'operation1'))

  • Expression IS OMITTED pour tester si une valeur de dimension est incluse ou IS NOT OMITTED pour tester si une valeur de dimension est manquante.

    Exemple :

    OperationName is omitted

  • Expression LIKE pour rechercher les correspondances d'une valeur de dimension particulière ou NOT LIKE pour rechercher des valeurs de dimension sauf celle spécifiée.

    Exemple :

    OperationName like ‘Ajax /path/%’

group by Regroupe les résultats sur une certaine dimension et les affiche dans des rangées.

Exemple :

group by ServiceName

Si la clause group by fait partie d'une interrogation avec timeseries ou unique_values, les colonnes time series ou unique_values() ne sont pas affichées dans les rangées de résultats dans lesquelles la dimension group by n'a pas de valeur.

Exemple :

show (traces) UserName as "User Name", unique_values(OperationName), count(*) group by UserName timeseries

Dans l'exemple, les intervalles sont regroupés sur la dimension UserName et si un intervalle n'a aucune valeur affectée à la dimension UserName, cette rangée n'affiche pas les colonnes timeseries et unique_values.

having Filtre davantage les résultats regroupés selon la clause group by.

Syntaxe : group by dimension having expression

expression : L'expression dans la clause having peut faire référence aux expressions de la clause group by ou aux agrégations sur les groupes.

Voici les expressions prises en charge :

  • AND booléen de deux expressions.

    Exemple :

    ServiceName='service1' and OperationName='operation1'

  • OR booléen de deux expressions.

    Exemple :

    ServiceName='service1' or ServiceName='service2'

  • Regroupement () pour déterminer l'ordre des expressions dans une expression complexe.

    Exemple :

    (ServiceName ='a' or ServiceName='b') and (OperationName='a' or OperationName='b')

  • Comparaison d'une dimension effectuée au moyen d'une référence de dimension et d'une valeur constante. Les opérations prises en charge sont les suivantes :

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

    Exemple :

    ServiceName <> 'DoNotReturn'

  • Expression de valeur IN qui compare la dimension aux valeurs indiquées.

    Exemple :

    ServiceName in ('service1', 'service2')

  • Expression de valeur IN et NOT IN qui compare plusieurs dimensions aux valeurs indiquées.

    Exemple :

    (ServiceName, OperationName) in (('service1', 'operation1'))

  • Expression IS OMITTED pour tester si une valeur de dimension est incluse ou IS NOT OMITTED pour tester si une valeur de dimension est manquante.

    Exemple :

    OperationName is omitted

  • Expression LIKE pour rechercher les correspondances d'une valeur de dimension particulière ou expression NOT LIKE pour rechercher des valeurs de dimension à l'exception de celle spécifiée.

    Exemple :

    OperationName like ‘Ajax /path/%’

Exemples :
  • group by errorCount having ErrorCount = 0
  • show traces errorCount, count(*) group by errorCount having errorCount < 10 and count(*) = 10
order by Définit l'organisation de la liste en ordre croissant (asc) ou décroissant (desc) d'une dimension particulière.

Exemple :

order by avg(ApdexScore) asc

Il s'agit d'une clause facultative et, si elle n'est pas spécifiée, les résultats ne sont pas triés.

Clause de limite Limite la liste au nombre indiqué. Si elle est omise, la valeur par défaut est FIRST 100 ROWS.

Exemple :

FIRST 5 ROWS

timeseries Affiche un graphique à séries chronologiques pour les dimensions sélectionnées dans la clause select pour une période définie. Vous pouvez déterminer la dimension pour laquelle vous voulez voir le graphique de série chronologique dans la clause timeseries, et si aucune dimension n'est spécifiée, les graphiques de série chronologique sont affichés pour chaque dimension numérique dans la clause d'expressions retournées.

Si la période (<n> minutes) n'est pas ajoutée à la clause, elle est alors basés sur la période sélectionnée dans l'explorateur de trace.

Exemples :

timeseries for avg(TraceDuration) 60 minutes

timeseries

between Affiche les résultats pour les horodatages sélectionnés dans l'heure UTC. Si cette clause est utilisée, elle remplace la période sélectionnée dans l'explorateur de trace.

Exemple :

BETWEEN 2021-02-17T01:38:49.318Z AND 2021-02-18T01:38:49.318Z

BETWEEN peut également prendre time expression au lieu d'un horodatage.

Exemple :

BETWEEN queryStartTime() AND queryEndTime()

expression d'heure Affiche une heure ou une durée en millisecondes.