Esta página es una continuación detallada de la explicación y los ejemplos que se ofrecen en Métricas, series temporales y recursos y Componentes del modelo de métricas. Para sacar el máximo partido a esta página, lee primero esas páginas.
Esta página está dirigida a lectores que quieran conocer en profundidad las series temporales y la implementación del modelo de métricas de Cloud Monitoring, especialmente a aquellos que usen la API 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 resulta útil para cualquier persona que utilice la API de Monitoring directamente. Los usuarios cuya interacción principal sea con la consola Google Cloud probablemente no necesiten este nivel de detalle.
También es útil para cualquier persona que utilice 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 recoger sus propias métricas, consulte el artículo Descripción general de las métricas definidas por el usuario.
Revisión del modelo de métricas
Para entender la estructura de las series temporales, es necesario familiarizarse con el modelo de métricas que usa Cloud Monitoring. Este modelo se describe en el artículo Métricas, series temporales y recursos. En esta sección se ofrece una breve reseña.
En términos generales, los datos de monitorización se registran en series temporales. Cada serie temporal incluye tres datos relevantes para esta conversación:
- Conjunto de puntos de datos con marca de tiempo.
- Referencia al tipo de métrica que indica cómo interpretar los puntos de datos.
Referencia al recurso monitorizado del que proceden los datos.
Cada serie temporal contiene las mediciones de una sola fuente física o lógica. Si tu entorno tiene cientos de recursos, cada uno de ellos aporta al menos una serie temporal. De hecho, si tu tipo de métrica y tu tipo de recurso monitorizado tienen etiquetas, obtendrás una serie temporal por cada combinación de valores de etiqueta. Consulta Cardinalidad para obtener más información.
Una serie temporal de ejemplo
Una serie temporal se representa como una instancia de un objeto TimeSeries
.
A continuación, se muestra una instancia completa de una sola 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 incluyen muchos más puntos de datos. Esta abarca un intervalo de un minuto. Todas las series temporales tienen la misma estructura, con los siguientes campos:
El campo
metric
registra- Los valores de las etiquetas de métricas de esta serie temporal concreta, que representan una combinación de valores de etiquetas.
- El tipo de métrica al que están asociados los datos. El tipo de métrica especifica las etiquetas disponibles y describe lo que representan los puntos de datos.
La información de este campo se describe con más detalle en Métricas.
El campo
resource
registra lo siguiente:- Los valores de resource-label de esta serie temporal concreta, que representa una combinación de valores de etiquetas.
- El recurso monitorizado específico del que se han recogido los datos.
La información de este campo se describe con más detalle en Objetos monitored-resource.
Los campos
metricKind
yvalueType
indican cómo interpretar los valores. Para obtener más información, consulta Tipos y clases de métricas.El campo
points
es una matriz de valores con marca de tiempo. El tipo de métrica le indica qué representan los valores. La serie temporal de ejemplo tiene una matriz con un solo punto de datos. En la mayoría de las series temporales, la matriz tiene muchos más valores.
Para ver un ejemplo real que obtiene datos de series temporales, consulta Serie temporal: los datos de un recurso monitorizado.
En el resto de esta página se analiza con más detalle la información de los campos metric
y resource
.
Recursos monitorizados
Cloud Monitoring recoge datos de los recursos monitorizados y los registra en series temporales. Cada serie temporal creada incluye una descripción del recurso monitorizado del que se han recogido los datos.
Objetos MonitoredResource
Un recurso monitorizado se representa mediante una instancia de un objeto MonitoredResource
. El recurso monitorizado describe la fuente de los valores de una serie temporal.
El objeto MonitoredResource
se inserta en la serie temporal e identifica una instancia específica de un tipo de recurso monitorizado conocido por Monitoring: apunta a una entidad física o lógica.
Por ejemplo, a continuación se muestra un objeto monitored-resource que describe una instancia de Compute Engine concreta, extraído 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 monitorizado es del tipo gce_instance
y 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 proceder de una instancia diferente de este recurso monitorizado. Cada combinación de valores de etiqueta identifica un recurso único del que se recogen datos.
Los diferentes conjuntos de etiquetas son útiles para distintos recursos. El conjunto de etiquetas de un recurso se determina mediante el descriptor de recurso monitorizado de ese tipo.
Descriptores de recursos monitorizados
La información sobre un tipo de recurso monitorizado se almacena en una estructura de datos denominada descriptor de recurso monitorizado. Para ver una definición de esta estructura de datos, consulta MonitoredResourceDescriptor
.
Un descriptor de recurso monitorizado es como un esquema o una especificación de una estructura de registro. No contiene los datos de una instancia concreta del recurso monitorizado, sino que indica cómo describir un recurso monitorizado de un tipo específico. Por ejemplo, a continuación se muestra el descriptor de recurso monitorizado del 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 recurso monitorizado con la instancia específica de un recurso gce_instance
que se muestra en Objetos MonitoredResource.
Este descriptor no describe un recurso monitorizado concreto, sino que especifica las etiquetas y cada combinación de valores de etiqueta identifica un recurso monitorizado concreto.
Puedes obtener los descriptores de recursos monitorizados de tu Google Cloud proyecto
mediante la API Cloud Monitoring. Consulta, por ejemplo, las páginas de referencia de los métodos monitoredResourceDescriptors.list
y monitoredResourceDescriptors.get
.
Ejemplo práctico: si tienes un proyecto Google Cloud , puedes obtener este descriptor mediante el widget Explorador de APIs de la siguiente manera:
Abre la página de referencia de
monitoredResourceDescriptors.list
.En el panel Probar este método, introduce lo siguiente:
name:
projects/PROJECT_ID/monitoredResourceDescriptors/gce_instance
Sustituye
PROJECT_ID
por el ID de tu Google Cloud proyecto.
Haz clic en la opción para ejecutar.
La solicitud devuelve el descriptor anterior.
Para ver ejemplos de uso de los métodos de la API Monitoring, consulta List metric and resource types (Listar tipos de métricas y recursos).
Métricas
Cada serie temporal creada por Cloud Monitoring registra un conjunto de puntos de datos, así como información sobre la organización y el significado de esos puntos de datos.
Objetos de métrica
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 e información específica de la métrica sobre esas mediciones.
Para ver la definición de la estructura de datos del objeto de métrica, consulta Metric
.
Por ejemplo, aquí se muestra el objeto de métrica extraído de la serie temporal de Una serie temporal de ejemplo:
{ "metric": { "labels": { "log": "kubelet", "severity": "DEFAULT" }, "type": "logging.googleapis.com/log_entry_count" }
Este objeto indica que la serie temporal contiene
mediciones logging.googleapis.com/log_entry_count
. Los valores de la etiqueta te indican que esta serie temporal específica solo cuenta las entradas de registro de gravedad DEFAULT
en el archivo de registro llamado kubelet
.
Hay una serie temporal por cada combinación de valores de etiqueta, por lo que las entradas INFO
del mismo archivo de registro aparecen en una serie temporal diferente.
El conjunto de etiquetas recogidas en un objeto de métrica se especifica en el descriptor de ese tipo de métrica.
Descriptores de métricas
La información sobre un tipo de métrica se almacena en una estructura de datos denominada descriptor de métrica. Para ver una definición de esta estructura de datos, consulta MetricDescriptor
.
Un descriptor de métricas es un esquema o una especificación de una estructura de registro. No contiene datos sobre una métrica concreta, sino que indica cómo interpretar los datos asociados a un tipo de métrica específico.
A continuación, se muestra 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" }
Compare este descriptor de métrica con el objeto de métrica que se muestra en Objetos de métrica. El descriptor indica qué significan los valores de las etiquetas y cómo interpretar los valores de los datos.
Puedes obtener descriptores de métricas mediante la API de Cloud Monitoring. Por ejemplo, consulta las páginas de referencia de los métodos metricDescriptors.list
y metricDescriptors.get
.
Ejemplo práctico: si tienes un proyecto Google Cloud , puedes obtener este descriptor mediante el widget Explorador de APIs de la siguiente manera:
Abre la página de referencia de
metricDescriptors.list
.En el panel Probar este método, introduce lo siguiente:
- name:
projects/PROJECT_ID/metricDescriptors/logging.googleapis.com/log_entry_count
SustituyePROJECT_ID
por el ID de tu Google Cloud proyecto.
- name:
Haz clic en la opción para ejecutar.
La solicitud devuelve el descriptor anterior.
Para ver ejemplos de uso de los métodos de la API Monitoring, consulta List metric and resource types (Listar tipos de métricas y recursos).
La mayoría de los campos del descriptor de métricas son suficientemente explícitos. Los 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 Tipos de métricas.
Cloud Monitoring tiene aproximadamente 6500 tipos de métricas integrados. Consulta la lista de métricas para obtener más información. También puedes crear tus propios descriptores de métricas para registrar métricas personalizadas. Para obtener más información, consulta el resumen de las métricas definidas por el usuario.