Cláusula Expressões Retornadas |
Especifica quais dimensões de rastreamento ou de intervalo ou funções agregadas devem ser exibidas como colunas na lista. O identificador as opcionalmente fornece um alias para cada cabeçalho de coluna. Observe que o alias deve ser exclusivo.
Exemplo:
ServiceName as Service
Observe que, se houver um espaço após o identificador as , o valor do nome da coluna deverá estar entre aspas " " .
Veja a seguir as funções suportadas que podem ser usadas com esta cláusula:
abs : Retorna o valor absoluto de uma expressão numérica.
Exemplo:
abs(errorcount)
avg : Retorna o valor médio de uma dimensão numérica.
Exemplo:
avg(SpanDuration) as "Duration"
cast : Permite especificar uma unidade para uma expressão, tomando a expressão e a unidade desejada como argumentos. Isso pode fazer com que a interface do usuário renderize o valor retornado de maneira diferente.
Sintaxe: cast(expression, unit)
expression são os dados de entrada a serem representados. Deve ser expressões numéricas ou de tempo.
unit é a unidade que determina como a entrada é exibida/transformada na saída. Os valores disponíveis são:
EPOCH_TIME_MS: Tempo em milissegundos.
DURATION_MS : Duração em milissegundos.
BYTES : Tamanho em bytes.
Exemplo 1:
cast(myTimeAttribute, 'EPOCH_TIME_MS')
Exemplo 2:
cast(myDuration, 'DURATION_MS')
Exemplo 3:
cast(myStorageSize, 'BYTES')
ceil : Retorna o próximo valor longo mais alto se a expressão tiver uma parte fracionária diferente de zero; caso contrário, retorna o valor como longo.
Exemplo:
ceil(traceDuration)
conditional_count : Retorna a contagem total (número) de uma expressão condicional.
Sintaxe: conditional_count(conditional expression)
Exemplos:
conditional_count(dimensionA = 'abc')
count : Retorna a contagem total de uma dimensão.
Exemplos:
count(OperationName)as "Operation Count"
count(*) as "Trace Count"
count_distinct : Retorna o número de valores distintos para uma dimensão.
Exemplo:
count_distinct(sessionId) as "Sessions"
date_bucket : Retorna uma expressão de tempo transformada.
Sintaxe: date_bucket(numeric expression, string)
numeric expression é a entrada de tempo que deve ser um número que tenha uma unidade EPOCH_TIME_MS.
string é a string que determina como a entrada de tempo é transformada na saída. As opções válidas disponíveis são:
'day_of_week' : Os valores de retorno válidos são 1-7 indicando o dia UTC da semana (Domingo é 1).
'day_of_month' : Os valores de retorno válidos são de 1 a 31, indicando o dia UTC do mês.
'day_of_year' : Os valores de retorno válidos são de 1 a 366 com base no UTC.
'month_of_year' : Os valores de retorno válidos são de 1 a 12 com base no UTC.
'hour_of_day' : Os valores de retorno válidos são 0-23 com base no UTC.
'minute_of_hour' : Os valores de retorno válidos são 0-59.
'calendar_quarter_of_year' : Os valores de retorno válidos são de 1 a 4 com base no UTC.
'truncate_day' : O valor válido do horário de retorno é o dia atual no meio do UTC.
'truncate_hour' : O valor de retorno válido é o início da hora UTC.
'truncate minute' : O valor de retorno válido é o início do minuto UTC.
floor : Trunca a parte fracionária do valor das expressões e retorna um valor longo.
Exemplo:
floor(traceDuration)
histogram : Produz um histograma dos dados em atributos numéricos. Ele distribui os dados em buckets de larguras iguais (histogram(numeric_attr, min_value, max_value, num_buckets) ).
Exemplo:
histogram(spanDuration, 0, 6000, 3)
max : Retorna o valor máximo de uma dimensão.
Exemplo:
max(SpanDuration) as "Maximum Duration"
min : Retorna o valor mínimo de uma dimensão.
Exemplo:
min(SpanDuration) as "Minimum Duration"
mod : Retorna o restante de expression2 dividido por expression1. Se expression1 for 0, ele retornará o valor de expression2.
Sintaxe: mod(expression1, expression2)
Essa função utiliza como argumentos qualquer tipo de dados numérico ou qualquer tipo de dados não numérico que possa ser implicitamente convertido em um tipo de dados numérico. O argumento com a precedência numérica mais alta é determinado, e os argumentos restantes são implicitamente convertidos nesse tipo de dados, e esse tipo de dados é retornado.
Exemplo:
mod (errorcount, spancount)
omittedTo : Fornece a opção de designar um valor a uma dimensão que não tem um valor.
Exemplo:
omittedTo(UserName, 'John Doe')
No exemplo acima, se a dimensão UserName tiver um valor designado, o valor designado será exibido nos resultados e se um valor não for designado, John Doe será exibido.
percent_of_items : Retorna a porcentagem dos rastreamentos ou intervalos representados pela linha atual. O valor de percent_total_items() é igual a count(*)/total_items()*100 .
Exemplo:
show traces serviceName, count(*), total_items(), percent_of_items() group by serviceName
percent_with_root_error : Retorna a porcentagem de rastreamentos concluídos que têm um intervalo raiz marcado com um erro. Esse valor é igual a sum(traceRootSpanErrorCount)/count(traceRootSpanErrorCount)*100 .
Exemplo:
show traces serviceName, sum(traceRootSpanErrorCount), count(traceRootSpanErrorCount), percent_with_root_error() group by serviceName
percentile : Retorna o valor aproximado do percentil de um atributo numérico ((numeric_attr, 0-100) ).
Exemplo:
percentile(traceDuration, 90)
OBSERVAÇÃO: no momento, isso é implementado em termos da função approx_percentile() do oracle database e calcula um valor de percentil aproximado.
rate : Retorna o count() ao longo do tempo.
Exemplo:
show traces rate() between now()-1 hour and now() timeseries 5 minutes
No exemplo acima, o resultado da consulta principal é calculado em 60 minutos; portanto, o valor mostrado no resultado será count() /60. Quando a série temporal é calculada, cada ponto de dados calcula uma contagem por 5 minutos, portanto, o valor da taxa para cada ponto será count() /5. Isso dá uma taxa por minuto tanto no resultado geral quanto para cada ponto nas séries temporais.
regexp_count : Retorna o número total de vezes que um padrão ocorre na string de origem a partir da posição especificada. Ele retornará 0 se nenhuma correspondência for encontrada na string de origem a partir da posição de pesquisa ou retornará o número de ocorrências do padrão de pesquisa na string de origem a partir da posição inicial fornecida.
Sintaxe: regexp_count (expression, pattern, position, match_parameter)
expression é uma expressão de string. Uma expressão de string válida (caractere de origem) é um atributo válido que está ativo ou uma expressão de string que é criada usando atributos e operadores (como serviceName || operationName ).
pattern é um padrão de expressão regular válido que será usado para o padrão validar e pesquisar.
position é um inteiro positivo que indica a posição do caractere de origem em que a pesquisa deve começar. Depois de encontrar a primeira ocorrência, ele procura a segunda ocorrência após a primeira.
match_parameter é o parâmetro de correspondência que indica o comportamento de correspondência.
Os valores suportados são:
i : Especifica a correspondência sem distinção entre maiúsculas e minúsculas.
c : Especifica correspondência com distinção entre maiúsculas e minúsculas e acento.
n : Permite o ponto (.) na expressão regular. Se esse caractere for omitido, o ponto não corresponderá ao novo caractere de linha.
m : A string de origem é tratada como várias linhas. o cursor (^) é o início e $ é o fim de qualquer linha em qualquer lugar da string de origem, em vez de apenas no início do fim de toda a string de origem. Se esse parâmetro for omitido, a string de origem é tratada como uma única linha.
x : Ignora caracteres de espaço em branco. Por padrão, os caracteres de espaço em branco correspondem a si mesmos.
Exemplo:
show TRACES traceId where REGEXP_COUNT(traceId, 'a', 7, 'c') >= 2
No exemplo acima, a consulta procura rastreamentos que tenham 2 ou mais ocorrências do caractere:a no traceId com a pesquisa começando na posição 7 do traceId .
Observação
Você também pode fornecer apenas 2 argumentos:
regexp_count (expression, pattern)
Exemplo: show TRACES traceId where REGEXP_COUNT(traceId, 'a') >= 2
O exemplo acima procura rastreamentos que tenham 2 ou mais ocorrências do padrão/char: a dentro do traceId .
regexp_instr : Procura um padrão de expressão regular em uma determinada expressão e retorna a posição inicial do primeiro caractere do padrão na string.
Sintaxe: regexp_instr (expression, pattern)
expression é uma expressão de string. Uma expressão de string válida é um atributo válido que está ativo (como traceId e serviceName ) ou uma expressão de string que é criada usando atributos e operadores (como serviceName || operationName ).
pattern é um padrão de expressão regular válido que será usado para o padrão validar e pesquisar.
Exemplo:
show TRACES REGEXP_INSTR(serviceName, 'cli') as RegexInstr, traceId
No exemplo acima, a consulta procura rastreamentos que tenham valores serviceName que comecem com o padrão/char: cli .
regexp_like : Executa correspondência de expressão regular na expressão de string fornecida e retorna as expressões de string (atributos) que corresponderam.
Sintaxe: regexp_like (expression, pattern, match_parameter)
expression é uma expressão de string. Uma expressão de string válida é um atributo válido que está ativo (como traceId e serviceName ) ou uma expressão de string que é criada usando atributos e operadores (como serviceName || operationName ).
pattern é um padrão de expressão regular válido que será usado para o padrão validar e pesquisar.
match_parameter é o parâmetro de correspondência que indica o comportamento de correspondência. É opcional.
Os valores suportados são:
i : Especifica a correspondência sem distinção entre maiúsculas e minúsculas.
c : Especifica correspondência com distinção entre maiúsculas e minúsculas e acento.
n : Permite o ponto (.) na expressão regular. Se esse caractere for omitido, o ponto não corresponderá ao novo caractere de linha.
m : A string de origem é tratada como várias linhas. o cursor (^) é o início e $ é o fim de qualquer linha em qualquer lugar da string de origem, em vez de apenas no início do fim de toda a string de origem. Se esse parâmetro for omitido, a string de origem é tratada como uma única linha.
x : Ignora caracteres de espaço em branco. Por padrão, os caracteres de espaço em branco correspondem a si mesmos.
Exemplos:
show TRACES traceId where REGEXP_LIKE(traceId, 'aa') No exemplo acima, a consulta procura rastreamentos que tenham valores traceId que correspondam ao padrão/char: aa.
show TRACES traceId where REGEXP_LIKE(traceId, '^aa', 'c') No exemplo acima, a consulta procura rastreamentos que tenham valores traceId que correspondam ao padrão/char: aa em letras minúsculas (com distinção entre maiúsculas e minúsculas).
regexp_replace : Procura um padrão de origem em uma determinada string e retorna uma string com qualquer ocorrência do padrão de origem substituída pelo padrão fornecido.
Sintaxe: regexp_replace (expression, pattern, replace_string, numeric expression)
expression é uma expressão de string. Uma expressão de string válida (caractere de origem) é um atributo válido que está ativo (como traceId ou serviceName ) ou uma expressão de string que é criada usando atributos e operadores (como serviceName || operationName ).
pattern é um padrão de expressão regular válido que será usado para o padrão validar e pesquisar.
replace_string é a string que substitui as ocorrências da string de origem.
numeric expression é um número ou uma expressão numérica válida que indica a ocorrência da string de origem a ser substituída. É opcional.
Exemplos:
-
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')
Observação
Você também pode fornecer 5 argumentos.
regexp_replace (expression, pattern, replace_string, numeric expression1, numeric expression2)
Nesse caso, numeric expression1 é um número ou uma expressão numérica válida que indica a ocorrência da string de origem a partir da qual iniciar a pesquisa e numeric expression2 é um número ou uma expressão numérica válida que indica a ocorrência da string de origem a ser substituída.
Por exemplo, use a consulta abaixo para iniciar a correspondência de padrão com a primeira ocorrência do padrão/char a e substitua a segunda ocorrência de a pela string apm . show TRACES regexp_replace(traceId, 'a', 'apm', 1, 2) as traceIdReplaced, traceId where REGEXP_LIKE(traceId, 'aa')
regexp_substr : Procura um padrão de expressão regular em uma determinada expressão ou atributo de string e retorna a substring dessa expressão ou atributo de string.
Sintaxe: regexp_substr (expression, pattern)
expression é uma expressão de string. Uma expressão de string válida (caractere de origem) é um atributo válido que está ativo (como traceId ou serviceName ) ou uma expressão de string que é criada usando atributos e operadores (como serviceName || operationName ).
pattern é um padrão de expressão regular válido que será usado para o padrão validar e pesquisar.
Exemplo 1:
show TRACES REGEXP_SUBSTR(serviceName, 'cli') as RegexSubstr, traceId
O exemplo acima procura rastreamentos que tenham serviceName que comecem com o padrão/char: cli .
Exemplo 2:
show TRACES traceId, serviceName, REGEXP_SUBSTR(serviceName, 'RUM') as RegexSubstr where REGEXP_SUBSTR(serviceName, 'RUM') = 'RUM'
O exemplo acima procura rastreamentos que tenham serviceName contendo 'RUM' e retira a RUM do serviceName e retorna isso.
span_summary : Retorna um resumo dos intervalos em um rastreamento. Essa função só pode ser usada com show(traces) e em consultas não agrupadas.
Exemplo:
span_summary() as Spans
stddev : Retorna o desvio padrão da expressão fornecida.
Exemplo:
stddev(traceDuration+1)
substr : Retorna uma substring da string fornecida.
Sintaxe: substr (expression, numeric expression1, numeric expression2)
expression é uma expressão de string. Uma expressão de string válida (caractere de origem) é um atributo válido que está ativo (como traceId ou serviceName ) ou uma expressão de string que é criada usando atributos e operadores (como serviceName || operationName ).
numeric expression1 (start position) é uma expressão numérica avaliada como um número ou um número que indica a posição inicial da substring.
Se start position for 0, ele será tratado como 1.
Se start position for positivo, a função contará desde o início do caractere para localizar o primeiro caractere. Se for negativo, a função contará para trás a partir do final do caractere.
numeric expression2 (length) é uma expressão numérica avaliada como um número ou um número que indica o tamanho da substring que começa na posição inicial da substring.
O length é sempre positivo e retornará apenas quantos caracteres existirem no valor.
Se length for menor que 1, será retornado um valor nulo. Se length for maior que o tamanho da expressão de string (string de origem), toda a string será retornada.
Exemplo:
show TRACES SUBSTR(traceId, 0, 1) as traceShortId, traceId
O exemplo acima pesquisa o traceShortId com o traceShortId comprimento 1, começando na posição 1 do traceId .
sum : Retorna o valor agregado de uma dimensão numérica.
Exemplo:
sum(ErrorCount) as "Errors"
time_bucket : Dado o atributo de tempo da tabela (StartTime ou TraceStartTime ) e uma granularidade de tempo suportada, a função retorna um número de bucket no qual a linha cai. Isso é principalmente para uso na expressão de consultas de séries temporais.
Exemplo:
Em uma consulta de intervalo: time_bucket(15, StartTime)
Em uma consulta de rastreamento: time_bucket(15, TraceStartTime)
Um valor time_bucket() pode ser convertido de volta para um tempo de época unix em milissegundos usando a seguinte expressão java: bucketNumber * TimeUnit.MINUTES.toMillis(bucketInMinutes);
time_bucket_start : Retorna o início do bucket de tempo como um valor de tempo em milissegundos desde a época (unidade: EPOCH_TIME_MS). Ela pode ser chamada com um único argumento, com o tamanho do bucket em minutos ou sem argumentos, caso em que o sistema determinará o tamanho do bucket com base no intervalo de tempo da consulta.
Exemplo:
Em uma consulta de intervalo: time_bucket(15)
Em uma consulta de rastreamento: time_bucket()
total_items : Retorna o número total de rastreamentos ou intervalos considerados pela consulta.
Exemplo 1
show traces count(*), total_items()
Exemplo 2:
show traces count(*), total_items() group by service name
OBSERVAÇÃO: No exemplo 1 count(*) e total_items() são iguais porque a consulta não está agrupada. No exemplo 2, count(*) refere-se ao número de itens no grupo da linha, enquanto total_items() tem o mesmo valor que no exemplo 1.
total_rows : Retorna o número total de linhas que apareceriam no conjunto de resultados se FIRST x ROWS pudesse ser definido como ilimitado.
Isso pode ser útil ao procurar a cardinalidade de uma determinada combinação de dimensões.
Exemplo:
show spans total_rows() where component = 'SERVLET' group by serviceName, operationName first 1 rows
unique_values : Retorna os valores exclusivos de uma dimensão e o número de vezes que cada um dos valores ocorre. Se uma dimensão tiver cinco valores exclusivos ou menos, eles serão exibidos em um gráfico de pizza. Se uma dimensão tiver mais de cinco valores exclusivos, será exibido um link na coluna, no qual você poderá clicar para exibir a lista de valores exclusivos.
Exemplo:
unique_values(ApmrumPageUpdateType) as "Page Load/Update"
|