Estructura de series temporales

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á destinada a los lectores que desean comprender mejor las series temporales y la implementación del modelo de métricas de Cloud Monitoring, en particular, aquellos 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. Es probable que los usuarios cuya interacción principal sea con la consola de Google Cloud no necesiten este 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 la 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. En esta sección, se 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

    Estructura de una serie temporal

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 un objeto TimeSeries. A continuación, se muestra 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 y valueType te indican cómo interpretar los valores. Para obtener más información, consulta Tipos y tipos de métricas.

  • 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 mediante 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 y, luego, 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 el tipo de recurso supervisado se almacena en una estructura de datos llamada 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 que se muestra en Objetos de recursos supervisados. 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. Consulta, por ejemplo, las páginas de referencia de los métodos 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:

  1. Abre la página de referencia de monitoredResourceDescriptors.list.

  2. En el panel Prueba este método, ingresa lo siguiente:

    • name: projects/PROJECT_ID/monitoredResourceDescriptors/gce_instance

      Reemplaza PROJECT_ID por el ID del proyecto de Google Cloud.

  3. Haz clic en Ejecutar.

La solicitud muestra el descriptor anterior.

Para ver ejemplos que usen los métodos de la API de Monitoring, consulta Enumera tipos de métricas y recursos.

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 de métrica extraído de la serie temporal de Una serie temporal de muestra:

    {
      "metric": {
        "labels": {
          "log": "kubelet",
          "severity": "DEFAULT"
        },
        "type": "logging.googleapis.com/log_entry_count"
      }

Este objeto te indica que la serie temporal contiene mediciones 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 guarda 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:

  1. Abre la página de referencia de metricDescriptors.list.

  2. En el panel Prueba este método, ingresa lo siguiente:

    • name: projects/PROJECT_ID/metricDescriptors/logging.googleapis.com/log_entry_count Reemplaza PROJECT_ID por el ID de tu proyecto de Google Cloud.
  3. Haz clic en Ejecutar.

La solicitud muestra el descriptor anterior.

Para ver ejemplos que usen los métodos de la API de Monitoring, consulta Enumera tipos de métricas y recursos.

La mayoría de los campos del descriptor de métrica no requieren explicación. Los dos que probablemente necesiten una explicación más detallada son el tipo de métrica y el tipo de valor, que se describen con más detalle en Tipos y tipos de métricas.

Cloud Monitoring tiene alrededor de 6,500 tipos de métricas integradas. Consulta la Lista de métricas para obtener más detalles. 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.