Geração de registros e monitoramento do balanceamento de carga HTTP(S) interno

Neste documento, apresentamos as informações necessárias para entender as métricas de geração de registros e monitoramento do balanceamento de carga HTTP(S) interno.

Logging

É possível ativar a geração de registros por serviço de back-end. Um único mapa de URL do balanceador de carga HTTP(S) interno pode referir-se a mais de um serviço de back-end. Por isso, talvez seja necessário ativar a geração de registros para mais de um serviço de back-end, dependendo da configuração.

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

Console

  1. Acesse a página "Balanceamento de carga" no Console do Google Cloud.
    Acessar a página "Balanceamento de carga"
  2. Clique no nome do balanceador de carga.
  3. Clique em Editar .
  4. Clique em Configuração de back-end.
  5. Clique em Editar ao lado do serviço de back-end.
  6. Clique em Configurações avançadas (afinidade de sessão, tempo limite de diminuição da conexão).
  7. Clique em Ativar a geração de registros.
  8. Defina uma fração da Taxa de amostragem. Ela pode ser definida como qualquer número de 0.0 a 1.0 (padrão).
  9. Clique em Update.

gcloud

Atualize o serviço de back-end para ativar a geração de registros com o comando gcloud compute instance-templates create.

gcloud compute backend-services update backend-service \
    --enable-logging \
    --logging-sample-rate=rate \
    --region=region

onde

  • --enable-logging ativa a geração de registros para esse serviço de back-end.
  • --logging-sample-rate permite especificar um valor de 0.0 a 1.0, em que 0.0 significa que nenhuma solicitação é registrada e 1.0 significa que 100% das solicitações são registradas. Só é significativo com o parâmetro --enable-logging. Ativar a geração de registros, mas definir a taxa de amostragem como 0.0, equivale a desativar a geração de registros.

Depois de ativar a geração de registros no serviço de back-end, cada solicitação HTTP(S) é registrada usando o Cloud Logging.

Como visualizar os registros

Para visualizar os registros, acesse o Visualizador de registros.

Os registros do balanceador de carga HTTP(S) interno são indexados primeiro por rede e, em seguida, por região.

  • Para ver os registros de todos os balanceadores de carga HTTP(S) internos, no primeiro menu suspenso, selecione Regra de balanceamento de carga HTTP/S interno.
  • Para ver os registros de apenas uma rede, selecione Regra de balanceamento de carga HTTP/S interno e, em seguida, selecione o nome de uma rede.
  • Para ver os registros de apenas uma região da rede, selecione Regra de balanceamento de carga HTTP/S interno > network > region.

Os campos de registro do tipo booleano normalmente só aparecem se tiverem um valor true. Se um campo booleano tem um valor false, esse campo é omitido do registro.

A codificação UTF-8 é aplicada aos campos de registro. Os caracteres que não forem UTF-8 serão substituídos por pontos de interrogação.

É possível configurar a exportação de métricas com base em registros para registros de recursos (resource.type="internal_http_lb_rule). As métricas criadas são baseadas no recurso "Regra de balanceamento de carga HTTP/S interno (métricas com base em registros)", disponível nos painéis do Cloud Monitoring:

Acessar o Monitoring

O que é registrado

As entradas de registro do balanceamento de carga HTTP(S) contêm informações úteis para monitoramento e depuração do tráfego HTTP(S). As entradas de registro contêm:

  • informações gerais mostradas na maioria dos registros do GCP, como gravidade, ID do projeto, número do projeto, carimbo de data/hora e assim por diante;
  • campos de registro HttpRequest.

Campos de registro

Os registros são protos do LogEntry.

Campo Tipo Descrição
logName string O nome do recurso do registro a que a entrada pertence.
No formato "projects/[PROJECT_ID]/logs/requests".
timestamp Formato do carimbo de data/hora A hora em que a solicitação começou.
severity Formato LogSeverity A gravidade da entrada de registro. O padrão é LogSeverity.DEFAULT.
httpRequest Objeto HttpRequest Um proto HttpRequest que descreve a solicitação HTTP(S) que está sendo registrada.
trace string O nome do recurso do trace associado à entrada de registro, se houver. Se ele incluir um nome de recurso relativo, presume-se que o nome é https://tracing.googleapis.com. Exemplo: projects/my-projectid/traces/06796866738c859f2f19b7cfb3214824.
spanId string O ID do período dentro do trace associado à entrada de registro. Para períodos de trace, esse é o mesmo formato que a API Trace v2 usa: uma codificação hexadecimal de 16 caracteres de uma matriz de 8 bytes, como 000000000000004a.
resource Objeto MonitoredResource O recurso monitorado associado a essa entrada de registro. Consulte o objeto MonitoredResource.

MonitoredResource

Campo Tipo Descrição
networkName string O nome da rede VPC do balanceador de carga.
region string O nome da região do Google Cloud do balanceador de carga.
urlMapName string O nome do objeto do mapa de URL configurado para selecionar um serviço de back-end.
forwardingRuleName string O nome do objeto da regra de encaminhamento.
targetProxyName string O nome do objeto do proxy de destino referenciado pela regra de encaminhamento.
matchedUrlPathRule string A regra de caminho do mapa de URL ou a regra de rota configurada como parte da chave do mapa de URL. Pode ser UNMATCHED ou UNKNOWN como substitutos.
  • UNMATCHED refere-se a uma solicitação que não corresponde a regras de caminho de URL e, portanto, usa a regra de caminho padrão.
  • UNKNOWN indica um erro interno.
backendTargetName string O nome do back-end selecionado para processar a solicitação, com base na regra de caminho do mapa de URL ou na regra de rota que corresponde à solicitação.
backendTargetType string O tipo de destino de back-end (BACKEND_SERVICE/UNKNOWN).
backendName string O nome do grupo de instâncias de back-end ou NEG.
backendType string O tipo do back-end, grupo de instâncias ou NEG.
backendScope string O escopo do back-end (nome da zona ou nome da região). Poderá ser UNKNOWN sempre que backendName for desconhecido.
backendScopeType string O escopo do back-end (REGION/ZONE). Poderá ser "UNKNOWN" sempre que backendName for desconhecido.

Monitorar

O balanceamento de carga HTTP(S) interno exporta dados de monitoramento 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.

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.

Como visualizar métricas do Cloud Monitoring

Para visualizar as métricas de um recurso monitorado usando o Metrics Explorer, faça o seguinte:

  1. No Console do Google Cloud, acesse Monitoring ou use o botão
    Acessar Monitoring
  2. No painel de navegação do Monitoring, clique em Metrics Explorer.
  3. Verifique se Metric é a guia selecionada.
  4. Clique na caixa Find resource type and metric e, em seguida, insira ou selecione no menu o nome do recurso e da métrica. Use as informações a seguir para preencher os campos dessa caixa de texto:
    1. Em Recurso, selecione ou insira internal_http_lb_rule. Isso seleciona o recurso Regra de balanceamento de carga HTTP/S interno.
    2. Em Métricas, selecione a partir do menu.
  5. Use os menus Filtro, Agrupar por e Agregação para modificar a exibição dos dados. Por exemplo, é possível agrupar por rótulos de recurso ou métrica. Para mais informações, consulte Como selecionar métricas.

Como definir políticas de alertas

É possível criar políticas de alertas para monitorar os valores das métricas e ser notificado quando elas violarem uma condição. As etapas gerais para criar uma política de alertas que monitore um ou mais recursos do balanceador de carga HTTP/S interno são as seguintes:

  1. No Console do Google Cloud, acesse o Monitoring.

    Acessar o Monitoring

  2. No painel de navegação do Monitoring, selecione Alertas e depois Criar política.
  3. Clique em Adicionar condição:
    1. As configurações no painel Destino especificam o recurso e a métrica a serem monitorados. Clique na caixa de texto para ativar um menu e selecione o recurso Balanceador de carga HTTP/S interno. Em seguida, selecione uma métrica da lista.
    2. As configurações da política de alertas no painel Configuração determinam quando o alerta é acionado. A maioria dos campos nesse painel é preenchida com valores padrão. Para mais informações sobre os campos no painel, consulte Configuração na documentação das políticas de alertas.
    3. Clique em Adicionar.
  4. Para acessar a seção de notificações, clique em Próxima.
  5. Opcional: para adicionar notificações à sua política de alertas, clique em Canais de notificação. Na caixa de diálogo, selecione um ou mais canais de notificação no menu e clique em OK.

    Se um canal que você quer adicionar não estiver listado, clique em Gerenciar canais de notificação. Você será direcionado para a página Canais de notificação em uma nova guia do navegador. Nessa página, é possível atualizar os canais de notificação configurados. Depois de concluir as atualizações, retorne à guia original, clique em Atualizar e selecione os canais de notificação a serem adicionados à política de alertas.

  6. Para avançar à seção de documentação, clique em Avançar.
  7. Clique em Nome e digite um nome para a política de alertas.
  8. Opcional: clique em Documentação e adicione as informações que você quer em uma mensagem de notificação.
  9. Clique em Salvar.
Para mais informações, consulte Políticas de alertas.

Como definir painéis personalizados do Monitoring

É possível criar painéis personalizados do Monitoring nas métricas de balanceamento de carga HTTP(S) interno:

  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. Para métricas, o tipo de recurso é Balanceador de carga HTTP/S interno.
  6. Clique em Salvar.

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

As métricas dos balanceadores de carga são exportadas para o Monitoring em lotes de granularidade de 1 minuto. Os dados de monitoramento são retidos por seis semanas. O painel fornece análise de 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 manualmente a análise em qualquer intervalo, de 6W a 1 minuto.

Como monitorar métricas de balanceadores de carga HTTP(S) internos

As seguintes métricas para balanceadores de carga HTTP(S) internos são relatadas no Monitoring:

Metric FQDN Descrição
Contagem de solicitações loadbalancing.googleapis.com/https/internal/request_count O número de solicitações exibidas pelo balanceador de carga HTTP(S) interno
Contagem de bytes da solicitação loadbalancing.googleapis.com/https/internal/request_bytes O número de bytes enviados como solicitações dos clientes para o balanceador de carga HTTP(S) interno
Contagem de bytes da resposta loadbalancing.googleapis.com/https/internal/response_bytes O número de bytes enviados como respostas do balanceador de carga HTTP(S) interno para o cliente
Latências totais loadbalancing.googleapis.com/https/internal/total_latencies Uma distribuição da latência, em milissegundos, medida a partir do momento em que o primeiro byte da solicitação é recebido pelo proxy até o momento em que o último byte da resposta é enviado pelo proxy.
Latências de back-end loadbalancing.googleapis.com/https/internal/backend_latencies Uma distribuição da latência, em milissegundos, medida a partir do momento em que o proxy envia o primeiro byte da solicitação ao back-end até quando o proxy recebe o último byte da resposta do back-end.

Dimensões de filtros de métricas do balanceador de carga HTTP(S) interno

As métricas são agregadas para cada balanceador de carga HTTP(S) interno. As métricas agregadas podem ser filtradas pelas seguintes dimensões:

Propriedade Descrição
BACKEND_SCOPE A zona ou região do Google Cloud Platform do grupo de back-ends que veiculou a solicitação do cliente, ou a string especial para casos em que o grupo de back-ends não foi atribuído. Exemplos: us-central1-a, europe-west1-b, asia-east1, UNKNOWN
PROXY_REGION Região do balanceador de carga HTTP(S) interno, cliente e back-end. Exemplos: us-central1, europe-west1 ou asia-east1
BACKEND O nome do grupo de instâncias de back-end ou NEG que exibiu a solicitação do cliente
BACKEND_TARGET O nome do serviço de back-end que exibiu a solicitação do cliente
MATCHED_URL_RULE A regra de caminho do mapa de URL ou a regra de rota que correspondeu ao prefixo da solicitação HTTP(S) do cliente (até 50 caracteres)

A métrica Response code class fraction é aceita em todo o balanceador de carga. Não é permitida mais granularidade.

A seguir