Como monitorar o balanceamento de carga de rede

Neste documento, você verá as informações necessárias para entender o balanceamento de carga de rede no Cloud Monitoring.

O balanceamento de carga de rede exporta as métricas chave para o Monitoring.

É possível usar as métricas de monitoramento para:

  • avaliar a configuração, o uso e o desempenho de um balanceador de carga;
  • resolver problemas;
  • Melhorar a utilização de recursos e a experiência do usuário

É possível criar painéis personalizados, configurar alertas e consultar métricas por meio do Monitoring.

Como configurar o monitoramento e os alertas com o Console do Cloud

Consulte Tipos de métricas e recursos para ver uma lista das métricas coletadas. Consulte Filtros para ver listas de atributos que podem ser usados para filtrar os resultados.

Como definir painéis personalizados do Monitoring

É possível criar painéis personalizados do Monitoring com métricas de balanceamento de carga de rede.

  1. Acesse o Monitoring no Console do Google Cloud.
    Acessar "Monitoramento"
  2. Selecione Painéis > Criar painel.
  3. Clique em Adicionar gráfico.
  4. Dê um título ao gráfico.
  5. Selecione as métricas e os filtros.
    É possível encontrar métricas de balanceamento de carga de rede pesquisando o prefixo loadbalancing.googleapis.com/l3/external.
  6. Clique em Save.

Como definir alertas do Monitoring

É possível definir os Alertas do Monitoring com várias métricas de balanceamento de carga de rede:

  1. Acesse o Monitoring no Console do Google Cloud.
    Acessar "Monitoramento"
  2. Selecione Alertas > Criar uma política.
  3. Selecione os tipos de recursos e métricas.
    É possível encontrar os tipos de recursos e métricas de balanceamento de carga de rede pesquisando loadbalancing.googleapis.com/l3/external no campo Localizar tipo de recurso e métrica.
  4. Especifique uma configuração para definir quando um alerta deve ser acionado.
  5. Adicione Filtros, se desejar.
  6. Clique em Salvar.

Frequência e retenção de relatórios de métricas

As métricas dos balanceadores de carga da rede são exportadas para o Monitoring em lotes de granularidade de 1 minuto. Os dados de monitoramento são armazenados por seis semanas. O painel analisa os dados em intervalos padrão de 1H (uma hora), 6H (seis horas), 1D (um dia), 1W (uma semana) e 6W (seis semanas). É possível solicitar a análise manualmente em qualquer intervalo, de seis semanas (6W) a 60 segundos (60s).

Tipos de métricas e recursos

Métrica

As seguintes métricas para balanceadores de carga da rede são relatadas para o Monitoring. É possível usar esses nomes de métrica ao criar solicitações de API.

metric_name Tipo Descrição
loadbalancing.googleapis.com/l3/external/ingress_bytes_count Contador O número de bytes enviados de um cliente para um back-end de balanceador de carga de rede. Nos fluxos TCP, somente os bytes no fluxo do aplicativo são contados. Amostras coletadas a cada 60 segundos. Após a amostragem, os dados não são visíveis por até 150 segundos.
loadbalancing.googleapis.com/l3/external/ingress_packets_count Contador O número de pacotes enviados de um cliente para um back-end do balanceador de carga de rede. Amostras coletadas a cada 60 segundos. Após a amostragem, os dados não são visíveis por até 150 segundos.
loadbalancing.googleapis.com/l3/external/egress_bytes_count Contador O número de bytes enviados de um back-end do balanceador de carga de rede para um cliente. Nos fluxos TCP, apenas bytes no fluxo do aplicativo são contados. Amostras coletadas a cada 60 segundos. Após a amostragem, os dados não são visíveis por até 150 segundos.
loadbalancing.googleapis.com/l3/external/egress_packets_count Contador O número de pacotes enviados de um back-end do balanceador de carga de rede para um cliente. Amostras coletadas a cada 60 segundos. Após a amostragem, os dados não são visíveis por até 150 segundos.
loadbalancing.googleapis.com/l3/external/rtt_latencies

Disponível apenas para tráfego TCP.
Distribuição Uma distribuição de RTT medida em conexões TCP para fluxos do balanceador de carga de rede. Amostras coletadas a cada 60 segundos. Após a amostragem, os dados não são visíveis por até 150 segundos.

Tipos de recurso

resource.type = tcp_lb_rule ou udp_lb_rule

Um balanceador de carga de rede é compatível com tráfego TCP e UDP. É possível especificar o tipo de recurso para limitar os dados a balanceadores de carga TCP ou UDP.

Filters

Rótulos de recursos

É possível restringir a consulta por recurso. Também é possível agrupar os resultados por esses valores.

resource.label.<var>label_key</var>:
label_key Tipo Descrição
projeto string O identificador do projeto do Google Cloud associado a esse recurso, como my-project.
load_balancer_name string O nome do balanceador de carga.
region string A região em que a instância de back-end do balanceador de carga está localizada: us-central1, europe-west1, asia-east1
network_name string A rede VPC na qual o back-end do balanceador de carga reside.
backend_target_type string O tipo do destino do back-end que processou a conexão. Os valores válidos são BACKEND_SERVICE e TARGET_POOL.
backend_target_name string O nome do destino de back-end configurado para este balanceador de carga de rede.
forwarding_rule_name string O nome da regra de encaminhamento usada pelo cliente para se conectar ao balanceador de carga de rede.
forwarding_rule_network_tier string O nível de rede da regra de encaminhamento.
backend_name string O nome do grupo de instâncias de back-end que processou a conexão. Disponível apenas para balanceadores de carga de rede baseados em serviço de back-end.
backend_type string O tipo de back-end que processou a conexão. Disponível apenas para balanceadores de carga de rede baseados em serviço de back-end. O único valor válido é INSTANCE_GROUP. Para um balanceador de carga de rede baseado em pool de destino, o campo é definido como UNSUPPORTED_FOR_TARGET_POOL.
backend_scope string O escopo do grupo de back-end (nome da zona ou região) que processou a conexão.
backend_scope_type string O tipo do escopo do grupo de back-end que processou a conexão. Os valores válidos são: ZONE e REGION.
backend_failover_configuration string Configuração de failover do grupo de back-end que processou a conexão. Os valores válidos são PRIMARY, BACKUP ou UNKNOWN.
backend_subnetwork_name string O nome da sub-rede da instância que recebeu a conexão.
endpoint_zone string A zona do endpoint (instância do Compute Engine/GKE) que processou a conexão.

Rótulos de métrica

É possível restringir sua consulta por rótulo de métrica. Também é possível agrupar os resultados por esses valores.

metric.label.<var>label_key</var>:
label_key Tipo Descrição
client_country string País do cliente que iniciou a conexão com o balanceador de carga da rede.
client_continent string Continente do cliente que iniciou a conexão com o balanceador de carga da rede.

Solicitações da API Monitoring

É possível criar consultas arbitrárias sobre as métricas de balanceamento de carga de rede usando a solicitação projects.timeSeries.list v3 da API Monitoring. A estrutura exata das várias definições segue a semântica dos filtros de monitoramento genéricos.

Exemplos de solicitações da API

  1. Receber todos os bytes enviados de todos os balanceadores de carga da rede no projeto, entre 12:00 e 12:02 UTC, em 01/07/2019, com agregados de 1 minuto:

Parâmetros timeSeries.list:

  • name: projects/PROJECT_ID
  • Filter: resource.type = "tcp_lb_rule" E metric.name="loadbalancing.googleapis.com/l3/external/egress_bytes_count"
  • interval.start_time: 2019-07-01T12:00:00Z
  • interval.end_time: 2019-07-01T12:02:00Z
  • aggregation.alignmentPeriod: 60s
  • aggregation.crossSeriesReducer: REDUCE_SUM
  • aggregation.perSeriesAligner: ALIGN_SUM
  1. Receber a mediana da RTT de todos os balanceadores de carga de rede no projeto, entre 12:19 e 12:20 UTC, em 01/07/2019, divididos por país do cliente:

Parâmetros timeSeries.list:

  • name: projects/PROJECT_ID
  • Filter: resource.type = "tcp_lb_rule" E metric.name="loadbalancing.googleapis.com/l3/external/rtt_latencies"
  • interval.start_time: 2019-07-01T12:19:00Z
  • interval.end_time: 2019-07-01T12:20:00Z
  • aggregation.alignmentPeriod: 60s
  • aggregation.crossSeriesReducer: REDUCE_SUM
  • aggregation.groupByFields: metric.label.client_country
  • aggregation.perSeriesAligner: ALIGN_PERCENTILE_50
  1. Receber o total de bytes de um balanceador de carga de rede específico entre 12:19 e 12:20 UTC, em 01/07/2019, dividido por endpoint_zone e continente do cliente:

Parâmetros timeSeries.list:

  • name: projects/PROJECT_ID
  • Filter: resource.type = "tcp_lb_rule" E resource.label.load_balancer_name = "netlb-bs-1" E metric.name="loadbalancing.googleapis.com/l3/external/ingress_bytes_count"
  • interval.start_time: 2019-07-01T12:19:00Z
  • interval.end_time: 2017-07-01T12:20:00Z
  • aggregation.alignmentPeriod: 60s
  • aggregation.crossSeriesReducer: REDUCE_SUM
  • aggregation.groupByFields: metric.label.client_continent
  • aggregation.groupByFields: resource.label.endpoint_zone
  • aggregation.perSeriesAligner: ALIGN_SUM

A seguir