Use métricas do Controlador de políticas

Esta página explica como usar métricas para monitorizar o Policy Controller.

O Policy Controller inclui várias métricas relacionadas com a utilização de políticas. Por exemplo, existem métricas que registam o número de restrições e modelos de restrições, bem como o número de violações de auditoria detetadas. Para criar e registar estas métricas, o Policy Controller usa o OpenTelemetry. Pode configurar o Policy Controller para exportar estas métricas para o Prometheus ou o Cloud Monitoring. A predefinição para a exportação de métricas exporta as métricas para o Prometheus e o Cloud Monitoring.

Configure a exportação de métricas

Pode configurar a forma como o Policy Controller exporta as respetivas métricas. Pode escolher Prometheus, Cloud Monitoring, ambos ou nenhum quando instalar o Policy Controller. Por predefinição, o Policy Controller tenta exportar métricas para o Prometheus e o Cloud Monitoring.

Exporte métricas para o Cloud Monitoring

Para permitir que o Policy Controller exporte métricas para o Cloud Monitoring, a conta de serviço que o Policy Controller usa tem de ter a função de IAM no projeto.roles/monitoring.metricsWriter Para conceder esta função, efetue um dos seguintes procedimentos:

  • Se o Policy Controller estiver a ser executado num Google Cloud ambiente que tenha uma conta de serviço predefinida, conceda a função roles/monitoring.metricsWriter no projeto a essa conta de serviço:

    gcloud projects add-iam-policy-binding PROJECT_ID \
        --member="serviceAccount:PROJECT_NUMBER-compute@developer.gserviceaccount.com" \
        --role=roles/monitoring.metricsWriter
    

    Substitua o seguinte:

    • PROJECT_ID: o ID do seu Google Cloud projeto.
    • PROJECT_NUMBER: o número Google Cloud do projeto.
  • Se a federação de identidades da carga de trabalho para o GKE ou a federação de identidades da carga de trabalho da frota estiverem ativadas, conceda a função roles/monitoring.metricsWriter no projeto à conta de serviço do Kubernetes que o Policy Controller usa:

    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 cluster.

Pode ver estas métricas com o Explorador de métricas ou usando a API Cloud Monitoring.

Exporte métricas para o Prometheus

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

Se o Policy Controller estiver a ser executado num cluster com o Google Cloud Managed Service for Prometheus configurado, estas métricas são recolhidas e armazenadas automaticamente no Cloud Monitoring. Isto também funciona para clusters que ativam o serviço gerido do Google Cloud para Prometheus após a instalação do Policy Controller. Também pode ter de conceder autorizações adicionais à conta de serviço do Compute Engine predefinida que o serviço gerido do Google Cloud para Prometheus usa, consoante as suas políticas. Para detalhes sobre a concessão de autorizações ao serviço gerido do Google Cloud para o Prometheus, consulte o artigo Ative a recolha gerida: GKE. Para mais informações sobre a configuração do serviço gerido do Google Cloud para Prometheus, consulte o artigo Comece a usar a recolha gerida.

Para mais informações sobre os preços do Cloud Monitoring, consulte o artigo Preços do Google Cloud Managed Service for Prometheus.

Para ver exemplos de como ver métricas com a solução Google Cloud Managed Service for Prometheus, consulte o artigo Consultar com o Cloud Monitoring.

Ver métricas

As métricas do Policy Controller são exportadas para o seu projeto do Cloud Monitoring no formato Prometheus. Como resultado, pode consultar métricas através da API Cloud Monitoring e de um painel de controlo na Google Cloud consola. Pode editar este painel de controlo para satisfazer as necessidades empresariais e operacionais.

Para consultar a API Cloud Monitoring, use o Idioma de consulta do Prometheus (PromQL) (o idioma de consulta de facto para métricas do Kubernetes) ou o Idioma de consulta do Monitoring (MQL) (o idioma de consulta de métricas proprietário da Google).

Pode usar um modelo para configurar um painel de controlo pesquisando "Policy Controller" na página Painéis de controlo do Cloud Monitoring. Para mais informações sobre como criar e editar modelos de painéis de controlo, consulte a documentação do Cloud Monitoring.

Crie alertas

Para receber notificações quando as suas métricas atingirem determinados limites, crie políticas de alerta no Cloud Monitoring.

Integração de terceiros

Ao usar a API Cloud Monitoring, qualquer ferramenta de observabilidade de terceiros pode carregar métricas do Policy Controller.

Por exemplo, se estiver a usar painéis de controlo do Grafana, adicione a API Cloud Monitoring como a origem de dados no Grafana. Para saber mais, consulte o artigo Google Cloud Monitoring na documentação do Grafana.

Métricas disponíveis

Se o Policy Controller estiver ativado no seu cluster e configurado para exportar para o Cloud Monitoring, pode consultar as seguintes métricas (todas com o prefixo OpenCensus/):

Nome Tipo Etiquetas Descrição
OpenCensus/audit_duration_seconds Cumulativo Distribuição da duração do ciclo de auditoria
OpenCensus/audit_last_run_time Indicador A data/hora de epoch desde a última execução da auditoria, indicada em segundos de ponto flutuante
OpenCensus/constraint_template_ingestion_count Cumulativo estado Número total de ações de carregamento de modelos de restrições
OpenCensus/constraint_template_ingestion_duration_seconds Cumulativo estado Distribuição da duração do carregamento do modelo de restrição
OpenCensus/constraint_templates Indicador estado Número atual de modelos de restrições
OpenCensus/validation_request_count Contrapropor admission_status Contagem de pedidos 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 Indicador enforcement_action Número de violações de auditoria detetadas no último ciclo de auditoria
OpenCensus/watch_manager_intended_watch_gvk Indicador Quantos GroupVersionKinds o Policy Controller deve monitorizar. Esta métrica é uma combinação de recursos e restrições sincronizados.
OpenCensus/watch_manager_watched_gvk Indicador Quantos GroupVersionKinds o Policy Controller está realmente a monitorizar. Esta métrica destina-se a convergir para um valor igual a OpenCensus/watch_manager_intended_watch_gvk.

Se o Policy Controller estiver configurado para exportar para o Prometheus, pode consultar as seguintes métricas (todas com o prefixo Prometheus/):

Nome Tipo Etiquetas 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 Indicador A data/hora de época da conclusão da última execução de auditoria, expressa em segundos de ponto flutuante
Prometheus/gatekeeper_audit_last_run_time/gauge Indicador A data/hora de epoch da hora de início da última execução de auditoria, indicada em segundos de ponto flutuante
Prometheus/gatekeeper_constraint_template_ingestion_count/counter Cumulativo estado Número total de ações de carregamento de modelos de restrições
Prometheus/gatekeeper_constraint_template_ingestion_duration_seconds/histogram Cumulativo estado Distribuição da duração do carregamento do modelo de restrição
Prometheus/gatekeeper_constraint_templates/gauge Indicador estado Número atual de modelos de restrições
Prometheus/gatekeeper_validation_request_count/counter Cumulativo admission_status, admission_dryrun Contagem de pedidos 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 Indicador enforcement_action Número de violações de auditoria detetadas no último ciclo de auditoria
Prometheus/gatekeeper_watch_manager_intended_watch_gvk/gauge Indicador Quantos GroupVersionKinds o Policy Controller deve monitorizar. Esta métrica é uma combinação de recursos e restrições sincronizados.
Prometheus/gatekeeper_watch_manager_watched_gvk/gauge Indicador Quantos GroupVersionKinds o Policy Controller está realmente a monitorizar. Esta métrica destina-se a convergir para um valor igual a Prometheus/gatekeeper_watch_manager_intended_watch_gvk/gauge.

O que se segue?