Gestione degli ambiti delle metriche utilizzando l'API

Mantieni tutto organizzato con le raccolte Salva e classifica i contenuti in base alle tue preferenze.

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

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 di operation.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 campo Operation.name.

  • Se done è true, l'operazione è stata completata ed è impostato il campo error o response:

    • error: se impostata, l'operazione asincrona non è riuscita. Il valore di questo campo è un oggetto Status 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:

  1. 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
    
  2. 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
    
  3. Autenticazione a Google Cloud CLI:

    gcloud auth login
    
  4. 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}
    
  5. 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.

  6. Per verificare di avere un token di accesso, richiama la variabile TOKEN:

    echo ${TOKEN}
    ya29.GluiBj8o....