Estructura de series temporales

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.

    Estructura de una serie temporal.

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 y valueType 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:

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

  2. 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.

  3. 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:

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

  2. En el panel Probar este método, introduce lo siguiente:

    • name: projects/PROJECT_ID/metricDescriptors/logging.googleapis.com/log_entry_count Sustituye PROJECT_ID por el ID de tu Google Cloud proyecto.
  3. 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.