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á dirigida 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 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. Es probable que los usuarios cuya interacción principal es con Google Cloud Console no necesiten este nivel de detalle.

  • También es útil para cualquier persona que use una integración de terceros, como OpenCensus. 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 Usa métricas personalizadas.

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étricas 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.

En general, los datos de supervisión se registran en 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

A continuación, se incluye una instancia completa de una única serie temporal (tipo TimeSeries):

    {
      "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 Recursos supervisados.

  • Los campos metricKind y valueType te indican cómo interpretar los valores. Consulta Tipos de valores y categorías de métricas para obtener más información.

  • El campo points es un arreglo de valores con marca de tiempo. El tipo de métrica te indica qué representan los valores. La serie temporal de muestra tiene un arreglo con un solo 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

Cada serie temporal registra la fuente de los datos como un objeto de recurso supervisado (tipo MonitoredResource). Este objeto está incorporado en la serie temporal e identifica una instancia específica de un tipo de recurso supervisado familiar para 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 de 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 conserva en una estructura de datos llamada descriptor de recurso supervisado (tipo 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": "GCE VM Instance",
  "description": "A virtual machine instance hosted in Google Compute Engine (GCE).",
  "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. Por ejemplo, consulta 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 API, que se encuentra en la página de referencia del método monitoredResourceDescriptors.get en la API de Monitoring.

Cuando ejecutes este ejemplo, deberás cambiar [PROJECT_ID] en el campo name por el ID de tu proyecto. Luego, haz clic en el botón Ejecutar en la parte inferior del panel del widget. La solicitud muestra el descriptor anterior.

Probar

Para obtener más ejemplos con los métodos de la API de Monitoring, consulta Explora los tipos de recursos y métricas.

En último recuento, Cloud Monitoring puede supervisar alrededor de 100 tipos de recursos. Consulta la Lista de recursos para obtener más detalles. La lista deriva directamente del conjunto de descriptores de recursos supervisados disponibles.

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étrica

Cada serie temporal incluye una referencia a la descripción de los datos que se registran en un objeto de métrica.

Un objeto de métrica (tipo Metric) es un conjunto de información que indica el tipo de métrica y los valores de las etiquetas del tipo de métrica para los datos en esta serie temporal. Por ejemplo, este es el objeto de métrica extraído de la serie temporal en Una serie temporal de muestra:

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

Este objeto te indica que las series temporales contienen medidas para el tipo de métrica 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.

Hay una serie temporal para cada combinación de valores de etiqueta, por lo que las entradas de INFO al mismo archivo de registro aparecen en diferentes 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 (tipo 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, sino que te explica cómo interpretar los datos asociados con un tipo de métrica específico.

Este es el descriptor de métrica para el tipo de métrica logging.googleapis.com/log_entry_count:

{
  "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 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 API, que se encuentra en la página de referencia del método metricDescriptors.get en la API de Monitoring.

Cuando ejecutes este ejemplo, deberás cambiar [PROJECT_ID] en el campo name por el ID de tu proyecto. Luego, haz clic en el botón Ejecutar en la parte inferior del panel del widget. La solicitud muestra el descriptor anterior.

Probar

Para obtener más ejemplos con los métodos de la API de Monitoring, consulta Explora los tipos de recursos y métricas.

La mayoría de los campos del descriptor de métrica no requieren explicación. Los dos que pueden llegar a necesitar una explicación adicional son la categoría de métrica y el tipo de valor, que se describen más adelante en Categorías de métricas y tipos de valores.

Según la última vez que se verificó, Cloud Monitoring tiene aproximadamente 1,500 tipos de métricas integradas. 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 Usa métricas personalizadas.