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 horário 1:00. Essa tabela ilustra como fazer uma série de medições e convertê-las em contagens de bucket. Suponha que as contagens de bucket nos horários 1:01, 1:02 e 1:03 sejam como 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 exibe uma sequência de histogramas indexados por tempo. Cada 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 momento específico, some as contagens de bucket. No entanto, as medições reais não são mostradas, porque não estão disponíveis em métricas de 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 podem mostrar apenas uma série temporal, defina as opções de agregação para combinar todas as séries temporais.

Para usar o Metrics Explorer e mostrar a soma das latências de RTT de uma instância de VM, faça o seguinte:
  1. No Console do Google Cloud, acesse a página do  Metrics Explorer:

    Acesse o Metrics explorer

    Se você usar a barra de pesquisa para encontrar essa página, selecione o resultado com o subtítulo Monitoramento.

  2. No elemento Metric, 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 e 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  MQL ou  PromQL.
  2. Verifique se MQL está selecionado na opção de ativar/desativar MQL. A alternância de idiomas está na mesma barra de ferramentas que permite formatar sua 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 de série temporal são buscados, alinhados e agrupados. O processo de alinhamento usa uma função de alinhamento delta com um período de alinhamento de um minuto. Como o primeiro argumento para group_by é [], todas as séries temporais 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 das diferentes séries temporais são combinados com a função aggregate, que é selecionada pelo MQL.

Se você usar menus para selecionar a métrica e depois mudar para o MQL, suas seleções serão convertidas em uma consulta MQL formulário 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 à original Exemplo de MQL.

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, é possível 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 próxima seção.

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 da soma produz [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 a função 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 parâmetros ideais para mostrar um mapa de calor. Os campos do elemento Aggregation são definidos como Distribution e None.

  • A interpretação de Distribuição depende da métrica específica. Para tipos de métrica 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 mostrar uma métrica com valor de distribuição em um gráfico de linhas, mude 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 console do Google Cloud, acesse a página  Painéis:

    Ir para Painéis

    Se você usar a barra de pesquisa para encontrar essa página, selecione o resultado com o subtítulo Monitoramento.

  2. Na barra de ferramentas, clique em  Add widget.
  3. Na caixa de diálogo Adicionar widget, selecione  Métrica.
  4. No elemento Métrica, e selecione o Métrica Instância de VM: latências de RTT.
  5. No elemento Agregação, abra o primeiro menu e selecione 99o percentil.
  6. No painel Display, defina o valor do menu Widget type como Line chart.
  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.