Uso de expressões matemáticas com as métricas do CloudWatch - Amazon CloudWatch

Uso de expressões matemáticas com as métricas do CloudWatch

A matemática métricas permite consultar várias métricas do CloudWatch e usar expressões matemáticas para criar novas séries temporais de acordo com essas métricas. Você pode visualizar as séries temporais resultantes no console do CloudWatch e adicioná-las aos painéis. Usando métricas do AWS Lambda como exemplo, você pode dividir a métrica Errors pela métrica Invocations para obter uma taxa de erro. Depois, adicione a série temporal resultante a um gráfico no painel do CloudWatch.

Você também pode executar a matemática métricas de forma programática usando a operação da API GetMetricData. Para obter mais informações, consulte GetMetricData.

Adicionar uma expressão matemática a um gráfico do CloudWatch

Você pode adicionar uma expressão matemática a um gráfico no painel do CloudWatch. Cada gráfico é limitado a usar um máximo de 500 métricas e expressões, para que você possa adicionar uma expressão matemática somente se o gráfico tiver 499 métricas ou menos. Isso se aplica mesmo que nem todas as métricas sejam exibidas no gráfico.

Para adicionar uma expressão matemática a um gráfico
  1. Abra o console do CloudWatch em https://console.aws.amazon.com/cloudwatch/.

  2. Crie ou edite um gráfico. Deve haver pelo menos uma métrica no gráfico.

  3. Escolha Graphed metrics (Métricas em gráfico).

  4. Selecione Math expression (Expressão matemática), Start with empty expression (Começar com expressão vazia). Uma nova linha é exibida para a expressão.

  5. Na nova linha, na coluna Details (Detalhes), insira a expressão matemática. As tabelas na seção Sintaxe e funções de matemática métrica listam as funções que podem ser usadas na expressão.

    Para usar uma métrica ou o resultado de outra expressão como parte da fórmula para essa expressão, use o valor mostrado na coluna Id: por exemplo, m1+m2 ou e1-MIN(e1).

    Você pode alterar o valor de Id. Ela pode incluir números, letras e sublinhado e deve começar com uma letra minúscula. Alterar o valor de Id para um nome mais significativo também pode facilitar o entendimento de um gráfico: por exemplo, a alteração de m1 e m2 para errors (erros) e requests (solicitações).

    dica

    Escolha a seta para baixo ao lado de Math Expression (Expressão matemática) para ver uma lista de funções compatíveis, que podem ser usadas ao criar sua expressão.

  6. Para a coluna Label (Rótulo) da expressão, insira um nome que descreva o que a expressão está calculando.

    Se o resultado de uma expressão é uma matriz de séries temporais, cada uma dessas séries temporais é exibida no gráfico com uma linha separada, com cores diferentes. Imediatamente abaixo do gráfico está uma legenda para cada linha no gráfico. Para uma única expressão que produz várias séries temporais, as legendas para essas séries temporais estão no formato Expression-Label Metric-Label. Por exemplo, se o gráfico inclui uma métrica com um rótulo de Erros e uma expressão FILL(METRICS(), 0) que tem um rótulo Filled With 0:, uma linha na legenda seria Filled With 0: Errors. Para que a legenda mostre apenas os rótulos de métrica originais, defina Expression-Label como vazio.

    Quando uma expressão produz uma matriz de séries temporais no gráfico, você não pode alterar as cores usadas para cada uma dessas séries temporais.

  7. Depois de adicionar as expressões desejadas, você pode simplificar o gráfico ocultando algumas das métricas originais. Para ocultar uma métrica ou expressão, desmarque a caixa de seleção à esquerda do campo Id.

Sintaxe de funções da matemática métricas

As seções a seguir explicam as funções disponíveis para a matemática métricas. Todas as funções devem ser escritas com letras maiúsculas (como AVG), e o campo Id de todas as métricas e expressões matemáticas devem começar com uma letra minúscula.

O resultado final de qualquer expressão matemática deve ser uma única série temporal ou um array de séries de tempo. Algumas funções escalares produzem um número. Você pode usar essas funções em uma função maior que, em última análise, produz uma série temporal. Por exemplo, o uso de AVG de uma única série temporal produz um número escalar, de forma que ele não pode ser o resultado final da expressão. Mas você pode usá-lo na função m1-AVG(m1) para exibir uma série temporal da diferença entre cada ponto de dados individual e o valor médio da série temporal.

Abreviações de tipos de dados

Algumas funções são válidas apenas para determinados tipos de dados. As abreviações na lista a seguir são usadas nas tabelas de funções para representar os tipos de dados compatíveis para cada função:

  • S representa um número escalar, como 2, -5 ou 50,25.

  • TS é uma série temporal (uma série de valores para uma única métrica do CloudWatch ao longo do tempo): por exemplo, a métrica CPUUtilization para a instância i-1234567890abcdef0 para os últimos três dias.

  • TS[] é uma matriz de séries temporais, como a série temporal para várias métricas.

  • String[] é uma matriz de strings.

A função METRICS()

A função METRICS() retorna todas as métricas na solicitação. As expressões matemáticas não são incluídas.

Você pode usar METRICS() dentro de uma expressão maior que produz apenas uma série de tempo ou um array de séries de tempo. Por exemplo, a expressão SUM(METRICS()) retorna uma série temporal (TS) que é a soma dos valores de todas as métricas incluídas em gráfico. METRICS()/100 retorna uma matriz de séries temporais, cada um sendo é uma série de tempo que mostra cada ponto de dados de uma das métricas dividido por 100.

Você pode usar a função METRICS() com uma sequência para retornar apenas as métricas incluídas em gráfico que contêm essa sequência no campo Id. Por exemplo, a expressão SUM(METRICS("errors")) retorna uma série temporal que é a soma dos valores de todas as métricas incluídas em gráfico que contêm 'erros' no campo Id. Você também pode usar SUM([METRICS(“4xx”), METRICS(“5xx”)]) para correspondência a várias sequências.

Funções aritméticas básicas

A tabela a seguir lista as funções de aritmética básica compatíveis. Valores ausentes em uma séries temporal são tratados como 0. Se o valor de um ponto de dados fizer com que uma função tente dividir por zero, o ponto de dados será descartado.

Operation Argumentos Exemplos

Operadores aritméticos: + - * / ^

S, S

S, TS

TS, TS

S, TS[]

TS, TS[]

PERIOD(m1)/60

5 * m1

m1 - m2

SUM(100/[m1, m2])

AVG(METRICS())

METRICS()*100

Subtração unária -

S

TS

TS[]

-5*m1

-m1

SUM(-[m1, m2])

Comparação e operadores lógicos

Você pode usar operadores lógicos e de comparação com um par de séries temporais ou um par de valores escalares únicos. Quando você usa um operador de comparação com um par de séries temporais, os operadores retornam uma série temporal em que cada ponto de dados é 0 (falso) ou 1 (verdadeiro). Se você usar um operador de comparação em um par de valores escalares, um único valor escalar será retornado, 0 ou 1.

Quando operadores de comparação são usados entre duas séries temporais, e apenas uma das séries temporais tem um valor para um time stamp específico, a função trata o valor ausente na outra série cronológica como 0.

Você pode usar operadores lógicos em conjunto com operadores de comparação, para criar funções mais complexas.

A tabela a seguir lista os operadores com suporte.

Tipo de operador Operadores compatíveis

Operadores de comparação

==

!=

<=

>=

<

>

Operadores lógicos

E ou &&

OR ou ||

Para ver como esses operadores são usados, suponha que temos duas séries temporais: metric1 tem valores de [30, 20, 0, 0] e metric2 tem valores de [20, -, 20, -] nos quais - indica que não há valor para esse timestamp.

Expressão Saída

(metric1 < metric2)

0, 0, 1, 0

(metric1 >= 30)

1, 0, 0, 0

(metric1 > 15 AND metric2 > 15)

1, 0, 0, 0

Funções compatíveis com a matemática métricas

A tabela a seguir descreve as funções que podem ser usadas em expressões matemáticas. Insira todas as funções em letras maiúsculas.

O resultado final de qualquer expressão matemática deve ser uma única série temporal ou um array de séries de tempo. Algumas funções em tabelas nas seções a seguir produzem um número escalar. Você pode usar essas funções em uma função maior que, em última análise, produz uma série temporal. Por exemplo, o uso de AVG de uma única série temporal produz um número escalar, de forma que ele não pode ser o resultado final da expressão. Mas você pode usá-lo na função m1-AVG(m1) para exibir uma série temporal da diferença entre cada ponto de dados individual e o valor médio desse ponto de dados.

Na tabela a seguir, cada exemplo na coluna Exemplos é uma expressão que resulta em uma única série temporal ou uma matriz de séries temporais. Isso mostra como funções que retornam números escalares podem ser usadas como parte de uma expressão válida que produz uma única série temporal.

Função Argumentos Tipo de retorno* Descrição Exemplos Aceito entre contas?

ABS

TS

TS[]

TS

TS[]

Retorna o valor absoluto de cada ponto de dados.

ABS(m1-m2)

MIN(ABS([m1, m2]))

ABS(METRICS())

ANOMALY_DETECTION_BAND

TS

TS, S

TS[]

Retorna um segmento de detecção de anomalias para a métrica especificada. O segmento consiste em duas séries temporais, um que representa o limite superior do valor "normal" esperado da métrica e o outro que representa o limite inferior. A função pode levar dois argumentos. O primeiro é o ID da métrica para o qual o segmento vai ser criado. O segundo argumento é o número de desvios-padrão a ser usado para o segmento. Se você não especificar esse argumento, é usado o padrão de 2. Para ter mais informações, consulte Usar a detecção de anomalias do CloudWatch.

ANOMALY_DETECTION_BAND(m1)

ANOMALY_DETECTION_BAND(m1,4)

AVG

TS

TS[]

S

TS

A AVG de uma única série temporal retorna um escalar que representa a média de todos os pontos de dados na métrica. O AVG de uma matriz de séries temporais retorna uma única série temporal. Valores ausentes são tratados como 0.

nota

Recomendamos não usar essa função nos alarmes do CloudWatch se deseja que a função retorne um escalar. Por exemplo, AVG(m2). Sempre que um alarme avalia se é necessário alterar o estado, o CloudWatch tenta recuperar um maior número de pontos de dados do que o número especificado em Evaluation Periods (Períodos de avaliação). Essa função age de forma diferente quando dados extras são solicitados.

Para usar essa função com alarmes, especialmente com ações do Auto Scaling, recomendamos que você configure o alarme para usar M dentre N pontos de dados, onde M < N.

SUM([m1,m2])/AVG(m2)

AVG(METRICS())

CEIL

TS

TS[]

TS

TS[]

Retorna o teto de cada métrica. O teto é o menor valor inteiro maior ou igual a cada valor.

CEIL(m1)

CEIL(METRICS())

SUM(CEIL(METRICS()))

DATAPOINT_COUNT

TS

TS[]

S

TS

Retorna uma contagem dos pontos de dados que informaram valores. Isso é útil para calcular médias de métricas esparsas.

nota

Recomendamos não usar essa função nos alarmes do CloudWatch. Sempre que um alarme avalia se é necessário alterar o estado, o CloudWatch tenta recuperar um maior número de pontos de dados do que o número especificado em Evaluation Periods (Períodos de avaliação). Essa função age de forma diferente quando dados extras são solicitados.

SUM(m1) / DATAPOINT_COUNT(m1)

DATAPOINT_COUNT(METRICS())

DB_PERF_INSIGHTS

String, string, string

String, String, String[]

TS (caso seja fornecida uma única string)

TS[] (caso seja fornecida uma matriz de strings)

Retorna métricas do Contador do Insights de Performance para bancos de dados como Amazon Relational Database Service e Amazon DocumentDB (compatível com MongoDB). Essa função retorna a mesma quantidade de dados que poderiam ser obtidos consultando diretamente as APIs do Insights de Performance. É possível usar essas métricas no CloudWatch para fazer representações gráficas e criar alarmes.

Importante

Ao usar essa função, você deve especificar o ID exclusivo de recurso de banco de dados do banco de dados. Isso é diferente do identificador do banco de dados. Para encontrar o ID de recurso do banco de dados no console do Amazon RDS, escolha a instância de banco de dados para visualizar os detalhes. Em seguida, escolha a guia Configuration (Configuração). O ID de recurso é exibido na seção Configuração.

DB_PERF_INSIGHTS também traz a métrica DBLoad em intervalos inferiores a um minuto.

As métricas do Performance Insights recuperadas com essa função não são armazenadas no CloudWatch. Portanto, alguns recursos do CloudWatch, como observabilidade entre contas, detecção de anomalias, fluxos de métricas, explorador de métricas e Metric Insights, não funcionarão com as métricas do Insights de Performance que você recuperar com DB_PERF_INSIGHTS.

Uma única solicitação usando a função DB_PERF_INSIGHTS pode recuperar os seguintes números de pontos de dados.

  • 1080 pontos de dados para períodos de alta resolução (1 s, 10 s, 30 s)

  • 1440 pontos de dados para períodos de resolução padrão (1 m, 5 m, 1 h, 1 d)

A função DB_PERF_INSIGHTS oferece suporte somente para os períodos a seguir:

  • 1 segundo

  • 10 segundos

  • 30 segundos

  • 1 minuto

  • 5 minutos

  • 1 hora

  • 1 dia

Para obter mais informações sobre as métricas de contador do Insights de Performance do Amazon RDS, consulte Métricas de contador do Insights de Performance.

Para obter mais informações sobre as métricas de contador do Insights de Performance do Amazon DocumentDB, consulte Métricas de contador do Insights de Performance.

nota

Métricas de alta resolução com granularidade de menos de um minuto recuperadas pelo DB_PERF_INSIGHTS são aplicáveis somente à métrica DBLoad ou às métricas do sistema operacional caso você tenha ativado o monitoramento aprimorado em uma resolução maior. Para obter mais informações sobre o monitoramento avançado do Amazon RDS, consulte Monitoramento de métricas do SO com monitoramento avançado.

É possível criar um alarme de alta resolução usando a função DB_PERF_INSIGHTS por um período máximo de três horas. É possível usar o console do CloudWatch para representar graficamente as métricas recuperadas com a função DB_PERF_INSIGHTS para qualquer intervalo de tempo.

DB_PERF_INSIGHTS(‘RDS’, ‘db-ABCDEFGHIJKLMNOPQRSTUVWXY1’, ‘os.cpuUtilization.user.avg’)

DB_PERF_INSIGHTS(‘DOCDB, ‘db-ABCDEFGHIJKLMNOPQRSTUVWXY1’, [‘os.cpuUtilization.idle.avg’, ‘os.cpuUtilization.user.max’])

DIFF

TS

TS[]

TS

TS[]

Retorna a diferença entre cada valor na série temporal e o valor anterior dessa série temporal.

DIFF(m1)

DIFF_TIME

TS

TS[]

TS

TS[]

Retorna a diferença, em segundos, entre o carimbo de data/hora de cada valor da série temporal e o carimbo de data/hora do valor anterior dessa série temporal.

DIFF_TIME(METRICS())

FILL

TS, [S | REPEAT | LINEAR]

TS[], [TS | S | REPEAT | LINEAR]

TS

TS[]

Preenche os valores ausentes de uma série temporal. Há várias opções para os valores a serem usados para preencher os valores ausentes:

  • É possível especificar um valor a ser usado como o valor de preenchimento.

  • É possível especificar uma métrica a ser usada como o valor de preenchimento.

  • Use a palavra-chave REPEAT para preencher valores ausentes com o valor real mais recente da métrica antes do valor ausente.

  • Use a palavra-chave LINEAR para preencher os valores ausentes com valores que criam uma interpolação linear entre os valores do início e do fim da lacuna.

nota

Ao usar essa função em um alarme, você poderá encontrar um problema, se suas métricas estiverem sendo publicadas com um pequeno atraso e se o minuto mais recente nunca teve dados. Neste caso, FILL substitui esse ponto de dados ausente pelo valor solicitado. Isso faz com que o ponto de dados mais recente da métrica seja sempre o valor de preenchimento, o que pode resultar no bloqueio do alarme no estado OK ou no estado ALARM. É possível contornar isso usando um alarme M de N. Para ter mais informações, consulte Avaliar um alarme.

FILL(m1,10)

FILL(METRICS(), 0)

FILL(METRICS(), m1)

FILL(m1, MIN(m1))

FILL(m1, REPEAT)

FILL(METRICS(), LINEAR)

FIRST

LAST

TS[]

TS

Retorna a primeira ou a última série temporal de uma matriz de séries temporais. Isso é útil quando usado com a função SORT. Ele também pode ser usado para obter os limites superior e inferior da função ANOMALY_DETECTION_BAND.

IF(FIRST(SORT(METRICS(), AVG, DESC))>100, 1, 0) examina a métrica superior de uma matriz, que é classificada por AVG. Depois, ele retorna 1 ou 0 para cada ponto de dados, dependendo se esse valor de ponto de dados é superior a 100.

LAST(ANOMALY_DETECTION_BAND(m1)) retorna o limite superior da faixa de previsão de anomalia.

FLOOR

TS

TS[]

TS

TS[]

Retorna o piso de cada métrica. O piso é o maior valor inteiro menor ou igual a cada valor.

FLOOR(m1)

FLOOR(METRICS())

IF

Expressão IF

TS

Use IF junto com um operador de comparação para filtrar pontos de dados de uma série temporal ou criar uma série temporal mista composta por várias séries temporais agrupadas. Para ter mais informações, consulte Usar expressões IF.

Para ver exemplos, consulte Usar expressões IF.

INSIGHT_RULE_METRIC

INSIGHT_RULE_METRIC(ruleName, metricName)

TS

Use INSIGHT_RULE_METRIC para extrair estatísticas de uma regra no Contributor Insights. Para ter mais informações, consulte Métricas em representações gráficas geradas por regras no CloudWatch.

LAMBDA

LAMBDA(LambdaFunctionName [, optional-arg]*)

TS

TS[]

Chama uma função do Lambda para consultar métricas de uma fonte de dados que não seja o CloudWatch. Para ter mais informações, consulte Como passar argumentos para sua função do Lambda.

LOG

TS

TS[]

TS

TS[]

O LOG de uma série temporal retorna o valor logaritmo natural de cada valor na série temporal.

LOG(METRICS())

LOG10

TS

TS[]

TS

TS[]

O LOG10 de uma série temporal retorna o valor logaritmo de base 10 de cada valor na série temporal.

LOG10(m1)

MAX

TS

TS[]

S

TS

O MAX de uma única série temporal retorna um escalar que representa o valor máximo de todos os pontos de dados na métrica.

Se você inserir uma matriz de séries temporais, a função MAX criará e retornará uma série temporal que consiste no valor mais alto para cada ponto de dados em comparação com as séries temporais que foram usadas como entrada.

nota

Recomendamos não usar essa função nos alarmes do CloudWatch se deseja que a função retorne um escalar. Por exemplo, MAX(m2) sempre que um alarme avalia se é necessário alterar o estado, o CloudWatch tenta recuperar um maior número de pontos de dados do que o número especificado como Períodos de avaliação. Essa função age de forma diferente quando dados extras são solicitados.

MAX(m1)/m1

MAX(METRICS())

METRIC_COUNT

TS[]

S

Retorna o número de métricas na matriz de séries temporais.

m1/METRIC_COUNT(METRICS())

METRICS

nulo

string

TS[]

A função METRICS() retorna todas as métricas do CloudWatch na solicitação. As expressões matemáticas não são incluídas.

Você pode usar METRICS() dentro de uma expressão maior que produz apenas uma série de tempo ou um array de séries de tempo.

Você pode usar a função METRICS() com uma sequência para retornar apenas as métricas incluídas em gráfico que contêm essa sequência no campo Id. Por exemplo, a expressão SUM(METRICS("errors")) retorna uma série temporal que é a soma dos valores de todas as métricas incluídas em gráfico que contêm 'erros' no campo Id. Você também pode usar SUM([METRICS(“4xx”), METRICS(“5xx”)]) para correspondência a várias sequências.

AVG(METRICS())

SUM(METRICS("errors"))

MIN

TS

TS[]

S

TS

O MIN de uma única série temporal retorna um escalar que representa o valor mínimo de todos os pontos de dados na métrica.

Se você inserir uma matriz de séries temporais, a função MIN criará e retornará uma série temporal que consiste no valor mais baixo para cada ponto de dados em comparação com as séries temporais que foram usadas como entrada.

Se você inserir uma matriz de séries temporais, a função MIN criará e retornará uma série temporal que consiste no valor mais baixo para cada ponto de dados em comparação com as séries temporais que foram usadas como entrada.

nota

Recomendamos não usar essa função nos alarmes do CloudWatch se deseja que a função retorne um escalar. Por exemplo, MIN(m2) sempre que um alarme avalia se é necessário alterar o estado, o CloudWatch tenta recuperar um maior número de pontos de dados do que o número especificado como Períodos de avaliação. Essa função age de forma diferente quando dados extras são solicitados.

m1-MIN(m1)

MIN(METRICS())

MINUTE

HOUR

DAY

DATE

MONTH

YEAR

EPOCH

TS

TS

Essas funções obtêm o período e o intervalo da série temporal e retornam uma nova série temporal não esparsa onde cada valor é baseado em seu carimbo de data/hora.

  • MINUTE retorna uma série de tempo não esparsa de inteiros entre 0 e 59 que representam o minuto UTC de cada carimbo de data/hora da série temporal original.

  • HOUR retorna uma série de tempo não esparsa de inteiros entre 0 e 23 que representam a hora UTC de cada carimbo de data/hora da série temporal original.

  • DAY retorna uma série de tempo não esparsa de inteiros entre 1 e 7 que representam o dia da semana UTC de cada carimbo de data/hora da série temporal original, em que 1 representa segunda-feira e 7 representa o domingo.

  • DATE retorna uma série de tempo não esparsa de inteiros entre 1 e 31 que representam o dia do mês UTC de cada carimbo de data/hora da série temporal original.

  • MONTH retorna uma série de tempo não esparsa de inteiros entre 1 e 12 que representam o mês UTC de cada carimbo de data/hora da série temporal original, em que 1 representa janeiro e 12 representa dezembro.

  • YEAR retorna uma série de tempo não esparsa de inteiros que representam o ano UTC de cada carimbo de data/hora da série temporal original.

  • EPOCH retorna uma série de tempo não esparsa de inteiros que representam o tempo UTC, em segundos, desde o início da época, de cada carimbo de data/hora da série temporal original. A época é 1.º de janeiro de 1970.

MINUTE(m1)

IF(DAY(m1)<6,m1) retorna métricas somente de dias úteis, de segunda a sexta-feira.

IF(MONTH(m1) == 4,m1) retorna somente métricas publicadas em abril.

PERIOD

TS

S

Retorna o período da métrica em segundos. Entrada válida são métricas, não os resultados de outras expressões.

m1/PERIOD(m1)

RATE

TS

TS[]

TS

TS[]

Retorna a taxa de alteração da métrica por segundo. Isso é calculado como a diferença entre o último ponto de dados e o valor anterior, dividido pelo valor do ponto de dados a diferença de tempo em segundos entre os dois valores.

Importante

Definir alarmes em expressões que usam a função RATE em métricas com dados esparsos pode resultar em um comportamento imprevisível, porque o intervalo de pontos de dados obtidos ao avaliar o alarme pode variar com base na última publicação dos pontos de dados.

RATE(m1)

RATE(METRICS())

REMOVE_EMPTY

TS[]

TS[]

Remove todas as séries temporais que não tenham pontos de dados de uma matriz de séries temporais. O resultado é uma matriz de séries temporais em que cada série temporal contém pelo menos um ponto de dados.

nota

Recomendamos não usar essa função nos alarmes do CloudWatch. Sempre que um alarme avalia se é necessário alterar o estado, o CloudWatch tenta recuperar um maior número de pontos de dados do que o número especificado em Evaluation Periods (Períodos de avaliação). Essa função age de forma diferente quando dados extras são solicitados.

REMOVE_EMPTY(METRICS())

RUNNING_SUM

TS

TS[]

TS

TS[]

Retorna uma série temporal com a soma dos valores na série temporal original.

nota

Recomendamos não usar essa função nos alarmes do CloudWatch. Sempre que um alarme avalia se é necessário alterar o estado, o CloudWatch tenta recuperar um maior número de pontos de dados do que o número especificado em Evaluation Periods (Períodos de avaliação). Essa função age de forma diferente quando dados extras são solicitados.

RUNNING_SUM([m1,m2])

SEARCH

Expressão de pesquisa

Uma ou mais TS

Retorna uma ou mais séries temporais que correspondem aos critérios de pesquisa que você especificar. A função SEARCH permite que você adicione várias séries temporais relacionadas a um gráfico com uma expressão. O gráfico é atualizado dinamicamente para incluir novas métricas que serão adicionadas posteriormente e correspondem aos critérios de pesquisa. Para ter mais informações, consulte Usar expressões de pesquisa em gráficos.

Não é possível criar um alarme com base em uma expressão SEARCH. Isso ocorre porque as expressões de pesquisa retornam várias séries temporais, e um alarme baseado em uma expressão matemática pode observar apenas uma série temporal.

Se você fez login em uma conta de monitoramento na observabilidade entre contas do CloudWatch, a função SEARCH encontrará métricas nas contas de origem e na conta de monitoramento.

SERVICE_QUOTA

TS que é uma métrica de uso

TS

Retorna a cota de serviço da métrica de uso determinada. É possível usar isso para visualizar como seu uso atual se compara à cota e para definir alarmes que avisam quando você se aproxima da cota. Para ter mais informações, consulte Métricas de uso do AWS.

SLICE

(TS[], S, S) ou (TS[], S)

TS[]

TS

Recupera parte de uma matriz de séries temporais. Isso é especialmente útil quando combinado com SORT. Por exemplo, você pode excluir o resultado superior de uma matriz de séries temporais.

Você pode usar dois argumentos escalares para definir o conjunto de séries temporais a serem retornados. Os dois escalares definem o início (inclusive) e o fim (exclusivo) da matriz a serem retornados. A matriz é indexada por zero, portanto, a primeira série temporal na matriz é a série temporal 0. Como alternativa, você pode especificar apenas um valor, e o CloudWatch retornará todas as séries temporais começando com esse valor.

SLICE(SORT(METRICS(), SUM, DESC), 0, 10) retorna as 10 métricas da matriz na solicitação que têm o valor SUM mais alto.

SLICE(SORT(METRICS(), AVG, ASC), 5) classifica a matriz de métricas pela estatística AVG e retorna todas as séries temporais, exceto as 5 com o menor AVG.

SORT

(TS[], FUNCTION, SORT_ORDER)

(TS[], FUNCTION, SORT_ORDER, S)

TS[]

Classifica uma matriz de séries temporais de acordo com a função especificada. A função que você usa pode ser AVG, MIN, MAX ou SUM. A ordem de classificação pode ser ASC para ordem crescente (valores mais baixos primeiro) ou DESC para classificar os valores mais altos primeiro. Você também pode especificar um número após a ordem de classificação que atua como um limite. Por exemplo, especificar um limite de 5 retorna apenas as 5 principais séries temporais da classificação.

Quando essa função matemática for exibida em um gráfico, os rótulos para cada métrica no gráfico também serão classificados e numerados.

SORT(METRICS(), AVG, DESC, 10) calcula o valor médio de cada série temporal, classifica as séries temporais com os valores mais altos no início da classificação e retorna apenas as 10 séries temporais com as médias mais altas.

SORT(METRICS(), MAX, ASC) classifica a matriz de métricas pela estatística MAX e retorna todas elas em ordem crescente.

STDDEV

TS

TS[]

S

TS

O STDDEV de uma única série temporal retorna um escalar que representa o desvio padrão de todos os pontos de dados na métrica. O STDDEV de uma matriz de séries temporais retorna uma única série temporal.

nota

Recomendamos não usar essa função nos alarmes do CloudWatch se deseja que a função retorne um escalar. Por exemplo, STDDEV(m2) sempre que um alarme avalia se é necessário alterar o estado, o CloudWatch tenta recuperar um maior número de pontos de dados do que o número especificado como Períodos de avaliação. Essa função age de forma diferente quando dados extras são solicitados.

m1/STDDEV(m1)

STDDEV(METRICS())

SUM

TS

TS[]

S

TS

A SUM de uma única série temporal retorna um escalar que representa a soma dos valores de todos os pontos de dados na métrica. O SUM de uma matriz de séries temporais retorna uma única série temporal.

nota

Recomendamos não usar essa função nos alarmes do CloudWatch se deseja que a função retorne um escalar. Por exemplo, SUM(m1). Sempre que um alarme avalia se é necessário alterar o estado, o CloudWatch tenta recuperar um maior número de pontos de dados do que o número especificado em Evaluation Periods (Períodos de avaliação). Essa função age de forma diferente quando dados extras são solicitados.

SUM(METRICS())/SUM(m1)

SUM([m1,m2])

SUM(METRICS("errors"))/SUM(METRICS("requests"))*100

TIME_SERIES

S

TS

Retorna uma série temporal não esparsa na qual cada valor é definido como um argumento escalar.

TIME_SERIES(MAX(m1))

TIME_SERIES(5*AVG(m1))

TIME_SERIES(10)

*Não é permitido usar apenas uma função que retorne um número escalar, pois todos os resultados finais de expressões devem ser uma única série temporal ou uma matriz de séries temporais. Em vez disso, use essas funções como parte de uma expressão maior que retorne uma série temporal.

Usar expressões IF

Use IF junto com um operador de comparação para filtrar pontos de dados de uma série temporal ou criar uma série temporal mista composta por várias séries temporais agrupadas.

IF usa os seguintes argumentos:

IF(condition, trueValue, falseValue)

A condição será avaliada como FALSE se o valor do ponto de dados da condição for 0 e TRUE se o valor da condição for qualquer outro valor, se esse valor for positivo ou negativo. Se a condição for uma série temporal, ela será avaliada separadamente para cada time stamp.

O seguinte lista as sintaxes válidas. Para cada uma destas sintaxes, a saída é uma única série temporal.

  • IF(TS Operador de comparação S, S | TS, S | TS)

    nota

    Se TS comparison operator S for TRUE, mas metric2 não tiver um ponto de dados correspondente, o resultado será 0.

  • IF(TS, TS, TS)

  • IF(TS, S, TS)

  • IF(TS, TS, S)

  • IF(TS, S, S)

  • IF(S, TS, TS)

As seções a seguir fornecem mais detalhes e exemplos para essas sintaxes.

IF(TS operador de comparação S, scalar2 | metric2, scalar3 | metric3)

O valor da série de tempo de saída correspondente:

  • tem o valor de scalar2 ou metric2, se TS Operador de comparação S for TRUE

  • tem o valor de scalar3 ou metric3, se TS Operador de comparação S for FALSE

  • tem o valor de 0 se o Operador de comparação TS for TRUE e o ponto de dados correspondente em metric2 não existir.

  • tem o valor de 0 se o Operador de comparação TS for FALSE e o ponto de dados correspondente em metric3 não existir.

  • é uma série de tempo vazia, se o ponto de dados correspondente não existir em metric3, ou se scalar3/metric3 for omitido da expressão

IF(metric1, metric2, metric3)

Para cada ponto de dados da metric1, o valor da série temporal de saída correspondente:

  • tem o valor de metric2, se o ponto de dados correspondente de metric1 for TRUE.

  • tem o valor de metric3, se o ponto de dados correspondente de metric1 for FALSE.

  • tem o valor de 0, se o ponto de dados correspondente de metric1 for TRUE e o ponto de dados correspondente não existir em metric2.

  • é descartado, se o ponto de dados correspondente de metric1 for FALSE e o ponto de dados correspondente não existir em metric3

  • é descartado, se o ponto de dados correspondente de metric1 for FALSE e metric3 for omitido da expressão.

  • é descartado se o ponto de dados correspondente em metric1 não existir.

A tabela a seguir mostra um exemplo para essa sintaxe.

Métrica ou função Valores

(metric1)

[1, 1, 0, 0, -]

(metric2)

[30, -, 0, 0, 30]

(metric3)

[0, 0, 20, -, 20]

IF(metric1, metric2, metric3)

[30, 0, 20, 0, -]

IF(metric1, scalar2, metric3)

Para cada ponto de dados da metric1, o valor da série temporal de saída correspondente:

  • tem o valor de scalar2, se o ponto de dados correspondente de metric1 for TRUE.

  • tem o valor de metric3, se o ponto de dados correspondente de metric1 for FALSE.

  • é descartado, se o ponto de dados correspondente de metric1 for FALSE e o ponto de dados correspondente não existir em metric3, ou se metric3 for omitido da expressão.

Métrica ou função Valores

(metric1)

[1, 1, 0, 0, -]

scalar2

5

(metric3)

[0, 0, 20, -, 20]

IF(metric1, scalar2, metric3)

[5, 5, 20, -, -]

IF(metric1, metric2, scalar3)

Para cada ponto de dados da metric1, o valor da série temporal de saída correspondente:

  • tem o valor de metric2, se o ponto de dados correspondente de metric1 for TRUE.

  • tem o valor de scalar3, se o ponto de dados correspondente de metric1 for FALSE.

  • tem o valor de 0, se o ponto de dados correspondente de metric1 for TRUE e o ponto de dados correspondente não existir em metric2.

  • é descartado se o ponto de dados correspondente em metric1 não existir.

Métrica ou função Valores

(metric1)

[1, 1, 0, 0, -]

(metric2)

[30, -, 0, 0, 30]

scalar3

5

IF(metric1, metric2, scalar3)

[30, 0, 5, 5, -]

IF(scalar1, metric2, metric3)

O valor da série de tempo de saída correspondente:

  • tem o valor de metric2, se scalar1 for TRUE.

  • tem o valor de metric3, se scalar1 for FALSE.

  • é uma série temporal vazia, se metric3 for omitido da expressão.

Exemplos de caso de uso para expressões IF

Os exemplos a seguir ilustram os possíveis usos da função IF.

  • Para exibir somente os valores baixos de uma métrica:

    IF(metric1<400, metric1)

  • Para alterar cada ponto de dados de uma métrica para um de dois valores, para mostrar valores altos e mínimos relativos da métrica original:

    IF(metric1 < 400, 10, 2)

  • Para exibir um 1 para cada time stamp em que a latência está acima do limite e exibir um 0 para todos os outros pontos de dados:

    IF(latency>threshold, 1, 0)

Usar a matemática métrica com a operação da API GetMetricData

Você pode usar GetMetricData para executar cálculos usando expressões matemáticas, bem como para recuperar grandes lotes de dados de métricas em uma chamada de API. Para obter mais informações, consulte GetMetricData.

Detecção de anomalias em matemática métrica

A detecção de anomalias em matemática métrica é um recurso que você pode usar para criar alarmes de detecção de anomalias em métricas únicas e nas saídas de expressões matemáticas métricas. É possível usar essas expressões para criar gráficos de visualização de bandas de detecção de anomalias. O recurso suporta funções aritméticas básicas, comparações e operadores lógicos e a maioria das outras funções.

A detecção de anomalias em matemática métrica não suporta as seguintes funções:

  • Expressões que contenham mais de um ANOMALY_DETECTION_BAND na mesma linha.

  • Expressões que contenham mais de 10 métricas ou expressões matemáticas.

  • Expressões que contenham a expressão METRICS.

  • Expressões que contenham a função SEARCH.

  • Expressões que usam a função DP_PERF_INSIGHTS.

  • Expressões que usem métricas com períodos diferentes.

  • Detectores de anomalias da matemática de métricas que usam métricas de alta resolução como entrada.

Para obter mais informações sobre esse recurso, consulte Usar a detecção de anomalias do CloudWatch no Guia do usuário do Amazon CloudWatch.