Funções booleanas, de comparação, numéricas e de data e hora, entre outras - CloudWatch Registros da Amazon

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Funções booleanas, de comparação, numéricas e de data e hora, entre outras

CloudWatch O Logs Insights é compatível com muitas outras operações e funções em consultas, conforme explicado nas próximas seções.

Operadores aritméticos

Os operadores aritméticos aceitam tipos de dados numéricos como argumentos e retornam resultados numéricos. Use operadores aritméticos nos comandos filter e fields e como argumentos de outras funções.

Operação Descrição

a + b

Adição

a - b

Subtração

a * b

Multiplicação

a / b

Divisão

a ^ b

Exponenciação (2 ^ 3 retorna 8)

a % b

Resto ou módulo (10 % 3 retorna 1)

Operadores booleanos

Use os operadores booleanos and, or e not.

nota

Use operadores booleanos somente em funções que retornam um valor de TRUE ou FALSE.

Operadores de comparação

Os operadores de comparação aceitam todos os tipos de dados como argumentos e retornam um resultado booliano. Use operadores de comparação no comando filter e como argumentos de outras funções.

Operador Descrição

=

Equal

!=

Not equal

<

Menor que

>

Maior que

<=

Menor ou igual a

>=

Maior ou igual a

Operadores numéricos

As operações numéricas aceitam tipos de dados numéricos como argumentos e retornam resultados numéricos. Use operadores numéricos nos comandos filter e fields e como argumentos de outras funções.

Operação Tipo de resultado Descrição

abs(a: number)

número

Valor absoluto

ceil(a: number)

número

Arredonde para o máximo (o menor inteiro maior que o valor de a)

floor(a: number)

número

Arredonde para o mínimo (o maior inteiro menor que o valor de a)

greatest(a: number, ...numbers: number[])

número

Retorna o maior valor

least(a: number, ...numbers: number[])

número

Retorna o menor valor

log(a: number)

número

Log natural

sqrt(a: number)

número

Raiz quadrada

Tipos de estrutura

Um mapa ou lista é um tipo de estrutura no CloudWatch Logs Insights que permite acessar e usar atributos para consultas.

Exemplo: Para obter um mapa ou uma lista

Use jsonParse para analisar um campo que é uma string json em um mapa ou uma lista.

fields jsonParse(@message) as json_message
Exemplo: Para acessar atributos

Use o operador de acesso a pontos (map.attribute) para acessar itens em um mapa. Se um atributo em um mapa contiver caracteres especiais, use acentos cravos para delimitar o nome do atributo (map.attributes). `special.char`).

fields jsonParse(@message) as json_message | stats count() by json_message.status_code

Use o operador de acesso a colchetes (lista [índice]) para recuperar um item em uma posição específica na lista.

fields jsonParse(@message) as json_message | filter json_message.users[1].action = "PutData"

Coloque caracteres especiais em acentos cravos (``) quando caracteres especiais estiverem presentes no nome da chave.

fields jsonParse(@message) as json_message | filter json_message.`user.id` = "123"
Exemplo: resultados vazios

Mapas e listas são tratados como nulos para funções de string, número e data e hora.

fields jsonParse(@message) as json_message | display toupper(json_message)

A comparação do mapa e da lista com quaisquer outros campos resulta emfalse.

nota

O uso de mapa e lista emdedup,pattern,sort, e stats não é suportado.

Funções de data e hora

Funções de data e hora

Use funções de data e hora nos comandos fields e filter e como argumentos de outras funções. Use essas funções para criar buckets de tempo para consultas com funções de agregação. Use períodos que consistam em um número e uma das seguintes abreviaturas:

  • ms para milissegundos

  • s para segundos

  • m para minutos

  • h para horas

Por exemplo, 10m é 10 minutos, e 1h é uma hora.

nota

Use a unidade de tempo mais apropriada para a função de data e hora. CloudWatch O Logs limita sua solicitação de acordo com a unidade de tempo que você escolher. Por exemplo, o limite máximo será 60 para qualquer solicitação que use s. Assim, se você especificarbin(300s), o CloudWatch Logs implementará esse valor como 60 segundos, porque 60 é o número de segundos em um minuto e, portanto, o CloudWatch Logs não usará um número maior que 60 coms. Para criar um bucket de 5 minutos, use bin(5m) em vez disso.

O limite para ms é 1.000, o limite para s e m é 60 e o limite para h é 24.

A tabela a seguir contém uma lista das diferentes funções de data e hora que você pode usar nos comandos de consulta. A tabela lista o tipo de resultado de cada função e contém uma descrição de cada função.

dica

Quando você cria um comando de consulta, é possível usar o seletor de intervalo de tempo para selecionar um período que deseja consultar. Por exemplo, você pode definir um período entre intervalos de 5 e 30 minutos; intervalos de 1, 3 e 12 horas; ou um período personalizado. Você também pode definir períodos entre datas específicas.

Função Tipo de resultado Descrição

bin(period: Period)

Timestamp

Arredonda o valor de @timestamp para o período indicado e trunca. Por exemplo, bin(5m) arredonda o valor de @timestamp para os 5 minutos mais próximos.

Você pode usar isso para agrupar várias entradas de log em uma consulta. O seguinte exemplo conta a quantidade de exceções por hora:

filter @message like /Exception/ | stats count(*) as exceptionCount by bin(1h) | sort exceptionCount desc

As unidades e abreviações de tempo a seguir são compatíveis com a função bin. Para todas as unidades e abreviações que incluem mais de um caractere, é permitido adicionar "s" para formar o plural. Assim, ambos hr e hrs funcionam para especificar horas.

  • millisecond ms msec

  • second s sec

  • minute m min

  • hour h hr

  • day d

  • week w

  • month mo mon

  • quarter q qtr

  • year y yr

datefloor(timestamp: Timestamp, period: Period)

Timestamp

Trunca o time stamp para o período indicado. Por exemplo, datefloor(@timestamp, 1h) trunca todos os valores de @timestamp no final.

dateceil(timestamp: Timestamp, period: Period)

Timestamp

Arredonda o time stamp para o período indicado e trunca. Por exemplo, dateceil(@timestamp, 1h) trunca todos os valores de @timestamp no início.

fromMillis(fieldName: number)

Timestamp

Interpreta o campo de entrada como o número de milissegundos desde a epoch do Unix e o converte em um time stamp.

toMillis(fieldName: Timestamp)

número

Converte o time stamp encontrado no campo nomeado em um número que representa os milissegundos desde a epoch do Unix. Por exemplo, toMillis(@timestamp) converte o carimbo de data/hora 2022-01-14T13:18:031.000-08:00 para 1642195111000.

now()

número

Retorna a hora em que o processamento da consulta foi iniciado, em segundos de época. Essa função não usa argumentos.

Você pode usar isso para filtrar os resultados da consulta de acordo com a hora atual.

Por exemplo, a consulta a seguir retorna todos os erros 4xx das últimas duas horas:

parse @message "Status Code: *;" as statusCode\n | filter statusCode >= 400 and statusCode <= 499 \n | filter toMillis(@timestamp) >= (now() * 1000 - 7200000)

O exemplo a seguir retorna todas as entradas de registro das últimas cinco horas que contêm a palavra error ou failure

fields @timestamp, @message | filter @message like /(?i)(error|failure)/ | filter toMillis(@timestamp) >= (now() * 1000 - 18000000)
nota

Atualmente, o CloudWatch Logs Insights não oferece suporte à filtragem de logs com carimbos de data/hora legíveis por humanos.

Funções gerais

Funções gerais

Use funções gerais nos comandos fields e filter e como argumentos de outras funções.

Função Tipo de resultado Descrição

ispresent(fieldName: LogField)

Booleano

Retorna true se o campo existir

coalesce(fieldName: LogField, ...fieldNames: LogField[])

LogField

Retorna o primeiro valor não nulo da lista

Funções JSON

Funções JSON

Use funções JSON nos filter comandos fields e e como argumentos de outras funções.

Função Tipo de resultado Descrição

jsonParse(fieldName: string)

Mapa | Lista | Vazio

Retorna um mapa ou uma lista quando a entrada é uma representação em cadeia de caracteres do objeto JSON ou de uma matriz JSON. Retorna um valor vazio, se a entrada não for uma das representações.

jsonStringify(fieldName: Map | List)

String

Retorna uma string JSON de um mapa ou dados da lista.

Funções de string de endereço IP

Funções de string de endereço IP

Use funções de string no endereço IP dos comandos filter e fields e como argumentos de outras funções.

Função Tipo de resultado Descrição

isValidIp(fieldName: string)

booleano

Retorna true se o campo for um IPv6 endereço válido IPv4 ou.

isValidIpV4(fieldName: string)

boolean

Retorna true se o campo for um IPv4 endereço válido.

isValidIpV6(fieldName: string)

boolean

Retorna true se o campo for um IPv6 endereço válido.

isIpInSubnet(fieldName: string, subnet: string)

boolean

Retorna true se o campo for um IPv6 endereço válido IPv4 ou dentro da sub-rede v4 ou v6 especificada. Ao especificar a sub-rede, use a notação CIDR, como 192.0.2.0/24 ou 2001:db8::/32, onde 192.0.2.0 ou2001:db8:: é o início do bloco CIDR.

isIpv4InSubnet(fieldName: string, subnet: string)

boolean

Retorna true se o campo for um IPv4 endereço válido na sub-rede v4 especificada. Ao especificar a sub-rede, use a notação CIDR, como 192.0.2.0/24, em que 192.0.2.0 é o início do bloco CIDR.

isIpv6InSubnet(fieldName: string, subnet: string)

boolean

Retorna true se o campo for um IPv6 endereço válido dentro da sub-rede v6 especificada. Ao especificar a sub-rede, use a notação CIDR, como 2001:db8::/32, em que 2001:db8:: é o início do bloco CIDR.

Funções de string

Funções de string

Use funções de string nos comandos fields e filter e como argumentos de outras funções.

Função Tipo de resultado Descrição

isempty(fieldName: string)

Número

Retornará 1 se o campo não for encontrado ou for uma string vazia.

isblank(fieldName: string)

Número

Retornará 1 se o campo não for encontrado, for uma string vazia ou só contiver espaço branco.

concat(str: string, ...strings: string[])

string

Concatena as strings.

ltrim(str: string)

ltrim(str: string, trimChars: string)

string

Se a função não tiver um segundo argumento, ela removerá os caracteres em branco da esquerda da string. Se a função tiver um segundo argumento de string, ela não removerá os caracteres em branco. Em vez disso, remove os caracteres em trimChars à esquerda de str. Por exemplo, ltrim("xyZxyfooxyZ","xyZ") retorna "fooxyZ".

rtrim(str: string)

rtrim(str: string, trimChars: string)

string

Se a função não tiver um segundo argumento, ela removerá os caracteres em branco da direita da string. Se a função tiver um segundo argumento de string, ela não removerá os caracteres em branco. Em vez disso, remove os caracteres de trimChars à direita de str. Por exemplo, rtrim("xyZfooxyxyZ","xyZ") retorna "xyZfoo".

trim(str: string)

trim(str: string, trimChars: string)

string

Se a função não tiver um segundo argumento, ela removerá os caracteres em branco nas duas extremidades da string. Se a função tiver um segundo argumento de string, ela não removerá os caracteres em branco. Em vez disso, remove os caracteres de trimChars de ambos os lados de str. Por exemplo, trim("xyZxyfooxyxyZ","xyZ") retorna "foo".

strlen(str: string)

número

Retorna o tamanho da string em pontos de código Unicode.

toupper(str: string)

string

Converte a string em letras maiúsculas.

tolower(str: string)

string

Converte a string em letras minúsculas.

substr(str: string, startIndex: number)

substr(str: string, startIndex: number, length: number)

string

Retorna uma substring do índice especificado pelo argumento de número ao final da string. Se tiver um segundo argumento de número, a função conterá o tamanho da substring a ser recuperada. Por exemplo, substr("xyZfooxyZ",3, 3) retorna "foo".

replace(fieldName: string, searchValue: string, replaceValue: string)

string

Substitui todas as instâncias de searchValue em fieldName: string por replaceValue.

Por exemplo, a função replace(logGroup,"smoke_test","Smoke") pesquisa eventos de log em que o campo logGroup contém o valor da string smoke_test e substitui o valor pela string Smoke.

strcontains(str: string, searchValue: string)

número

Retornará 1 se str contiver searchValue e 0, do contrário.