Esta página es una continuación detallada del debate y los ejemplos presentados en Métricas, series temporales y recursos y Componentes del modelo de métricas. Para aprovechar al máximo esta página, primero lee esas páginas.
Esta página está dirigida a los lectores que desean un conocimiento más profundo de las series temporales y la implementación del modelo de métricas de Cloud Monitoring, en particular los lectores que usan la API de Monitoring. Esto incluye a los usuarios de métricas personalizadas (definidas por el usuario).En esta página, se asigna el modelo de métricas general a la API de Cloud Monitoring, por lo que es útil para cualquier persona que use la API de Monitoring directamente. Usuarios cuyo interacción principal con la consola de Google Cloud nivel de detalle.
También es útil para cualquier persona que use una integración de terceros, como OpenTelemetry. Cuando los datos de una fuente externa llegan a Cloud Monitoring a través de una integración, se asignan al modelo de métricas de Cloud Monitoring y se tratan como cualquier otro dato de métrica.
Para obtener más información sobre cómo recopilar tus propias métricas, consulta Descripción general de las métricas definidas por el usuario.
Revisión del modelo de métricas
Un requisito para comprender la estructura de las series temporales es estar familiarizado con el modelo de métrica que usa Cloud Monitoring. Este modelo se describe en Métricas, series temporales y recursos. Esta sección proporciona una breve revisión.
Por lo general, los datos de supervisión se registran en las series temporales. Cada serie temporal individual incluye tres datos relevantes para este análisis:
- Un conjunto de datos con marca de tiempo.
- Una referencia al tipo de métrica que te indica cómo interpretar los datos
Una referencia al recurso supervisado desde el que se originaron los datos
Cada serie temporal contiene las medidas de una única fuente física o lógica. Si tu entorno tiene cientos de recursos, cada uno aporta al menos una serie temporal. De hecho, si el tipo de métrica y el tipo de recurso supervisado tienen etiquetas, obtienes una serie temporal por combinación de valores de etiqueta. Consulta Cardinalidad para obtener más información.
Una serie temporal de muestra
Una serie temporal se representa como una instancia de una
Objeto TimeSeries
.
A continuación, se incluye una instancia completa de una única serie temporal:
{ "metric": { "labels": { "log": "kubelet", "severity": "DEFAULT" }, "type": "logging.googleapis.com/log_entry_count" }, "resource": { "type": "gce_instance", "labels": { "instance_id": "5106847938295940291", "zone": "us-central1-a", "project_id": "a-gcp-project" } }, "metricKind": "DELTA", "valueType": "INT64", "points": [ { "interval": { "startTime": "2019-12-20T20:25:38Z", "endTime": "2019-12-20T20:26:38Z" }, "value": { "int64Value": "20" } } ] }
La mayoría de las series temporales incluye muchos más datos; esta abarca un intervalo de un minuto. Todas las series temporales tienen la misma estructura con los siguientes campos:
Los registros del campo
metric
- Los valores de etiqueta de la métrica de esta serie temporal, que representan una combinación de valores de etiqueta.
- El tipo de métrica con el que se asocian los datos. El tipo de métrica especifica las etiquetas disponibles y describe lo que representan los datos.
La información de este campo se describe con más detalle en Métricas.
Los registros del campo
resource
:- Los valores de etiqueta del recurso para esta serie temporal en particular, que representan una combinación de valores de etiqueta.
- El recurso supervisado específico del que se recopilaron los datos.
La información de este campo se describe con más detalle en Objetos de recursos supervisados.
Los campos
metricKind
yvalueType
te indican cómo interpretar los valores. Para obtener más información, consulta Categorías de métricas y tipos de valores.El campo
points
es un arreglo de valores con marca de tiempo. El tipo de métrica te indica qué representan los valores. Las series temporales de muestra tienen un arreglo con un único dato. En la mayoría de las series temporales, el arreglo tiene muchos más valores.
Para ver un ejemplo en vivo en el que se recuperan datos de series temporales, consulta Series temporales: datos de un recurso supervisado.
El resto de la página analiza la información en los campos metric
y resource
con más detalle.
Recursos supervisados
Cloud Monitoring recopila datos de recursos supervisados y los registra en series temporales. Cada serie temporal creada incluye una descripción del recurso supervisado del que se recopilaron los datos.
Objetos de recursos supervisados
Un recurso supervisado se representa con una instancia de un objeto MonitoredResource
. El recurso supervisado describe
la fuente de los valores en una serie temporal.
El objeto MonitoredResource
está incorporado en la serie temporal e identifica una instancia específica de un tipo de recurso supervisado conocido por Monitoring: apunta a una entidad física o lógica.
Por ejemplo, a continuación se muestra un objeto de recurso supervisado que describe una instancia particular de Compute Engine, extraída de la serie temporal de ejemplo:
"resource": { "type": "gce_instance", "labels": { "instance_id": "5106847938295940291", "zone": "us-central1-a", "project_id": "a-gcp-project" } }
Esta instancia de un recurso supervisado es del tipo gce_instance
, tiene un valor instance_id
específico (5106847938295940291) en el proyecto a-gcp-project
.
La instancia se encuentra en EE.UU. Otra serie temporal puede originarse a partir de una instancia diferente de este recurso supervisado. Cada combinación de valores de etiqueta identifica un recurso único desde el que se recopilan los datos.
Los diferentes conjuntos de etiquetas tienen sentido para distintos recursos. El conjunto de etiquetas de un recurso se determina mediante el descriptor de recursos supervisados para ese tipo.
Descriptores de recursos supervisados
La información sobre un tipo de recurso supervisado se guarda en una estructura de datos
llamado descriptor de recursos supervisados. Para obtener una definición de esta estructura de datos, consulta MonitoredResourceDescriptor
.
Un descriptor de recursos supervisados es como un esquema o una especificación para una estructura de registro. No contiene los datos de una instancia particular del recurso supervisado. Te indica cómo describir un recurso supervisado de un tipo específico. Por ejemplo, a continuación se muestra el descriptor de recursos supervisados para el recurso gce_instance
:
{ "type": "gce_instance", "displayName": "VM Instance", "description": "A virtual machine instance hosted in Compute Engine.", "name": "projects/[PROJECT_ID]/monitoredResourceDescriptors/gce_instance" "labels": [ { "key": "project_id", "description": "The identifier of the GCP project associated with this resource, such as \"my-project\"." }, { "key": "instance_id", "description": "The numeric VM instance identifier assigned by Compute Engine." }, { "key": "zone", "description": "The Compute Engine zone in which the VM is running." } ], }
Compara este descriptor de recursos supervisados con la instancia específica de un
Recurso gce_instance
mostrado en Recurso supervisado
objetos.
Este descriptor no describe un recurso supervisado en particular; en su lugar, el descriptor especifica las etiquetas, y cada combinación de valores de etiquetas identifica un recurso supervisado en particular.
Puedes recuperar los descriptores de recursos supervisados en tu proyecto de Google Cloud
con la API de Cloud Monitoring. Por ejemplo, consulta las páginas de referencia de la
monitoredResourceDescriptors.list
y
monitoredResourceDescriptors.get
.
Ejemplo en vivo: Si tienes un proyecto de Google Cloud, puedes recuperar este descriptor con el widget del Explorador de APIs de la siguiente manera:
Abre la página de referencia de
monitoredResourceDescriptors.list
.En el panel etiquetado Probar este método, ingresa lo siguiente:
name:
projects/PROJECT_ID/monitoredResourceDescriptors/gce_instance
Reemplaza
PROJECT_ID
por el ID del proyecto de Google Cloud.
Haz clic en Ejecutar.
La solicitud muestra el descriptor anterior.
Para ver ejemplos con los métodos de la API de Monitoring, consulta Enumerar tipos de recursos y métricas.
Métricas
Cada serie temporal que crea Cloud Monitoring registra un conjunto de datos, así como información sobre la organización y su significado.
Objetos de métricas
Cada serie temporal incluye una referencia a la descripción de los datos que se registran en un objeto de métrica.
El objeto de métrica contenido en una serie temporal especifica el tipo de mediciones y la información específica de la métrica sobre esas mediciones.
Para obtener una definición de la estructura de datos del objeto de métrica, consulta Metric
.
Por ejemplo, este es el objeto metric
extraídas de las series temporales de
Una serie temporal de muestra:
{ "metric": { "labels": { "log": "kubelet", "severity": "DEFAULT" }, "type": "logging.googleapis.com/log_entry_count" }
Este objeto indica que la serie temporal contiene
logging.googleapis.com/log_entry_count
. Los valores de las etiquetas indican que esta serie temporal específica cuenta solo las entradas de registro de gravedad DEFAULT
en el archivo de registro llamado kubelet
.
Existe una serie temporal para cada combinación de valores de etiqueta, por lo que las entradas de INFO
para el mismo archivo de registro aparecen en distintas series temporales.
El conjunto de etiquetas recopiladas en un objeto de métrica se especifica en el descriptor para ese tipo de métrica.
Descriptores de métricas
La información sobre un tipo de métrica se conserva en una estructura de datos llamada descriptor de métrica. Para obtener una definición de esta estructura de datos, consulta MetricDescriptor
.
Un descriptor de métrica es un esquema o una especificación de una estructura de registro. No contiene los datos sobre una métrica en particular. En cambio, te explica cómo interpretar los datos asociados con un tipo de métrica específico.
Este es un ejemplo de descriptor de métrica:
{ "type": "logging.googleapis.com/log_entry_count", "name": "projects/a-gcp-project/metricDescriptors/logging.googleapis.com/log_entry_count", "labels": [ { "key": "log", "description": "Name of the log." }, { "key": "severity", "description": "Severity of the log entry." } ], "metricKind": "DELTA", "valueType": "INT64", "unit": "1", "description": "Number of log entries that contributed to user-defined metrics.", "displayName": "Log entries", "metadata": { "launchStage": "GA", "samplePeriod": "60s" }, "launchStage": "GA" }
Compara este descriptor de métrica con el objeto de la métrica que se muestra en Objetos de métrica. El descriptor te indica qué significan los valores de las etiquetas y cómo interpretar los valores de los datos.
Puedes recuperar descriptores de métricas con la API de Cloud Monitoring. Por ejemplo, consulta las páginas de referencia de los métodos metricDescriptors.list
y metricDescriptors.get
.
Ejemplo en vivo: Si tienes un proyecto de Google Cloud, puedes recuperar este descriptor con el widget del Explorador de APIs de la siguiente manera:
Abre la página de referencia de
metricDescriptors.list
.En el panel Prueba este método, ingresa lo siguiente:
- name:
projects/PROJECT_ID/metricDescriptors/logging.googleapis.com/log_entry_count
ReemplazaPROJECT_ID
por el ID de tu proyecto de Google Cloud.
- name:
Haz clic en Ejecutar.
La solicitud muestra el descriptor anterior.
Para ver ejemplos con los métodos de la API de Monitoring, consulta Enumerar tipos de recursos y métricas.
La mayoría de los campos del descriptor de métrica no requieren explicación. El dos que probablemente necesiten más explicaciones son el tipo de métrica y el tipo de valor, que se describen más adelante en Clases y tipos de métricas.
Cloud Monitoring tiene una base de datos los tipos de métricas; consulta la lista de métricas para obtener más información. También puedes crear tus propios descriptores de métricas para capturar métricas personalizadas. Para obtener más información, consulta Descripción general de las métricas definidas por el usuario.