Sobre as métricas com valor de distribuição

Neste documento, descrevemos como criar e interpretar um gráfico que exibe dados de métricas do tipo de valor Distribution. Esse tipo de valor é usado pelos serviços quando há muitas medições individuais para serem coletadas, mas informações estatísticas, como médias ou percentis, sobre essas medições são valiosas. Por exemplo, quando um aplicativo depende do tráfego HTTP, é possível usar uma métrica de valor de distribuição que captura a latência da resposta HTTP para avaliar a rapidez com que as solicitações HTTP são concluídas.

Para ilustrar como um histograma é criado, considere um serviço que mede a latência HTTP de solicitações e que informa esses dados usando uma métrica com um tipo de valor de distribuição. Os dados são informados a cada minuto. O serviço define intervalos de valores para a métrica, chamados de buckets, e registra a contagem de valores medidos que se enquadra em cada bucket. Por exemplo, quando uma solicitação HTTP é concluída, o serviço incrementa a contagem no bucket cujo intervalo inclui o valor de latência da solicitação. Essas contagens criam um histograma de valores para esse minuto.

Suponha que as latências medidas em um intervalo de um minuto sejam 5, 1, 3, 5, 6, 10 e 14. Se os buckets forem [0, 4), [4, 8), [8, 12) e [12, 16], o histograma desses dados será [2, 3, 1, 1]. Veja na tabela a seguir como as medidas individuais afetam a contagem de cada bucket:

Bucket Medições de latência Número de valores no bucket
[12,16) 14 1
[8,12) 10 1
[4,8) 5, 5, 6 3
[0,4) 1, 3 2

Quando esses dados são gravados na série temporal, um objeto Point é criado. Para métricas com um valor de distribuição, esse objeto inclui o histograma de valores. Para esse período de amostragem, a Point contém [2, 3, 1, 1]. As medições individuais não são gravadas na série temporal.

Suponha que a tabela anterior registre o histograma dos dados de latência conforme medido no tempo 1:00. Essa tabela ilustra como tomar uma série de medições e convertê-las em contagens de bucket. Suponha que o bucket conte às vezes 1:01, 1:02 e 1:03, conforme mostrado na tabela a seguir:

Bucket Histograma para
1h
Histograma para
1:01
Histograma para
1:02
Histograma para
1:03
[12,16) 1 6 0 1
[8,12) 1 0 2 2
[4,8) 3 1 1 8
[0,4) 2 6 10 3

A tabela anterior mostra uma sequência de histogramas indexados por tempo. Cada coluna na tabela representa os dados de latência para um período de um minuto. Para conferir o número de medições em um horário específico, some as contagens do bucket. No entanto, as medições reais não são exibidas porque não estão disponíveis nas métricas com valor de distribuição.

Gráficos de mapa de calor

Os gráficos de mapa de calor são projetados para exibir uma única série temporal com valores de distribuição. Nesses gráficos, o eixo X representa o tempo. O eixo Y representa os buckets, e a cor representa o valor. Quanto mais clara for a cor, um valor mais alto será exibido. Por exemplo, as áreas escuras do mapa de calor indicam contagens de bucket inferiores às áreas amarelas ou brancas.

A figura a seguir é uma representação de um mapa de calor do exemplo anterior:

Gráfico de mapa de calor para o exemplo.

Na figura anterior, o mapa de calor usa preto para representar a menor contagem de buckets, 0, e amarelo, para representar a maior contagem de buckets, 10. Vermelhos e laranjas representam valores entre esses dois extremos.

Como os gráficos de mapa de calor só podem exibir uma única série temporal, é necessário definir as opções de agregação para combinar todas elas.

Para usar o Metrics Explorer para exibir a soma das latências de RTT de uma instância de VM, faça o seguinte:
  1. No painel de navegação do console do Google Cloud, selecione Monitoramento e  Metrics Explorer:

    Acesse o Metrics explorer

  2. No elemento Métrica, expanda o menu Selecionar uma métrica, digite RTT latencies na barra de filtro e use os submenus para selecionar um tipo de recurso e métrica específicos:
    1. No menu Recursos ativos, selecione Instância de VM.
    2. No menu Categorias de métricas ativas, selecione Vm_flow.
    3. No menu Métricas ativas, selecione Latências de RTT.
    4. Clique em Aplicar.

No exemplo anterior, o gráfico do mapa de calor é configurado selecionando valores dos menus. No entanto, também é possível usar a linguagem de consulta do Monitoring (MQL, na sigla em inglês) para criar gráficos com as métricas com valor de distribuição. Para inserir uma consulta MQL, faça o seguinte:

  1. Na barra de ferramentas do painel do criador de consultas, selecione o botão com o nome  MQL ou  PromQL.
  2. Verifique se MQL está selecionado no botão de alternância Idioma. O botão de alternância está na mesma barra de ferramentas que permite formatar a consulta.
  3. Insira uma consulta e execute-a.

Por exemplo, insira o seguinte no editor de código:

fetch gce_instance
| metric 'networking.googleapis.com/vm_flow/rtt'
| align delta(1m)
| every 1m
| group_by [], [aggregate(value.rtt)]

Na expressão anterior, os dados da série temporal são buscados, alinhados e agrupados. O processo de alinhamento usa uma função delta com um período de alinhamento de um minuto. Como o primeiro argumento para group_by é [], todas as série temporal são combinadas. O segundo argumento, [aggregate(value.rtt)], define como as série temporal são combinadas. Neste exemplo, para cada carimbo de data/hora, os valores do campo rtt de diferentes série temporal são combinados com a função aggregate, selecionada pelo MQL.

Se você usar menus para selecionar a métrica e, em seguida, mudar para o MQL, suas escolhas vão ser convertidas em uma consulta MQL que está em formato restrito:

fetch gce_instance
| metric 'networking.googleapis.com/vm_flow/rtt'
| align delta(1m)
| every 1m
| group_by [], [value_rtt_aggregate: aggregate(value.rtt)]

A expressão anterior é funcionalmente equivalente ao exemplo MQL original.

Para mais informações sobre o MQL, consulte Visão geral da linguagem de consulta do Monitoring.

Gráficos de linhas e barras

Gráficos de linhas, gráficos de barras empilhadas e gráficos de linhas empilhadas, projetados para exibir dados escalares, não podem exibir valores de distribuição. Para exibir uma métrica com um valor de distribuição com um desses tipos de gráfico, é necessário converter os valores do histograma em valores escalares. Por exemplo, você pode definir as opções de agregação para calcular a média dos valores no histograma ou para calcular um percentil.

Para informações sobre como exibir uma métrica com valor de distribuição em um gráfico de linhas, consulte a seção a seguir.

Métricas de agregação e distribuição

Agregação é o processo de regularizar pontos em uma série temporal e combinar várias séries temporais. A agregação é igual para as métricas de tipo de distribuição que o tipo de valor inteiro ou duplo. No entanto, o tipo de gráfico aplica alguns requisitos às opções usadas para alinhar e agrupar séries temporais.

Gráficos de mapa de calor

Os gráficos de mapa de calor exibem uma série temporal com valor de distribuição. Portanto, a função de alinhamento e a função de agrupamento precisam ser definidas para criar uma única série temporal.

Selecione uma função de alinhamento sum ou delta quando um gráfico exibir um mapa de calor. Essas funções combinam, no nível do bucket, todas as amostras de uma única série temporal que estão no mesmo período de alinhamento, e o resultado é um valor de distribuição. Por exemplo, se duas amostras adjacentes de uma série temporal forem [2, 3, 1, 1] e [2, 5, 4, 1], a função de alinhamento de soma produzirá [4, 8, 5, 2].

A função de agrupamento define como diferentes séries temporais são combinadas. Essa função às vezes é chamada de agregador ou redutor. Para mapas de calor, defina a função de agrupamento como sum. A função de soma adiciona os valores dos mesmos buckets em todos os histogramas, resultando em um novo histograma. Por exemplo, a soma do valor [2, 3, 1, 1] de timeseries-A e do valor [1, 5, 2, 2] da timeseries-B é [3, 8, 3, 3].

Gráficos de linhas

Os gráficos de linhas exibem apenas séries temporais com valor escalar. Se você selecionar uma métrica com valor de distribuição, o gráfico será configurado com os parâmetros ideais para exibir um mapa de calor. Os campos do elemento agregação estão definidos como Distribuição e None.

  • A interpretação de Distribuição depende da métrica específica. Para os tipos de métricas com valor de distribuição que têm um tipo de métrica GAUGE, a função de alinhamento padrão é definida como sum. Quando um tipo de métrica com valor de distribuição tem um tipo de métrica CUMULATIVE, a função de alinhamento padrão é DELTA.

  • A configuração Nenhum garante que todos os horários sejam combinados.

Se você quiser exibir uma métrica com valor de distribuição em um gráfico de linhas, precisará alterar as configurações padrão do gráfico. Por exemplo, para configurar um gráfico de linhas em um painel para exibir o 99º percentil de cada série temporal referente a uma métrica de valor de distribuição, faça o seguinte:

  1. No painel de navegação do console do Google Cloud, selecione Monitoramento e  Painéis:

    Acessar Painéis

  2. Na barra de ferramentas, clique em  Adicionar widget.
  3. Na caixa de diálogo Adicionar widget, selecione  Métrica.
  4. No elemento Métrica e selecione a métrica Instância de VM - latências de RTT.
  5. No elemento Agregação, expanda o primeiro menu e selecione 99o percentil.
  6. No painel Exibição, defina o valor do menu Tipo de widget como Gráfico de linhas.
  7. Opcional: no elemento Agregação, expanda o segundo menu e selecione os rótulos usados para agrupar série temporal. Por padrão, nenhum rótulo é selecionado e, portanto, uma linha é exibida no gráfico.

A seguir

Para informações sobre como determinar o modelo de bucket de uma métrica e como interpretar percentis, consulte Percentis e métricas com valor de distribuição.