Esegui query e visualizza le metriche

Dopo aver raccolto le metriche dai carichi di lavoro di cui è stato eseguito il deployment nel tuo progetto GDC, puoi interrogare e visualizzare le metriche nelle dashboard dall'istanza di monitoraggio del sistema del progetto o interrogare le metriche dall'API HTTP dell'appliance air-gap GDC.

Eseguire query e visualizzare le metriche nelle dashboard

L'istanza Grafana del tuo progetto, chiamata anche istanza di monitoraggio del sistema, include dati per monitorare i componenti a livello di progetto per l'osservabilità dei dati, come l'utilizzo della CPU, il consumo di spazio di archiviazione, il monitoraggio della rete, il monitoraggio del server, i log, gli avvisi e le metriche.

Per visualizzare le metriche, utilizza le dashboard nella pagina Esplora dell'istanza di monitoraggio del sistema. Per visualizzare metriche specifiche, esegui query dalla pagina Esplora.

Prima di iniziare

Prima di eseguire query e visualizzare le metriche nelle dashboard, devi ottenere l'accesso all'istanza di monitoraggio. Per saperne di più, vedi Accedere alle dashboard.

Creare query per le metriche

Monitora e visualizza le metriche per l'osservabilità dei dati nelle tue applicazioni tramite l'istanza di monitoraggio del sistema del tuo progetto. L'interfaccia utente (UI) integrata dell'istanza contiene dashboard predefinite da componenti standard e dashboard personalizzate che crei per le tue esigenze specifiche di casi d'uso. Supponendo che il tuo ambiente sia attivo e funzionante, vedrai immediatamente alcune dashboard delle metriche nella pagina Dashboard disponibili.

Esegui query sulle metriche dall'interfaccia utente per recuperarle visivamente dal tuo progetto e ottenere una visualizzazione integrata per monitorare le tue applicazioni. Per filtrare i risultati, cerca le metriche per etichette utilizzando le espressioni del linguaggio di query.

Endpoint dell'istanza di monitoraggio del sistema

Il seguente URL è l'endpoint dell'istanza di monitoraggio del progetto platform-obs:

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

Metriche delle query

Per eseguire query sulle metriche del tuo progetto:

Per recuperare le metriche:

  1. Nella console GDC, seleziona un progetto.
  2. Nel menu di navigazione, fai clic su Operazioni > Monitoring.
  3. Fai clic su Visualizza tutto in Grafana.

Si apre una nuova pagina con l'URL dell'istanza di monitoraggio del tuo progetto.

  1. Nell'interfaccia utente dell'istanza di monitoraggio, fai clic su Esplora Esplora dal menu di navigazione per aprire la pagina Esplora.
  2. Dal menu a discesa nella barra Esplora, seleziona prometheus per recuperare le metriche.
  3. 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 a discesa Filtri per metrica ed 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.

L'opzione Prometheus è selezionata nella pagina Esplora dell'interfaccia utente di Grafana per ottenere le metriche.

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.

Query ed etichette di esempio

Puoi eseguire query sulle metriche raccolte utilizzando il nome della metrica e le etichette chiave-valore. Per questo motivo, 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 in base alle loro esigenze. 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, crei tre flussi 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"}

Di seguito sono riportate alcune delle etichette predefinite che la risorsa personalizzata MonitoringTarget aggiunge e che puoi utilizzare 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 tabella seguente descrive le etichette che il servizio di scraping aggiunge automaticamente:

Etichette predefinite del servizio di scraping
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:

PROJECT_NAME-obs-system/MONITORINGTARGET_NAME.MONITORINGTARGET_NAMESPACE/I/J

PROJECT_NAME-obs-system/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 etichette e valori per eseguire query su metriche diverse per l'osservabilità dei dati:

  • Visualizza tutti i flussi di metriche delle operazioni elaborate nel progetto:

    processed_ops_total
    
  • Visualizza le operazioni elaborate raccolte in un cluster:

    processed_ops_total{cluster="CLUSTER_NAME"}
    
  • Visualizza l'utilizzo della CPU raccolto in un cluster:

    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 il MonitoringTarget CR per aggiungere etichette alle metriche che raccoglie. Specifica queste etichette nel campo metricsRelabelings della richiesta di modifica. Per maggiori informazioni, consulta 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:

  1. 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
    
  2. 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
    
  3. 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:

  1. Assicurati di soddisfare i prerequisiti.
  2. Apri la CLI.
  3. 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.