Passagem externa de registros e monitoramento do balanceador de carga de rede

Neste documento, mostramos como configurar e usar o Cloud Logging e o Cloud Monitoring para balanceadores de carga de rede.

Geração de registros

Os registros fornecem informações úteis para solucionar problemas e monitorar o balanceador de carga de rede de passagem externa. Os registros são agregados por conexão e exportados quase em tempo real. Os registros são gerados para cada fluxo de TCP, UDP, ESP, GRE, ICMP e ICMPv6 de cada instância com balanceamento de carga no tráfego de entrada e saída. Para mais informações sobre os campos fornecidos na entrada de registro, consulte Campos de registro.

Não há cobranças extras pelo uso de registros. Dependendo da maneira como você importa registros, são aplicados os preços padrão ao Cloud Logging, BigQuery ou Pub/Sub. A ativação de registros não afeta o desempenho do balanceador de carga.

O Logging oferece os seguintes benefícios:

  • Monitoramento de tráfego do balanceador de carga de rede de passagem externa. A geração de registros por conexão fornece insights sobre como cada conexão é roteada para os back-ends de exibição.

  • Solução de problemas da rede. É possível usar registros do balanceador de carga de rede de passagem externa para solução de problemas. Para mais informações, consulte Solução de problemas de balanceadores de carga de rede de passagem externa.

Exemplo de formato de registro de um cliente externo para fluxos de VM

O diagrama a seguir mostra o tráfego de entrada e saída de um cliente externo (203.0.113.7), o balanceador de carga da rede (198.51.100.99) e a instância de back-end (10.240.0.2).

Fluxos de serviços de VM de back-end para cliente externo.
Fluxos de entrada e saída de um cliente externo para a VM.

Os registros do balanceador de carga de rede de passagem externa para conexões do cliente com a instância de back-end são formatados da seguinte maneira:

  • connection.clientIp: 203.0.113.7
  • connection.serverIp: 198.51.100.99
  • bytesSent: 1256
  • bytesReceived: 4521

Coleta e amostragem de registros

O Google Cloud analisa pacotes de saída e de entrada nas VMs de back-end do balanceador de carga. Os pacotes amostrados são processados para gerar registros.

Nem todos os pacotes são de amostra. O Google Cloud analisa um subconjunto variável de pacotes, dependendo da quantidade de tráfego no host físico. A taxa de amostragem mais baixa possível é um de 1.024 pacotes. A taxa de amostragem é controlada dinamicamente pelo Google Cloud. Não é possível ajustar a taxa de amostragem.

A amostragem de pacotes interage com as regras de firewall das seguintes maneiras:

  • Os pacotes são testados antes da aplicação das regras de firewall de saída.
  • Os pacotes são amostrados após a aplicação das regras de firewall de entrada.

Após a amostragem de pacotes, o Google Cloud processa os pacotes amostrados de acordo com o procedimento a seguir:

  1. Agregação: os pacotes amostrados são agregados em um intervalo de cinco segundos para produzir uma única entrada de fluxo.

  2. Amostragem de registro configurável (secundária): é um segundo processo de amostragem, que usa os fluxos. Você controla a fração das entradas de fluxo que são emitidas como entradas de registro de acordo com o parâmetro logConfig.sampleRate. Quando logConfig.sampleRate é 1.0 (100%), significa que todos os pacotes de amostra estão processados.

  3. Gravar no Logging: as entradas de registro são gravadas no Cloud Logging.

Campos opcionais

Os registros contêm campos obrigatórios e opcionais. A seção Campos de registro lista quais campos são opcionais e quais são obrigatórios. Todos os campos obrigatórios estão sempre incluídos. É possível personalizar quais campos de metadados manter.

  • Se você selecionar Incluir todos os opcionais, todos os campos opcionais no formato de registro serão incluídos nos registros de fluxo. Quando novos campos opcionais são adicionados ao formato de registro, os registros de fluxo incluem automaticamente os novos campos.

  • Se você selecionar excluir todos os opcionais, isso omitirá todos os campos opcionais.

  • Se você selecionar custom, poderá especificar os campos opcionais que vocêquer incluir pelo campo pai, como serverInstance, ou pelos nomes completos dele, como serverInstance.vm.

Quando novos campos opcionais são adicionados ao formato de registro, os registros não incluirão esses campos, a menos que sejam um novo campo em um campo pai especificado para ser incluído.

Se você especificar um campo opcional personalizado usando os campos pai, quando novos campos opcionais forem adicionados ao formato de registro nesse campo pai, os registros incluirão automaticamente os novos campos. Por exemplo, se você optar por incluir optionalFieldA, um novo campo adicionado aos registros com o nome optionalFieldA.subField1 será incluído automaticamente.

Para instruções sobre como personalizar campos opcionais, consulte Ativar a geração de registros em um novo serviço de back-end.

Requisitos de endereço IP da origem do pacote de respostas

A geração de registros analisa os pacotes de resposta das VMs de back-end se o endereço IP de origem desses pacotes corresponde ao endereço IP da regra de encaminhamento do balanceador de carga. Para conexões TCP, os pacotes de resposta sempre precisam ter origens que correspondam ao destino do pacote de solicitação. No entanto, para outros protocolos, é possível que os pacotes de resposta usem um endereço IP de origem diferente. Para mais informações, consulte Endereços IP para pacotes de solicitação e devolução.

O processo de amostragem de pacotes usado pela geração de registros do balanceador de carga de rede de passagem externa omitirá qualquer pacote de resposta de VMs de back-end se esses pacotes de resposta tiverem origens que não correspondem ao endereço IP de uma regra de encaminhamento para um balanceador de carga de rede de passagem externa.

Ativar a geração de registros em um novo serviço de back-end

Console

  1. No Console do Google Cloud, acesse a página Balanceamento de carga.

    Acessar o "Balanceamento de carga"

  2. Clique no nome do balanceador de carga.
  3. Clique em Editar e selecione Configuração de back-end.
  4. Selecione Criar um serviço de back-end e preencha os campos obrigatórios.
  5. Na seção Logging, marque a caixa de seleção Ativar geração de registros.
  6. Defina uma fração da Taxa de amostragem. Você pode definir uma taxa de 0.0 a 1.0 (padrão).
  7. Opcional: para incluir todos os campos opcionais nos registros, na seção Campos opcionais, clique em Incluir todos os campos opcionais.
  8. Para concluir a edição do serviço de back-end, clique em Atualizar.
  9. Para concluir a edição do balanceador de carga, clique em Atualizar.

gcloud

Crie o serviço de back-end para ativar a geração de registros com o comando gcloud compute backend-services create.

    gcloud compute backend-services create BACKEND_SERVICE \
      --region=REGION \
      --enable-logging \
      --logging-sample-rate=SAMPLE_RATE \
      --logging-optional=LOGGING_OPTIONAL \
      --logging-optional-fields=OPTIONAL_FIELDS
    

Substitua:

  • BACKEND_SERVICE: o nome do serviço de back-end.
  • REGION: a região do serviço de back-end a ser criado.
  • SAMPLE_RATE: este campo só poderá ser especificado se a geração de registros estiver ativada para este serviço de back-end.

    O valor do campo precisa ser de 0.0 to 1.0, em que 0.0 significa que nenhum registro é gerado e 1.0 significa que os registros são gerados para todos os pacotes de amostragem. Ativar a geração de registros, mas definir a taxa de amostragem como 0.0, equivale a desativar a geração de registros. O valor padrão é 1.0.

  • LOGGING_OPTIONAL: os campos opcionais que você quer incluir nos registros:
    • INCLUDE_ALL_OPTIONAL para incluir todos os campos opcionais.
    • EXCLUDE_ALL_OPTIONAL (padrão) para excluir todos os campos opcionais.
    • CUSTOM para incluir uma lista personalizada de campos opcionais especificados em OPTIONAL_FIELDS.
  • OPTIONAL_FIELDS: uma lista separada por vírgulas de campos opcionais que você quer incluir nos registros.

    Por exemplo, serverInstance.vm,serverGkeDetails. Só pode ser definido se LOGGING_OPTIONAL estiver definido como CUSTOM.

API

Faça uma solicitação POST ao método regionBackendServices.insert.

    POST https://compute.googleapis.com/compute/v1/projects/`PROJECT_ID`/regions/`REGION`/backendServices
    

Excluir todos os campos opcionais do registro

    {
    "name": "BACKEND_SERVICE",
    "loadBalancingScheme": "EXTERNAL",
    "logConfig": {
       "enable": true,
       "sampleRate": SAMPLE_RATE
      }
    }
    

Incluir todos os campos opcionais no registro

    {
    "name": "BACKEND_SERVICE",
    "loadBalancingScheme": "EXTERNAL",
    "logConfig": {
       "enable": true,
       "sampleRate": SAMPLE_RATE,
       "optionalMode": "INCLUDE_ALL_OPTIONAL"
      }
    }
    

Incluir uma lista personalizada de campos opcionais

    {
    "name": "BACKEND_SERVICE",
    "loadBalancingScheme": "EXTERNAL",
    "logConfig": {
       "enable": true,
       "sampleRate": SAMPLE_RATE,
       "optionalMode": "CUSTOM",
       "optionalFields": ["field1","field2",...]
      }
    }
    

Ativar a geração de registros em um serviço de back-end

Console

  1. No Console do Google Cloud, acesse a página Balanceamento de carga.

    Acessar o "Balanceamento de carga"

  2. Clique no nome do balanceador de carga.
  3. Clique em Editar e selecione Configuração de back-end.
  4. Ao lado do serviço de back-end, clique em Editar.
  5. Na seção Logging, marque a caixa de seleção Ativar geração de registros.
  6. Defina uma fração da Taxa de amostragem. Você pode definir uma taxa de 0.0 a 1.0 (padrão).
  7. Opcional: para incluir todos os campos opcionais nos registros, na seção Campos opcionais, clique em Incluir todos os campos opcionais.
  8. Para concluir a edição do serviço de back-end, clique em Atualizar.
  9. Para concluir a edição do balanceador de carga, clique em Atualizar.

gcloud

Ative a geração de registros em um serviço de back-end com o comando gcloud compute backend-services update.

    gcloud compute backend-services update BACKEND_SERVICE \
      --region=REGION \
      --enable-logging \
      --logging-sample-rate=SAMPLE_RATE \
      --logging-optional=LOGGING_OPTIONAL \
      --logging-optional-fields=OPTIONAL_FIELDS
    

Substitua:

  • BACKEND_SERVICE: o nome do serviço de back-end.
  • REGION: a região do serviço de back-end a ser criado.
  • SAMPLE_RATE: este campo só poderá ser especificado se a geração de registros estiver ativada para este serviço de back-end.

    O valor do campo precisa ser de 0.0 to 1.0, em que 0.0 significa que nenhum registro é relatado e 1.0 significa que os registros são gerados para todos os pacotes de amostragem. Ativar a geração de registros, mas definir a taxa de amostragem como 0.0, equivale a desativar a geração de registros. O valor padrão é 1.0.

  • LOGGING_OPTIONAL: os campos opcionais que você quer incluir nos registros:
    • INCLUDE_ALL_OPTIONAL para incluir todos os campos opcionais.
    • EXCLUDE_ALL_OPTIONAL (padrão) para excluir todos os campos opcionais.
    • CUSTOM para incluir uma lista personalizada de campos opcionais especificados em OPTIONAL_FIELDS.
  • OPTIONAL_FIELDS: uma lista separada por vírgulas de campos opcionais que você quer incluir nos registros.

    Por exemplo, serverInstance.vm,serverGkeDetails. Só pode ser definido se LOGGING_OPTIONAL estiver definido como CUSTOM.

API

Faça uma solicitação PATCH ao método regionBackendServices/patch.

      PATCH https://compute.googleapis.com/compute/v1/projects/`PROJECT_ID`/regions/`REGION`/backendServices/`BACKEND_SERVICE`
     

Excluir todos os campos opcionais do registro

     "logConfig": {
       "enable": true,
       "sampleRate": SAMPLE_RATE,
       "optionalMode": "EXCLUDE_ALL_OPTIONAL"
      }
     

Incluir todos os campos opcionais no registro

    {
    "name": "BACKEND_SERVICE",
    "loadBalancingScheme": "EXTERNAL",
    "logConfig": {
       "enable": true,
       "sampleRate": SAMPLE_RATE,
       "optionalMode": "INCLUDE_ALL_OPTIONAL"
      }
    }
    

Incluir uma lista personalizada de campos opcionais

    {
    "name": "BACKEND_SERVICE",
    "loadBalancingScheme": "EXTERNAL",
    "logConfig": {
       "enable": true,
       "sampleRate": SAMPLE_RATE,
       "optionalMode": "CUSTOM",
       "optionalFields": ["field1","field2",...]
      }
    }
    

Ativar a geração de registros em um serviço de back-end

Console

  1. No Console do Google Cloud, acesse a página Balanceamento de carga.

    Acessar o "Balanceamento de carga"

  2. Clique no nome do balanceador de carga.

  3. Clique em Editar e selecione Configuração de back-end.

  4. Para desativar totalmente a geração de registros, na seção Registro, desmarque a caixa de seleção Ativar geração de registros.

  5. Se a geração de registros permanecer ativada, será possível definir uma fração da taxa de amostragem diferente. Você pode definir a taxa de 0.0 a 1.0 (padrão). Para gerar registros apenas para 20% dos pacotes de amostragem, defina o valor como 0.2.

  6. Para concluir a edição do serviço de back-end, clique em Atualizar.

  7. Para concluir a edição do balanceador de carga, clique em Atualizar.

gcloud

Desative a geração de registros no serviço de back-end com o comando gcloud compute backend-services update.

gcloud compute backend-services update BACKEND_SERVICE \
  --region=REGION \
  --no-enable-logging

Substitua:

  • BACKEND_SERVICE: o nome do serviço de back-end.
  • REGION: a região do serviço de back-end.

API

Faça uma solicitação PATCH ao método regionBackendServices/patch.

 PATCH https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/backendServices/BACKEND_SERVICE

 {
 "logConfig": {
   "enable": false
  }
 }
 

Ver registros

Quando os registros são ingeridos no Cloud Logging e não excluídos por um coletor do roteador de registros, é possível ler os registros usando a API Cloud Logging e a Google Cloud CLI.

Para ver todos os registros de balanceador de carga de rede de passagem externa:

Console

  1. No console do Google Cloud, acesse a página do Explorador de registros.

    Acessar a Análise de registros

  2. Selecione o tipo de recurso Regra de balanceador de carga de rede de passagem externa.

  3. Selecione o nome do registro loadbalance.googleapis.com/flows.

Consulta do console

  1. No console do Google Cloud, acesse a página do Explorador de registros.

    Acessar a Análise de registros

  2. Clique no botão de alternância Mostrar consulta.

  3. Cole o código abaixo no campo "Consulta". Substitua PROJECT_ID pelo ID do projeto.

    resource.type="loadbalancing.googleapis.com/ExternalNetworkLoadBalancerRule"
    logName="projects/PROJECT_ID/logs/loadbalancing.googleapis.com%2Fflows"
    
  4. Clique em Executar consulta.

Ver registros de um serviço de back-end específico

Para visualizar os registros de balanceador de carga de rede de passagem externa para um serviço de back-end específico:

Consulta do console

  1. No console do Google Cloud, acesse a página do Explorador de registros.

    Acessar a Análise de registros

  2. Clique no botão de alternância Mostrar consulta.

  3. Cole o código abaixo no campo "Consulta". Substitua PROJECT_ID pelo ID do projeto e BACKEND_SERVICE_NAME pelo nome do serviço de back-end.

    resource.type="loadbalancing.googleapis.com/ExternalNetworkLoadBalancerRule"
    logName="projects/PROJECT_ID/logs/loadbalancing.googleapis.com%2Fflows"
    resource.labels.backend_service_name="BACKEND_SERVICE_NAME"
    
  4. Clique em Executar consulta.

Ver registros de um grupo de instâncias de back-end

Para visualizar os registros de balanceador de carga de rede de passagem externa para um grupo de instâncias de back-end específico:

Consulta do console

  1. No console do Google Cloud, acesse a página do Explorador de registros.

    Acessar a Análise de registros

  2. Clique no botão de alternância Mostrar consulta.

  3. Cole o código abaixo no campo "Consulta". Substitua PROJECT_ID pelo ID do projeto e BACKEND_GROUP_NAME pelo nome do grupo de instâncias.

    resource.type="loadbalancing.googleapis.com/ExternalNetworkLoadBalancerRule"
    logName="projects/PROJECT_ID/logs/loadbalancing.googleapis.com%2Fflows"
    resource.labels.backend_group_name="BACKEND_GROUP_NAME"
    
  4. Clique em Executar consulta.

Campos de registro

Os registros contêm campos obrigatórios, que são os campos padrão de cada registro, e campos opcionais que adicionam mais informações. Esses campos podem ser omitidos para economizar nos custos de armazenamento.

Alguns campos de registro aparecem em um formato múltiplo, com mais de um dado em cada campo. Por exemplo, o campo connection é do formato IpConnection, que contém o endereço IP e a porta de origem e destino, mais o protocolo, em um único campo. Esses campos são descritos na tabela de formatos de registro a seguir.

O recurso monitorado é loadbalancing.googleapis.com/ExternalNetworkLoadBalancerRule.

Campo Formato do campo Tipo de campo: obrigatório ou opcional Descrição
conexão IpConnection Obrigatório Quíntuplo que descreve esta conexão.
startTime string Obrigatório Carimbo de data/hora (formato de string de data RFC 3339) do primeiro pacote observado durante o intervalo de tempo agregado.
endTime string Obrigatório Carimbo de data/hora (formato de string de data RFC 3339) do último pacote observado durante o intervalo de tempo agregado.
bytesSent int64 Obrigatório Número de bytes enviados do servidor para o cliente.
bytesReceived int64 Obrigatório Número de bytes recebidos pelo servidor do cliente.
packetsSent int64 Obrigatório Número de pacotes enviados do servidor ao cliente.
packetsReceived int64 Obrigatório Número de pacotes recebidos pelo servidor do cliente.
rtt string Obrigatório

A latência é medida apenas para conexões TCP. A latência é a soma do RTT (tempo de retorno) estimado da rede mais o tempo consumido no processamento do pacote dentro do sistema operacional do cliente.

Para pacotes de amostra, o RTT é calculado pela perspectiva de um back-end com balanceamento de carga medindo as diferenças de tempo entre o back-end que envia um segmento TCP e o que recebe uma confirmação de TCP para o número de sequência do segmento enviado.

A latência é formatada como uma string que começa com um número de segundos e termina com "s" para indicar segundos. Nanossegundos são demonstrados como segundos fracionários. Por exemplo, a latência de 250 milissegundos é formatada como "0,250000000s".

serverInstance InstanceDetails Opcional Os detalhes da instância de VM de back-end.
clientLocation GeographicDetails Opcional Os metadados de local disponíveis do cliente.
serverGkeDetails GkeDetails Opcional Metadados do GKE para o back-end do servidor. Disponível apenas se o back-end for um endpoint do GKE.
networkTier NetworkTierDetails Opcional Nível de rede para conexões externas, preenchido apenas quando o cliente não está no Google Cloud.

Formato do campo IpConnection

Campo Tipo Descrição
clientIp string Endereço IP do cliente
clientPort int32 Porta do cliente. Definido apenas para conexões TCP e UDP.
serverIp string Endereço IP do servidor (IP da regra de encaminhamento)
serverPort int32 Porta do servidor. Definido apenas para conexões TCP e UDP.
protocol int32 Número do protocolo IANA

Formato do campo InstanceDetails

Campo Tipo Descrição
projectId string Código do projeto que contém a VM
vm string Nome da instância da VM
region string Região da VM
zone string Zona da VM
vmIp string Endereço IPv4 interno principal da interface de rede que serviu a conexão

Formato do campo GeographicDetails

Campo Tipo Descrição
continent string Nome do continente
regionCode string Um código regional CLDR Unicode, como US ou FR. Na maioria dos países, esses códigos correspondem diretamente a códigos ISO-3166-2.
subRegion string Um ID de subdivisão Unicode CLDR, por exemplo, uma província ou um estado do país, como USCA ou CAON. Esses códigos Unicode são derivados das subdivisões definidas pelo padrão ISO-3166-2.
cidade string Nome da cidade. Por exemplo, Mountain View para Mountain View, Califórnia. Não há uma lista canônica de valores válidos para essa variável. Os nomes das cidades podem conter letras US-ASCII, números, espaços e os seguintes caracteres: !#$%&'*+-.^_`|~.
asn int32 O número de sistema autônomo (ASN) da rede externa a que este endpoint pertence.

Formato do campo GkeDetails

Campo Tipo Descrição
cluster ClusterDetails Metadados do cluster do GKE
pod PodDetails Metadados do pod do GKE, preenchidos quando a origem ou o destino do tráfego for um pod.
serviço ServiceDetails Metadados do serviço do GKE, preenchidos apenas em endpoints de serviço. O registro contém até dois serviços. Se houver mais de dois serviços relevantes, esse campo conterá um único serviço com um marcador especial MANY_SERVICES.

Formato do campo ClusterDetails

Campo Tipo Descrição
cluster string Nome do cluster do GKE
clusterLocation string Local do cluster. O local do cluster pode ser uma zona ou região.

Formato do campo PodDetails

Campo Tipo Descrição
pod string Nome do pod
podNamespace string Namespace do pod

Formato do campo ServiceDetails

Campo Tipo Descrição
serviço string Nome do serviço. Se houver mais de dois serviços relevantes, o campo será definido como um marcador especial MANY_SERVICES.
serviceNamespace string Namespace do Serviço

Formato do campo NetworkTierDetails

Campo Tipo Descrição
networkTier string NetworkTier usado na conexão, um dos [PREMIUM, STANDARD, FIXED_STANDARD, UNKNOWN].

Monitoramento

Os balanceadores de carga de rede de passagem externa exportam métricas importantes para o Cloud Monitoring.

É possível usar métricas do Monitoring 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

Além dos painéis predefinidos no Monitoring, é possível criar painéis personalizados, configurar alertas e consultar as métricas por meio da API Monitoring.

Ver painéis do Monitoring

Console

  1. No Console do Google Cloud, acesse a página Monitoring.

    Acessar Monitoring

  2. No painel de navegação, selecione Painéis.

  3. Selecione o painel Balanceadores de carga do Google Cloud. Todos os balanceadores de carga são exibidos.

  4. Selecione o nome do balanceador de carga na lista.

No painel Detalhes do balanceador de carga de rede de passagem externa, é possível ver vários detalhes do balanceador de carga selecionado. Este painel mostra as configurações atuais.

No painel Métricas principais, é possível ver gráficos de cada uma delas. Para conferir detalhes específicos, clique em Detalhamentos. Esse painel apresenta dados informados por configurações históricas, enquanto o painel Detalhes do balanceador de carga de rede exibe apenas as configurações atuais. Para mais informações, consulte Painéis e gráficos.

Definir painéis personalizados do Monitoring

É possível criar painéis personalizados do Monitoring sobre métricas de passagem externa do balanceador de carga de rede.

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.

Console

  1. No Console do Google Cloud, acesse a página Monitoring.

    Acessar Monitoring

  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.

    Para encontrar as métricas do balanceador de carga de rede de passagem externa, pesquise o prefixo loadbalancing.googleapis.com/l3/external.

  6. Clique em Save.

Definir alertas do Monitoring

É possível definir alertas do Monitoring com várias métricas de balanceador de carga de rede de passagem externa:

Console

  1. No Console do Google Cloud, acesse a página Monitoring.

    Acessar Monitoring

  2. Selecione Alertas > Criar uma política.

  3. Selecione os tipos de recursos e métricas.

    Para encontrar métricas e tipos de recursos do balanceador de carga de rede, procure loadbalancing.googleapis.com/l3/external no campo Encontrar 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 Save.

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

As métricas dos balanceadores de carga de rede de passagem externa são exportadas para o Monitoring em lotes de granularidade de um minuto. Os dados de monitoramento são armazenados por seis semanas. As métricas são baseadas no tráfego de amostragem (a taxa de amostragem é dinâmica e não pode ser ajustada). O painel fornece análise de dados em intervalos padrão de uma hora (1H), seis horas (6H), um dia (1D), uma semana (1W) e seis semanas (6W). É possível solicitar a análise manualmente em qualquer intervalo, de seis semanas a 60 segundos.

Tipos de métricas e recursos

Métrica

As seguintes métricas de balanceadores de carga de rede de passagem externa são relatadas no 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 externo. Nos fluxos TCP, somente os bytes no fluxo do aplicativo são contados.
loadbalancing.googleapis.com/l3/external/ingress_packets_count Contador O número de pacotes enviados de um cliente para um back-end de balanceador de carga de rede externo.
loadbalancing.googleapis.com/l3/external/egress_bytes_count Contador O número de bytes enviados de um back-end de passagem externa do balanceador de carga de rede para um cliente. Nos fluxos TCP, somente os bytes no fluxo do aplicativo são contados.
loadbalancing.googleapis.com/l3/external/egress_packets_count Contador O número de pacotes enviados de um back-end de balanceador de carga de rede de passagem externa para um cliente.
loadbalancing.googleapis.com/l3/external/rtt_latencies Distribuição

Uma distribuição de rtt medida por conexões TCP para fluxos de balanceador de carga de rede de passagem externos.

Disponível apenas para tráfego TCP.

Tipos de recurso

Os balanceadores de carga de rede de passagem externa usam os seguintes tipos de recursos:

  • tcp_lb_rule
  • udp_lb_rule
  • loadbalancing.googleapis.com/ExternalNetworkLoadBalancerRule

Um balanceador de carga de rede de passagem externa é compatível com tráfego TCP, UDP, ESP, GRE, ICMP e ICMPv6.

Especifique o tipo de recurso como tcp_lb_rule ou udp_lb_rule para limitar os dados monitorados para os protocolos TCP ou UDP. É possível especificar o tipo de recurso como loadbalancing.googleapis.com/ExternalNetworkLoadBalancerRule para monitorar todos os protocolos compatíveis, incluindo TCP, UDP, ESP, GRE, ICMP e ICMPv6.

Filtros

As métricas são agregadas para cada balanceador de carga de rede de passagem externa. Você pode filtrar as métricas agregadas pelas seguintes dimensões.

Rótulos de recursos para tcp_lb_rule ou udp_lb_rule

É 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
project string O identificador do projeto do Google Cloud associado a esse recurso.
load_balancer_name string O nome do balanceador de carga.
region string A região onde o back-end do balanceador de carga está localizado, por exemplo, 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 Indica se o balanceador de carga de rede de passagem externa é baseado em pool de destino ou serviço de back-end. Os valores válidos são BACKEND_SERVICE ou TARGET_POOL.
backend_target_name string Para balanceadores de carga de rede de passagem externa baseados em pool de destino, o nome do pool de destino. Para balanceadores de carga de rede externos de passagem baseados em serviço de back-end, o nome do serviço de back-end.
forwarding_rule_name string O nome da regra de encaminhamento.
forwarding_rule_network_tier string O nível de rede da regra de encaminhamento.
backend_name string

O nome do back-end que processou a conexão.

Para um balanceador de carga de rede de passagem externa baseado em serviço de back-end, o valor é o nome do grupo de instâncias de back-end ou do grupo de endpoints de rede (NEG) que processou a conexão.

Para um balanceador de carga de rede de passagem externa baseado em pool de destino, o valor é o nome do pool de destino.

backend_type string

O tipo de back-end que processou a conexão.

Para um balanceador de carga de rede de passagem externa baseado em serviço de back-end, o valor pode ser INSTANCE_GROUP ou NETWORK_ENDPOINT_GROUP.

Para um balanceador de carga de rede de passagem externa baseado em pool de destino, o valor é TARGET_POOL.

backend_scope string

Para um balanceador de carga de rede externo de passagem baseada em serviço de back-end, a zona ou região do grupo de instâncias de back-end ou NEG.

Para um balanceador de carga de rede baseado em pool de destino, o valor é UNSUPPORTED_FOR_TARGET_POOL.

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

Para um balanceador de carga de rede baseado em pool de destino, o valor é UNSUPPORTED_FOR_TARGET_POOL.

backend_failover_configuration string A 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 do back-end que recebeu a conexão.
endpoint_zone string A zona da VM de back-end que processou a conexão.

Rótulos de recursos para loadbalancing.googleapis.com/ExternalNetworkLoadBalancerRule

É 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
project string O identificador do projeto do Google Cloud associado a esse recurso.
region string A região em que o back-end do balanceador de carga está localizado, por exemplo, us-central1, europe-west1, asia-east1.
backend_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 ou TARGET_POOL.
backend_service_name string O nome do serviço de back-end que processou a conexão. Se backend_target_type for TARGET_POOL, o valor será UNSUPPORTED_FOR_TARGET_POOL.
primary_target_pool string O nome do pool de destino principal. Se backend_target_type for BACKEND_SERVICE, o valor será UNSUPPORTED_FOR_BACKEND_SERVICE.
target_pool string O nome do pool de destino. Se backend_target_type for BACKEND_SERVICE, o valor será UNSUPPORTED_FOR_BACKEND_SERVICE.
forwarding_rule_name string O nome da regra de encaminhamento do balanceador de carga de rede de passagem externa.
backend_group_name string O nome do grupo de back-end que processou a conexão. Se backend_target_type for TARGET_POOL, o valor será UNSUPPORTED_FOR_TARGET_POOL.
backend_group_type string

O tipo do grupo de back-end que processou a conexão.

Se backend_target_type for BACKEND_SERVICE, o valor será INSTANCE_GROUP ou NETWORK_ENDPOINT_GROUP.

Se o backend_target_type for TARGET_POOL, o valor será UNSUPPORTED_FOR_TARGET_POOL.

backend_group_scope string O escopo do grupo de back-end (nome da zona ou região) que processou a conexão. Se o backend_target_type for TARGET_POOL, o valor será UNSUPPORTED_FOR_TARGET_POOL.
backend_subnetwork_name string O nome da sub-rede do ack-end que recebeu a conexão.
backend_zone string A zona da VM de back-end 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 O país do cliente que iniciou a conexão com o balanceador de carga de rede de passagem externa.
client_continent string O continente do cliente que iniciou a conexão com o balanceador de carga de rede de passagem externa.
protocol string

O protocolo na conexão para o recurso loadbalancing.googleapis.com/ExternalNetworkLoadBalancerRule.

Este campo é deixado em branco para os recursos tcp_lb_rule e udp_lb_rule.

Solicitações da API Monitoring

É possível criar consultas arbitrárias sobre as métricas do balanceador 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

  • 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
  • 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
  • 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 zona de endpoint 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