Dopo aver raccolto le metriche dai carichi di lavoro di cui è stato eseguito il deployment nell'appliance con air gap Google Distributed Cloud (GDC), puoi iniziare ad analizzarle. Per analizzare le metriche, puoi visualizzarle e filtrarle in dashboard Grafana informative oppure accedervi direttamente da Cortex utilizzando lo strumento
curl
per script e automazione flessibili.
Puoi accedere alle metriche in uno dei due modi seguenti:
- Dashboard Grafana: esplora le tendenze e identifica le anomalie con visualizzazioni intuitive di metriche chiave come l'utilizzo della CPU, il consumo di spazio di archiviazione e l'attività di rete. Grafana fornisce un'interfaccia intuitiva per filtrare e analizzare i dati dei workload nelle dashboard.
- Endpoint Cortex: per casi d'uso più avanzati, esegui query direttamente sull'istanza Cortex del tuo progetto utilizzando lo strumento
curl
su una riga di comando. Cortex archivia le metriche Prometheus del tuo progetto e fornisce un endpoint HTTP per l'accesso programmatico. Questo accesso ti consente di esportare i dati, automatizzare le attività e creare integrazioni personalizzate.
Prima di iniziare
Per ottenere le autorizzazioni necessarie per eseguire query e visualizzare le metriche nelle dashboard Grafana, chiedi all'amministratore IAM dell'organizzazione o all'amministratore IAM del progetto di concederti uno dei ruoli predefiniti Visualizzatore Grafana dell'organizzazione o Visualizzatore Grafana del progetto. A seconda del livello di accesso e delle autorizzazioni di cui hai bisogno, potresti ottenere ruoli Grafana in un'organizzazione o un progetto.
In alternativa, per ottenere le autorizzazioni necessarie per eseguire query sulle metriche dall'endpoint Cortex, chiedi all'amministratore IAM del progetto di concederti il ruolo Visualizzatore Prometheus di Project Cortex nello spazio dei nomi del progetto.
Per saperne di più su questi ruoli, consulta Preparare le autorizzazioni IAM.
Ottenere e filtrare le metriche
Seleziona uno dei seguenti metodi per creare query, visualizzare le tendenze e filtrare le metriche dai carichi di lavoro del progetto:
Dashboard Grafana
Questa sezione descrive come accedere alle metriche utilizzando i dashboard Grafana.
Identificare l'endpoint Grafana
Il seguente URL è l'endpoint dell'istanza Grafana del tuo progetto:
https://GDC_URL/PROJECT_NAMESPACE/grafana
Sostituisci quanto segue:
GDC_URL
: l'URL della tua organizzazione in GDC.PROJECT_NAMESPACE
: lo spazio dei nomi del progetto.Ad esempio, l'endpoint Grafana per il progetto
platform-obs
nell'organizzazioneorg-1
èhttps://org-1/platform-obs/grafana
.
Visualizzare le metriche nell'interfaccia utente di Grafana
Recupera le metriche nell'interfaccia utente di Grafana:
- Nella console GDC, seleziona il progetto.
- Nel menu di navigazione, seleziona Operazioni > Monitoring.
Fai clic su Visualizza tutto in Grafana.
Si apre una nuova pagina con l'endpoint Grafana e viene visualizzata l'interfaccia utente.
Nell'interfaccia utente,fai clic su Esplora Esplora dal menu di navigazione per aprire la pagina Esplora.
Dal menu della barra Esplora, seleziona un'origine dati per recuperare le metriche, in base al tipo di universo:
- Universi a zona singola: seleziona prometheus per visualizzare le metriche della zona singola del tuo universo.
Inserisci una query per cercare le metriche utilizzando le espressioni PromQL (Prometheus Query Language). Puoi eseguire questo passaggio in uno dei seguenti modi:
- Seleziona una metrica e un'etichetta per la query dai menu Metrica e Filtri etichetta. Fai clic su Aggiungi Aggiungi per aggiungere altre etichette alla query. Quindi, fai clic su Esegui query.
- Inserisci la query direttamente nel campo di testo Metriche e premi Maiusc+Invio per eseguirla.
La pagina mostra le metriche corrispondenti alla tua query.
Figura 1. Opzione di menu per eseguire query sulle metriche dall'interfaccia utente di Grafana.
Nella figura 1, l'opzione prometheus mostra l'interfaccia che consente di creare query da Grafana per recuperare le metriche.
Per esempi di valori delle etichette che puoi utilizzare per eseguire query sulle metriche, vedi Query ed etichette di esempio.
Endpoint Cortex
Questa sezione descrive come accedere alle metriche utilizzando Cortex.
Identificare l'endpoint Cortex
Il seguente URL è l'endpoint dell'istanza Cortex del tuo progetto:
https://GDC_URL/PROJECT_NAMESPACE/cortex/prometheus/
Sostituisci quanto segue:
GDC_URL
: l'URL della tua organizzazione in GDC.PROJECT_NAMESPACE
: lo spazio dei nomi del progetto.Ad esempio, l'endpoint Cortex per il progetto
platform-obs
nell'organizzazioneorg-1
èhttps://org-1/platform-obs/cortex/prometheus/
.
Autenticare la richiesta curl
- Scarica e installa gcloud CLI.
Imposta la proprietà gdcloud
core/organization_console_url
:gdcloud config set core/organization_console_url https://GDC_URL
Accedi con il provider di identità configurato:
gdcloud auth login
Utilizza il tuo nome utente e la tua password per autenticarti e accedere.
Se l'accesso va a buon fine, puoi utilizzare l'intestazione di autorizzazione nella richiesta cURL tramite il comando
gdcloud auth print-identity-token
. Per ulteriori informazioni, vedi gdcloud auth.
Chiama l'endpoint Cortex
Completa i seguenti passaggi per raggiungere l'endpoint Cortex utilizzando lo strumento curl
:
- Autenticare la richiesta
curl
. Utilizza
curl
per chiamare l'endpoint Cortex ed estendi l'URL utilizzando l'API HTTP standard di Prometheus (https://prometheus.io/docs/prometheus/latest/querying/api/) per eseguire query sulle metriche.Di seguito è riportato un esempio di richiesta
curl
:curl https://GDC_URL/PROJECT_NAME/cortex/prometheus/api/v1/query?query=my_metric{cluster="my-cluster"}&time=2015-07-01T20:10:51.781Z \ -H "Authorization: Bearer $(gdcloud auth print-identity-token \ --audiences=https://GDC_URL)"
Ottieni l'output seguente al comando. La risposta API è in formato JSON.
Query ed etichette di esempio
Puoi eseguire query sulle metriche utilizzando il nome della metrica e le coppie chiave-valore per le etichette. Una query PromQL ha la seguente sintassi:
metric_name{label_one="value", label_two="value"}
Le etichette ti consentono di distinguere le caratteristiche di una metrica. In questo modo, gli autori dei contenitori fanno in modo che i loro workload generino metriche e aggiungano tag per filtrare queste metriche.
Ad esempio, puoi avere una metrica api_http_requests_total
per conteggiare il numero di richieste HTTP ricevute. Poi, puoi aggiungere un'etichetta request_method
a questa metrica, che accetta un valore POST
, GET
o PUT
. Di conseguenza, devi creare tre stream di metriche per ogni tipo di richiesta che potresti ricevere. In questo
caso, per trovare il numero di richieste HTTP GET
, esegui la seguente query:
api_http_requests_total{request_method="GET"}
Per saperne di più su metriche ed etichette, consulta la pagina https://prometheus.io/docs/practices/naming/.
Di seguito sono riportate alcune delle etichette predefinite aggiunte dalla risorsa personalizzata MonitoringTarget
. Puoi utilizzare queste etichette predefinite per eseguire query sulle metriche:
_gdch_service
: il nome breve del servizio.cluster
: il nome del cluster.container_name
: il nome del container all'interno di un pod.namespace_name
: lo spazio dei nomi del progetto.pod_name
: il prefisso del nome del pod.
La seguente tabella descrive le etichette che Prometheus aggiunge automaticamente:
Etichetta metrica | Descrizione |
---|---|
job |
Il nome interno del job di scraping utilizzato per raccogliere la metrica. I job
creati dalla risorsa personalizzata MonitoringTarget hanno un nome
con il seguente pattern:obs-system/OBS_SHADOW_PROJECT_NAME/MONITORINGTARGET_NAME.MONITORINGTARGET_NAMESPACE/I/J I e J sono numeri univoci determinati internamente
per evitare conflitti di nomi. |
instance |
Il $IP:$PORT del servizio ritirato. Se una risorsa del carico di lavoro ha più repliche, utilizza questo campo per distinguerle. |
I seguenti esempi di codice mostrano l'utilizzo di coppie chiave-valore per le etichette per eseguire query su metriche diverse:
Visualizza tutti i flussi di metriche delle operazioni elaborate nel progetto:
processed_ops_total
Visualizza le operazioni elaborate raccolte in un cluster Kubernetes:
processed_ops_total{cluster="CLUSTER_NAME"}
Visualizza l'utilizzo della CPU raccolto in un cluster Kubernetes:
cpu_usage{cluster="CLUSTER_NAME"}
Utilizza lo strumento di rietichettatura delle metriche per aggiungere etichette non esposte inizialmente dai
container sottoposti a scraping e rinominare le metriche prodotte. Devi configurare la risorsa personalizzata
MonitoringTarget
per aggiungere etichette alle metriche che raccoglie.
Specifica queste etichette nel campo metricsRelabelings
della risorsa personalizzata.
Per maggiori informazioni, consulta la pagina Metriche delle etichette.
Eseguire query sulle metriche dall'API Cortex
Cortex è l'archiviazione a lungo termine per le metriche Prometheus in GDC. La piattaforma di osservabilità espone un endpoint API HTTP Cortex per l'esecuzione di query e la lettura di metriche, avvisi e altri dati delle serie temporali di Prometheus dal tuo progetto.
Esegui query sulle metriche direttamente dall'API HTTP per leggere ed esportare le metriche e altri dati delle serie temporali in strumenti esterni, configurare attività automatizzate, adattare le risposte e creare integrazioni in base al tuo caso d'uso di monitoraggio del sistema. Ad esempio, inserisci l'output in un altro comando, esporta i dettagli in formati di file di testo o configura un cron job Linux. Puoi chiamare l'API dall'interfaccia a riga di comando (CLI) o da un browser web e utilizzare le espressioni del linguaggio di query come parametri dell'endpoint per ottenere il risultato in formato JSON.
Questa sezione spiega come chiamare l'endpoint API Cortex dalla CLI utilizzando la specifica dell'API Prometheus per eseguire query sulle metriche per l'osservabilità dei dati.
Prima di iniziare
Devi ottenere l'autorizzazione per eseguire query sulle metriche dalla CLI. Per ottenere le autorizzazioni necessarie per accedere all'endpoint API Cortex, chiedi all'amministratore IAM del progetto di concederti il ruolo Visualizzatore Prometheus di Project Cortex (project-cortex-prometheus-viewer
).
Crea i seguenti binding dei ruoli utilizzando i comandi kubectl
per Cortex Prometheus per ogni persona:
Amministratore root dell'operatore dell'infrastruttura (IO) -
Project Cortex Prometheus Viewer
:kubectl --kubeconfig $HOME/root-admin-kubeconfig create rolebinding io-cortex-prometheus-viewer-binding -n infra-obs --user=fop-infrastructure-operator@example.com --role=project-cortex-prometheus-viewer
Amministratore della piattaforma (PA) - Amministratore root -
Project Cortex Prometheus Viewer
:kubectl --kubeconfig $HOME/root-admin-kubeconfig create rolebinding pa-cortex-prometheus-viewer-binding -n platform-obs --user=fop-platform-admin@example.com --role=project-cortex-prometheus-viewer
Amministratore principale operatore dell'applicazione (AO) -
Project Cortex Prometheus Viewer
:kubectl --kubeconfig $HOME/root-admin-kubeconfig create rolebinding project-cortex-prometheus-viewer-binding -n PROJECT_NAME --user=USER_NAME --role=project-cortex-prometheus-viewer
Sostituisci quanto segue:
- PROJECT_NAME: il nome del progetto.
- USER_NAME: il nome account dell'utente che richiede l'associazione del ruolo.
Una volta creato il binding del ruolo, puoi accedere all'API Prometheus con il tuo nome utente di accesso.
Endpoint API HTTP
Il seguente URL è l'endpoint API HTTP per accedere alle metriche nel progetto platform-obs
:
https://GDC_URL/PROJECT_NAME/cortex/prometheus/
Sostituisci quanto segue:
- GDC_URL: l'URL della tua organizzazione in GDC.
- PROJECT_NAME: il nome del progetto.
Chiama l'endpoint API
Segui questi passaggi per raggiungere l'endpoint dell'API Cortex dalla CLI ed eseguire query sulle metriche:
- Assicurati di soddisfare i prerequisiti.
- Apri la CLI.
Utilizza lo strumento
curl
per chiamare l'endpoint Cortex ed estendere l'URL utilizzando lo standard https://prometheus.io/docs/prometheus/latest/querying/api/ per eseguire query sulle metriche. Ad esempio:curl https://console.org-1.zone1.google.gdch.test/alice/cortex/prometheus/api/v1/query?query=my_metric{cluster="org-1-system"}&time=2015-07-01T20:10:51.781Z
Ottieni l'output nella CLI dopo il comando. Il formato della risposta API è JSON.