Questo documento descrive come utilizzare Google Cloud CLI o l'API Cloud Monitoring per configurare l'ambito delle metriche di un progetto Google Cloud . Questa pagina è destinata a sviluppatori e amministratori di sistema.
Puoi anche utilizzare Terraform per configurare un ambito delle metriche. Per ulteriori
informazioni, consulta il registro Terraform per
google_monitoring_monitored_project
.
Ambiti delle applicazioni e delle metriche di App Hub
Gestisci l'ambito delle metriche per i progetti host di App Hub. Puoi gestire questo ambito utilizzando la consoleGoogle Cloud o l'API Cloud Monitoring.
Google Cloud gestisce l'ambito delle metriche per le cartelle abilitate per le app, a meno che l'aggiunta di un progetto all'ambito delle metriche non riesca a causa dell'esaurimento della quota dell'ambito delle metriche. In questo caso, puoi richiedere un aumento della quota e poi aggiungere manualmente i progetti all'ambito delle metriche del progetto di gestione per la cartella abilitata per l'app. Per saperne di più, consulta Ambiti delle metriche per le cartelle abilitate per le app.
Prima di iniziare
Se non hai familiarità con i termini ambito delle metriche e progetto di definizione dell'ambito, consulta Ambiti delle metriche.
Assicurati che i tuoi ruoli Identity and Access Management (IAM) nel progetto di definizione dell'ambito e in ogni progetto che vuoi aggiungere o rimuovere da un ambito delle metriche 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. I comandi Google Cloud CLI vengono bloccati fino al completamento dell'operazione asincrona. Per informazioni su come determinare quando un metodo API asincrono è completato 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 in questa pagina, completa i passaggi di configurazione del comandocurl
.
Aggiungere un progetto a un ambito delle metriche
gcloud
Per aggiungere 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_PROJECT_ID_OR_NUMBER --project=SCOPING_PROJECT_ID_OR_NUMBER
Prima di eseguire il comando precedente:
Inserisci il nome o l'ID del progetto Google Cloud il cui ambito delle metriche deve essere modificato nella variabile SCOPING_PROJECT_ID_OR_NUMBER. Per le configurazioni di App Hub, seleziona il progetto host di App Hub o il progetto di gestione della cartella app.
Inserisci l'identificatore del progetto monitorato nella variabile MONITORED_PROJECT_ID_OR_NUMBER. Il formato è
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 fornisce la conferma che il comando è stato 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
:
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
Nell'esempio precedente, le variabili di ambiente sono definite come segue:
MONITORED_PROJECT_ID_OR_NUMBER
memorizza l'ID del progetto da aggiungere all'ambito delle metriche.SCOPING_PROJECT_ID_OR_NUMBER
memorizza l'ID del progetto il cui ambito delle metriche viene aggiornato.
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
.
Quando il campo Operation.done
è impostato su false
, l'operazione
è in corso. Per saperne di più, consulta
Comandi API asincroni.
Di seguito è riportato un esempio di risposta quando l'aggiunta di un progetto monitorato va a buon fine:
{ "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.
L'invocazione di questo metodo genera 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 nei log di controllo.
Rimuovere un progetto da un ambito delle metriche
gcloud
Per rimuovere un progetto Google Cloud da un ambito delle metriche, esegui il comando gcloud beta monitoring metrics-scopes delete
:
gcloud beta monitoring metrics-scopes delete MONITORED_PROJECT_ID_OR_NUMBER --project=SCOPING_PROJECT_ID_OR_NUMBER
Prima di eseguire il comando precedente:
Inserisci il nome o l'ID del progetto Google Cloud il cui ambito delle metriche deve essere modificato nella variabile SCOPING_PROJECT_ID_OR_NUMBER. Per le configurazioni di App Hub, seleziona il progetto host di App Hub o il progetto di gestione della cartella app.
Inserisci l'identificatore del progetto monitorato nella variabile MONITORED_PROJECT_ID_OR_NUMBER. Il formato è
projects/PROJECT_ID_OR_NUMBER
.
Ad esempio, il seguente comando 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 fornisce la conferma che il comando è stato completato correttamente:
Deleted monitored project [locations/global/metricsScopes/my-staging-projects/projects/my-monitored-project].
Il seguente errore viene segnalato quando il progetto di definizione dell'ambito non monitora il progetto specificato dalla variabile MONITORED_PROJECT_ID_OR_NUMBER:
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}
Nell'esempio precedente, le variabili di ambiente sono definite come segue:
MONITORED_PROJECT_ID_OR_NUMBER
memorizza l'ID del progetto da rimuovere dall'ambito delle metriche.SCOPING_PROJECT_ID_OR_NUMBER
memorizza l'ID del progetto il cui ambito delle metriche viene aggiornato.
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
.
Quando il campo Operation.done
è impostato su false
, l'operazione
è in corso. Per saperne di più, consulta
Comandi API asincroni.
Di seguito è riportato un esempio di risposta quando la rimozione di un progetto monitorato va 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
valore indica che il comando è stato completato. Poiché il comando è stato completato
correttamente, il campo Operation.response
è impostato e contiene un
campo @type
.
L'invocazione di questo metodo genera 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 nei log di controllo.
Elenco di tutti gli ambiti delle metriche che includono un progetto
Se vuoi sapere quali risorse possono visualizzare i dati archiviati da un progettoGoogle Cloud , puoi elencare tutti gli ambiti delle metriche che includono il progetto e poi trovare i dettagli su questi ambiti. Questa sezione fornisce informazioni su come elencare l'ambito delle metriche che include un progetto Google Cloud specifico.
gcloud
Per ottenere un elenco degli ambiti delle metriche che possono visualizzare le metriche per un progettoGoogle Cloud , esegui il comando gcloud beta monitoring metrics-scopes list
:
gcloud beta monitoring metrics-scopes list MONITORED_PROJECT_ID_OR_NUMBER
Prima di eseguire il comando, inserisci l'identificatore del
progetto monitorato nella variabile
MONITORED_PROJECT_ID_OR_NUMBER. Il formato è 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 degli ambiti delle metriche che possono visualizzare le metriche per 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}
Nell'esempio precedente, la variabile di ambiente PROJECT_ID_OR_NUMBER
memorizza l'ID del progetto la cui inclusione nell'ambito delle metriche
viene sottoposta a query.
In caso di esito positivo, la risposta è un array di oggetti MetricsScope
.
Questo metodo non comporta la scrittura di una voce negli audit log del progetto di definizione dell'ambito. Per registrare queste azioni nell'audit log, attiva Lettura dati per l'API Cloud Resource Manager. Per maggiori informazioni, consulta la pagina Configurazione degli audit log di accesso ai dati.
Visualizzare i dettagli di un ambito delle metriche
Questa sezione mostra come trovare i dettagli di un ambito di metrica specifico.
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 completo di un 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 delle metriche e del progetto sono gli stessi:
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 il comando
gcloud projects list
e filtra per ID progetto. Ad esempio, per
ottenere il nome del progetto 012345012345
, esegui questo comando:
gcloud projects list --filter="012345012345" --format="value(NAME)"
curl
Per ottenere 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}
Nell'esempio precedente, la variabile di ambiente SCOPING_PROJECT_ID_OR_NUMBER
memorizza l'ID del progetto di cui viene eseguita la query sull'ambito delle metriche.
In caso di esito positivo, la risposta è un oggetto MetricsScope
.
Questo metodo non comporta la scrittura di una voce negli audit log del progetto di definizione dell'ambito. Per registrare queste azioni nell'audit log, attiva Lettura dati per l'API Cloud Resource Manager. Per maggiori informazioni, consulta la pagina Configurazione degli audit log di accesso ai dati.
Metodi API asincroni
Tutti i metodi dell'ambito delle metriche dell'API Cloud Monitoring che modificano lo stato
del sistema, ad esempio il
comando per aggiungere un progetto monitorato a un ambito delle metriche, sono asincroni.
Per questi comandi, la risposta è 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'endpointoperation.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
.Quando
done
ètrue
, l'operazione è completata e viene impostato il campoerror
oresponse
: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
Questa sezione descrive la configurazione utilizzata per creare i comandi curl in questo documento. Ogni comando curl
in questa pagina 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>
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 ambito. Se utilizzi App Hub, imposta questa variabile sull'ID del progetto host di App Hub o sull'ID del progetto di gestione della cartella abilitata per le app:
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 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 funzionavano improvvisamente segnalano che non sei autenticato, esegui di nuovo questo comando.
Per verificare di aver ricevuto un token di accesso, visualizza la variabile
TOKEN
:echo ${TOKEN} ya29.GluiBj8o....
Potresti anche dover specificare altri argomenti, ad esempio per specificare il tipo di richiesta HTTP (ad esempio -X DELETE
). La richiesta predefinita è GET
, quindi gli esempi non la specificano.
Passaggi successivi
Per informazioni sull'utilizzo di Google Cloud con Terraform, consulta le seguenti risorse: