Questo documento descrive come utilizzare i metodi dell'ambito delle metriche nell'API Cloud Monitoring per gestire l'ambito delle metriche di un progetto Google Cloud. Questa pagina è rivolta a sviluppatori e amministratori di sistema.
Per connettere un account AWS all'ambito delle metriche di un progetto Google Cloud, devi utilizzare la console Google Cloud. Per saperne di più, consulta Visualizzare le metriche per gli account AWS.
Prima di iniziare
Se non hai dimestichezza con i termini ambito delle metriche e progetto di ambito, consulta l'articolo Ambiti delle metriche.
Assicurati che i ruoli di Identity and Access Management (IAM) nel progetto di ambito e in ogni progetto da aggiungere come progetto monitorato includano tutte le autorizzazioni nel ruolo Amministratore Monitoring (
roles/monitoring.admin
). Per ulteriori informazioni, consulta Configurazioni dell'ambito delle metriche.I metodi di ambito delle metriche dell'API Cloud Monitoring che recuperano le informazioni sono sincroni; tuttavia, le API che cambiano stato sono asincrone. Per informazioni su come determinare quando un metodo asincrono è completo e come determinarne lo stato, consulta i metodi delle API asincrone.
Per informazioni sull'utilizzo di Google Cloud con Terraform, consulta le seguenti risorse:
Parametri comando curl
Puoi richiamare le API degli ambiti delle metriche direttamente. Questa pagina fornisce comandi di esempio che utilizzano curl
. Ogni comando curl
include un insieme di argomenti seguiti dall'URL di una risorsa API:
curl -H "Authorization: Bearer ${TOKEN}" <other_args> \
https://monitoring.googleapis.com/v1/locations/global/metricsScopes/<resource>
Gli esempi in questa pagina si basano sulle seguenti variabili di ambiente:
TOKEN
: memorizza il token di autenticazione.SCOPING_PROJECT_ID_OR_NUMBER
: archivia l'ID o il numero del progetto per un progetto di definizione dell'ambito per un ambito delle metriche.MONITORED_PROJECT_ID_OR_NUMBER
: archivia l'ID o il numero di un progetto che deve essere aggiunto o rimosso dall'ambito di una metrica.
Potresti anche dover specificare altri argomenti, ad esempio il tipo della richiesta HTTP (ad esempio -X DELETE
). La richiesta predefinita è GET
, quindi non viene specificata negli esempi.
Per informazioni sulla configurazione richiesta per gli esempi, consulta la pagina relativa alla configurazione dei comandi di curl
.
Ottieni un ambito delle metriche
Per ricevere informazioni su un ambito delle metriche, invia una richiesta GET
all'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'operazione ha esito positivo, la risposta è un oggetto MetricsScope
.
Questo metodo non comporta la scrittura di una voce nei log di controllo del progetto di definizione dell'ambito. Per registrare queste azioni nell'audit log, abilita Data Read per l'API Cloud Resource Manager. Per ulteriori informazioni, consulta Configurare gli audit log di accesso ai dati.
Elenca tutti gli ambiti delle metriche che includono un progetto
Per ottenere un elenco di ambiti di metriche che possono visualizzare le metriche di un progetto, invia una richiesta GET
all'endpoint locations.global.metricsScopes.listMetricsScopesByMonitoredProject
e includi il parametro di ricerca 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}
Una volta completata, la risposta è un array di oggetti MetricsScope
.
Questo metodo non comporta la scrittura di una voce nei log di controllo del progetto di definizione dell'ambito. Per registrare queste azioni nell'audit log, abilita Data Read per l'API Cloud Resource Manager. Per ulteriori informazioni, consulta Configurare gli audit log di accesso ai dati.
Aggiungi un progetto a un ambito delle metriche
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 dalla variabile di ambiente MONITORED_PROJECT_ID_OR_NUMBER
viene aggiunto 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
finché il valore del campo Operation.done
non è true
.
Se il campo Operation.done
è impostato su false
, significa che l'operazione è in corso. Per ulteriori informazioni, consulta
Comandi API asincroni.
Di seguito è riportato un esempio di risposta quando si aggiunge un progetto monitorato:
{ "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 valore indica che il comando è stato completato. Poiché il comando è stato completato correttamente, il campo Operation.response
è impostato e il suo valore è un oggetto MonitoredProject
.
Il campo response.name
include l'identificatore del progetto di definizione dell'ambito
e del progetto monitorato. Il campo providerAccountId
elenca il nome del progetto monitorato.
Se richiama questo metodo, ottieni 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 vengono registrate nei log di controllo.
Rimuovere un progetto da un ambito delle metriche
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 dell'endpoint operation.get
finché il valore del campo Operation.done
non è true
.
Se il campo Operation.done
è impostato su false
, significa che l'operazione è in corso. Per ulteriori informazioni, consulta
Comandi API asincroni.
Di seguito è riportato un esempio di risposta all'esito positivo della rimozione di un progetto monitorato:
{ "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 valore indica che il comando è stato completato. Poiché il comando è stato completato correttamente, il campo Operation.response
è impostato e contiene un campo @type
.
Se richiama questo metodo, ottieni 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 vengono registrate nei log di controllo.
Metodi API asincroni
Tutti i metodi di ambito delle metriche dell'API Cloud Monitoring che modificano lo stato del sistema, ad esempio il comando per aggiungere a un progetto monitorato un ambito delle metriche, sono asincroni.
Per questi comandi, la risposta 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
done
èfalse
, l'operazione è in corso.Per aggiornare le informazioni sullo stato, invia una richiesta
GET
all'endpoint dioperation.get
:curl -H "Authorization: Bearer ${TOKEN}" \ https://monitoring.googleapis.com/v1/${OPERATION_NAME}
Nel comando precedente,
OPERATION_NAME
è una variabile di ambiente che memorizza il valore del campoOperation.name
.Se
done
ètrue
, l'operazione è stata completata ed è impostato il campoerror
oresponse
:error
: se impostata, 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 impostata, l'operazione asincrona è stata completata correttamente e il valore rispecchia il risultato.
Configurazione del comando curl
Questa sezione descrive la configurazione utilizzata per creare i comandi curl in questo documento.
Imposta queste variabili di ambiente per semplificare la creazione dei comandi curl
:
Crea la variabile di ambiente per archiviare l'ID o il numero del progetto di definizione dell'ambito:
SCOPING_PROJECT_ID_OR_NUMBER=a-sample-project
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=a-monitored-project
Autenticazione a Google Cloud CLI:
gcloud auth login
Facoltativo. Per evitare di specificare l'ID progetto con ogni comando
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 hanno funzionato all'improvviso indicano che non hai eseguito l'autenticazione, riesegui il comando.
Per verificare di avere un token di accesso, richiama la variabile
TOKEN
:echo ${TOKEN} ya29.GluiBj8o....