Este documento descreve como usar a CLI Google Cloud ou a API Cloud Monitoring para configurar o âmbito das métricas de um Google Cloud projeto. Esta página destina-se a programadores e administradores de sistemas.
Também pode usar o Terraform para configurar um âmbito de métricas. Para mais
informações, consulte o registo do Terraform para o
google_monitoring_monitored_project
.
Âmbitos das métricas e aplicações do App Hub
Faz a gestão do âmbito das métricas para projetos anfitriões do App Hub. Pode gerir este âmbito através da Google Cloud consola ou da API Cloud Monitoring.
Google Cloud gerem o âmbito das métricas para pastas com apps ativadas, a menos que a adição de um projeto ao âmbito das métricas falhe devido ao esgotamento da quota do âmbito das métricas. Neste caso, pode pedir um aumento da quota e, em seguida, adicionar manualmente projetos ao âmbito das métricas da pasta com apps ativadas do projeto de gestão. Para saber mais, consulte o artigo Âmbitos das métricas para pastas com apps.
Antes de começar
Se não conhece os termos âmbito das métricas e projeto de âmbito, consulte Âmbitos das métricas.
Certifique-se de que as suas funções de Identity and Access Management (IAM) no projeto de âmbito e em cada projeto que quer adicionar ou remover de um âmbito de métricas incluem todas as autorizações na função de administrador de monitorização (
roles/monitoring.admin
). Para mais informações, consulte o artigo Configurações do âmbito das métricas.Os métodos de âmbito das métricas da API Cloud Monitoring que obtêm informações são síncronos. No entanto, as APIs que alteram o estado são assíncronas. Os comandos da CLI Google Cloud bloqueiam até que a operação assíncrona seja concluída. Para ver informações sobre como determinar quando um método da API assíncrono está concluído e como determinar o respetivo estado, consulte o artigo Métodos da API assíncronos.
Se planeia invocar a API Cloud Monitoring através de
curl
ou se quiser usar os exemplos nesta página, conclua os passos decurl
configuração de comandos.
Adicione um projeto a um âmbito de métricas
gcloud
Para adicionar um Google Cloud projeto a um âmbito de métricas,
execute o comando gcloud beta monitoring metrics-scopes create
gcloud beta monitoring metrics-scopes create MONITORED_PROJECT_ID_OR_NUMBER --project=SCOPING_PROJECT_ID_OR_NUMBER
Antes de executar o comando anterior, faça o seguinte:
Introduza o nome ou o ID do Google Cloud projeto cujo âmbito das métricas vai ser modificado na variável SCOPING_PROJECT_ID_OR_NUMBER. Para configurações do App Hub, selecione o projeto anfitrião ou o projeto de gestão do App Hub.
Introduza o identificador do seu projeto monitorizado na variável MONITORED_PROJECT_ID_OR_NUMBER. O formato é
projects/PROJECT_ID_OR_NUMBER
.
Por exemplo, o comando seguinte adiciona o projeto my-monitored-project
ao âmbito das métricas do projeto denominado my-staging-projects
:
gcloud beta monitoring metrics-scopes create projects/my-monitored-project --project=my-staging-projects
A resposta ao comando anterior fornece a confirmação de que o comando foi concluído com êxito:
Created monitored project [locations/global/metricsScopes/my-staging-projects/projects/my-monitored-project].
curl
Para adicionar um Google Cloud projeto a um âmbito de métricas,
envie um pedido POST
para o ponto final
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
No exemplo anterior, as variáveis de ambiente são definidas da seguinte forma:
MONITORED_PROJECT_ID_OR_NUMBER
stores o ID do projeto a adicionar ao âmbito das métricas.SCOPING_PROJECT_ID_OR_NUMBER
armazena o ID do projeto cujo âmbito das métricas está a ser atualizado.
A resposta deste método assíncrono é um objeto Operation
.
As aplicações que chamam este método devem sondar o ponto final operation.get
até que o valor do campo Operation.done
seja true
.
Quando o campo Operation.done
está definido como false
, indica que a operação está em curso. Para mais informações, consulte o artigo
Comandos da API assíncronos.
Segue-se um exemplo da resposta quando a adição de um projeto monitorizado é bem-sucedida:
{ "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": "...", ... } }
Na resposta anterior, o campo Operation.done
está definido como true
. Este valor indica que o comando está concluído. Uma vez que o comando foi concluído com êxito, o campo Operation.response
é definido e o respetivo valor é um objeto MonitoredProject
.
O campo response.name
inclui o identificador do projeto de âmbito e do projeto monitorizado. O campo providerAccountId
apresenta o nome do projeto monitorizado.
A invocação deste método resulta numa entrada nos registos de auditoria do projeto de âmbito. A consola Google Cloud não invoca este método da API. Por conseguinte, as modificações feitas a um âmbito de métricas quando usa a Google Cloud consola não são registadas nos registos de auditoria.
Remova um projeto de um âmbito de métricas
gcloud
Para remover um Google Cloud projeto
de um âmbito de métricas, execute o comando
gcloud beta monitoring metrics-scopes delete
:
gcloud beta monitoring metrics-scopes delete MONITORED_PROJECT_ID_OR_NUMBER --project=SCOPING_PROJECT_ID_OR_NUMBER
Antes de executar o comando anterior, faça o seguinte:
Introduza o nome ou o ID do Google Cloud projeto cujo âmbito das métricas vai ser modificado na variável SCOPING_PROJECT_ID_OR_NUMBER. Para configurações do App Hub, selecione o projeto anfitrião ou o projeto de gestão do App Hub.
Introduza o identificador do seu projeto monitorizado na variável MONITORED_PROJECT_ID_OR_NUMBER. O formato é
projects/PROJECT_ID_OR_NUMBER
.
Por exemplo, o comando seguinte remove o projeto my-monitored-project
do âmbito das métricas do projeto denominado my-staging-projects
:
gcloud beta monitoring metrics-scopes delete projects/my-monitored-project --project=my-staging-projects
A resposta ao comando anterior fornece a confirmação de que o comando foi concluído com êxito:
Deleted monitored project [locations/global/metricsScopes/my-staging-projects/projects/my-monitored-project].
O seguinte erro é comunicado quando o projeto de âmbito não está a monitorizar o projeto especificado pela variável MONITORED_PROJECT_ID_OR_NUMBER:
NOT_FOUND: Requested entity was not found.
curl
Para remover um Google Cloud projeto de um âmbito de métricas,
envie um pedido DELETE
para o ponto final
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}
No exemplo anterior, as variáveis de ambiente são definidas da seguinte forma:
MONITORED_PROJECT_ID_OR_NUMBER
armazena o ID do projeto a ser removido do âmbito das métricas.SCOPING_PROJECT_ID_OR_NUMBER
armazena o ID do projeto cujo âmbito das métricas está a ser atualizado.
A resposta a este método assíncrono é um objeto
Operation
.
As aplicações que chamam este método devem sondar o ponto final operation.get
até que o valor do campo Operation.done
seja true
.
Quando o campo Operation.done
está definido como false
, indica que a operação está em curso. Para mais informações, consulte o artigo
Comandos da API assíncronos.
Segue-se um exemplo da resposta quando a remoção de um projeto monitorizado é bem-sucedida:
{ "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" } }
Na resposta anterior, o campo Operation.done
está definido como true
. Este valor indica que o comando está concluído. Uma vez que o comando foi concluído com êxito, o campo Operation.response
está definido e contém um campo @type
.
A invocação deste método resulta numa entrada nos registos de auditoria do projeto de âmbito. A consola Google Cloud não invoca este método da API. Por conseguinte, as modificações feitas a um âmbito de métricas quando usa a Google Cloud consola não são registadas nos registos de auditoria.
Apresenta todos os âmbitos de métricas que incluem um projeto
Se quiser saber que recursos podem ver os dados armazenados por um Google Cloud projeto, pode listar todos os âmbitos de métricas que incluem o projeto e, em seguida, encontrar detalhes sobre esses âmbitos. Esta secção fornece informações sobre como listar o âmbito das métricas que incluem umGoogle Cloud projeto específico.
gcloud
Para obter uma lista de âmbitos de métricas que podem ver as métricas de um
Google Cloud projeto, execute o comando
gcloud beta monitoring metrics-scopes list
:
gcloud beta monitoring metrics-scopes list MONITORED_PROJECT_ID_OR_NUMBER
Antes de executar o comando, introduza o identificador do
projeto monitorizado na variável
MONITORED_PROJECT_ID_OR_NUMBER. O formato é projects/PROJECT_ID_OR_NUMBER
.
Por exemplo, para apresentar uma lista dos âmbitos de métricas que incluem o projeto my-project
, execute o seguinte comando:
gcloud beta monitoring metrics-scopes list projects/my-project
A resposta seguinte indica que o projeto my-project
está incluído em dois âmbitos de métricas:
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'
Para obter informações detalhadas sobre um âmbito de métricas, execute o comando
gcloud beta monitoring metrics-scopes describe
.
curl
Para obter uma lista de âmbitos de métricas que podem ver as métricas de um projeto,
envie um pedido GET
para o endpoint
locations.global.metricsScopes.listMetricsScopesByMonitoredProject
e inclua o parâmetro de consulta que especifica o projeto.
curl -H "Authorization: Bearer ${TOKEN}" \ https://monitoring.googleapis.com/v1/locations/global/metricsScopes:listMetricsScopesByMonitoredProject?monitored_resource_container=projects/${PROJECT_ID_OR_NUMBER}
No exemplo anterior, a variável de ambiente PROJECT_ID_OR_NUMBER
armazena o ID do projeto cuja inclusão no âmbito das métricas está
a ser consultada.
Quando for bem-sucedido, a resposta é uma matriz de objetos MetricsScope
.
Este método não resulta na gravação de uma entrada nos registos de auditoria do projeto de âmbito. Para que estas ações sejam registadas no registo de auditoria, ative a opção Leitura de dados para a Cloud Resource Manager API. Para mais informações, consulte o artigo Configurar registos de auditoria de acesso aos dados.
Receba detalhes sobre um âmbito de métricas
Esta secção mostra como encontrar detalhes sobre um âmbito de métricas específico.
gcloud
Para obter informações detalhadas sobre o âmbito de uma métrica, execute o comando gcloud beta monitoring metrics-scopes describe
:
gcloud beta monitoring metrics-scopes describe METRICS_SCOPE_ID
Antes de executar o comando, introduza o nome do nome completo de um âmbito de métricas na variável METRICS_SCOPE_ID. Segue-se um exemplo de um nome totalmente qualificado:
locations/global/metricsScopes/012345012345
Segue-se um exemplo de resposta. Neste exemplo, o âmbito das métricas contém um projeto e o ID do âmbito das métricas e do projeto são os mesmos:
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'
Para identificar o Google Cloud projeto a partir do respetivo ID, execute o comando
gcloud projects list
e filtre pelo ID do projeto. Por exemplo, para obter o nome do projeto 012345012345
, execute o seguinte comando:
gcloud projects list --filter="012345012345" --format="value(NAME)"
curl
Para obter informações sobre um âmbito de métricas,
envie um pedido GET
para o ponto final
locations.global.metricsScopes.get
:
curl -H "Authorization: Bearer ${TOKEN}" \ https://monitoring.googleapis.com/v1/locations/global/metricsScopes/${SCOPING_PROJECT_ID_OR_NUMBER}
No exemplo anterior, a variável de ambiente SCOPING_PROJECT_ID_OR_NUMBER
armazena o ID do projeto cujo âmbito das métricas está a ser consultado.
Quando for bem-sucedida, a resposta é um objeto MetricsScope
.
Este método não resulta na gravação de uma entrada nos registos de auditoria do projeto de âmbito. Para que estas ações sejam registadas no registo de auditoria, ative a opção Leitura de dados para a Cloud Resource Manager API. Para mais informações, consulte o artigo Configurar registos de auditoria de acesso aos dados.
Métodos da API assíncronos
Todos os métodos de âmbito das métricas da API Cloud Monitoring que alteram o estado do sistema, por exemplo, o comando para adicionar um projeto monitorizado a um âmbito das métricas, são assíncronos.
Para estes comandos, a resposta do comando é um objeto
Operation
.
As aplicações que chamam um método de API assíncrono devem sondar o ponto final operation.get
até que o valor do campo Operation.done
seja true
:
Quando
done
éfalse
, a operação está em curso.Para atualizar as informações de estado, envie um pedido
GET
para o ponto finaloperation.get
:curl -H "Authorization: Bearer ${TOKEN}" \ https://monitoring.googleapis.com/v1/${OPERATION_NAME}
No comando anterior,
OPERATION_NAME
é uma variável de ambiente que armazena o valor do campoOperation.name
.Quando
done
étrue
, a operação está concluída e o campoerror
ouresponse
está definido:error
: quando definido, a operação assíncrona falhou. O valor deste campo é um objetoStatus
que contém um código de erro gRPC e uma mensagem de erro.response
: quando definido, a operação assíncrona foi concluída com êxito e o valor reflete o resultado.
Configuração do comando curl
Esta secção descreve a configuração usada para criar os comandos curl neste documento. Cada comando curl
nesta página inclui um conjunto de argumentos seguido do URL de um recurso da API:
curl -H "Authorization: Bearer ${TOKEN}" <other_args> \
https://monitoring.googleapis.com/v1/locations/global/metricsScopes/<resource>
Defina estas variáveis de ambiente para simplificar a criação dos comandos curl
:
Crie a variável de ambiente para armazenar o ID ou o número do projeto de âmbito. Se estiver a usar o App Hub, defina esta variável para o ID do projeto anfitrião do App Hub ou para o ID do projeto de gestão da pasta com apps:
SCOPING_PROJECT_ID_OR_NUMBER=SCOPING_PROJECT_ID_OR_NUMBER
Opcional. Se planeia adicionar ou remover projetos monitorizados, configure a variável de ambiente com o ID ou o número do projeto monitorizado:
MONITORED_PROJECT_ID_OR_NUMBER=MONITORED_PROJECT_ID_OR_NUMBER
Autentique-se na CLI do Google Cloud:
gcloud auth login
Opcional. Para evitar ter de especificar o ID do projeto com cada comando, defina o ID do projeto como predefinição através da CLI gcloud:
gcloud
gcloud config set project ${SCOPING_PROJECT_ID_OR_NUMBER}
Crie um token de autorização e capture-o numa variável de ambiente:
TOKEN=`gcloud auth print-access-token`
Os tokens são válidos por um período limitado. Se os comandos que funcionavam indicarem subitamente que não tem autenticação, reemita este comando.
Para verificar se recebeu um token de acesso, repita a variável
TOKEN
:echo ${TOKEN} ya29.GluiBj8o....
Também pode ter de especificar outros argumentos, por exemplo, para especificar o tipo de pedido HTTP (por exemplo, -X DELETE
). O pedido predefinido é GET
, pelo que os exemplos não o especificam.
O que se segue?
Para informações sobre a utilização do Google Cloud com o Terraform, consulte os seguintes recursos: