Este documento explica como ler dados de métricas, também denominados dados de séries cronológicas, através do método timeSeries.list
na API Monitoring.
Existem várias formas de chamar o método timeSeries.list
:
- Pode usar os separadores Protocol nesta página para usar o Explorador de APIs baseado em formulários.
- Pode usar uma biblioteca cliente específica do idioma.
- Pode usar o Explorador de métricas.
Outra forma de ler os dados das métricas é enviar um comando para o método timeSeries.query
, que requer a linguagem de consulta de monitorização (MQL). Este documento não descreve o MQL nem o método timeSeries.query
. Para obter informações sobre estes tópicos, consulte o artigo Obter dados com timeSeries.query
.
Vista geral
Cada chamada ao método timeSeries.list
pode devolver qualquer número de séries cronológicas de um único tipo de métrica. Por exemplo, se estiver a usar o Compute Engine, o tipo de métrica compute.googleapis.com/instance/cpu/usage_time
tem uma série cronológica separada para cada uma das suas instâncias de VM.
Para uma introdução às métricas e às séries cronológicas,
consulte o artigo Métricas, séries cronológicas e recursos.
Especifique os dados de séries cronológicas que quer facultando as seguintes informações ao método timeSeries.list
:
- Uma expressão de filtro que especifica o tipo de métrica. Opcionalmente, o filtro seleciona um subconjunto das séries cronológicas da métrica especificando os recursos que produzem as séries cronológicas ou especificando valores para determinadas etiquetas nas séries cronológicas.
- Um intervalo de tempo que limita a quantidade de dados devolvidos.
- Opcionalmente, uma especificação de como combinar várias séries cronológicas para produzir um resumo agregado dos dados. Para mais informações e exemplos, consulte o artigo Agregar dados.
Filtros de intervalos temporais
Especifica os intervalos temporais a obter transmitindo um filtro de intervalos temporais ao método timeSeries.list
.
Segue-se uma lista dos componentes de filtro comuns:
O filtro tem de especificar um único tipo de métrica. Por exemplo:
metric.type = "compute.googleapis.com/instance/cpu/usage_time"
Para obter métricas definidas pelo utilizador, altere o prefixo metric.type no filtro para
custom.googleapis.com
ou outro prefixo, se usado;external.googleapis.com
é usado com frequência.O filtro pode especificar valores para as etiquetas de dimensões da métrica. O tipo de métrica determina as etiquetas presentes. Por exemplo:
(metric.label.instance_name = "your-instance-id" OR metric.label.instance_name = "your-other-instance-id")
Na expressão anterior,
label
está correto, mesmo que o objeto de métrica real uselabels
como chave.O filtro só pode selecionar as séries cronológicas que contêm um tipo de recurso monitorizado específico:
resource.type = "gce_instance"
Os componentes do filtro podem ser combinados num único filtro de série cronológica, como o seguinte:
metric.type = "compute.googleapis.com/instance/cpu/usage_time" AND
(metric.label.instance_name = "your-instance-id" OR
metric.label.instance_name = "your-other-instance-id")
Se não especificar valores para todas as etiquetas de métricas, o método list
devolve um intervalo temporal para cada combinação de valores nas etiquetas não especificadas. O método devolve apenas séries cronológicas com dados.
Intervalos de tempo
Quando usa a API para ler dados, especifica o intervalo de tempo para o qual quer obter dados definindo as horas de início e fim.
A API obtém dados do intervalo (start, end]
, ou seja, do período após a hora de início até à hora de fim.
A hora de início não deve ser posterior à hora de fim. Se especificar uma hora de início posterior à hora de fim, a API devolve um erro.
Se quiser obter apenas dados com uma data/hora específica, defina a hora de início igual à hora de fim ou, equivalentemente, não defina a hora de início.
Formato da hora
As horas de início e fim têm de ser especificadas como strings no formato RFC 3339. Por exemplo:
2024-03-01T12:34:56+04:00 2024-03-01T12:34:56.992Z
O comando date -Iseconds
no Linux é útil para gerar indicações de tempo.
Operações básicas de listas
O método timeSeries.list
pode ser usado para devolver dados simples e não processados ou pode ser usado para devolver dados altamente processados. Esta secção ilustra como listar as séries cronológicas disponíveis e como obter os valores numa série cronológica específica.
Exemplo: listar intervalos temporais disponíveis
Este exemplo mostra como listar apenas os nomes e as descrições das séries cronológicas que correspondem a um filtro, em vez de devolver todos os dados disponíveis:
Protocolo
Abra a página de referência
timeSeries.list
.No painel com a etiqueta Experimentar este método, introduza o seguinte:
-
name: introduza o caminho para o seu projeto.
projects/PROJECT_ID
-
filter: especifique o tipo de métrica.
metric.type = "compute.googleapis.com/instance/cpu/utilization"
- interval.endTime: introduza a hora de fim.
- interval.startTime: introduza a hora de início e certifique-se de que é 20 minutos anterior à hora de fim.
Clique em Mostrar parâmetros padrão e, nos campos, introduza o seguinte:
timeSeries.metric
-
name: introduza o caminho para o seu projeto.
Clique em Executar.
O resultado de exemplo mostra séries cronológicas para duas instâncias de VM diferentes:
{
"timeSeries": [
{
"metric": {
"labels": {
"instance_name": "your-first-instance"
},
"type": "compute.googleapis.com/instance/cpu/utilization"
},
},
{
"metric": {
"labels": {
"instance_name": "your-second-instance"
},
"type": "compute.googleapis.com/instance/cpu/utilization"
},
}
]
}
Para ver o pedido como um comando curl
, como um pedido HTTP ou em JavaScript, clique em fullscreen Ecrã inteiro no Explorador de APIs.
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.
Se tiver dificuldades, consulte o artigo Resolva problemas da API Monitoring.
Exemplo: obter dados de intervalos temporais
Este exemplo devolve as medições de utilização da CPU que foram registadas durante um intervalo de 20 minutos para uma instância específica do Compute Engine. A quantidade de dados devolvidos depende da taxa de amostragem da métrica. Uma vez que a utilização do CPU é amostrada a cada minuto, os resultados desta consulta são cerca de 20 pontos de dados. Quando são devolvidos vários pontos de dados para uma série cronológica, a API devolve os pontos de dados em cada série cronológica por ordem cronológica inversa. Não existe nenhuma substituição para esta ordenação de pontos.
Protocolo
O exemplo de protocolo limita ainda mais o resultado, para tornar os dados devolvidos mais fáceis de gerir na caixa de resposta:
- O valor do filtro limita a série cronológica a uma única instância de VM.
- O valor fields especifica apenas a hora e o valor das medições.
Estas definições limitam a quantidade de dados de séries cronológicas devolvidos no resultado.
Abra a página de referência
timeSeries.list
.No painel com a etiqueta Experimentar este método, introduza o seguinte:
-
name: introduza o caminho para o seu projeto.
projects/PROJECT_ID
filter: especifique o tipo de métrica.
metric.type = "compute.googleapis.com/instance/cpu/utilization" AND metric.label.instance_name = "INSTANCE_NAME"
interval.endTime: introduza a hora de fim.
interval.startTime: introduza a hora de início e certifique-se de que é 20 minutos anterior à hora de fim.
Clique em Mostrar parâmetros padrão e, nos campos, introduza o seguinte:
timeSeries.points.interval.endTime,timeSeries.points.value
-
name: introduza o caminho para o seu projeto.
Clique em Executar.
O pedido devolve um resultado semelhante ao seguinte:
{
"timeSeries": [
{
"points": [
{
"interval": {
"endTime": "2024-03-01T00:19:01Z"
},
"value": {
"doubleValue": 0.06763074536575005
}
},
{
"interval": {
"endTime": "2024-03-01T00:18:01Z"
},
"value": {
"doubleValue": 0.06886174467702706
}
},
...
{
"interval": {
"endTime": "2024-03-01T00:17:01Z"
},
"value": {
"doubleValue": 0.06929610064253211
}
}
]
}
]
}
Para ver o pedido como um comando curl
, como um pedido HTTP ou em JavaScript, clique em fullscreen Ecrã inteiro no Explorador de APIs.
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.
Se tiver dificuldades, consulte o artigo Resolva problemas da API Monitoring.
Agregação de dados
O método timeSeries.list
pode realizar agregações e reduções estatísticas nos dados de séries cronológicas devolvidos. As secções seguintes demonstram dois exemplos.
Para saber mais, consulte o artigo
Filtragem e agregação: manipular séries cronológicas.
Exemplo: alinhar séries cronológicas
Este exemplo reduz as 20 medições de utilização individuais em cada série temporal a 2 medições: a utilização média para os dois períodos de 10 minutos no intervalo de 20 minutos. Os dados de cada série cronológica são primeiro alinhados em períodos de 10 minutos e, em seguida, é calculada a média dos valores em cada período de 10 minutos.
A operação de alinhamento tem duas vantagens: suaviza os dados e alinha os dados de todos os dados de séries cronológicas em limites exatos de 10 minutos. Em seguida, os dados alinhados podem ser processados mais detalhadamente.
Protocolo
Abra a página de referência
timeSeries.list
.No painel com a etiqueta Experimentar este método, introduza o seguinte:
-
name: introduza o caminho para o seu projeto.
projects/PROJECT_ID
-
aggregation.alignmentPeriod: introduza
600s
-
aggregation.perSeriesAligner: selecione
ALIGN_MEAN
-
filter: especifique o tipo de métrica.
metric.type = "compute.googleapis.com/instance/cpu/utilization"
- interval.endTime: introduza a hora de fim.
- interval.startTime: introduza a hora de início e certifique-se de que é 20 minutos anterior à hora de fim.
-
Clique em Mostrar parâmetros padrão e, nos campos, introduza o seguinte:
timeSeries.metric,timeSeries.points
-
name: introduza o caminho para o seu projeto.
Clique em Executar.
O filtro para uma única instância apresentado no exemplo anterior é removido: esta consulta devolve muito menos dados, pelo que não é tão necessário restringi-la a uma instância de VM.
O resultado de exemplo seguinte tem uma série cronológica para cada uma das três instâncias de VM. Cada série cronológica tem dois pontos de dados, a utilização média para os períodos de alinhamento de 10 minutos:
{
"timeSeries": [
{
"metric": {
"labels": {"instance_name": "your-first-instance"},
"type": "compute.googleapis.com/instance/cpu/utilization"
},
"points": [
{
"interval": {
"startTime": "2024-03-01T00:20:00.000Z",
"endTime": "2024-03-01T00:20:00.000Z"
},
"value": { "doubleValue": 0.06688481346044381 }
},
{
"interval": {
"startTime": "2024-03-01T00:10:00.000Z",
"endTime": "2024-03-01T00:10:00.000Z"
},
"value": {"doubleValue": 0.06786652821310177 }
}
]
},
{
"metric": {
"labels": { "instance_name": "your-second-instance" },
"type": "compute.googleapis.com/instance/cpu/utilization"
},
"points": [
{
"interval": {
"startTime": "2024-03-01T00:20:00.000Z",
"endTime": "2024-03-01T00:20:00.000Z"
},
"value": { "doubleValue": 0.04144239874207415 }
},
{
"interval": {
"startTime": "2024-03-01T00:10:00.000Z",
"endTime": "2024-03-01T00:10:00.000Z"
},
"value": { "doubleValue": 0.04045793689050091 }
}
]
},
{
"metric": {
"labels": { "instance_name": "your-third-instance" },
"type": "compute.googleapis.com/instance/cpu/utilization"
},
"points": [
{
"interval": {
"startTime": "2024-03-01T00:20:00.000Z",
"endTime": "2024-03-01T00:20:00.000Z"
},
"value": { "doubleValue": 0.029650046587339607 }
},
{
"interval": {
"startTime": "2024-03-01T00:10:00.000Z",
"endTime": "2024-03-01T00:10:00.000Z"
},
"value": { "doubleValue": 0.03053874224715402 }
}
]
}
]
}
Para ver o pedido como um comando curl
, como um pedido HTTP ou em JavaScript, clique em fullscreen Ecrã inteiro no Explorador de APIs.
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.
Se tiver dificuldades, consulte o artigo Resolva problemas da API Monitoring.
Exemplo: reduzir em várias séries cronológicas
Este exemplo expande o exemplo anterior combinando as séries cronológicas alinhadas das três instâncias de VM numa única série cronológica que mede a utilização média de todas as instâncias.
Protocolo
Abra a página de referência
timeSeries.list
.No painel com a etiqueta Experimentar este método, introduza o seguinte:
-
name: introduza o caminho para o seu projeto.
projects/PROJECT_ID
-
aggregation.alignmentPeriod: introduza
600s
-
aggregation.perSeriesAligner: selecione
ALIGN_MEAN
-
aggregation.crossSeriesReducer: selecione
REDUCE_MEAN
-
filter: especifique o tipo de métrica.
metric.type = "compute.googleapis.com/instance/cpu/utilization"
- interval.endTime: introduza a hora de fim.
- interval.startTime: introduza a hora de início e certifique-se de que é 20 minutos anterior à hora de fim.
-
Clique em Mostrar parâmetros padrão e, nos campos, introduza o seguinte:
timeSeries.metric,timeSeries.points
-
name: introduza o caminho para o seu projeto.
Clique em Executar.
O resultado de exemplo seguinte tem apenas uma série cronológica e dois pontos de dados. Cada ponto é a média da utilização entre as três instâncias da VM durante o período:
{
"timeSeries": [
{
"metric": {
"type": "compute.googleapis.com/instance/cpu/utilization"
},
"points": [
{
"interval": {
"startTime": "2024-03-01T00:20:00.000Z",
"endTime": "2024-03-01T00:20:00.000Z"
},
"value": {
"doubleValue": 0.045992419596619184
}
},
{
"interval": {
"startTime": "2024-03-01T00:10:00.000Z",
"endTime": "2024-03-01T00:10:00.000Z"
},
"value": {
"doubleValue": 0.04628773578358556
}
}
]
}
]
}
Para ver o pedido como um comando curl
, como um pedido HTTP ou em JavaScript, clique em fullscreen Ecrã inteiro no Explorador de APIs.
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.
Se tiver dificuldades, consulte o artigo Resolva problemas da API Monitoring.
O que se segue?
- Saiba mais acerca da retenção e da latência dos dados de métricas.
- Saiba mais sobre a filtragem e a agregação: manipular séries cronológicas.