Scrivere metriche Prometheus utilizzando il sidecar Prometheus

Il sidecar Managed Service per Prometheus per Cloud Run è il metodo consigliato da Google per ottenere il monitoraggio in stile Prometheus per i servizi Cloud Run. Se il tuo servizio Cloud Run scrive metriche OTLP, puoi utilizzare il sidecar OpenTelemetry. Tuttavia, per i servizi che scrivono metriche Prometheus, utilizza il sidecar di Managed Service per Prometheus descritto in questo documento.

Questo documento descrive come:

Il sidecar utilizza Google Cloud Managed Service per Prometheus lato server e una distribuzione del raccoglitore OpenTelemetry, personalizzata per i carichi di lavoro serverless, lato client. Questa distribuzione personalizzata include alcune modifiche per supportare Cloud Run. Il collector esegue uno scan all'avvio dopo 10 secondi e uno scan al termine, indipendentemente dalla durata dell'istanza. Per la massima affidabilità, consigliamo ai servizi Cloud Run che eseguono il sidecar di utilizzare anche una CPU sempre allocata. Per ulteriori informazioni, consulta Allocazione della CPU (servizi). Alcuni tentativi di scraping potrebbero non andare a buon fine se l'allocazione della CPU è limitata a causa di un numero ridotto di query al secondo (QPS). Una CPU sempre allocata rimane disponibile.

Il sidecar si basa sulla funzionalità multicontainer (sidecar) di Cloud Run per eseguire il collector come container sidecar insieme al container del carico di lavoro. Per ulteriori informazioni sui sidecar in Cloud Run, consulta Eseguire il deployment di più container in un servizio (sidecar).

Il file collaterale Managed Service per Prometheus per Cloud Run introduce una nuova configurazione,RunMonitoring, un sottoinsieme della risorsa personalizzata PodMonitoring di Kubernetes. La maggior parte degli utenti può utilizzare la configurazione predefinita RunMonitoring, ma puoi anche creare configurazioni personalizzate. Per ulteriori informazioni sulle configurazioni RunMonitoring predefinite e personalizzate, consulta Aggiungere il sidecar a un servizio Cloud Run.

Prima di iniziare

Questa sezione descrive la configurazione necessaria per utilizzare questo documento.

Installa e configura la gcloud CLI

Molti dei passaggi descritti in questo documento utilizzano Google Cloud CLI. Per informazioni sull'installazione dell'interfaccia alla gcloud CLI, consulta Gestire i componenti dell'interfaccia a riga di comando Google Cloud.

Quando richiami i comandi gcloud, devi specificare l'identificatore per il tuo progetto Google Cloud. Puoi impostare un progetto predefinito per Google Cloud CLI ed eliminare la necessità di inserirlo con ogni comando. Per impostare il progetto come predefinito, inserisci il seguente comando:

gcloud config set project PROJECT_ID

Puoi anche impostare una regione predefinita per il servizio Cloud Run. Per impostare una regione predefinita, inserisci il seguente comando:

gcloud config set run/region REGION

Abilita API

Devi abilitare le seguenti API nel tuo progetto Google Cloud:

  • API Cloud Run Admin: run.googleapis.com
  • API Artifact Registry: artifactregistry.googleapis.com
  • API Cloud Monitoring: monitoring.googleapis.com
  • API Cloud Logging: logging.googleapis.com
  • (Facoltativo) Se crei una RunMonitoring configurazione personalizzata, devi attivare l'API Secret Manager: secretmanager.googleapis.com
  • (Facoltativo) Se scegli di eseguire l'app di esempio utilizzando Cloud Build, devi anche attivare le seguenti API:

Per visualizzare le API abilitate nel tuo progetto, esegui il seguente comando:

gcloud services list

Per abilitare un'API non abilitata, esegui uno dei seguenti comandi:

gcloud services enable run.googleapis.com
gcloud services enable artifactregistry.googleapis.com
gcloud services enable secretmanager.googleapis.com
gcloud services enable monitoring.googleapis.com
gcloud services enable logging.googleapis.com
gcloud services enable cloudbuild.googleapis.com
gcloud services enable iam.googleapis.com

Account di servizio per Cloud Run

Per impostazione predefinita, i job e i servizi Cloud Run utilizzano l'account di servizio predefinito di Compute Engine,PROJECT_NUMBER-compute@developer.gserviceaccount.com. In genere, questo account di servizio dispone dei ruoli IAM (Identity and Access Management) necessari per scrivere le metriche e i log descritti in questo documento:

  • roles/monitoring.metricWriter
  • roles/logging.logWriter

Se crei una configurazione RunMonitoring personalizzata, l'account di servizio deve disporre anche dei seguenti ruoli:

  • roles/secretmanager.admin
  • roles/secretmanager.secretAccessor

Puoi anche configurare un account di servizio gestito dall'utente per Cloud Run. Un account di servizio gestito dall'utente deve avere anche questi ruoli. Per ulteriori informazioni sugli account di servizio per Cloud Run, consulta Configurazione dell'identità di servizio.

Configurare e aggiungere il sidecar a un servizio Cloud Run

Il file collaterale Managed Service per Prometheus per Cloud Run introduce una nuova configurazione,RunMonitoring, che è un sottoinsieme della risorsa personalizzata PodMonitoring di Kubernetes. La configurazione RunMonitoring utilizza le opzioni PodMonitoring esistenti per supportare Cloud Run, eliminando al contempo alcune opzioni specifiche di Kubernetes.

Puoi utilizzare la configurazione predefinita RunMonitoring o creare una configurazione personalizzata. Le sezioni seguenti descrivono entrambi gli approcci. Non è necessario farlo da entrambe le piattaforme. Per ulteriori informazioni sull'utilizzo delle configurazioni predefinite o personalizzate, seleziona la scheda corrispondente.

Configurazione predefinita

Utilizza la configurazione predefinita di RunMonitoring

Se non crei una configurazione RunMonitoring personalizzata, il collector sidecar sintetizza la seguente configurazione predefinita per eseguire lo scraping delle metriche dalla porta 8080 nel percorso delle metriche /metrics ogni 30 secondi:

apiVersion: monitoring.googleapis.com/v1beta
kind: RunMonitoring
metadata:
  name: run-gmp-sidecar
spec:
  endpoints:
  - port: 8080
    path: /metrics
    interval: 30s

L'utilizzo della configurazione predefinita non richiede alcuna configurazione aggiuntiva oltre all'aggiunta del sidecar al servizio Cloud Run.

Aggiungi il sidecar a un servizio Cloud Run

Per utilizzare il sidecar con la configurazione predefinita di RunMonitoring, devi modificare la configurazione esistente di Cloud Run per aggiungere il sidecar. Per aggiungere il sidecar:

  • Aggiungi un'annotazione di dipendenza dal contenitore che specifica l'ordine di avvio e di interruzione dei container. Nell'esempio seguente, il contenitore sidecar, denominato "collector", si avvia dopo e si arresta prima del contenitore dell'applicazione, denominato "app" nell'esempio.
  • Crea un contenitore per il raccoglitore, denominato "collector" nel seguente esempio.

Ad esempio, aggiungi le righe precedute dal carattere + (più) alla configurazione di Cloud Run, quindi esegui nuovamente il deployment del servizio:

apiVersion: serving.knative.dev/v1
kind: Service
metadata:
  annotations:
    run.googleapis.com/launch-stage: ALPHA
    run.googleapis.com/cpu-throttling: 'false'
  name: my-cloud-run-service
spec:
  template:
    metadata:
      annotations:
        run.googleapis.com/execution-environment: gen2
+       run.googleapis.com/container-dependencies: '{"collector":["app"]}'
    spec:
      containers:
      - image: "REGION-docker.pkg.dev/PROJECT_ID/run-gmp/sample-app"
        name: app
        startupProbe:
          httpGet:
            path: /startup
            port: 8000
        livenessProbe:
          httpGet:
            path: /liveness
            port: 8000
        ports:
        - containerPort: 8000
+     - image: "us-docker.pkg.dev/cloud-ops-agents-artifacts/cloud-run-gmp-sidecar/cloud-run-gmp-sidecar:1.2.0"
+       name: collector

Per eseguire nuovamente il deployment del servizio Cloud Run con il file di configurazionerun-service.yaml, esegui il seguente comando:

gcloud run services replace run-service.yaml --region=REGION

Configurazione personalizzata

Creare una configurazione RunMonitoring personalizzata

Puoi creare una configurazione RunMonitoring per un servizio Cloud Run se la configurazione predefinita non è sufficiente. Ad esempio, puoi creare una configurazione come la seguente:

apiVersion: monitoring.googleapis.com/v1beta
kind: RunMonitoring
metadata:
  name: my-custom-cloud-run-job
spec:
  endpoints:
  - port: 8080
    path: /metrics
    interval: 10s
    metricRelabeling:
    - action: replace
      sourceLabels:
      - __address__
      targetLabel: label_key
      replacement: label_value
  targetLabels:
    metadata:
    - service
    - revision

Questa configurazione esegue le seguenti operazioni:

  • Estrae le metriche dalla porta 8080 e utilizza il percorso delle metriche predefinito /metrics.
  • Utilizza un intervallo di scansione di 10 secondi.
  • Utilizza la ridefinizione dell'etichetta per aggiungere l'etichetta label_key con il valore label_value a ogni metrica sottoposta a scraping.
  • Aggiunge le etichette dei metadati service e revision a ogni metrica sottoposta a scraping.

Per informazioni sulle opzioni di configurazione disponibili, consulta RunMonitoring spec: configuration options.

Quando utilizzi una configurazione RunMonitoring personalizzata, devi eseguire la seguente configurazione aggiuntiva:

Memorizza la configurazione utilizzando Secret Manager

Per fornire una configurazione RunMonitoring personalizzata:

  • Crea un file contenente la configurazione personalizzata.
  • Crea un secret di Secret Manager contenente la configurazione personalizzata.

Il seguente comando crea un segreto denominato mysecret dal custom-config.yaml file:

gcloud secrets create mysecret --data-file=custom-config.yaml

Per rilevare una modifica alla configurazione dopo aver modificato il file custom-config.yaml, devi eliminare e ricreare il segreto, quindi eseguire nuovamente il deployment del servizio Cloud Run.

Aggiornamento della configurazione in Secret Manager

Se vuoi aggiornare la configurazione personalizzata di RunMonitoring in qualsiasi momento, puoi aggiungere una nuova versione del secret esistente a Secret Manager.

Ad esempio, per aggiornare mysecret con una nuova configurazione memorizzata nel filecustom-config-updated.yaml, puoi eseguire:

gcloud secrets versions add mysecret --data-file=custom-config-updated.yaml

Il sidecar viene ricaricato automaticamente e le modifiche vengono applicate alla relativa configurazione.

Aggiungi il sidecar a un servizio Cloud Run

Dopo aver creato un segreto Secret Manager per la configurazioneRunMonitoring, devi modificare la configurazione di Cloud Run per eseguire le seguenti operazioni:

  • Aggiungi il sidecar di Managed Service per Prometheus
    • Aggiungi un'annotazione di dipendenza dal contenitore che specifica l'ordine di avvio e di interruzione dei container. Nell'esempio seguente, il contenitore sidecar, denominato "collector", si avvia dopo e si arresta prima del contenitore dell'applicazione, denominato "app" nell'esempio.
    • Crea un contenitore per il raccoglitore, denominato "collector" nel seguente esempio.
  • Aggiungi il secret montandolo nella posizione /etc/rungmp/config.yaml:
    • Aggiungi un'annotazione dei secret che rimandi al secret contenente la configurazione RunMonitoring personalizzata.
    • Crea un volume, denominato "config" nell'esempio seguente, per il segreto che rimanda al file config.yaml.
    • Monta il volume come parte dell'immagine del raccoglitore nel percorso di montaggio /etc/rungmp.

Ad esempio, aggiungi le righe precedute dal carattere + (più) alla configurazione di Cloud Run, quindi esegui nuovamente il deployment del servizio:

apiVersion: serving.knative.dev/v1
kind: Service
metadata:
  annotations:
    run.googleapis.com/launch-stage: ALPHA
    run.googleapis.com/cpu-throttling: 'false'
  name: my-cloud-run-service
spec:
  template:
    metadata:
      annotations:
        run.googleapis.com/execution-environment: gen2
+       run.googleapis.com/container-dependencies: '{"collector":["app"]}'
+       run.googleapis.com/secrets: 'mysecret:projects/PROJECT_ID/secrets/mysecret'
    spec:
      containers:
      - image: "REGION-docker.pkg.dev/PROJECT_ID/run-gmp/sample-app"
        name: app
        startupProbe:
          httpGet:
            path: /startup
            port: 8000
        livenessProbe:
          httpGet:
            path: /liveness
            port: 8000
        ports:
        - containerPort: 8000
+     - image: "us-docker.pkg.dev/cloud-ops-agents-artifacts/cloud-run-gmp-sidecar/cloud-run-gmp-sidecar:1.2.0"
+       name: collector
+       volumeMounts:
+       - mountPath: /etc/rungmp/
+         name: config
+     volumes:
+     - name: config
+       secret:
+         items:
+         - key: latest
+           path: config.yaml
+         secretName: 'mysecret'

Per eseguire nuovamente il deployment del servizio Cloud Run con il file di configurazionerun-service.yaml, esegui il seguente comando:

gcloud run services replace run-service.yaml --region=REGION

Specifica RunMonitoring: opzioni di configurazione

Questa sezione descrive le specifiche di configurazione RunMonitoring per il sidecar di Managed Service per Prometheus. Di seguito è riportato un esempio di configurazione personalizzata:

apiVersion: monitoring.googleapis.com/v1beta
kind: RunMonitoring
metadata:
  name: my-custom-cloud-run-job
spec:
  endpoints:
  - port: 8080
    path: /metrics
    interval: 10s
    metricRelabeling:
    - action: replace
      sourceLabels:
      - __address__
      targetLabel: label_key
      replacement: label_value
  targetLabels:
    metadata:
    - service
    - revision

RunMonitoring

La configurazione RunMonitoring monitora un servizio Cloud Run.

Campo Descrizione Scheme Obbligatorio
metadata Metadati che devono avere tutte le risorse persistenti. metav1.ObjectMeta falso
spec Specifiche del deployment Cloud Run selezionato per il rilevamento dei target da parte di Prometheus. RunMonitoringSpec true
RunMonitoringSpec

Questa specifica descrive in che modo la configurazione RunMonitoring monitora un servizio Cloud Run.

Campo Descrizione Scheme Obbligatorio
endpoints Endpoint da eseguire in scraping sui pod selezionati. []ScrapeEndpoint true
targetLabels Etichette da aggiungere al target Prometheus per gli endpoint rilevati. L'etichetta instance è sempre impostata sull'ID istanza Cloud Run. RunTargetLabels falso
limits Limiti da applicare al momento dello scraping. *ScrapeLimits falso
RunTargetLabels

La configurazione RunTargetLabels ti consente di includere le etichette Cloud Run dai target Prometheus rilevati.

Campo Descrizione Scheme Obbligatorio
metadata Le etichette dei metadati di Cloud Run impostate su tutti i target sottoposti a scraping.

Le chiavi consentite sono instance, revision, service e configuration.

Se le chiavi consentite sono impostate, il sidecar aggiunge il valore corrispondente dell'istanza Cloud Run come etichette delle metriche a ogni metrica: instanceID, revision_name, service_name e configuration_name.

Il valore predefinito è l'impostazione di tutte le chiavi consentite.
*[]string falso

Crea ed esegui un'app di esempio

Questa sezione descrive come eseguire il sidecar di Managed Service per Prometheus con un'app di esempio. Questa sezione è facoltativa. Se hai già un servizio Cloud Run e vuoi eseguire il deployment del sidecar al suo interno, consulta Aggiungere il sidecar di Managed Service per Prometheus a un servizio Cloud Run.

Clona il repository run-gmp-sidecar

Per ottenere l'app di esempio e i relativi file di configurazione, clona il repository run-gmp-sidecar eseguendo il seguente comando:

git clone https://github.com/GoogleCloudPlatform/run-gmp-sidecar/

Dopo aver clonato il repository, passa alla directory run-gmp-sidecar:

cd run-gmp-sidecar

Crea ed esegui l'app di esempio

L'app di esempio richiede Docker o un sistema di compilazione di container simile per Linux. Puoi compilare ed eseguire l'app di esempio in uno dei seguenti modi:

  • Utilizza Cloud Build per eseguire l'applicazione senza il supporto di Docker locale. Se utilizzi Cloud Build, devi anche attivare l'API Cloud Build.
  • Crea ed esegui manualmente l'app di esempio.

Le sezioni seguenti descrivono entrambi gli approcci. Non è necessario farlo da entrambe le piattaforme. Per ulteriori informazioni, seleziona la scheda di uno degli approcci.

Utilizzare Cloud Build

Utilizzare Cloud Build

Il repository run-gmp-sidecar include i file di configurazione per Cloud Build. Questi file raggruppano i passaggi necessari per compilare e implementare l'app di esempio.

Puoi anche eseguire manualmente i passaggi gestiti da Cloud Build. Per ulteriori informazioni, consulta Eseguire la compilazione e l'esecuzione manualmente.

Configurazione per Cloud Build

Questi file di configurazione richiedono un account di servizio Cloud Build e un repository Artifact Registry. Il repository run-gmp-sidecar include anche uno script, create-sa-and-ar.sh, che esegue le seguenti operazioni:

  • Crea un account di servizio, run-gmp-sa@PROJECT_ID.iam.gserviceaccount.com.
  • Concedi i seguenti ruoli all'account di servizio:
    • roles/iam.serviceAccountUser
    • roles/storage.objectViewer
    • roles/logging.logWriter
    • roles/artifactregistry.createOnPushWriter
    • roles/secretmanager.admin
    • roles/secretmanager.secretAccessor
    • roles/run.admin
  • Crea un repository Artifact Registry, run-gmp, per le tue immagini container.

Per creare l'account di servizio run-gmp-sa e il repository run-gmp, esegui il seguente comando:

./create-sa-and-ar.sh

Le autorizzazioni richiedono un po' di tempo per essere propagate, quindi ti consigliamo di attendere circa 30 secondi prima di procedere al passaggio successivo. In caso contrario, potresti visualizzare errori di autorizzazione.

Invia richiesta di Cloud Build

Dopo aver configurato l'account di servizio run-gmp-sa e il repository run-gmp, puoi avviare un job Cloud Build inviando il file di configurazione Cloud Build. Puoi utilizzare il seguente comando gcloud builds submit:

gcloud builds submit . --config=cloudbuild-simple.yaml --region=REGION

L'esecuzione di questo comando richiede diversi minuti, ma indica quasi immediatamente dove puoi trovare i dettagli della compilazione di Cloud Build. Il messaggio ha il seguente aspetto:

Logs are available at [
https://console.cloud.google.com/cloud-build/builds/637860fb-7a14-46f2-861e-09c1dc4cea6b?project=PROJECT_NUMBER].

Per monitorare l'avanzamento della compilazione, vai all'URL restituito nel browser. Puoi anche visualizzare i log del sidecar in Cloud Logging.

Controlla l'URL del servizio

Al termine del job Cloud Build, controlla l'URL dell'endpoint del servizio Cloud Run eseguendo il seguente comando:

gcloud run services describe my-cloud-run-service --region=REGION --format="value(status.url)"

Questo comando restituisce l'URL del servizio, che ha il seguente aspetto:

https://my-cloud-run-service-abcdefghij-ue.a.run.app

Utilizza l'URL restituito come valore di SERVICE_URL nella sezione Verificare che l'app sia in esecuzione.

Crea ed esegui manualmente

Crea ed esegui manualmente

Puoi eseguire manualmente i passaggi gestiti da Cloud Build, descritti in Utilizzare Cloud Build. Le sezioni seguenti illustrano come eseguire manualmente le stesse attività.

Imposta le variabili utilizzate dai passaggi successivi

Diversi passaggi successivi utilizzano variabili di ambiente per i valori comuni. Configura queste variabili utilizzando i seguenti comandi:

export GCP_PROJECT=PROJECT_ID
export REGION=REGION

Crea un repository di immagini container

Crea un repository Artifact Registry per l'immagine container eseguendo il seguente comando:

gcloud artifacts repositories create run-gmp \
    --repository-format=docker \
    --location=${REGION}

Crea ed esegui il push dell'app di esempio

Questo esempio utilizza Docker su Linux per creare l'app di esempio ed eseguirne il push in un repository Artifact Registry. Potresti dover adattare questi comandi se lavori in un ambiente Windows o macOS.

Per compilare l'app di esempio ed eseguirne il push in Artifact Registry, svolgi i seguenti passaggi:

  1. Autentica il client Docker con Google Cloud CLI:

    gcloud auth configure-docker ${REGION}-docker.pkg.dev
    
  2. Vai alla directory simple-app nel repository run-gmp-sidecar:

    pushd sample-apps/simple-app
    

  3. Compila l'app simple-app eseguendo il seguente comando:

    docker build -t ${REGION}-docker.pkg.dev/${GCP_PROJECT}/run-gmp/sample-app .
    
  4. Esegui il push dell'immagine per l'app creata eseguendo il seguente comando:

    docker push ${REGION}-docker.pkg.dev/${GCP_PROJECT}/run-gmp/sample-app
    

  5. Torna alla directory run-gmp-sidecar:

    popd
    

Configura il servizio Cloud Run

Il file run-service-simple.yaml nel repository run-gmp-sidecar definisce un servizio Cloud Run multicontainer che utilizza le immagini dell'app di esempio e del collector che hai creato nei passaggi precedenti. Il run-service-simple.yaml file contiene la seguente specifica del servizio:

apiVersion: serving.knative.dev/v1
kind: Service
metadata:
  annotations:
    run.googleapis.com/launch-stage: ALPHA
    run.googleapis.com/cpu-throttling: 'false'
  name: my-cloud-run-service
spec:
  template:
    metadata:
      annotations:
        run.googleapis.com/execution-environment: gen2
        run.googleapis.com/container-dependencies: '{"collector":["app"]}'
    spec:
      containers:
      - image: "%SAMPLE_APP_IMAGE%"
        name: app
        startupProbe:
          httpGet:
            path: /startup
            port: 8000
        livenessProbe:
          httpGet:
            path: /liveness
            port: 8000
        ports:
        - containerPort: 8000
      - image: "us-docker.pkg.dev/cloud-ops-agents-artifacts/cloud-run-gmp-sidecar/cloud-run-gmp-sidecar:1.2.0"
        name: collector

Questo file contiene un valore segnaposto per le immagini che hai creato nei passaggi precedenti, quindi devi aggiornare i segnaposto con i valori effettivi per il tuo progetto Google Cloud.

Sostituisci il segnaposto %SAMPLE_APP_IMAGE% eseguendo il seguente comando:

sed -i s@%SAMPLE_APP_IMAGE%@REGION-docker.pkg.dev/${GCP_PROJECT}/run-gmp/sample-app@g run-service-simple.yaml

Esegui il deployment del servizio Cloud Run

Dopo aver aggiornato il file run-service-simple.yaml con i tuoi valori, puoi creare ed eseguire il deployment del servizio Cloud Run eseguendo il seguente comando:

gcloud run services replace run-service-simple.yaml --region=REGION
   

Questo comando restituisce l'URL del servizio, che ha il seguente aspetto:

https://my-cloud-run-service-abcdefghij-ue.a.run.app

Utilizza l'URL restituito come valore di SERVICE_URL nella sezione Verificare che l'app sia in esecuzione.

Consenti accesso HTTP non autenticato

Prima di poter effettuare una richiesta all'URL del servizio, devi modificare il criterio del servizio Cloud Run in modo da accettare l'accesso HTTP non autenticato. Il file policy.yaml nel repository run-gmp-sidecar contiene la modifica necessaria.

Per modificare il criterio di servizio, esegui questo comando:

gcloud run services set-iam-policy my-cloud-run-service policy.yaml --region=REGION

Verifica che l'app sia in esecuzione

Per verificare che il servizio Cloud Run abbia eseguito correttamente l'app di esempio, utilizza l'utilità curl per accedere all'endpoint metrics del servizio.

  1. Imposta la variabile di ambiente SERVICE_URL sull'URL del servizio Cloud Run del passaggio precedente:

    export SERVICE_URL=SERVICE_URL
    
  2. Invia una richiesta all'URL del servizio eseguendo il seguente comando:

    curl $SERVICE_URL
    

Se l'app è stata avviata correttamente, viene visualizzata la seguente risposta:

User request received!

Visualizzare le metriche delle app in Metrics Explorer

Il contenitore app di esempio scrive le seguenti metriche:

  • foo_metric: l'ora corrente come valore in virgola mobile (indicatore).
  • bar_metric: l'ora corrente come valore in virgola mobile (contatore).

Per visualizzare queste metriche in Metrics Explorer, segui questi passaggi:

  1. Nella console Google Cloud, vai alla pagina  Esplora metriche:

    Vai a Esplora metriche

    Se utilizzi la barra di ricerca per trovare questa pagina, seleziona il risultato con il sottotitolo Monitoring.

  2. Nella barra degli strumenti del riquadro Query Builder, seleziona il pulsante  MQL o  PromQL.

  3. Verifica che PromQL sia selezionato nel pulsante di attivazione/disattivazione Lingua. Il pulsante di attivazione/disattivazione della lingua si trova nella stessa barra degli strumenti che consente di formattare la query.

  4. Inserisci la seguente query nel riquadro dell'editor:

    foo_metric
    
  5. Fai clic su Aggiungi query.

  6. Nella barra degli strumenti del riquadro Query Builder, seleziona il pulsante  MQL o  PromQL.

  7. Verifica che PromQL sia selezionato nel pulsante di attivazione/disattivazione Lingua. Il pulsante di attivazione/disattivazione della lingua si trova nella stessa barra degli strumenti che consente di formattare la query.

  8. Inserisci la seguente query nel secondo riquadro dell'editor:

    bar_metric
    
  9. Fai clic su Esegui query.

  10. Per visualizzare i dettagli sulle metriche, seleziona Entrambe nell'opzione di attivazione/disattivazione Tabella del grafico Entrambe.

Esegui la pulizia

Al termine dell'esperimento con l'app di esempio, puoi utilizzare lo script clean-up-cloud-run.sh nel repository run-gmp-sidecar per eliminare le seguenti risorse che potresti aver creato per l'esempio:

  • Il servizio Cloud Run.
  • Il repository Artifact Registry.
  • L'account di servizio creato per Cloud Build.

L'eliminazione di queste risorse ti garantisce di non sostenere costi dopo l'esecuzione del sample.

Per ripulire l'app di esempio, esegui lo script clean-up-cloud-run.sh:

./clean-up-cloud-run.sh

Visualizzare le metriche relative all'utente in Metrics Explorer

Il sidecar di Managed Service per Prometheus registra le seguenti metriche su se stesso in Cloud Monitoring:

  • agent_uptime: il tempo di attività del collector sidecar (contatore).
  • agent_memory_usage: la memoria utilizzata dal collector sidecar (indicatore).
  • agent_api_request_count: il numero di richieste API dal collector sidecar (contatore).
  • agent_monitoring_point_count: il numero di punti metrici scritti in Cloud Monitoring dal collector sidecar (contatore).

Per visualizzare le metriche del sidecar in Metrics Explorer, segui questi passaggi:

  1. Nella console Google Cloud, vai alla pagina  Esplora metriche:

    Vai a Esplora metriche

    Se utilizzi la barra di ricerca per trovare questa pagina, seleziona il risultato con il sottotitolo Monitoring.

  2. Nella barra degli strumenti del riquadro Query Builder, seleziona il pulsante  MQL o  PromQL.

  3. Verifica che PromQL sia selezionato nel pulsante di attivazione/disattivazione Lingua. Il pulsante di attivazione/disattivazione della lingua si trova nella stessa barra degli strumenti che consente di formattare la query.

  4. Inserisci il nome della metrica per cui vuoi eseguire una query nel riquadro dell'editor, ad esempio:

    agent_api_request_count
    
  5. Fai clic su Esegui query.

  6. Per visualizzare i dettagli sulle metriche, seleziona Entrambe nell'opzione di attivazione/disattivazione Tabella del grafico Entrambe.

Visualizzare i log personali in Esplora log

Il sidecar di Managed Service per Prometheus scrive i log in Cloud Logging. Il sidecar scrive log in base al tipo di risorsa monitorata di Logging cloud_run_revision.

Per visualizzare i log del sidecar in Esplora log:

  1. Nella console Google Cloud, vai alla pagina Esplora log:

    Vai a Esplora log

    Se utilizzi la barra di ricerca per trovare questa pagina, seleziona il risultato con il sottotitolo Logging.

  2. Seleziona il tipo di risorsa Revisione Cloud Run oppure inserisci la seguente query e fai clic su Esegui query:

    resource.type="cloud_run_revision"
    

Informazioni sulle metriche raccolte

Quando le metriche emesse dal sidecar vengono importate in Cloud Monitoring, vengono scritte in base al tipo di risorsa monitorata prometheus_target di Cloud Monitoring. Questo tipo di risorsa viene utilizzato sia per le metriche dell'applicazione sia per le metriche del sidecar.

Quando scrive le metriche, il sidecar imposta le etichette delle risorse come segue:

  • project_id: l'ID del progetto Google Cloud in cui è in esecuzione il contenitore.
  • location: la regione Google Cloud in cui è in esecuzione il contenitore.
  • cluster: il valore __run__.
  • namespace: il nome del servizio Cloud Run in esecuzione; proviene dalla variabile di ambiente K_SERVICE.
  • job: nome della configurazione RunMonitoring; il valore predefinito è run-gmp-sidecar.
  • instance: il valore faas.ID:PORT del carico di lavoro locale da cui il contenitore è configurato per estrarre le metriche. Il valore faas.ID è l'ID istanza dell'istanza Cloud Run.

Il sidecar aggiunge anche le seguenti etichette delle metriche:

  • instanceId: l'ID dell'istanza Cloud Run.
  • service_name: il nome del servizio Cloud Run in esecuzione.
  • revision_name: il nome della revisione Cloud Run in esecuzione.
  • configuration_name: il nome della configurazione Cloud Run in esecuzione.

Queste etichette delle metriche vengono aggiunte per impostazione predefinita. Se utilizzi una configurazione RunMonitoring personalizzata, puoi omettere le etichette service_name, revision_name e configuration_name utilizzando l'opzione targetLabels nella specifica RunMonitoring. Puoi anche utilizzare una configurazione personalizzata per rinominare i valori delle etichette service_name, revision_name e configuration_name.

Tutte le altre etichette visualizzate con le metriche importate provengono dalla metrica. Se un'etichetta definita dall'utente è in conflitto con una delle etichette fornite dal sistema, all'etichetta definita dall'utente viene anteposto il prefisso exported_. Ad esempio, un'etichetta specificata dall'utente namespace="playground" è in conflitto con l'etichetta namespace definita dal sistema, pertanto l'etichetta utente viene visualizzata come exported_namespace="playground".

Tipo di metrica

Quando le metriche emesse dal sidecar vengono importate in Cloud Monitoring, vengono scritte come metriche prometheus.googleapis.com e il tipo della metrica Prometheus viene aggiunto alla fine del nome. Ad esempio, l'app di esempio emette una metrica di indicatore Prometheus denominata foo_metric. In Cloud Monitoring, la metrica viene archiviata come tipo di metrica prometheus.googleapis.com/foo_metric/gauge.

Quando esegui una query sulla metrica con PromQL, puoi utilizzare il nome di Prometheus, come illustrato in Visualizzare le metriche dell'app in Metrics Explorer e Visualizzare le metriche relative all'entità in Metrics Explorer. Quando utilizzi strumenti come Query Builder o Monitoring Query Language (MQL) in Metrics Explorer, il tipo di metrica di Cloud Monitoring è pertinente.

Fatturazione

Le metriche emesse dal sidecar vengono importate in Cloud Monitoring con il prefisso prometheus.googleapis.com. Per le metriche con questo prefisso viene addebitato il costo in base al numero di campioni importati. Per ulteriori informazioni sulla fatturazione e su Managed Service per Prometheus, consulta Fatturazione.