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 Policy Controller estiver em execução em um ambiente do Google Cloud que tenha uma conta de serviço padrão, ele vai exportar as métricas automaticamente para o Cloud Monitoring.

Se a Identidade da carga de trabalho do GKE ou a Identidade da carga de trabalho da frota estiverem ativadas, permita que o Policy Controller envie métricas executando este comando:

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.

Para exemplos sobre como visualizar essas métricas, consulte Ler métricas do OpenCensus no Cloud Monitoring.

Exportar métricas para o Prometheus

O Policy Controller exporta métricas para o Prometheus na porta 8888 do pod gatekeeper-controller-manager-* no namespace gatekeeper-system.

Se o Policy Controller 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 após a instalação do Policy Controller. Talvez seja necessário conceder permissões adicionais à conta de serviço padrão do Compute Engine usada pelo Google Cloud Managed Service para Prometheus, dependendo das suas políticas. Para detalhes sobre como conceder permissões ao Google Cloud Managed Service para Prometheus, consulte Ativar coleta gerenciada: GKE. Para mais informações sobre como configurar o Google Cloud Managed Service para Prometheus, consulte Começar a usar a coleta gerenciada.

Como o Policy Controller está disponível com o GKE Enterprise, não há custo extra pela observabilidade do Google Cloud, incluindo o Google Cloud Managed Service para Prometheus. Se você tinha o Policy Controller instalado antes de exigir uma licença do GKE Enterprise e o Google Cloud Managed Service para Prometheus ativado, talvez receba 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 exemplos de como visualizar métricas com a solução do Google Cloud Managed Service para Prometheus, acesse Consulta usando 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 Policy Controller estiver ativado no cluster e configurado para exportar para o Cloud Monitoring, será possível consultar as seguintes métricas (todas prefixadas com OpenCensus/):

Nome Tipo Rótulos Descrição
OpenCensus/audit_duration_seconds Cumulative 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 Cumulative status Número total de ações de ingestão de modelo de restrição
OpenCensus/constraint_template_ingestion_duration_seconds Cumulative 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 Cumulative 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 Policy Controller estiver configurado para exportar para o Prometheus, consulte as seguintes métricas (todas prefixadas com Prometheus/):

Nome Tipo Rótulos Descrição
Prometheus/gatekeeper_audit_duration_seconds/histogram Cumulative 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 da 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 da auditoria, fornecido como segundos em ponto flutuante
Prometheus/gatekeeper_constraint_template_ingestion_count/counter Cumulative status Número total de ações de ingestão de modelo de restrição
Prometheus/gatekeeper_constraint_template_ingestion_duration_seconds/histogram Cumulative 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 Cumulative admission_status, admission_dryrun Contagem de solicitações de admissão do servidor da API
Prometheus/gatekeeper_validation_request_duration_seconds/histogram Cumulative 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