Questo documento descrive come utilizzare Google Cloud CLI o API Cloud Monitoring per configurare l'ambito delle metriche di un progetto Google Cloud. Questa pagina è rivolta a sviluppatori e amministratori di sistema.
I comandi in questa pagina fanno riferimento a un container di risorse, che è sempre di un progetto Google Cloud.
Prima di iniziare
Se non hai familiarità con i termini ambito delle metriche e progetto di ambito, quindi verifica Ambiti delle metriche.
Assicurati che i ruoli IAM (Identity and Access Management) progetto di ambito e su ogni progetto che vuoi aggiungere come progetto monitorato, includi tutte le autorizzazioni nel Ruolo Amministratore Monitoring (
roles/monitoring.admin
). Per ulteriori informazioni, consulta Configurazioni dell'ambito delle metriche.I metodi dell'ambito delle metriche dell'API Cloud Monitoring che recuperano le informazioni sono sincrone; tuttavia, le API che cambiano sono asincroni. I comandi Google Cloud CLI vengono bloccati fino al completamento dell'operazione asincrona. Per informazioni su come determinare quando un metodo API asincrono è completo e come determinarne lo stato, consulta Metodi API asincroni.
Se prevedi di richiamare l'API Cloud Monitoring utilizzando
curl
o se vuoi utilizzare gli esempi su questa pagina, quindi completa Passaggi di configurazione del comandocurl
.
Elenco di tutti gli ambiti delle metriche che includono un progetto
gcloud
Per ottenere un elenco degli ambiti delle metriche che possono visualizzare le metriche per un
un container di risorse, ad esempio un progetto Google Cloud,
Comando gcloud beta monitoring metrics-scopes list
:
gcloud beta monitoring metrics-scopes list MONITORED_RESOURCE_CONTAINER_NAME
Prima di eseguire il comando, inserisci l'identificatore del contenitore di risorse nella variabile MONITORED_RESOURCE_CONTAINER_NAME.
Se il container di risorse è un progetto Google Cloud,
inserisci projects/PROJECT_ID_OR_NUMBER
.
Ad esempio, per elencare gli ambiti delle metriche che includono il progetto
my-project
, esegui questo comando:
gcloud beta monitoring metrics-scopes list projects/my-project
La seguente risposta indica che il progetto my-project
è incluso in
due ambiti delle metriche:
metricsScopes:
- createTime: '2018-08-06T17:13:42Z'
name: locations/global/metricsScopes/012345012345
updateTime: '2018-08-18T16:20:37.032928Z'
- createTime: '2021-04-13T15:37:26.869Z'
name: locations/global/metricsScopes/9876543210
updateTime: '2021-04-13T15:37:27.284239Z'
Per ottenere informazioni dettagliate su un ambito delle metriche, esegui il comando gcloud beta monitoring metrics-scopes describe
.
curl
Per ottenere un elenco di ambiti delle metriche che possono visualizzare le metriche di un progetto,
invia una richiesta GET
all'endpoint
locations.global.metricsScopes.listMetricsScopesByMonitoredProject
e includi il parametro di query che specifica il progetto.
curl -H "Authorization: Bearer ${TOKEN}" \ https://monitoring.googleapis.com/v1/locations/global/metricsScopes:listMetricsScopesByMonitoredProject?monitored_resource_container=projects/${PROJECT_ID_OR_NUMBER}
Se ha esito positivo, la risposta è un array di
MetricsScope
oggetti.
Questo metodo non comporta la scrittura di una voce nei log di controllo del progetto di definizione dell'ambito. Per registrare queste azioni nel log di controllo, abilita Lettura dati per l'API Cloud Resource Manager. Per maggiori informazioni, consulta la pagina Configurazione degli audit log di accesso ai dati.
Visualizza i dettagli di un ambito delle metriche
gcloud
Per ottenere informazioni dettagliate su un ambito delle metriche, esegui il comando
gcloud beta monitoring metrics-scopes describe
:
gcloud beta monitoring metrics-scopes describe METRICS_SCOPE_ID
Prima di eseguire il comando, inserisci il nome del nome completo di un l'ambito delle metriche nella variabile METRICS_SCOPE_ID. Di seguito è riportato un esempio di nome completo:
locations/global/metricsScopes/012345012345
Di seguito è riportato un esempio di risposta. In questo esempio, l'ambito delle metriche contiene un progetto e l'ID dell'ambito e del progetto è lo stesso:
createTime: '2018-08-06T17:13:42Z'
monitoredProjects:
- createTime: '2018-08-06T17:13:42Z'
name: locations/global/metricsScopes/012345012345/projects/012345012345
name: locations/global/metricsScopes/012345012345
updateTime: '2018-08-18T16:20:37.032928Z'
Per identificare il progetto Google Cloud dal suo ID, esegui
gcloud projects list
e filtra in base all'ID progetto. Ad esempio, per recuperare il nome del progetto 012345012345
, esegui il seguente comando:
gcloud projects list --filter="012345012345" --format="value(NAME)"
curl
Per ottenere informazioni
sull'ambito delle metriche,
invia una richiesta GET
a
Endpoint locations.global.metricsScopes.get
:
curl -H "Authorization: Bearer ${TOKEN}" \ https://monitoring.googleapis.com/v1/locations/global/metricsScopes/${SCOPING_PROJECT_ID_OR_NUMBER}
Se l'esito è positivo, la risposta è un oggetto MetricsScope
.
Questo metodo non comporta la scrittura di una voce in gli audit log del progetto di definizione dell'ambito. Per registrare queste azioni nel log di controllo, abilita Lettura dati per l'API Cloud Resource Manager. Per maggiori informazioni, consulta la pagina Configurazione degli audit log di accesso ai dati.
Aggiungere un progetto a un ambito delle metriche
gcloud
Per aggiungere un contenitore di risorse, ad esempio un progetto Google Cloud, a un ambito delle metriche,
esegui il comando gcloud beta monitoring metrics-scopes create
:
gcloud beta monitoring metrics-scopes create MONITORED_RESOURCE_CONTAINER_NAME --project=SCOPING_PROJECT_ID_OR_NUMBER
Prima di eseguire il comando precedente, segui questi passaggi:
Inserisci il nome o l'ID del progetto Google Cloud di cui deve essere modificato l'ambito delle metriche nella variabile SCOPING_PROJECT_ID_OR_NUMBER.
Inserisci l'identificatore del container di risorse nella variabile MONITORED_RESOURCE_CONTAINER_NAME. Quando il contenitore delle risorse è un progetto Google Cloud, inserisci
projects/PROJECT_ID_OR_NUMBER
.
Ad esempio, il seguente comando aggiunge il progetto my-monitored-project
all'ambito delle metriche del progetto denominato my-staging-projects
:
gcloud beta monitoring metrics-scopes create projects/my-monitored-project --project=my-staging-projects
La risposta al comando precedente conferma che il comando completato correttamente:
Created monitored project [locations/global/metricsScopes/my-staging-projects/projects/my-monitored-project].
curl
Per aggiungere un progetto Google Cloud a un ambito delle metriche,
invia una richiesta POST
all'endpoint
locations.global.metricsScopes.projects.create
. Nell'esempio seguente, il progetto identificato dall'ambiente
la variabile MONITORED_PROJECT_ID_OR_NUMBER
è stata aggiunta come progetto monitorato:
curl -H "Authorization: Bearer ${TOKEN}" \ -H "Content-Type: application/json" -X POST \ -d "{'name': 'locations/global/metricsScopes/${SCOPING_PROJECT_ID_OR_NUMBER}/projects/${MONITORED_PROJECT_ID_OR_NUMBER}'}" \ https://monitoring.googleapis.com/v1/locations/global/metricsScopes/${SCOPING_PROJECT_ID_OR_NUMBER}/projects
La risposta di questo metodo asincrono è un oggetto
Operation
.
Le applicazioni che chiamano questo metodo devono eseguire il polling dell'endpoint
operation.get
fino a quando il valore del campo Operation.done
non è true
.
Se il campo Operation.done
è impostato su false
, significa che è stata eseguita l'operazione
è in corso. Per ulteriori informazioni, consulta
Comandi API asincroni.
Di seguito è riportato un esempio di risposta durante l'aggiunta di un progetto riuscito:
{ "name": "operations/6915efde-1915-400a-ad49-7b62041d9bd2", "metadata": { "@type": "type.googleapis.com/google.monitoring.metricsscope.v1.OperationMetadata", "state": "DONE", ... }, "done": true, "response": { "@type": "type.googleapis.com/google.monitoring.metricsscope.v1.MonitoredProject", "name": "locations/global/metricsScopes/012012012012/projects/678678678678", "provider": "GCP", "providerAccountId": "...", ... } }
Nella risposta precedente, il campo Operation.done
è impostato su true
. Questo
indica che il comando è completo. Poiché il comando ha completato
correttamente, il campo Operation.response
è stato impostato e i suoi
è un oggetto MonitoredProject
.
Il campo response.name
include l'identificatore del progetto di definizione dell'ambito
e il progetto monitorato. Il campo providerAccountId
elenca il nome
il progetto monitorato.
L'invocazione di questo metodo genera una voce nei log di controllo del progetto di definizione dell'ambito. La console Google Cloud non richiama questo metodo API. Di conseguenza, le modifiche apportate a un ambito delle metriche quando utilizzi La console Google Cloud non viene registrata negli audit log.
Rimuovere un progetto da un ambito delle metriche
gcloud
Per rimuovere un container di risorse, ad esempio un progetto Google Cloud,
da un ambito delle metriche, esegui
Comando gcloud beta monitoring metrics-scopes delete
:
gcloud beta monitoring metrics-scopes delete MONITORED_RESOURCE_CONTAINER_NAME --project=SCOPING_PROJECT_ID_OR_NUMBER
Prima di eseguire il comando precedente, segui questi passaggi:
Inserisci il nome o l'ID del progetto Google Cloud di cui deve essere modificato l'ambito delle metriche nella variabile SCOPING_PROJECT_ID_OR_NUMBER.
Inserisci l'identificatore del contenitore delle risorse nella variabile MONITORED_RESOURCE_CONTAINER_NAME. Quando il contenitore delle risorse è un progetto Google Cloud, inserisci
projects/PROJECT_ID_OR_NUMBER
.
Ad esempio, il comando seguente rimuove il progetto my-monitored-project
dall'ambito delle metriche del progetto denominato my-staging-projects
:
gcloud beta monitoring metrics-scopes delete projects/my-monitored-project --project=my-staging-projects
La risposta al comando precedente conferma che il comando completato correttamente:
Deleted monitored project [locations/global/metricsScopes/my-staging-projects/projects/my-monitored-project].
Quando il progetto di definizione dell'ambito non sta monitorando, viene segnalato il seguente errore il progetto specificato dalla variabile MONITORED_RESOURCE_CONTAINER_NAME:
NOT_FOUND: Requested entity was not found.
curl
Per rimuovere un progetto Google Cloud da un ambito delle metriche,
invia una richiesta DELETE
all'endpoint
locations.global.metricsScopes.projects.delete
:
curl -H "Authorization: Bearer ${TOKEN}" -X DELETE \ https://monitoring.googleapis.com/v1/locations/global/metricsScopes/${SCOPING_PROJECT_ID_OR_NUMBER}/projects/${MONITORED_PROJECT_ID_OR_NUMBER}
La risposta a questo metodo asincrono è un oggetto
Operation
.
Le applicazioni che chiamano questo metodo devono eseguire il polling
operation.get
endpoint finché il valore del campo Operation.done
non è true
.
Se il campo Operation.done
è impostato su false
, significa che è stata eseguita l'operazione
è in corso. Per ulteriori informazioni, vedi
Comandi API asincroni.
Di seguito è riportato un esempio di risposta quando la rimozione di un progetto monitorato è andata a buon fine:
{ "name": "operations/4367ff34-0ff0-4767-b8d3-0638e30f077c", "metadata": { "@type": "type.googleapis.com/google.monitoring.metricsscope.v1.OperationMetadata", "state": "DONE", ... }, "done": true, "response": { "@type": "type.googleapis.com/google.protobuf.Empty" } }
Nella risposta precedente, il campo Operation.done
è impostato su true
. Questo
indica che il comando è completo. Poiché il comando ha completato
correttamente, il campo Operation.response
è stato impostato e contiene
@type
.
Se richiami questo metodo, viene inserita una voce negli audit log del progetto di definizione dell'ambito. La console Google Cloud non richiama questo metodo API. Pertanto, le modifiche apportate a un ambito delle metriche quando si utilizza la console Google Cloud non vengono registrate negli audit log.
Metodi API asincroni
Tutti i metodi di ambito delle metriche dell'API Cloud Monitoring che cambiano lo stato
del sistema, ad esempio
per aggiungere un progetto monitorato nell'ambito delle metriche, sono asincroni.
Per questi comandi, la risposta del comando è un oggetto
Operation
.
Le applicazioni che chiamano un metodo API asincrono devono eseguire il polling dell'endpoint operation.get
finché il valore del campo Operation.done
non è true
:
Quando il valore del campo
done
èfalse
, l'operazione è in corso.Per aggiornare le informazioni sullo stato, invia una richiesta
GET
all'endpointoperation.get
:curl -H "Authorization: Bearer ${TOKEN}" \ https://monitoring.googleapis.com/v1/${OPERATION_NAME}
Nel comando precedente,
OPERATION_NAME
è una variabile di ambiente che immagazzina il valore del campoOperation.name
.Quando il valore di
done
ètrue
, l'operazione viene completata e loerror
o Il camporesponse
è impostato:error
: se impostato, l'operazione asincrona non è riuscita. Il valore di questo campo è un oggettoStatus
che contiene un codice di errore gRPC e un messaggio di errore.response
: se impostato, l'operazione asincrona è stata completata correttamente, e il valore riflette il risultato.
Configurazione del comando curl
In questa sezione viene descritta la configurazione utilizzata per creare i comandi curl
documento. Ogni comando curl
in questa pagina include un insieme
argomenti seguiti dall'URL di una risorsa API:
curl -H "Authorization: Bearer ${TOKEN}" <other_args> \
https://monitoring.googleapis.com/v1/locations/global/metricsScopes/<resource>
Imposta queste variabili di ambiente per semplificare la creazione dei comandi curl
:
Crea la variabile di ambiente per archiviare il progetto di definizione dell'ambito ID o numero:
SCOPING_PROJECT_ID_OR_NUMBER=SCOPING_PROJECT_ID_OR_NUMBER
Facoltativo. Se prevedi di aggiungere o rimuovere progetti monitorati, configura la variabile di ambiente con l'ID o il numero del progetto monitorato:
MONITORED_PROJECT_ID_OR_NUMBER=MONITORED_PROJECT_ID_OR_NUMBER
Esegui l'autenticazione in Google Cloud CLI:
gcloud auth login
Facoltativo. Per evitare di dover specificare l'ID progetto con ogni
gcloud
, imposta l'ID progetto come predefinito utilizzando gcloud CLI:gcloud config set project ${SCOPING_PROJECT_ID_OR_NUMBER}
Crea un token di autorizzazione e acquisiscilo in una variabile di ambiente:
TOKEN=`gcloud auth print-access-token`
I token sono validi per un periodo di tempo limitato. Se i comandi che funzionavano suonino improvvisamente che non hai eseguito l'autenticazione, esegui di nuovo questo comando.
Per verificare di aver ricevuto un token di accesso, esegui l'eco della variabile
TOKEN
:echo ${TOKEN} ya29.GluiBj8o....
Potresti anche dover specificare altri argomenti, ad esempio per specificare
tipo di richiesta HTTP (ad esempio, -X DELETE
). La richiesta predefinita
è GET
, quindi non è specificato negli esempi.
Passaggi successivi
Per informazioni sull'utilizzo di Google Cloud con Terraform, consulta seguenti risorse: