Usar métricas do Policy Controller

Nesta página, explicamos como usar métricas para monitorar o Policy Controller.

O Policy Controller inclui várias métricas relacionadas ao uso da política. Por exemplo, há métricas que registram o número de restrições e modelos de restrição, e o número de violações de auditoria detectadas. Para criar e registrar essas métricas, o Policy Controller usa o OpenTelemetry. É possível configurar o Policy Controller para exportar essas métricas para o Prometheus ou o Cloud Monitoring. A configuração padrão de exportação de métricas exporta as métricas para o Prometheus e o Cloud Monitoring.

Configurar a exportação de métricas

É possível configurar como o Policy Controller exporta as métricas. É possível escolher o Prometheus, o Cloud Monitoring, os dois ou nenhum deles ao instalar o Policy Controller. Por padrão, o Policy Controller tenta exportar métricas para o Prometheus e para o Cloud Monitoring.

Exportar métricas para o Cloud Monitoring

Se o Controlador de Políticas estiver em execução em um ambiente do Google Cloud que tenha uma conta de serviço padrão, ele vai exportar automaticamente as métricas para o Cloud Monitoring.

Se a Federação de Identidade da Carga de Trabalho para GKE do GKE ou a Federação de Identidade da Carga de Trabalho para GKE da frota estiverem ativadas, permita que o Controlador de Políticas envie métricas executando este comando:

Os clusters do GKE no VMware, em bare metal e em clusters multicloud do GKE (na AWS e no Azure) são registrados automaticamente na frota do projeto com a Federação de Identidade da Carga de Trabalho para GKE ativada.

gcloud projects add-iam-policy-binding PROJECT_ID \
  --member="serviceAccount:PROJECT_ID.svc.id.goog[gatekeeper-system/gatekeeper-admin]" \
  --role=roles/monitoring.metricWriter

Substitua PROJECT_ID pelo ID do projeto do Google Cloud do cluster.

É possível exibir essas métricas no Metrics Explorer ou usando a API Cloud Monitoring.

Exportar métricas para o Prometheus

O Controlador de Políticas exporta métricas para o Prometheus na porta 8888 do pod gatekeeper-controller-manager-* no namespace gatekeeper-system.

Se o Controlador de Políticas estiver em execução em um cluster com o Google Cloud Managed Service para Prometheus configurado, essas métricas serão coletadas e armazenadas automaticamente no Cloud Monitoring. Isso também funciona para clusters que ativam o Google Cloud Managed Service para Prometheus depois que o Controlador de Políticas é instalado. Dependendo das suas políticas, talvez seja necessário conceder outras permissões à conta de serviço padrão do Compute Engine usada pelo Google Cloud Managed Service para Prometheus. Para saber como conceder permissões ao Google Cloud Managed Service para Prometheus, consulte Ativar a coleta gerenciada: GKE. Para saber como configurar o Google Cloud Managed Service para Prometheus, consulte Introdução à coleta gerenciada.

Como o Controlador de Políticas está disponível com o GKE Enterprise, não há custos adicionais para o Google Cloud Observability, incluindo o Google Cloud Managed Service para Prometheus. Se você tinha o Controlador de Políticas instalado antes de adquirir uma licença do GKE Enterprise e tem o Google Cloud Managed Service para Prometheus ativado, talvez haja cobranças pelas métricas coletadas. Para mais informações sobre os preços do Cloud Monitoring, consulte Preços do Google Cloud Managed Service para Prometheus.

Para conferir exemplos de como consultar métricas com a solução do Google Cloud Managed Service para Prometheus, consulte Realizar consultas com o Cloud Monitoring.

Ver métricas

As métricas do Policy Controller são exportadas para seu projeto do Cloud Monitoring no formato do Prometheus. Sendo assim, é possível consultar métricas usando a API Cloud Monitoring e um painel no console do Google Cloud. Edite esse painel para atender às suas necessidades comerciais e operacionais.

Para consultar a API Cloud Monitoring, use a Linguagem de consulta do Prometheus (PromQL, na sigla em inglês) (a linguagem de consulta real para métricas do Kubernetes) ou a Linguagem de consulta do Monitoring (MQL) (a linguagem de consulta de métricas reservadas do Google).

Para criar o painel do Policy Controller:

  1. No console do Google Cloud, acesse a página Painéis.

    Ir para "Painéis"

  2. Na página Visão geral de painéis, clique na guia Biblioteca de amostra. Essa guia mostra todos os painéis que você pode importar.

  3. Na coluna Categorias, selecione Anthos Config Management.

  4. Na tabela de amostras Anthos Config Management, marque a caixa de seleção Policy Controller.

  5. Clique em Importar.

  6. Para criar o painel, clique em Confirmar na janela de confirmação.

Para ver e editar o painel do Policy Controller:

  1. Na página Visão geral de painéis, selecione a guia Lista de painéis.
  2. Selecione o painel do Policy Controller.
  3. Para personalizar o painel, clique em Editar painel.
  4. Faça as alterações necessárias e clique em Salvar. Para saber mais sobre como personalizar painéis, consulte Filtrar um painel na documentação do Cloud Monitoring.

Criar alertas

Para receber notificações quando suas métricas atenderem a determinados limites, crie políticas de alertas no Cloud Monitoring.

Integração de terceiros

Usando a API Cloud Monitoring, qualquer ferramenta de observabilidade de terceiros pode ingerir métricas do Policy Controller.

Por exemplo, se você estiver usando painéis do Grafana, adicione a API Cloud Monitoring como a fonte de dados no Grafana. Para saber mais, consulte Google Cloud Monitoring na documentação do Grafana.

Métricas disponíveis

Se o Controlador de Políticas está ativado no cluster e configurado para realizar exportações para o Cloud Monitoring, você pode consultar as seguintes métricas (todas prefixadas com OpenCensus/):

Nome Tipo Rótulos Descrição
OpenCensus/audit_duration_seconds Cumulativo Distribuição da duração do ciclo de auditoria
OpenCensus/audit_last_run_time Medidor O carimbo de data e hora da época desde o último ambiente de execução da auditoria, fornecido como segundos em ponto flutuante
OpenCensus/constraint_template_ingestion_count Cumulativo status Número total de ações de ingestão de modelo de restrição
OpenCensus/constraint_template_ingestion_duration_seconds Cumulativo status Distribuição de duração de ingestão de modelo de restrição
OpenCensus/constraint_templates Medidor status Número atual de modelos de restrição
OpenCensus/validation_request_count Contador admission_status Contagem de solicitações de admissão do servidor da API
OpenCensus/validation_request_duration_seconds Cumulativo admission_status Distribuição da duração do pedido de admissão
OpenCensus/violations Medidor enforcement_action Número de violações de auditoria detectadas no último ciclo de auditoria
OpenCensus/watch_manager_intended_watch_gvk Medidor Quantos Policy Controller do GroupVersionKinds exclusivos precisam estar assistindo. Essa métrica é uma combinação de recursos e restrições sincronizados.
OpenCensus/watch_manager_watched_gvk Medidor Quantos Policy Controller do GroupVersionKinds exclusivos estão realmente assistindo. Essa métrica precisa convergir para ser igual a OpenCensus/watch_manager_intended_watch_gvk.

Se o Controlador de Políticas está configurado para realizar exportações para o Prometheus, consulte as seguintes métricas (todas prefixadas com Prometheus/):

Nome Tipo Rótulos Descrição
Prometheus/gatekeeper_audit_duration_seconds/histogram Cumulativo Distribuição da duração do ciclo de auditoria
Prometheus/gatekeeper_audit_last_run_end_time/gauge Medidor O carimbo de data/hora da época do fim da última execução de auditoria, fornecido como segundos em ponto flutuante
Prometheus/gatekeeper_audit_last_run_time/gauge Medidor O carimbo de data/hora da época do início da última execução de auditoria, fornecido como segundos em ponto flutuante
Prometheus/gatekeeper_constraint_template_ingestion_count/counter Cumulativo status Número total de ações de ingestão de modelo de restrição
Prometheus/gatekeeper_constraint_template_ingestion_duration_seconds/histogram Cumulativo status Distribuição de duração de ingestão de modelo de restrição
Prometheus/gatekeeper_constraint_templates/gauge Medidor status Número atual de modelos de restrição
Prometheus/gatekeeper_validation_request_count/counter Cumulativo admission_status, admission_dryrun Contagem de solicitações de admissão do servidor da API
Prometheus/gatekeeper_validation_request_duration_seconds/histogram Cumulativo admission_status Distribuição da duração do pedido de admissão
Prometheus/gatekeeper_violations/gauge Medidor enforcement_action Número de violações de auditoria detectadas no último ciclo de auditoria
Prometheus/gatekeeper_watch_manager_intended_watch_gvk/gauge Medidor Quantos Policy Controller do GroupVersionKinds exclusivos precisam estar assistindo. Essa métrica é uma combinação de recursos e restrições sincronizados.
Prometheus/gatekeeper_watch_manager_watched_gvk/gauge Medidor Quantos Policy Controller do GroupVersionKinds exclusivos estão realmente assistindo. Essa métrica precisa convergir para ser igual a Prometheus/gatekeeper_watch_manager_intended_watch_gvk/gauge.

A seguir