Cláusula de expresiones devueltas |
Especifica qué dimensiones de rastreo o período o funciones de agregado se deben mostrar como columnas en la lista. El identificador as proporciona opcionalmente un alias para cada cabecera de columna. Tenga en cuenta que el alias debe ser único.
Por ejemplo:
ServiceName as Service
Tenga en cuenta que si hay un espacio después del identificador as , el valor del nombre de columna debe estar entre comillas " " .
A continuación se incluyen las funciones soportadas que se pueden utilizar con esta cláusula:
abs : devuelve el valor absoluto de una expresión numérica.
Por ejemplo:
abs(errorcount)
avg : devuelve el valor medio de una dimensión numérica.
Por ejemplo:
avg(SpanDuration) as "Duration"
cast : permite especificar una unidad para una expresión, tomando la expresión y la unidad deseada como argumentos. Esto puede hacer que la interfaz de usuario represente el valor devuelto de forma diferente.
Sintaxis: cast(expression, unit)
expression son los datos de entrada que se van a representar. Debe ser una expresión numérica o de tiempo.
unit es la unidad que determina cómo se muestra/transforma la entrada en la salida. Los valores disponibles son:
EPOCH_TIME_MS: Tiempo en milisegundos.
DURATION_MS : duración en milisegundos.
BYTES : tamaño en bytes.
Ejemplo 1:
cast(myTimeAttribute, 'EPOCH_TIME_MS')
Ejemplo 2:
cast(myDuration, 'DURATION_MS')
Ejemplo 3:
cast(myStorageSize, 'BYTES')
ceil : devuelve el siguiente valor largo más alto si la expresión tiene una parte fraccionaria distinta de cero; de lo contrario, devuelve el valor como largo.
Por ejemplo:
ceil(traceDuration)
conditional_count : devuelve el recuento total (número) de una expresión condicional.
Sintaxis: conditional_count(conditional expression)
Ejemplos:
conditional_count(dimensionA = 'abc')
count : devuelve el recuento total de una dimensión.
Ejemplos:
count(OperationName)as "Operation Count"
count(*) as "Trace Count"
count_distinct : devuelve el número de valores distintos para una dimensión.
Por ejemplo:
count_distinct(sessionId) as "Sessions"
date_bucket : devuelve una expresión de tiempo transformada.
Sintaxis: date_bucket(numeric expression, string)
numeric expression es la entrada de tiempo que debe ser un valor numérico que tenga una unidad EPOCH_TIME_MS.
string es la cadena que determina cómo se transforma la entrada de tiempo en la salida. Las opciones válidas disponibles son:
'day_of_week' : los valores de retorno válidos son 1-7, lo que indica el día UTC de la semana (el domingo es 1).
'day_of_month' : los valores de retorno válidos son del 1 al 31, lo que indica el día UTC del mes.
'day_of_year' : los valores de retorno válidos son 1-366 según UTC.
'month_of_year' : los valores de retorno válidos son del 1 al 12 según UTC.
'hour_of_day' : los valores de retorno válidos son 0-23 según UTC.
'minute_of_hour' : los valores de retorno válidos son 0-59.
'calendar_quarter_of_year' : los valores de retorno válidos son 1-4 según UTC.
'truncate_day' : el valor de hora de devolución válido es el día actual a mediados de la noche de UTC.
'truncate_hour' : el valor de retorno válido es el inicio de la hora UTC.
'truncate minute' : el valor de retorno válido es el inicio del minuto UTC.
floor : trunca la parte fraccional del valor de las expresiones y devuelve un valor largo.
Por ejemplo:
floor(traceDuration)
histogram : genera un histograma de los datos en atributos numéricos. Distribuye los datos en cubos de igual ancho (histogram(numeric_attr, min_value, max_value, num_buckets) ).
Por ejemplo:
histogram(spanDuration, 0, 6000, 3)
max : devuelve el valor máximo de una dimensión.
Por ejemplo:
max(SpanDuration) as "Maximum Duration"
min : devuelve el valor mínimo de una dimensión.
Por ejemplo:
min(SpanDuration) as "Minimum Duration"
mod : devuelve el resto de expression2 dividido por expression1. Si expression1 es 0, devuelve el valor expression2.
Sintaxis: mod(expression1, expression2)
Esta función toma como argumentos cualquier tipo de dato numérico o cualquier tipo de dato no numérico que se pueda convertir implícitamente en un tipo de dato numérico. Se determina el argumento con la prioridad numérica más alta y los argumentos restantes se convierten implícitamente a ese tipo de dato y se devuelve ese tipo de dato.
Por ejemplo:
mod (errorcount, spancount)
omittedTo : proporciona la opción para asignar un valor a una dimensión que no tiene un valor.
Por ejemplo:
omittedTo(UserName, 'John Doe')
En el ejemplo anterior, si la dimensión UserName tiene un valor asignado, el valor asignado se muestra en los resultados y, si no hay un valor asignado, se muestra John Doe.
percent_of_items : devuelve el porcentaje de rastreos o intervalos representados por la fila actual. El valor de percent_total_items() es igual a count(*)/total_items()*100 .
Por ejemplo:
show traces serviceName, count(*), total_items(), percent_of_items() group by serviceName
percent_with_root_error : devuelve el porcentaje de rastreos completados que tienen un período raíz marcado con un error. Este valor es igual a sum(traceRootSpanErrorCount)/count(traceRootSpanErrorCount)*100 .
Por ejemplo:
show traces serviceName, sum(traceRootSpanErrorCount), count(traceRootSpanErrorCount), percent_with_root_error() group by serviceName
percentile : devuelve el valor de percentil aproximado para un atributo numérico ((numeric_attr, 0-100) ).
Por ejemplo:
percentile(traceDuration, 90)
NOTA: se implementa actualmente en términos de la función approx_percentile() de la base de datos oracle y calcula un valor de percentil aproximado.
rate : devuelve count() a lo largo del tiempo.
Por ejemplo:
show traces rate() between now()-1 hour and now() timeseries 5 minutes
En el ejemplo anterior, el resultado de la consulta principal se calcula en más de 60 minutos, por lo que el valor que se muestra en el resultado será count() /60. Cuando se calcula la serie de tiempo, cada punto de datos calcula un recuento durante 5 minutos, por lo que el valor de ratio para cada punto será count() /5. Esto da una tasa por minuto tanto en el resultado general, como para cada punto de la serie temporal.
regexp_count : devuelve el número total de veces que se produce un patrón en la cadena de origen a partir de la posición especificada. Devuelve 0 si no se encuentra ninguna coincidencia en la cadena de origen a partir de la posición de búsqueda o devuelve el número de incidencias del patrón de búsqueda en la cadena de origen desde la posición de inicio indicada.
Sintaxis: regexp_count (expression, pattern, position, match_parameter)
expression es una expresión de cadena. Una expresión de cadena válida (caracter de origen) es un atributo válido que está activo o una expresión de cadena que se crea mediante atributos y operadores (como serviceName || operationName ).
pattern es un patrón de expresión regular válido que se utilizará para que el patrón lo valide y busque.
position es un entero positivo que indica la posición del carácter de origen donde debe comenzar la búsqueda. Después de encontrar la primera ocurrencia, busca la segunda ocurrencia después de la primera.
match_parameter es el parámetro de coincidencia que indica el comportamiento de coincidencia.
Los valores soportados son:
i : especifica la coincidencia no sensible a mayúsculas/minúsculas.
c : especifica la coincidencia sensible a mayúsculas/minúsculas y a acentos.
n : permite el punto (.) en la expresión regular. Si se omite este carácter, el punto no coincide con el nuevo carácter de línea.
m : la cadena de origen se trata como varias líneas. El conjunto de caracteres (^) es el inicio y $ es el final de cualquier línea en cualquier parte de la cadena de origen, en lugar de solo al principio del final de toda la cadena de origen. Si se omite este parámetro, la cadena de origen se trata como una sola línea.
x : Ignora caracteres de espacio en blanco. Por defecto, los caracteres de espacio en blanco coinciden con ellos mismos.
Por ejemplo:
show TRACES traceId where REGEXP_COUNT(traceId, 'a', 7, 'c') >= 2
En el ejemplo anterior, la consulta busca rastreos que tengan 2 o más incidencias de char:a en traceId con la búsqueda empezando por la posición 7 de traceId .
Nota
También puede proporcionar solo 2 argumentos:
regexp_count (expression, pattern)
Ejemplo: show TRACES traceId where REGEXP_COUNT(traceId, 'a') >= 2
El ejemplo anterior busca rastreos que tengan 2 o más incidencias del patrón/char: a en traceId .
regexp_instr : busca un patrón de expresión regular en una expresión determinada y devuelve la posición inicial del primer carácter del patrón en la cadena.
Sintaxis: regexp_instr (expression, pattern)
expression es una expresión de cadena. Una expresión de cadena válida es un atributo válido que está activo (como traceId y serviceName ) o una expresión de cadena que se crea mediante atributos y operadores (como serviceName || operationName ).
pattern es un patrón de expresión regular válido que se utilizará para que el patrón lo valide y busque.
Por ejemplo:
show TRACES REGEXP_INSTR(serviceName, 'cli') as RegexInstr, traceId
En el ejemplo anterior, la consulta busca rastreos que tengan valores serviceName que comiencen con el patrón/char: cli .
regexp_like : realiza una coincidencia de expresión regular en la expresión de cadena especificada y devuelve las expresiones de cadena (atributos) que han coincidido.
Sintaxis: regexp_like (expression, pattern, match_parameter)
expression es una expresión de cadena. Una expresión de cadena válida es un atributo válido que está activo (como traceId y serviceName ) o una expresión de cadena que se crea mediante atributos y operadores (como serviceName || operationName ).
pattern es un patrón de expresión regular válido que se utilizará para que el patrón lo valide y busque.
match_parameter es el parámetro de coincidencia que indica el comportamiento de coincidencia. Es opcional.
Los valores soportados son:
i : especifica la coincidencia no sensible a mayúsculas/minúsculas.
c : especifica la coincidencia sensible a mayúsculas/minúsculas y a acentos.
n : permite el punto (.) en la expresión regular. Si se omite este carácter, el punto no coincide con el nuevo carácter de línea.
m : la cadena de origen se trata como varias líneas. El signo de intercalación (^) es el inicio y $ es el final de cualquier línea en cualquier parte de la cadena de origen, en lugar de solo al principio del final de toda la cadena de origen. Si se omite este parámetro, la cadena de origen se trata como una sola línea.
x : Ignora caracteres de espacio en blanco. Por defecto, los caracteres de espacio en blanco coinciden con ellos mismos.
Ejemplos:
show TRACES traceId where REGEXP_LIKE(traceId, 'aa') En el ejemplo anterior, la consulta busca rastreos que tengan valores traceId que coincidan con el patrón/char: aa.
show TRACES traceId where REGEXP_LIKE(traceId, '^aa', 'c') En el ejemplo anterior, la consulta busca rastreos que tengan valores traceId que coincidan con el patrón/char: aa en minúsculas (distingue entre mayúsculas y minúsculas).
regexp_replace : busca un patrón de origen en una cadena determinada y devuelve una cadena con cualquier incidencia del patrón de origen sustituido por el patrón especificado.
Sintaxis: regexp_replace (expression, pattern, replace_string, numeric expression)
expression es una expresión de cadena. Una expresión de cadena válida (caracter de origen) es un atributo válido que está activo (como traceId o serviceName ) o una expresión de cadena que se crea mediante atributos y operadores (como serviceName || operationName ).
pattern es un patrón de expresión regular válido que se utilizará para que el patrón lo valide y busque.
replace_string es la cadena que sustituye las incidencias de la cadena de origen.
numeric expression es un número o una expresión numérica válida que indica la incidencia de la cadena de origen que se va a sustituir. Es opcional.
Ejemplos:
-
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')
Nota
También puede proporcionar 5 argumentos.
regexp_replace (expression, pattern, replace_string, numeric expression1, numeric expression2)
En este caso, numeric expression1 es un número o una expresión numérica válida que indica la incidencia de la cadena de origen desde la que iniciar la búsqueda y numeric expression2 es un número o una expresión numérica válida que indica la incidencia de la cadena de origen que se va a sustituir.
Por ejemplo, utilice la siguiente consulta para iniciar la coincidencia de patrón con la primera incidencia del patrón/carácter a y sustituya la segunda incidencia de a por la cadena apm . show TRACES regexp_replace(traceId, 'a', 'apm', 1, 2) as traceIdReplaced, traceId where REGEXP_LIKE(traceId, 'aa')
regexp_substr : busca un patrón de expresión regular en una expresión o atributo de cadena determinado y devuelve la subcadena de esa expresión o atributo de cadena.
Sintaxis: regexp_substr (expression, pattern)
expression es una expresión de cadena. Una expresión de cadena válida (caracter de origen) es un atributo válido que está activo (como traceId o serviceName ) o una expresión de cadena que se crea mediante atributos y operadores (como serviceName || operationName ).
pattern es un patrón de expresión regular válido que se utilizará para que el patrón lo valide y busque.
Ejemplo 1:
show TRACES REGEXP_SUBSTR(serviceName, 'cli') as RegexSubstr, traceId
El ejemplo anterior busca rastreos que tengan serviceName que empiecen por el patrón/char: cli .
Ejemplo 2:
show TRACES traceId, serviceName, REGEXP_SUBSTR(serviceName, 'RUM') as RegexSubstr where REGEXP_SUBSTR(serviceName, 'RUM') = 'RUM'
En el ejemplo anterior se buscan rastreos que tienen serviceName que contienen 'RUM' y eliminan RUM de serviceName y los devuelven.
span_summary : devuelve un resumen de los períodos de un rastreo. Esta función solo se puede utilizar con show(traces) y en consultas no agrupadas.
Por ejemplo:
span_summary() as Spans
stddev : devuelve la desviación estándar de la expresión especificada.
Por ejemplo:
stddev(traceDuration+1)
substr : devuelve una subcadena de la cadena especificada.
Sintaxis: substr (expression, numeric expression1, numeric expression2)
expression es una expresión de cadena. Una expresión de cadena válida (caracter de origen) es un atributo válido que está activo (como traceId o serviceName ) o una expresión de cadena que se crea mediante atributos y operadores (como serviceName || operationName ).
numeric expression1 (start position) es una expresión numérica que se evalúa como un número o un número que indica la posición inicial de la subcadena.
Si start position es 0, se trata como 1.
Si start position es positivo, la función cuenta desde el principio del carácter para encontrar el primer carácter. Si es negativo, la función cuenta hacia atrás desde el final del carácter.
numeric expression2 (length) es una expresión numérica que se evalúa como un número o un número que indica la longitud de la subcadena a partir de la posición inicial de la subcadena.
length siempre es positivo y solo devolverá tantos caracteres como existan en el valor.
Si length es menor que 1, se devuelve nulo. Si length es mayor que la longitud de la expresión de cadena (cadena de origen), se devuelve la cadena completa.
Por ejemplo:
show TRACES SUBSTR(traceId, 0, 1) as traceShortId, traceId
El ejemplo anterior busca traceShortId con la longitud traceShortId 1, comenzando en la posición 1 de traceId .
sum : devuelve el valor agregado de una dimensión numérica.
Por ejemplo:
sum(ErrorCount) as "Errors"
time_bucket : dado el atributo de tiempo para la tabla (StartTime o TraceStartTime ) y un detalle de tiempo soportado, la función devuelve un número de cubo en el que se encuentra la fila. Se utiliza principalmente para expresar consultas de series temporales.
Por ejemplo:
En una consulta span: time_bucket(15, StartTime)
En una consulta de rastreo: time_bucket(15, TraceStartTime)
Un valor time_bucket() se puede volver a convertir en un tiempo epoch unix en milisegundos mediante la siguiente expresión java: bucketNumber * TimeUnit.MINUTES.toMillis(bucketInMinutes);
time_bucket_start : devuelve el inicio del bloque de tiempo como un valor de tiempo en milisegundos desde la época (unidad: EPOCH_TIME_MS). Se puede llamar con un único argumento, el tamaño del cubo en minutos o sin argumentos, en cuyo caso el sistema determinará el tamaño del cubo en función del intervalo de tiempo de la consulta.
Por ejemplo:
En una consulta span: time_bucket(15)
En una consulta de rastreo: time_bucket()
total_items : devuelve el número total de rastreos o períodos considerados por la consulta.
Ejemplo1:
show traces count(*), total_items()
Ejemplo2:
show traces count(*), total_items() group by service name
NOTA: En el ejemplo 1, count(*) y total_items() son iguales porque la consulta no está agrupada. En el ejemplo 2, count(*) hace referencia al número de elementos del grupo de la fila, mientras que total_items() tiene el mismo valor que en el ejemplo 1.
total_rows : devuelve el número total de filas que aparecerían en el juego de resultados si FIRST x ROWS se pudiera definir como ilimitado.
Esto puede ser útil cuando se busca la cardinalidad de una determinada combinación de dimensiones.
Por ejemplo:
show spans total_rows() where component = 'SERVLET' group by serviceName, operationName first 1 rows
unique_values : devuelve los valores únicos de una dimensión y el número de veces que se produce cada uno de los valores. Si una dimensión tiene cinco o menos valores únicos, estos se muestran en un gráfico circular. Si una dimensión tiene más de cinco valores únicos, se muestra un enlace en la columna, en el que puede hacer clic para ver la lista de valores únicos.
Por ejemplo:
unique_values(ApmrumPageUpdateType) as "Page Load/Update"
|