Questa pagina spiega come utilizzare le metriche per monitorare Policy Controller.
Policy Controller include più metriche relative all'utilizzo dei criteri. Ad esempio, esistono metriche che registrano il numero di vincoli e modelli di vincoli e il numero di violazioni di controllo rilevate. Per creare e registrare queste metriche, Policy Controller utilizza OpenTelemetry. Puoi configurare Policy Controller per esportare queste metriche in Prometheus o Cloud Monitoring. L'impostazione predefinita per l'esportazione delle metriche le esporta sia in Prometheus sia in Cloud Monitoring.
Configurare l'esportazione delle metriche
Puoi configurare la modalità di esportazione delle metriche di Policy Controller. Puoi scegliere Prometheus, Cloud Monitoring, entrambi o nessuno quando esegui l'installazione di Policy Controller. Per impostazione predefinita, Policy Controller tenta di esportare le metriche sia in Prometheus sia in Cloud Monitoring.
Esportare le metriche in Cloud Monitoring
Per consentire a Policy Controller di esportare le metriche in Cloud Monitoring, l'account di servizio utilizzato da Policy Controller deve disporre del ruolo IAM roles/monitoring.metricsWriter
nel progetto. Per concedere questo ruolo, esegui una delle seguenti operazioni:
Se Policy Controller è in esecuzione in un Google Cloud ambiente con un account di servizio predefinito, concedi al servizio account il ruolo
roles/monitoring.metricsWriter
nel progetto:gcloud projects add-iam-policy-binding PROJECT_ID \ --member="serviceAccount:PROJECT_NUMBER-compute@developer.gserviceaccount.com" \ --role=roles/monitoring.metricsWriter
Sostituisci quanto segue:
PROJECT_ID
: il tuo Google Cloud ID progetto.PROJECT_NUMBER
: il numero Google Cloud numerico del progetto.
Se Workload Identity Federation for GKE o Workload Identity Federation del parco risorse sono abilitati, concedi il ruolo
roles/monitoring.metricsWriter
al progetto per l'account di servizio Kubernetes utilizzato da Policy Controller:gcloud projects add-iam-policy-binding PROJECT_ID \ --member="serviceAccount:PROJECT_ID.svc.id.goog[gatekeeper-system/gatekeeper-admin]" \ --role=roles/monitoring.metricWriter
Sostituisci
PROJECT_ID
con l'ID del progetto Google Cloud del cluster.
Puoi visualizzare queste metriche con Metrics Explorer o utilizzando l'API Cloud Monitoring.
Esportare le metriche in Prometheus
Policy Controller esporta le metriche per Prometheus sulla porta 8888 del
gatekeeper-controller-manager-*
pod nello spazio dei nomi gatekeeper-system
.
Se Policy Controller è in esecuzione su un cluster con Google Cloud Managed Service per Prometheus configurato, queste metriche verranno raccolte e archiviate automaticamente in Cloud Monitoring. Questo funziona anche per i cluster che attivano Google Cloud Managed Service per Prometheus dopo l'installazione di Policy Controller. A seconda dei tuoi criteri, potrebbe essere necessario concedere autorizzazioni aggiuntive all'account di servizio Compute Engine predefinito utilizzato da Google Cloud Managed Service per Prometheus. Per informazioni dettagliate su come concedere le autorizzazioni a Google Cloud Managed Service per Prometheus, consulta Abilitare la raccolta gestita: GKE. Per ulteriori informazioni sulla configurazione di Google Cloud Managed Service per Prometheus, consulta la guida introduttiva alla raccolta gestita.
Poiché Policy Controller è disponibile con GKE Enterprise, non è previsto alcun costo aggiuntivo per Google Cloud Observability, incluso Google Cloud Managed Service per Prometheus. Se avevi installato Policy Controller prima di richiedere una licenza GKE Enterprise e hai attivato Google Cloud Managed Service per Prometheus, potresti visualizzare addebiti per le metriche raccolte. Per ulteriori informazioni sui prezzi di Cloud Monitoring, consulta Prezzi di Google Cloud Managed Service per Prometheus.
Per esempi su come visualizzare le metriche con la soluzione Google Cloud Managed Service per Prometheus, consulta Eseguire query utilizzando Cloud Monitoring.
Visualizza metriche
Le metriche di Policy Controller vengono esportate nel progetto Cloud Monitoring in formato Prometheus. Di conseguenza, puoi eseguire query sulle metriche utilizzando l'API Cloud Monitoring e una dashboard nella console Google Cloud. Puoi modificare questa dashboard in base alle tue esigenze aziendali e operative.
Per eseguire query sull'API Cloud Monitoring, utilizza Prometheus Query Language (PromQL) (il linguaggio di query de facto per le metriche Kubernetes) o Monitoring Query Language (MQL) (il linguaggio di query delle metriche proprietario di Google).
Per creare la dashboard di Policy Controller:
Nella console Google Cloud, vai alla pagina Dashboard.
Nella pagina Panoramica delle dashboard, fai clic sulla scheda Raccolta di esempi. Questa scheda mostra tutte le dashboard che puoi importare.
Nella colonna Categorie, seleziona Anthos Config Management.
Nella tabella Esempi di Anthos Config Management, seleziona la casella di controllo Policy Controller.
Fai clic su download Importa.
Per creare la dashboard, fai clic su Conferma nella finestra di conferma.
Per visualizzare e modificare la dashboard di Policy Controller:
- Nella pagina Panoramica delle dashboard, seleziona la scheda Elenco dashboard.
- Seleziona la dashboard di Policy Controller.
- Per personalizzare la dashboard, fai clic su Modifica dashboard.
- Apporta le modifiche necessarie e fai clic su Salva. Per scoprire di più sulla personalizzazione delle dashboard, consulta Filtrare una dashboard nella documentazione di Cloud Monitoring.
crea avvisi
Per ricevere notifiche quando le metriche soddisfano determinate soglie, crea criteri di avviso in Cloud Monitoring.
Integrazione di terze parti
Utilizzando l'API Cloud Monitoring, qualsiasi strumento di osservabilità di terze parti può importare le metriche di Policy Controller.
Ad esempio, se utilizzi le dashboard di Grafana, aggiungi l'API Cloud Monitoring come origine dati in Grafana. Per saperne di più, consulta Google Cloud Monitoring nella documentazione di Grafana.
Metriche disponibili
Se Policy Controller è abilitato sul tuo cluster ed è configurato per l'esportazione in Cloud Monitoring, puoi eseguire query sulle seguenti
metriche (tutte con prefisso OpenCensus/
):
Nome | Tipo | Etichette | Descrizione |
---|---|---|---|
OpenCensus/audit_duration_seconds |
Cumulativo | Distribuzione della durata del ciclo di controllo | |
OpenCensus/audit_last_run_time |
Misuratore | Il timestamp dell'epoca dall'ultimo runtime di controllo, espresso in secondi in virgola mobile | |
OpenCensus/constraint_template_ingestion_count |
Cumulativo | stato | Numero totale di azioni di importazione dei modelli di vincolo |
OpenCensus/constraint_template_ingestion_duration_seconds |
Cumulativo | stato | Distribuzione della durata dell'importazione del modello di vincolo |
OpenCensus/constraint_templates |
Misuratore | stato | Numero attuale di modelli di vincolo |
OpenCensus/validation_request_count |
Contatore | admission_status | Conteggio delle richieste di ammissione dal server API |
OpenCensus/validation_request_duration_seconds |
Cumulativo | admission_status | Distribuzione della durata delle richieste di ammissione |
OpenCensus/violations |
Misuratore | enforcement_action | Numero di violazioni di controllo rilevate nell'ultimo ciclo di controllo |
OpenCensus/watch_manager_intended_watch_gvk |
Misuratore | Il numero di GroupVersionKinds Policy Controller unici che devono essere monitorati. Questa metrica è il risultato della combinazione di risorse e vincoli sincronizzati. | |
OpenCensus/watch_manager_watched_gvk |
Misuratore | Il numero di GroupVersionKinds unici che il controller dei criteri sta effettivamente monitorando. Questa metrica dovrebbe convergere verso un valore uguale a OpenCensus/watch_manager_intended_watch_gvk . |
Se Policy Controller è configurato per l'esportazione in Prometheus, puoi eseguire query sulle seguenti metriche (tutte con prefisso Prometheus/
):
Nome | Tipo | Etichette | Descrizione |
---|---|---|---|
Prometheus/gatekeeper_audit_duration_seconds/histogram |
Cumulativo | Distribuzione della durata del ciclo di controllo | |
Prometheus/gatekeeper_audit_last_run_end_time/gauge |
Misuratore | Il timestamp epoch della fine dell'ultima esecuzione del controllo, espresso in secondi in virgola mobile | |
Prometheus/gatekeeper_audit_last_run_time/gauge |
Misuratore | Il timestamp epoch dell'inizio dell'ultima esecuzione dell'audit, espresso in secondi in virgola mobile | |
Prometheus/gatekeeper_constraint_template_ingestion_count/counter |
Cumulativo | stato | Numero totale di azioni di importazione dei modelli di vincolo |
Prometheus/gatekeeper_constraint_template_ingestion_duration_seconds/histogram |
Cumulativo | stato | Distribuzione della durata dell'importazione del modello di vincolo |
Prometheus/gatekeeper_constraint_templates/gauge |
Misuratore | stato | Numero attuale di modelli di vincolo |
Prometheus/gatekeeper_validation_request_count/counter |
Cumulativo | admission_status, admission_dryrun | Conteggio delle richieste di ammissione dal server API |
Prometheus/gatekeeper_validation_request_duration_seconds/histogram |
Cumulativo | admission_status | Distribuzione della durata delle richieste di ammissione |
Prometheus/gatekeeper_violations/gauge |
Misuratore | enforcement_action | Numero di violazioni di controllo rilevate nell'ultimo ciclo di controllo |
Prometheus/gatekeeper_watch_manager_intended_watch_gvk/gauge |
Misuratore | Il numero di GroupVersionKinds Policy Controller unici che devono essere monitorati. Questa metrica è il risultato della combinazione di risorse e vincoli sincronizzati. | |
Prometheus/gatekeeper_watch_manager_watched_gvk/gauge |
Misuratore | Il numero di GroupVersionKinds unici che il controller dei criteri sta effettivamente monitorando. Questa metrica dovrebbe convergere verso un valore uguale a Prometheus/gatekeeper_watch_manager_intended_watch_gvk/gauge . |