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