Dopo aver eseguito il deployment di Google Cloud Managed Service per Prometheus, puoi eseguire query sui dati inviati al servizio gestito per visualizzare i risultati in grafici e dashboard.
Questo documento descrive gli ambiti delle metriche, che determinano gli query su cui è possibile eseguire query e come utilizzare Grafana per recuperare e utilizzare dati che hai raccolto.
Tutte le interfacce di query per Managed Service per Prometheus sono configurate su recuperare i dati da Monarch utilizzando l'API Cloud Monitoring. Di l'esecuzione di query su Monarch anziché sui dati provenienti da server Prometheus locali, ottieni un monitoraggio globale su larga scala.
Prima di iniziare
Se non hai già eseguito il deployment del servizio gestito, quindi configura una raccolta gestita o di cui è stato eseguito il deployment autonomo personalizzata. Puoi saltare questo passaggio se ti interessa solo eseguire query sulle metriche di Cloud Monitoring utilizzando PromQL.
Configura il tuo ambiente
Per evitare di inserire ripetutamente l'ID progetto o il nome del cluster, esegui la seguente configurazione:
Configura gli strumenti a riga di comando come segue:
Configura gcloud CLI per fare riferimento all'ID del tuo Progetto Google Cloud:
gcloud config set project PROJECT_ID
Configura l'interfaccia a riga di comando
kubectl
per utilizzare il tuo cluster:kubectl config set-cluster CLUSTER_NAME
Per ulteriori informazioni su questi strumenti, consulta le seguenti risorse:
Configura uno spazio dei nomi
Crea lo spazio dei nomi Kubernetes NAMESPACE_NAME
per le risorse che crei
nell'ambito dell'applicazione di esempio:
kubectl create ns NAMESPACE_NAME
Verificare le credenziali dell'account di servizio
Puoi saltare questa sezione se nel tuo cluster Kubernetes è attivata la federazione delle identità per i carichi di lavoro per GKE.
In esecuzione su GKE, Managed Service per Prometheus
recupera automaticamente le credenziali dall'ambiente in base
Account di servizio predefinito Compute Engine. L'account di servizio predefinito ha le autorizzazioni necessarie, monitoring.metricWriter
e monitoring.viewer
, per impostazione predefinita. Se non utilizzi la federazione delle identità di lavoro per GKE e hai precedentemente
rimosso uno di questi ruoli dall'account di servizio del nodo predefinito, dovrai
aggiungere di nuovo le autorizzazioni mancanti prima di continuare.
Se non esegui su GKE, consulta Fornisci le credenziali in modo esplicito.
Configura un account di servizio per Workload Identity Federation for GKE
Puoi saltare questa sezione se nel tuo cluster Kubernetes non è attivata la federazione delle identità per i carichi di lavoro per GKE.
Managed Service per Prometheus acquisisce i dati delle metriche utilizzando l'API Cloud Monitoring. Se il cluster utilizza la federazione delle identità per i carichi di lavoro per GKE, devi concedere al tuo account di servizio Kubernetes l'autorizzazione l'API Monitoring. Questa sezione descrive quanto segue:
- Creazione di un account di servizio Google Cloud dedicato.
gmp-test-sa
. - Associazione dell'account di servizio Google Cloud a Kubernetes predefinito
un account di servizio in uno spazio dei nomi di test
NAMESPACE_NAME
. - Concedere l'autorizzazione necessaria all'account di servizio Google Cloud.
Crea e associa l'account di servizio
Questo passaggio viene visualizzato in diverse posizioni all'interno di Managed Service per Prometheus documentazione. Se hai già eseguito questo passaggio nell'ambito di un'attività precedente, non devi ripeterlo. Vai a Autorizzare l'account di servizio.
La seguente sequenza di comandi crea l'account di servizio gmp-test-sa
e lo associa all'account di servizio Kubernetes predefinito nello
spazio dei nomi NAMESPACE_NAME
:
gcloud config set project PROJECT_ID \ && gcloud iam service-accounts create gmp-test-sa \ && gcloud iam service-accounts add-iam-policy-binding \ --role roles/iam.workloadIdentityUser \ --member "serviceAccount:PROJECT_ID.svc.id.goog[NAMESPACE_NAME/default]" \ gmp-test-sa@PROJECT_ID.iam.gserviceaccount.com \ && kubectl annotate serviceaccount \ --namespace NAMESPACE_NAME \ default \ iam.gke.io/gcp-service-account=gmp-test-sa@PROJECT_ID.iam.gserviceaccount.com
Se usi uno spazio dei nomi GKE o un account di servizio diverso, e regolare i comandi in modo appropriato.
Autorizza l'account di servizio
I gruppi di autorizzazioni correlate vengono raccolti in ruoli e li concedi a un entità, in questo esempio l'account di servizio Google Cloud. Per ulteriori informazioni sui ruoli di monitoraggio, consulta Controllo dell'accesso.
Il comando seguente concede l'account di servizio Google Cloud,
gmp-test-sa
, i ruoli dell'API Monitoring necessari
lettura
dati delle metriche.
Se hai già concesso l'account di servizio Google Cloud un ruolo specifico nell'ambito dell'attività precedente, non dovrai ripeterlo.
Per autorizzare il tuo account di servizio a leggere da un ambito di metriche multi-progetto, segui queste istruzioni e poi consulta Modificare il progetto sottoposto a query.gcloud projects add-iam-policy-binding PROJECT_ID \ --member=serviceAccount:gmp-test-sa@PROJECT_ID.iam.gserviceaccount.com \ --role=roles/monitoring.viewer \ && \ gcloud projects add-iam-policy-binding PROJECT_ID \ --member=serviceAccount:gmp-test-sa@PROJECT_ID.iam.gserviceaccount.com \ --role=roles/iam.serviceAccountTokenCreator
Eseguire il debug della configurazione di Workload Identity Federation for GKE
Se hai difficoltà a far funzionare Workload Identity Federation per GKE, consulta la documentazione per la verifica della configurazione di Workload Identity Federation per GKE e la guida alla risoluzione dei problemi di Workload Identity Federation per GKE.
Poiché gli errori di battitura e i testi incollati parziali sono le fonti più comuni di errori quando configurazione della federazione delle identità per i carichi di lavoro per GKE, consigliamo vivamente l'uso del variabili e icone di copia e incolla cliccabili incorporate negli esempi di codice in questi istruzioni.
Workload Identity Federation for GKE negli ambienti di produzione
L'esempio descritto in questo documento lega l'account di servizio Google Cloud all'account di servizio Kubernetes predefinito e concede all'account di servizio Google Cloud tutte le autorizzazioni necessarie per utilizzare l'API Monitoring.
In un ambiente di produzione, ti consigliamo di utilizzare un approccio più granulare, con un account di servizio per ogni componente, ciascuno con autorizzazioni minime. Per ulteriori informazioni sulla configurazione degli account di servizio per la gestione delle identità dei carichi di lavoro, consulta Utilizzare la federazione delle identità per i carichi di lavoro per GKE.
Ambiti di query e metriche
I dati su cui puoi eseguire query sono determinati dall'ambito delle metriche del costrutto Cloud Monitoring, indipendentemente dal metodo utilizzato per eseguire query sui dati. Ad esempio, se utilizzi Grafana per eseguire query su Managed Service per Prometheus devi configurare ogni ambito delle metriche come origine dati separata.
Un ambito delle metriche di monitoraggio è un costrutto di sola lettura che consente di eseguire query sui dati delle metriche appartenenti a più progetti Google Cloud. Ogni evento l'ambito delle metriche è ospitato da un progetto Google Cloud designato, chiamato progetto di ambito.
Per impostazione predefinita, un progetto è il progetto di definizione dell'ambito per il proprio ambito delle metriche, e l'ambito delle metriche contiene le metriche e la configurazione necessarie progetto. Un progetto di definizione dell'ambito può avere più di un progetto monitorato l'ambito delle metriche, nonché le metriche e le configurazioni di tutti i progetti nell'ambito delle metriche sono visibili al progetto di definizione dell'ambito. Un progetto monitorato può anche appartenere a più ambiti di metriche.
Quando esegui query sulle metriche in un progetto di definizione dell'ambito e questo progetto ospita un ambito delle metriche multi-project, puoi recuperare i dati da più progetti. Se l'ambito delle metriche contiene tutti i tuoi progetti, le query e le regole verranno valutate a livello globale.
Per saperne di più sulla definizione dell'ambito dei progetti e dell'ambito delle metriche, consulta Ambiti delle metriche. Per informazioni sulla configurazione dell'ambito delle metriche per più progetti, consulta Visualizzare le metriche per più progetti.
Managed Service per i dati Prometheus in Cloud Monitoring
Il modo più semplice per verificare che i dati Prometheus siano in fase di esportazione è utilizzare la pagina Esplora metriche di Cloud Monitoring nella console Google Cloud, che supporta PromQL. Per istruzioni, vedi Esecuzione di query utilizzando PromQL in Cloud Monitoring.
Puoi anche importare le dashboard di Grafana in Cloud Monitoring. In questo modo, potrai continuare a utilizzare le dashboard Grafana personali o create dalla community senza dover configurare o eseguire il deployment di un'istanza Grafana.
Grafana
Managed Service per Prometheus utilizza l'origine dati Prometheus integrata per Grafana, il che significa che puoi continuare a utilizzare qualsiasi dashboard Grafana personale o creata dalla community senza alcuna modifica.
Esegui il deployment di Grafana, se necessario.
Se nel tuo cluster non è in esecuzione un deployment Grafana, puoi e creare un deployment di test temporaneo su cui eseguire esperimenti.
Per creare un deployment Grafana temporaneo, applica
Manifest di Managed Service per Prometheus grafana.yaml
al tuo
cluster ed eseguire il port forwarding del servizio grafana
alla macchina locale. A causa delle limitazioni CORS, non puoi accedere a un deployment di Grafana utilizzando Cloud Shell.
Applica il manifest
grafana.yaml
:kubectl -n NAMESPACE_NAME apply -f https://raw.githubusercontent.com/GoogleCloudPlatform/prometheus-engine/v0.13.0/examples/grafana.yaml
Esegui il port forwarding del servizio
grafana
alla tua macchina locale. Questo esempio inoltra il servizio alla porta 3000:kubectl -n NAMESPACE_NAME port-forward svc/grafana 3000
Questo comando non restituisce alcun valore e, durante l'esecuzione, registra gli accessi all'URL.
Puoi accedere a Grafana nel tuo browser all'URL
http://localhost:3000
con nomeutente:passwordadmin:admin
.
Quindi, aggiungi una nuova origine dati Prometheus a Grafana seguendo questi passaggi:
Vai al tuo deployment di Grafana, ad esempio visitando l'URL
http://localhost:3000
per raggiungere la pagina di benvenuto di Grafana.Seleziona Connessioni dal menu principale di Grafana, quindi Origini dati.
Seleziona Aggiungi origine dati e seleziona Prometheus come serie temporale. per configurare un database.
Assegna un nome all'origine dati, imposta il campo
URL
suhttp://localhost:9090
e poi seleziona Salva e testa. Puoi ignorare eventuali errori che indicano che l'origine dati non è configurata correttamente.Copia l'URL del servizio locale per il tuo deployment, che sarà simile al seguente:
http://grafana.NAMESPACE_NAME.svc:3000
Configura e autentica l'origine dati Grafana
Tutte le API Google Cloud richiedono l'autenticazione tramite OAuth2. Tuttavia, Grafana non supporta l'autenticazione OAuth2 per gli account di servizio utilizzati con le origini dati Prometheus. Per utilizzare Grafana con Managed Service per Prometheus, Utilizzare lo strumento di sincronizzazione delle origini dati per generare OAuth2. credenziali per l'account di servizio e sincronizzale con Grafana tramite API Grafana data source.
Devi utilizzare il sincronizzatore delle origini dati per configurare e autorizzare Grafana a eseguire query sui dati a livello globale. Se non segui questi passaggi, Grafana eseguirà solo query sui dati nel server Prometheus locale.
Lo strumento di sincronizzazione dell'origine dati è uno strumento di interfaccia a riga di comando che utilizza una cron job per sincronizzare da remoto i valori di configurazione con un determinato Grafana Origine dati Prometheus. Ciò garantisce che l'origine dati Grafana abbia configurato correttamente:
- Autenticazione, eseguita aggiornando periodicamente un token di accesso OAuth2
- L'API Cloud Monitoring impostata come URL del server Prometheus
- Il metodo HTTP impostato su GET
- Tipo e versione di Prometheus impostati su un minimo di 2.40.x
- I valori di timeout HTTP e query impostati su 2 minuti
Lo strumento di sincronizzazione dell'origine dati utilizza un account di servizio Google Cloud per eseguire periodicamente generare un token di accesso all'API Google Cloud con i dati IAM necessari autorizzazioni per l'esecuzione di query sui dati di Cloud Monitoring. Poiché i token di accesso alle API Google Cloud hanno un durata di un'ora, i dati source Syncer viene eseguito ogni 30 minuti per garantire un' connessione autenticata tra Grafana e l'API Cloud Monitoring.
Puoi scegliere di eseguire il sincronizzatore delle origini dati utilizzando un CronJob Kubernetes o Cloud Run e Cloud Scheduler per un'esperienza completamente serverless. Se esegui il deployment di Grafana localmente, ad esempio con open source Grafana o Grafana Enterprise, ti consigliamo di eseguire l'origine dati nello stesso cluster in cui è in esecuzione Grafana. Se utilizzi Grafana Cloud, consigliamo di scegliere l'opzione completamente serverless.
Utilizzare Serverless
Per eseguire il deployment ed eseguire un sincronizzatore delle origini dati serverless utilizzando Cloud Run e Cloud Scheduler, segui questi passaggi:
Scegli un progetto in cui eseguire il deployment del sincronizzatore delle origini dati. Ti consigliamo di scegliere nel progetto di ambito di un ambito delle metriche multiprogetto. Il sincronizzatore delle origini dati utilizza il progetto Google Cloud configurato come progetto di ambito.
Quindi, configura e autorizza un account di servizio per lo strumento di sincronizzazione dell'origine dati. La seguente sequenza di comandi crea un account di servizio e gli assegna diversi ruoli IAM. I primi due ruoli consentono all'account di servizio leggere dall'API Cloud Monitoring e generare token dell'account di servizio. La gli ultimi due ruoli consentono all'account di servizio di leggere l'account di servizio Grafana da Secret Manager e per richiamare Cloud Run:
gcloud config set project PROJECT_ID \ && gcloud iam service-accounts create gmp-ds-syncer-sa \ && gcloud projects add-iam-policy-binding PROJECT_ID \ --member=serviceAccount:gmp-ds-syncer-sa@PROJECT_ID.iam.gserviceaccount.com \ --role=roles/monitoring.viewer \ && \ gcloud projects add-iam-policy-binding PROJECT_ID \ --member=serviceAccount:gmp-ds-syncer-sa@PROJECT_ID.iam.gserviceaccount.com \ --role=roles/iam.serviceAccountTokenCreator \ && \ gcloud projects add-iam-policy-binding PROJECT_ID \ --member=serviceAccount:gmp-ds-syncer-sa@PROJECT_ID.iam.gserviceaccount.com \ --role=roles/secretmanager.secretAccessor && \ gcloud projects add-iam-policy-binding PROJECT_ID \ --member=serviceAccount:gmp-ds-syncer-sa@PROJECT_ID.iam.gserviceaccount.com \ --role=roles/run.invoker
Determina l'URL dell'istanza Grafana, ad esempio
https://yourcompanyname.grafana.net
per un deployment di Grafana Cloud. Il tuo L'istanza Grafana deve essere accessibile da Cloud Run, devono essere accessibili da una rete internet più ampia.Se la tua istanza Grafana non è accessibile da internet, ma consigliamo di eseguire il deployment dello strumento di sincronizzazione dell'origine dati su Kubernetes.
Scegli l'origine dati Prometheus di Grafana da utilizzare per Managed Service per Prometheus, che può essere una nuova origine dati Prometheus o una esistente, quindi trova e annota l'UID dell'origine dati. L'UID dell'origine dati si trova nell'ultima parte dell'URL quando esplori o configuri un'origine dati, ad esempio
https://yourcompanyname.grafana.net/connections/datasources/edit/GRAFANA_DATASOURCE_UID
. Non copiare l'intero URL dell'origine dati. Copia solo l'identificatore univoco nell'URL.Configura un account di servizio Grafana creando l'account di servizio e generando un token da utilizzare:
Nella barra laterale di navigazione Grafana, fai clic su Amministrazione > Utenti e accesso > Account di servizio.
Crea l'account di servizio in Grafana facendo clic su Add service (Aggiungi servizio) account assegnandogli un nome e l'intestazione "Origini dati > Writer" ruolo. Assicurati di fare clic sul pulsante Applica per assegnare il ruolo. Nelle versioni precedenti di Grafana, puoi utilizzare il ruolo "Amministratore".
Fai clic su Aggiungi token account di servizio.
Imposta la scadenza del token su "Nessuna scadenza" e fai clic su Genera il token, quindi copia il token generato negli appunti per utilizzarlo come GRAFANA_SERVICE_ACCOUNT_TOKEN nel passaggio successivo:
Imposta le seguenti variabili di documentazione utilizzando i risultati dei passaggi precedenti. Non è necessario incollare in un terminale:
# These values are required. REGION # The Google Cloud region where you want to run your Cloud Run job, such as us-central1. PROJECT_ID # The Project ID from Step 1. GRAFANA_INSTANCE_URL # The Grafana instance URL from step 2. This is a URL. Include "http://" or "https://". GRAFANA_DATASOURCE_UID # The Grafana data source UID from step 3. This is not a URL. GRAFANA_SERVICE_ACCOUNT_TOKEN # The Grafana service account token from step 4.
Crea un secret in Secret Manager:
gcloud secrets create datasource-syncer --replication-policy="automatic" && \ echo -n GRAFANA_SERVICE_ACCOUNT_TOKEN | gcloud secrets versions add datasource-syncer --data-file=-
Crea il seguente file YAML e denominalo
cloud-run-datasource-syncer.yaml
:apiVersion: run.googleapis.com/v1 kind: Job metadata: name: datasource-syncer-job spec: template: spec: taskCount: 1 template: spec: containers: - name: datasource-syncer image: gke.gcr.io/prometheus-engine/datasource-syncer:v0.14.0-gke.0 args: - "--datasource-uids=GRAFANA_DATASOURCE_UID" - "--grafana-api-endpoint=GRAFANA_INSTANCE_URL" - "--project-id=PROJECT_ID" env: - name: GRAFANA_SERVICE_ACCOUNT_TOKEN valueFrom: secretKeyRef: key: latest name: datasource-syncer serviceAccountName: gmp-ds-syncer-sa@PROJECT_ID.iam.gserviceaccount.com
Poi esegui il comando seguente per creare un job Cloud Run utilizzando il file YAML:
gcloud run jobs replace cloud-run-datasource-syncer.yaml --region REGION
Crea una pianificazione in Cloud Scheduler per eseguire il job Cloud Run ogni 10 minuti:
gcloud scheduler jobs create http datasource-syncer \ --location REGION \ --schedule="*/10 * * * *" \ --uri="https://REGION-run.googleapis.com/apis/run.googleapis.com/v1/namespaces/PROJECT_ID/jobs/datasource-syncer-job:run" \ --http-method POST \ --oauth-service-account-email=gmp-ds-syncer-sa@PROJECT_ID.iam.gserviceaccount.com
Quindi, forza l'esecuzione dello scheduler che hai appena creato:
gcloud scheduler jobs run datasource-syncer --location REGION
L'aggiornamento dell'origine dati può richiedere fino a 15 secondi.
Vai all'origine dati Grafana appena configurata e verifica lo stato di Prometheus Il valore URL del server inizia con
https://monitoring.googleapis.com
. Potresti dover aggiornare la pagina. Una volta verificata, vai in fondo alla pagina, selezionate Salva e testa e assicurati di vedere un segno di spunta verde che indica che la sorgente dati è configurata correttamente. Devi selezionare Salva e il test almeno una volta per assicurarsi che il completamento automatico delle etichette in Grafana funzioni.
Utilizzare Kubernetes
Per eseguire il deployment e l'esecuzione del sincronizzatore delle origini dati in un cluster Kubernetes:
Scegli un progetto, un cluster e uno spazio dei nomi in cui eseguire il deployment dello strumento di sincronizzazione dell'origine dati. Consigliamo di eseguire il deployment dello strumento di sincronizzazione dell'origine dati in un cluster appartenente al progetto di ambito di un ambito delle metriche multiprogetto. Lo strumento di sincronizzazione dell'origine dati utilizza il progetto Google Cloud configurato come progetto di definizione dell'ambito.
Successivamente, assicurati di configurare e autorizzare correttamente il sincronizzatore delle origini dati:
- Se utilizzi la federazione delle identità per i carichi di lavoro per GKE, segui le istruzioni per creare e autorizzare un account di servizio. Assicurati di collegarlo allo spazio dei nomi Kubernetes in cui vuoi eseguire il sincronizzatore delle origini dati.
- Se non utilizzi la federazione delle identità per i carichi di lavoro per GKE, verifica di non aver modificato il service account Compute Engine predefinito.
- Se non esegui la pubblicazione su GKE, vedi Eseguire la sincronizzazione dell'origine dati al di fuori GKE.
Quindi, determina se è necessario autorizzare ulteriormente lo strumento di sincronizzazione dell'origine dati per l'esecuzione di query su più progetti:
- Se il progetto locale è il progetto di definizione dell'ambito e hai seguito le istruzioni per verificare o configurare un account servizio per il progetto locale, le query multi-project dovrebbero funzionare senza ulteriore configurazione.
- Se il progetto locale non è il progetto di definizione dell'ambito, devi autorizzare il sincronizzatore delle origini dati a eseguire query sul progetto di definizione dell'ambito. Per le istruzioni, consulta Autorizzare il sincronizzatore delle origini dati per il monitoraggio multi-progetto.
Determina l'URL della tua istanza Grafana, ad esempio
https://yourcompanyname.grafana.net
per un deployment Grafana Cloud oppurehttp://grafana.NAMESPACE_NAME.svc:3000
per un'istanza locale configurata usando il file YAML del deployment di test.Se esegui il deployment di Grafana in locale e il tuo cluster è configurato per proteggere tutti nel cluster utilizzando TLS, devi utilizzare
https://
nell'URL e utilizzare una delle autenticazione TLS supportate opzioni.Scegli l'origine dati Prometheus di Grafana da utilizzare per Managed Service per Prometheus, che può essere una nuova origine dati Prometheus o una esistente, quindi trova e annota l'UID dell'origine dati. L'UID dell'origine dati si trova nell'ultima parte dell'URL quando esplori o configuri un'origine dati, ad esempio
https://yourcompanyname.grafana.net/connections/datasources/edit/GRAFANA_DATASOURCE_UID
. Non copiare l'intero URL dell'origine dati. Copia solo l'identificatore univoco nell'URL.Configura un account di servizio Grafana creando il account di servizio e generare un token per l'account da utilizzare:
Nella barra laterale di navigazione di Grafana, fai clic su Amministrazione > Utenti e accesso > Account di servizio.
Crea l'account di servizio in Grafana facendo clic su Aggiungi account di servizio, assegnandogli un nome e concedendogli il ruolo "Origini dati > Scrittore". Nelle versioni precedenti di Grafana, puoi utilizzare il ruolo "Amministratore".
Fai clic su Aggiungi token account di servizio.
Imposta la scadenza del token su "Nessuna scadenza" e fai clic su Genera il token, quindi copia il token generato negli appunti per utilizzarlo come GRAFANA_SERVICE_ACCOUNT_TOKEN nel passaggio successivo:
Configura le seguenti variabili di ambiente utilizzando i risultati dei passaggi precedenti:
# These values are required. PROJECT_ID=PROJECT_ID # The Project ID from Step 1. GRAFANA_API_ENDPOINT=GRAFANA_INSTANCE_URL # The Grafana instance URL from step 2. This is a URL. Include "http://" or "https://". DATASOURCE_UIDS=GRAFANA_DATASOURCE_UID # The Grafana data source UID from step 3. This is not a URL. GRAFANA_API_TOKEN=GRAFANA_SERVICE_ACCOUNT_TOKEN # The Grafana service account token from step 4.
Esegui questo comando per creare un CronJob che aggiorni dell'origine dati all'inizializzazione e poi ogni 30 minuti. Se utilizzi la federazione delle identità di lavoro per GKE, il valore di NAMESPACE_NAME deve essere lo stesso spazio dei nomi associato in precedenza all'account di servizio.
curl https://raw.githubusercontent.com/GoogleCloudPlatform/prometheus-engine/0ca68f91fedb8ab9fc5bc6871c3b100dd602e32b/cmd/datasource-syncer/datasource-syncer.yaml \ | sed 's|$DATASOURCE_UIDS|'"$DATASOURCE_UIDS"'|; s|$GRAFANA_API_ENDPOINT|'"$GRAFANA_API_ENDPOINT"'|; s|$GRAFANA_API_TOKEN|'"$GRAFANA_API_TOKEN"'|; s|$PROJECT_ID|'"$PROJECT_ID"'|;' \ | kubectl -n NAMESPACE_NAME apply -f -
Vai all'origine dati Grafana appena configurata e verifica lo stato di Prometheus Il valore URL del server inizia con
https://monitoring.googleapis.com
. Potresti dover aggiornare la pagina. Dopo la verifica, vai in fondo alla pagina e seleziona Salva e test. Devi selezionare questo pulsante almeno una volta per assicura che il completamento automatico delle etichette in Grafana funzioni.
Eseguire query utilizzando Grafana
Ora puoi creare dashboard di Grafana ed eseguire query utilizzando l'origine dati configurata. Lo screenshot seguente mostra un grafico Grafana che mostra la metrica up
:
Per informazioni sulle query Metriche di sistema Google Cloud che utilizzano PromQL, consulta PromQL per Metriche di Cloud Monitoring.
Eseguire il sincronizzatore delle origini dati al di fuori di GKE
Puoi saltare questa sezione se esegui il sincronizzatore delle origini dati in un cluster Google Kubernetes Engine o se utilizzi l'opzione serverless. Se se hai problemi di autenticazione su GKE, consulta Verifica le credenziali dell'account di servizio.
Quando viene eseguito su GKE, il sincronizzatore delle origini dati recupera automaticamente le credenziali dall'ambiente in base all'account di servizio del nodo o alla configurazione di Workload Identity Federation per GKE.
Nei cluster Kubernetes non GKE, le credenziali devono essere fornite esplicitamente al sincronizzatore delle origini dati utilizzando la variabile di ambiente GOOGLE_APPLICATION_CREDENTIALS
.
Imposta il contesto sul progetto di destinazione:
gcloud config set project PROJECT_ID
Crea un account di servizio:
gcloud iam service-accounts create gmp-test-sa
Questo passaggio crea l'account di servizio che potresti avere già creati nel Istruzioni per la federazione delle identità per i carichi di lavoro per GKE.
Concedi le autorizzazioni richieste all'account di servizio:
gcloud projects add-iam-policy-binding PROJECT_ID \ --member=serviceAccount:gmp-test-sa@PROJECT_ID.iam.gserviceaccount.com \ --role=roles/monitoring.viewer \ && \ gcloud projects add-iam-policy-binding PROJECT_ID \ --member=serviceAccount:gmp-test-sa@PROJECT_ID.iam.gserviceaccount.com \ --role=roles/iam.serviceAccountTokenCreator
Crea e scarica una chiave per l'account di servizio:
gcloud iam service-accounts keys create gmp-test-sa-key.json \ --iam-account=gmp-test-sa@PROJECT_ID.iam.gserviceaccount.com
Imposta il percorso del file chiave utilizzando
GOOGLE_APPLICATION_CREDENTIALS
variabile di ambiente.
Autorizza lo strumento di sincronizzazione dell'origine dati al monitoraggio di più progetti
Managed Service per Prometheus supporta il monitoraggio di più progetti utilizzando ambiti delle metriche.
Per chi utilizza l'opzione serverless, puoi eseguire query su più progetti se il progetto scelto è il progetto di definizione dell'ambito di un ambito delle metriche multi-project.
Per coloro che eseguono il deployment dello strumento di sincronizzazione delle origini dati su Kubernetes, se il tuo progetto locale è il progetto di definizione dell'ambito, e hai seguito le istruzioni per verificare o configurare un servizio per il progetto locale, quindi l'esecuzione di query su più progetti. dovrebbe funzionare senza ulteriori configurazioni.
Se il progetto locale non è il progetto di ambito, devi autorizzare
l'account di servizio di calcolo predefinito del progetto locale o
l'account di servizio Workload Identity Federation per GKE per avere accessomonitoring.viewer
al progetto di ambito. Quindi, passa l'ID del progetto di ambito come valore della variabile di ambiente PROJECT_ID.
Se utilizzi l'account di servizio default
di Compute Engine,
puoi effettuare una delle seguenti operazioni:
Esegui il deployment del sincronizzatore delle origini dati in un cluster che appartiene al progetto di ambito.
Abilita la federazione delle identità per i carichi di lavoro per GKE per il tuo cluster e segui i passaggi di configurazione.
Fornisci una chiave dell'account di servizio esplicita.
Per concedere a un account di servizio le autorizzazioni necessarie per accedere a un altro progetto Google Cloud, svolgi i seguenti passaggi:
Concedi all'account di servizio l'autorizzazione a leggere dal progetto di destinazione su cui vuoi eseguire una query:
gcloud projects add-iam-policy-binding SCOPING_PROJECT_ID \ --member=serviceAccount:gmp-test-sa@PROJECT_ID.iam.gserviceaccount.com \ --role=roles/monitoring.viewer
Quando configuri lo strumento di sincronizzazione dell'origine dati, trasmetti l'ID del progetto di definizione dell'ambito come valore dell'ambiente
PROJECT_ID
la variabile personalizzata.
Ispezionare il CronJob Kubernetes
Se esegui il deployment del sincronizzatore delle origini dati su Kubernetes, puoi ispezionare il CronJob e assicurarti che tutte le variabili siano impostate correttamente eseguendo il seguente comando:
kubectl describe cronjob datasource-syncer
Per visualizzare i log per il job che configura inizialmente Grafana, esegui questo
subito dopo aver applicato il file datasource-syncer.yaml
:
kubectl logs job.batch/datasource-syncer-init
Smantellamento
Per disabilitare il Cronjob di sincronizzazione dell'origine dati su Kubernetes, esegui questo comando :
kubectl delete -f https://raw.githubusercontent.com/GoogleCloudPlatform/prometheus-engine/main/cmd/datasource-syncer/datasource-syncer.yaml
La disattivazione del sincronizzatore delle origini dati interrompe l'aggiornamento di Grafana collegato con nuove credenziali di autenticazione e, di conseguenza, le query su Managed Service per Prometheus non funzionano più.
Compatibilità con le API
I seguenti endpoint dell'API HTTP Prometheus sono supportati da Managed Service per Prometheus nell'URL con prefisso https://monitoring.googleapis.com/v1/projects/PROJECT_ID/location/global/prometheus/api/v1/
.
Per la documentazione completa, consulta la documentazione di riferimento dell'API Cloud Monitoring. Gli endpoint HTTP di Prometheus non sono disponibili nelle librerie client specifiche per i vari linguaggi di Cloud Monitoring.
Per informazioni sulla compatibilità di PromQL, consulta il supporto di PromQL.
I seguenti endpoint sono completamente supportati:
/api/v1/query
/api/v1/query_range
/api/v1/metadata
/api/v1/labels
/api/v1/query_exemplars
L'endpoint
/api/v1/label/<label_name>/values
funziona solo se l'etichetta__name__
viene fornita utilizzandola come valore<label_name>
o tramite una corrispondenza esatta utilizzando un selettore di serie. Ad esempio, le seguenti chiamate sono completamente supportate:/api/v1/label/__name__/values
/api/v1/label/__name__/values?match[]={__name__=~".*metricname.*"}
/api/v1/label/labelname/values?match[]={__name__="metricname"}
Questo limite fa sì che le query variabili
label_values($label)
in Grafana non riuscito. In alternativa, puoi utilizzarelabel_values($metric, $label)
. Questo tipo di query è consigliato perché evita di recuperare i valori per le etichette sulle metriche che non sono pertinenti per la dashboard specificata.L'endpoint
/api/v1/series
è supportato per le richiesteGET
, ma non per le richiestePOST
. Quando utilizzi lo strumento di sincronizzazione delle origini dati o il proxy frontend, questa limitazione viene gestita per te. Puoi anche configurare le origini dati Prometheus in Grafana in modo da emettere solo richiesteGET
. Il parametromatch[]
non supporta la corrispondenza delle espressioni regolari sull'etichetta__name__
.
Passaggi successivi
- Utilizza gli avvisi PromQL in Cloud Monitoring.
- Configura la valutazione delle regole gestite.
- Configura gli esportatori più comuni.