Usar matemática de métricas - Amazon CloudWatch

Usar matemática de métricas

A matemática de 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 grafo no painel do CloudWatch.

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

Adição de uma expressão matemática a um grafo do CloudWatch

Você pode adicionar uma expressão matemática a um grafo 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 matemática de métrica e funções 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 de métricas

As seções a seguir explicam as funções disponíveis para a matemática de 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 nos últimos 3 dias

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

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.

Operação 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([m1,m2]/m3)

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, -], em que - indica que não há valor para esse carimbo de data/hora.

Expressão Resultado

(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 de 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

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 obter 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. 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,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())

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 obter 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 inferior 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 obter 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 obter mais informações, consulte Elaborar grafos de métricas gerados por regrasmgrules Definir um alarme para os dados de métrica do Contributor Insightsamdata.

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. O valor de MAX 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. 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.

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. O MIN 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. 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.

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.

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 obter mais informações, consulte Usar expressões de pesquisa em grafos.

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.

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 obter mais informações, consulte AWSMétricas de uso do .

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. 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.

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. 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)

  • 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 descalar2 ou metric2, se TSOperador de comparação S é TRUE

  • tem o valor descalar3 ou metric3, se TSOperador de comparação S é FALSE

  • é 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 ou se metric3 for omitido da expressão.

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, -, -]

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 de métricas 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.