Este documento descreve como criar métricas definidas pelo utilizador e como escrever estes dados de métricas através da API Cloud Monitoring. As métricas definidas pelo utilizador usam os mesmos elementos que as métricas incorporadas do Cloud Monitoring:
- Um conjunto de pontos de dados.
- Informações do tipo métrica, que indicam o que os pontos de dados representam.
- Informações de recursos monitorizados, que indicam a origem dos pontos de dados.
As métricas definidas pelo utilizador, por vezes denominadas métricas personalizadas, podem ser usadas da mesma forma que as métricas incorporadas. Isto é, pode criar gráficos e alertas para estes dados de métricas.
As métricas baseadas em registos são uma classe de métricas definidas pelo utilizador, mas não pode criá-las através da API Cloud Monitoring. As métricas baseadas em registos derivam dados de métricas de entradas de registos, mas a API Monitoring não oferece uma forma de especificar como extrair dados de métricas de entradas de registos. Em alternativa, use o Cloud Logging para criar métricas baseadas em registos. Quando cria uma métrica baseada em registos, o Logging cria as estruturas descritas neste documento e envia os dados das métricas para o Cloud Monitoring. Para obter informações sobre como criar métricas baseadas em registos, consulte os seguintes documentos:
Para instrumentar a sua aplicação, recomendamos que use uma estrutura de instrumentação neutra em relação ao fornecedor e de código aberto, como o OpenTelemetry, em vez de APIs ou bibliotecas de cliente específicas do fornecedor e do produto. Para informações sobre a instrumentação da sua aplicação, consulte o artigo Instrumentação e observabilidade.
Antes de começar
Para saber mais sobre as estruturas subjacentes a todas as métricas, consulte Métricas, séries cronológicas e recursos.
Para usar o Cloud Monitoring, tem de ter um Google Cloud projeto com a faturação ativada. Quando necessário, faça o seguinte:
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator
(
roles/resourcemanager.projectCreator
), which contains theresourcemanager.projects.create
permission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
- Certifique-se de que a API Monitoring está ativada. Para ver detalhes, consulte o artigo Ativar a API Monitoring.
- Para aplicações executadas fora do Google Cloud, o seu projeto Google Cloud tem de autenticar a sua aplicação através de credenciais padrão da aplicação (ADC) locais. Para mais informações, consulte o artigo Configure o ADC para um ambiente no local ou outro fornecedor de nuvem.
Crie um tipo de métrica definida pelo utilizador
Para criar uma métrica definida pelo utilizador, define um objeto
MetricDescriptor
que especifica várias informações sobre a métrica
ou escreve dados de métricas. Quando escreve dados de métricas, o Monitoring cria o descritor de métricas para si com base na estrutura dos dados que fornece.
Para informações sobre a conceção de um descritor de métricas, consulte o artigo
Descritores de métricas para métricas definidas pelo utilizador.
Criação automática de descritores de métricas
Se escrever dados de métricas quando um descritor de métricas para essa métrica definida pelo utilizador ainda não existir, é criado automaticamente um descritor de métricas. No entanto, este novo descritor de métricas pode não ser exatamente o que quer; a criação automática de descritores de métricas envolve algumas pressuposições e predefinições.
O Cloud Monitoring cria um novo MetricDescriptor
quando o objeto TimeSeries
incluído numa chamada para timeSeries.create
faz referência a um objeto Metric
que especifica um nome de tipo de métrica inexistente.
O Cloud Monitoring usa as seguintes regras para preencher o campo
MetricDescriptor
:
type
: o tipo é copiado do campotype
do objetoMetric
.name
: o nome é criado a partir do ID do projeto na chamada do método e do valor detype
no objetoMetric
.labels
: as etiquetas que aparecem no objetoMetric
. Cada descritor de etiqueta no novo descritor de métrica tem os seguintes campos:key
: a chave da etiqueta no objetoMetric
.valueType
:STRING
description
: não definido
metricKind
: o tipo de métrica está definido comoGAUGE
, a menos que especifique o parâmetrometricKind
do objetoTimeSeries
. Quando especifica ometricKind
, a nova métrica tem esse tipo. Só pode especificar os tiposGAUGE
eCUMULATIVE
.valueType
: o tipo de valor é retirado do valor com tipo doPoint
que está a ser escrito. O tipo de valor tem de serBOOL
,INT64
,DOUBLE
ouDISTRIBUTION
. Quando especifica um tipo de valor no campovalueType
deTimeSeries
, esse tipo tem de corresponder ao tipo dePoint
.unit
: não definidodescription
:"Auto created custom metric."
.displayName
: não definido
Numa única chamada timeSeries.create
, pode incluir vários objetos TimeSeries
que fazem referência ao mesmo tipo de métrica inexistente. Nesse caso, as etiquetas no novo descritor de métricas consistem na união de todas as etiquetas nos objetos Metric
em todas as séries cronológicas nesta chamada para create
.
Passo seguinte: consulte o artigo Escreva métricas definidas pelo utilizador.
Criação manual de descritores de métricas
Para criar um descritor de métricas, faça o seguinte:
Determine a estrutura do descritor de métricas. Para ajudar a tomar estas decisões, pode procurar as métricas incorporadas e consultar os respetivos dados de séries cronológicas:
Escolha um nome da métrica para a sua métrica definida pelo utilizador.
Escolha um nome a apresentar e uma descrição para a métrica. O nome a apresentar é usado na Google Cloud consola.
Escolha um ou mais projetos nos quais definir a sua métrica definida pelo utilizador e escrever os respetivos dados de séries cronológicas. Quando precisa da mesma métrica em vários projetos, crie definições idênticas da métrica em cada projeto.
Determine o tipo, o tipo de valor e (opcionalmente) as unidades da métrica. Nem todos os tipos de valores e tipos de métricas são suportados para métricas definidas pelo utilizador. Para mais informações sobre estes campos, consulte o artigo Tipos de valores e tipos de métricas.
Escolha as etiquetas da métrica: os respetivos nomes, tipos de valores e descrições.
Determine os recursos monitorizados em relação aos quais os dados das métricas são escritos. Escolha a partir da lista seguinte:
aws_ec2_instance
: Instância do Amazon EC2.dataflow_job
: Tarefa do Dataflow.gae_instance
: Instância do App Engine.gce_instance
: Instância do Compute Engine.generic_node
: Nó de computação especificado pelo utilizador.generic_task
: Tarefa definida pelo utilizador.gke_container
: Instância de contentor do GKE.global
: Use este recurso quando nenhum outro tipo de recurso for adequado. Para a maioria dos exemplos de utilização,generic_node
ougeneric_task
são melhores opções do queglobal
.k8s_cluster
: Cluster do Kubernetes.k8s_container
: Contentor do Kubernetes.k8s_node
: Nó do Kubernetes.k8s_pod
: Pod do Kubernetes.
Crie um objeto
MetricDescriptor
e, em seguida, transmita-o como um argumento para uma chamada ao métodometricDescriptors.create
.
Normalmente, é um erro chamar
metricDescriptors.create
com o mesmo nome de tipo que um descritor de métricas existente. No entanto, se todos os campos do objeto MetricDescriptor
novo corresponderem exatamente aos campos do descritor existente, não se trata de um erro, mas não tem qualquer efeito.
No exemplo seguinte, cria uma métrica de indicador.
Protocolo
Para criar um descritor de métricas, use o método
metricDescriptors.create
.
Pode executar este método através do widget do Explorador de APIs na página de referência do método. Consulte o Explorador de APIs para obter mais informações.
Seguem-se os parâmetros de exemplo para
metricDescriptors.create
:
- name (URL):
projects/[PROJECT_ID]
Corpo do pedido: forneça um objeto
MetricDescriptor
, como o seguinte:{ "name": "", "description": "Daily sales records from all branch stores.", "displayName": "Sales", "type": "custom.googleapis.com/stores/sales", "metricKind": "GAUGE", "valueType": "DOUBLE", "unit": "{USD}", "labels": [ { "key": "store_id", "valueType": "STRING", "description": "The ID of the store." }, ], }
Forneça estes valores aos campos no widget, usando o ID do seu projeto
em vez de [PROJECT_ID
]:
Clique no botão Executar para executar o método.
Quando cria uma nova métrica, o campo name
no
MetricDescriptor
é ignorado e pode ser omitido. O método create
devolve o novo descritor de métrica com o campo name
preenchido, que, neste exemplo, seria o seguinte:
"name": "projects/[PROJECT_ID]/metricDescriptors/custom.googleapis.com/stores/daily_sales"
Por exemplo, se quiser obter o descritor de uma métrica, usa este nome.
C#
Para se autenticar no Monitoring, configure as Credenciais padrão da aplicação. Para mais informações, consulte o artigo Configure a autenticação para um ambiente de desenvolvimento local.
Go
Para se autenticar no Monitoring, configure as Credenciais padrão da aplicação. Para mais informações, consulte o artigo Configure a autenticação para um ambiente de desenvolvimento local.
Java
Para se autenticar no Monitoring, configure as Credenciais padrão da aplicação. Para mais informações, consulte o artigo Configure a autenticação para um ambiente de desenvolvimento local.
Node.js
Para se autenticar no Monitoring, configure as Credenciais padrão da aplicação. Para mais informações, consulte o artigo Configure a autenticação para um ambiente de desenvolvimento local.
PHP
Para se autenticar no Monitoring, configure as Credenciais padrão da aplicação. Para mais informações, consulte o artigo Configure a autenticação para um ambiente de desenvolvimento local.
Python
Para se autenticar no Monitoring, configure as Credenciais padrão da aplicação. Para mais informações, consulte o artigo Configure a autenticação para um ambiente de desenvolvimento local.
Ruby
Para se autenticar no Monitoring, configure as Credenciais padrão da aplicação. Para mais informações, consulte o artigo Configure a autenticação para um ambiente de desenvolvimento local.
Consulte o artigo Resolva problemas de chamadas API se tiver dificuldades.
Passo seguinte: consulte o artigo Escreva métricas definidas pelo utilizador.
Escreva métricas definidas pelo utilizador
Só pode escrever dados em tipos de métricas para métricas definidas pelo utilizador. Para escrever os seus dados,
use o método timeSeries.create
.
Quando o intervalo temporal existe, este método anexa um novo ponto de dados ao intervalo temporal existente. Quando a série cronológica não existe, este método cria-a e anexa os dados.
Escreve pontos de dados transmitindo uma lista de objetos TimeSeries
a timeSeries.create
.
O tamanho máximo da lista é 200 e cada objeto na lista tem de especificar uma série cronológica diferente:
- Os valores dos campos
metric
eresource
identificam um objetoTimeSeries
específico. Estes campos representam o tipo de métrica dos dados e o recurso monitorizado a partir do qual os dados foram recolhidos. - Omita os campos
metricKind
evalueType
. Estes são ignorados quando escreve pontos de dados. Cada objeto
TimeSeries
tem de conter apenas um objetoPoint
:- O valor e o intervalo de tempo do ponto têm de ser consistentes com a definição do tipo de métrica. Para obter informações sobre os intervalos de tempo para diferentes tipos de métricas, consulte
TimeInterval
. - O intervalo de tempo do ponto tem de ser posterior a qualquer ponto já existente na série cronológica.
- A hora de fim do intervalo não pode ser mais de 25 horas no passado nem mais de cinco minutos no futuro.
- O valor e o intervalo de tempo do ponto têm de ser consistentes com a definição do tipo de métrica. Para obter informações sobre os intervalos de tempo para diferentes tipos de métricas, consulte
Para escrever mais do que um ponto na mesma série cronológica, use uma chamada separada para o método
timeSeries.create
para cada ponto. Não escreva dados numa única série cronológica mais rapidamente do que um ponto a cada 5 segundos. Quando adiciona pontos de dados a diferentes séries cronológicas, não existe limitação de taxa.
Protocolo
Para escrever dados de métricas, use o método timeSeries.create
.
Pode executar este método através do widget do Explorador de APIs na página de referência do método. Consulte o Explorador de APIs
para mais informações.
Para escrever um ponto na métrica stores/daily_sales
criada na
criação manual de descritores de métricas:
- Aceda à página de referência para
timeSeries.create
. - Forneça os parâmetros abaixo ao widget do APIs Explorer.
- Clique no botão Executar.
Use os seguintes parâmetros de exemplo:
- name:
projects/[PROJECT_ID]
corpo do pedido: inclua uma lista de objetos
TimeSeries
O exemplo seguinte tem apenas uma série cronológica na lista.{ "timeSeries": [ { "metric": { "type": "custom.googleapis.com/my_metric", "labels": { "my_label": "my_value" } }, "resource": { "type": "gce_instance", "labels": { "project_id": "[PROJECT_ID]", "instance_id": "1234567890123456789", "zone": "us-central1-f" } }, "points": [ { "interval": { "endTime": "2018-06-01T10:00:00-04:00" }, "value": { "doubleValue": 123.45 } } ] } ] }
C#
Para se autenticar no Monitoring, configure as Credenciais padrão da aplicação. Para mais informações, consulte o artigo Configure a autenticação para um ambiente de desenvolvimento local.
Go
Para se autenticar no Monitoring, configure as Credenciais padrão da aplicação. Para mais informações, consulte o artigo Configure a autenticação para um ambiente de desenvolvimento local.
Java
Para se autenticar no Monitoring, configure as Credenciais padrão da aplicação. Para mais informações, consulte o artigo Configure a autenticação para um ambiente de desenvolvimento local.
Node.js
Para se autenticar no Monitoring, configure as Credenciais padrão da aplicação. Para mais informações, consulte o artigo Configure a autenticação para um ambiente de desenvolvimento local.
PHP
Para se autenticar no Monitoring, configure as Credenciais padrão da aplicação. Para mais informações, consulte o artigo Configure a autenticação para um ambiente de desenvolvimento local.
Python
Para se autenticar no Monitoring, configure as Credenciais padrão da aplicação. Para mais informações, consulte o artigo Configure a autenticação para um ambiente de desenvolvimento local.
Ruby
Para se autenticar no Monitoring, configure as Credenciais padrão da aplicação. Para mais informações, consulte o artigo Configure a autenticação para um ambiente de desenvolvimento local.
Consulte o artigo Resolva problemas de chamadas API se tiver dificuldades.
Elimine métricas definidas pelo utilizador
Para eliminar uma métrica definida pelo utilizador, elimine o respetivo descritor de métricas. Não pode eliminar os dados de séries cronológicas armazenados no seu Google Cloud projeto. No entanto, se eliminar o descritor de métricas, os dados ficam inacessíveis. Os dados expiram e são eliminados de acordo com a política de retenção de dados.
Não é possível eliminar o descritor de métricas de uma métrica integrada.
Para eliminar o descritor de métricas, chame o método
metricDescriptors.delete
.
Protocolo
Para eliminar um descritor de métrica, use o método
metricDescriptors.delete
.
Pode executar este método através do widget do Explorador de APIs na página de referência do método. Consulte o Explorador de APIs
para mais informações.
Para eliminar a métrica stores/daily_sales
criada na
Criação manual de descritores de métricas:
- Aceda à
página de referência para
metricDescriptors.delete
: Forneça o nome do descritor de métricas ao widget do APIs Explorer:
name:
projects/[PROJECT_ID]/metricDescriptors/custom.googleapis.com/stores/daily_sales
Clique no botão Executar.
C#
Para se autenticar no Monitoring, configure as Credenciais padrão da aplicação. Para mais informações, consulte o artigo Configure a autenticação para um ambiente de desenvolvimento local.
Go
Para se autenticar no Monitoring, configure as Credenciais padrão da aplicação. Para mais informações, consulte o artigo Configure a autenticação para um ambiente de desenvolvimento local.
Java
Para se autenticar no Monitoring, configure as Credenciais padrão da aplicação. Para mais informações, consulte o artigo Configure a autenticação para um ambiente de desenvolvimento local.
Node.js
Para se autenticar no Monitoring, configure as Credenciais padrão da aplicação. Para mais informações, consulte o artigo Configure a autenticação para um ambiente de desenvolvimento local.
PHP
Para se autenticar no Monitoring, configure as Credenciais padrão da aplicação. Para mais informações, consulte o artigo Configure a autenticação para um ambiente de desenvolvimento local.
Python
Para se autenticar no Monitoring, configure as Credenciais padrão da aplicação. Para mais informações, consulte o artigo Configure a autenticação para um ambiente de desenvolvimento local.
Ruby
Para se autenticar no Monitoring, configure as Credenciais padrão da aplicação. Para mais informações, consulte o artigo Configure a autenticação para um ambiente de desenvolvimento local.
Consulte o artigo Resolva problemas de chamadas API se tiver dificuldades.
Modifique uma métrica definida pelo utilizador
Para modificar uma métrica definida pelo utilizador, tem de atualizar o objeto MetricDescriptor
que define a métrica.
A única modificação suportada é a adição de etiquetas.
Para adicionar etiquetas a uma métrica definida pelo utilizador existente, use o método
timeSeries.create
e inclua as novas etiquetas com os dados de séries cronológicas. As etiquetas são adicionadas ao descritor de métricas quando as etiquetas que tenta escrever são válidas e o número total de etiquetas é inferior a 30.
Em seguida, os dados de séries cronológicas são escritos como se a etiqueta estivesse presente desde o início.
Se quiser fazer mais do que adicionar novas etiquetas, tem de eliminar e recriar o descritor de métricas. Neste caso, perde todos os dados de séries cronológicas recolhidos anteriormente para o descritor de métricas antigo. Consulte o artigo Elimine métricas definidas pelo utilizador para mais informações.
Não é possível mudar o nome de uma métrica.
O que se segue?
- Veja e faça a gestão da utilização de métricas
- Lista de métricas integradas
- Lista de recursos monitorizados