Ayúdanos a definir el futuro de las operaciones de software y haz oír tu voz mediante la encuesta estatal de DevOps 2021.

Componentes del modelo de métricas

El modelo de Cloud Monitoring para supervisar los datos consta de tres conceptos principales:

  • Tipos de recursos supervisados
  • Tipos de métricas
  • Series temporales

El modelo de métrica de Cloud Monitoring describe estos conceptos en términos generales. Si estos conceptos son nuevos para ti, primero lee esa página.

En esta página, se describen con más detalle los tipos de métricas, recursos supervisados y series temporales, junto con algunos conceptos relacionados. Estos conceptos subyacentes a todas las métricas de Monitoring

Debes comprender la información de esta página si deseas realizar alguna de las siguientes acciones:

Para obtener más detalles sobre estos conceptos y cómo se asignan a la API de Cloud Monitoring, consulta Estructura de series temporales, en especial si planeas usar la API de Monitoring o las métricas personalizadas.

Información sobre las etiquetas

Los tipos de recursos supervisados y los tipos de métricas admiten etiquetas, que permiten clasificar los datos durante el análisis. Por ejemplo:

  • Un tipo de recurso supervisado para una máquina virtual puede incluir etiquetas para la ubicación de la máquina y el ID del proyecto asociado con la máquina. Cuando se registra la información del recurso supervisado, también se incluyen los valores de las etiquetas.

    Un recurso supervisado también puede tener etiquetas de metadatos proporcionadas por el usuario o el sistema, además de las etiquetas definidas por el tipo de recurso supervisado.

  • Un tipo de métrica que cuenta las solicitudes a la API puede tener etiquetas para registrar el nombre del método invocado y el estado de la solicitud.

El uso de etiquetas se analiza con más detalle en Etiquetas.

Tipos de recursos supervisados

Un recurso supervisado es un recurso del cual se capturan los datos de métricas. Por último, Cloud Monitoring admite aproximadamente 100 tipos de recursos supervisados.

Entre los tipos de recursos supervisados, se incluyen nodos y tareas genéricos, tablas en Cloud Bigtable, componentes arquitectónicos en Google Kubernetes Engine, varios recursos de AWS y muchos más.

Cada tipo de recurso supervisado se describe formalmente en una estructura de datos llamada descriptor de recurso supervisado. Para obtener más información, consulta Descriptores de recursos supervisados.

Cada uno de los tipos de recursos supervisados compatibles tiene una entrada en la lista de recursos supervisados. Las entradas de la lista se crean a partir de los descriptores de recursos supervisados. En esta sección, se describe la información recopilada en un descriptor de recursos supervisados y se muestra cómo se presenta en la lista.

Un muestra de tipo de recurso supervisado

Esta es la entrada en la lista para un depósito de Cloud Storage:

Lista para el bucket de Cloud Storage

Todas las entradas de la lista incluyen la siguiente información:

  • Tipo: El encabezado de la entrada muestra el tipo de recurso supervisado, gcs_bucket en el ejemplo.
  • Nombre visible: una descripción breve del recurso supervisado.
  • Descripción: Una descripción más larga del recurso supervisado.
  • Etiquetas: Un conjunto de dimensiones para clasificar datos. Para obtener más información, consulta Etiquetas.

Tipos de métricas

Un tipo de métrica describe medidas que se pueden recopilar de un recurso supervisado. Un tipo de métrica incluye una descripción de lo que se mide y cómo se interpretan las mediciones. Con el último conteo, Cloud Monitoring admite aproximadamente 1,500 tipos de métricas y te permite definir tipos nuevos.

Los tipos de métricas incluyen recuentos de llamadas a la API, estadísticas de uso del disco, consumo de almacenamiento y muchos más.

Cada tipo de métrica se describe de manera formal en una estructura de datos llamada descriptor de métrica. Para obtener más información, consulta Descriptores de métricas.

Cada uno de los tipos de métricas integradas tiene una entrada en la lista de métricas. Las entradas de estas tablas se crean a partir de los descriptores de métricas. En esta sección, se describe la información capturada en un tipo de métrica y se muestra cómo se presenta en el material de referencia.

Un tipo de métrica de muestra

En la siguiente imagen, se muestra una entrada de un tipo de métrica de Cloud Storage:

Un extracto de la lista de métricas para Cloud Storage.

Los tipos de métricas se muestran en una tabla, y el encabezado de la tabla explica el diseño de la información. En esta sección, se usa una entrada como ejemplo, pero todas las tablas usan el mismo formato.

La entrada de la tabla de muestra de Cloud Storage te brinda la siguiente información sobre un tipo de métrica:

  • Tipo de métrica: Un identificador para el tipo de métrica, storage.googleapis.com/api/request_count en el ejemplo.

    El prefijo storage.googleapis.com actúa como un espacio de nombres para Cloud Storage. Todos los tipos de métricas asociados con un tipo de recurso supervisado en particular usan el mismo espacio de nombres.

    Los espacios de nombres se omiten en las entradas en las tablas.

    Todos los tipos de métricas asociados con Cloud Storage se enumeran en la tabla de métricas de Cloud Storage.

  • Fase de lanzamiento: Un bloque de color que indica la etapa de lanzamiento del tipo de métrica con un valor como Alfa, Beta y GA.

  • Nombre visible: una string breve que describe el tipo de métrica, “Request count” en el ejemplo.

  • Clase, tipo, unidad: Esta línea proporciona información para interpretar los valores de datos. El ejemplo muestra una métrica delta registrada como un número entero de 64 bits sin unidad (ese es el valor 1).

    • Categoría: Este ejemplo es una métrica delta, que registra un cambio durante un período. Es decir, cada dato registra la cantidad de llamadas a la API desde que se escribieron los datos anteriores. Para obtener más información sobre los tipos, consulta Tipos de valores y clases de métricas.

    • Tipo: En este ejemplo, se registran sus valores como números enteros de 64 bits. Para obtener más información sobre los tipos, consulta Tipos de valores y clases de métricas.

    • Unidad: Esta métrica no necesita una unidad explícita porque representa un recuento, el dígito 1 se usa para indicar que no se necesita ninguna unidad.

  • Recursos supervisados: los recursos supervisados para los que este tipo de métrica está disponible. Los valores son los mismos que los descritos en Tipos de recursos supervisados.

  • Descripción: información más detallada sobre lo que se registra y cómo. Configura las cursivas para distinguirla de las etiquetas.

  • Etiquetas: Un conjunto de dimensiones para clasificar datos. Para obtener más información, consulta Etiquetas.

Cuando accedes a los datos de supervisión a través de la API de Cloud Monitoring, incluyes un proyecto de Google Cloud en la llamada a la API. Solo puedes recuperar los datos que son visibles en ese proyecto de Google Cloud. Por ejemplo, si solicitas los datos de tu proyecto para el tipo de métrica storage.googleapis.com/api/request_count, verás los recuentos de la API solo de los depósitos de Cloud Storage en tu proyecto. Si tu proyecto no utiliza ningún depósito de Cloud Storage, no se mostrarán datos de métrica.

Tipos de métricas integradas

Los tipos de métricas integradas están definidos por servicios de Google Cloud, incluido Cloud Monitoring. Estos tipos de métricas describen medidas estándares para un arreglo amplio de infraestructura común y están disponibles para que cualquiera las use.

En la Lista de métricas, se muestra el conjunto completo de tipos de métricas integradas. Las métricas que aparecen en la página Lista de métricas externas son un subconjunto especial de métricas integradas que Cloud Monitoring define en asociación con proyectos de código abierto o proveedores de terceros. Por lo general, estas métricas tienen un prefijo external.googleapis.com.

Métricas personalizadas

Cuando compilas tu aplicación, es posible que tengas ciertas propiedades que desees medir y cosas para las que no hay métricas integradas. Con Cloud Monitoring, puedes definir tus propios tipos de métricas. Estos tipos de métricas se denominan métricas personalizadas. Si una métrica tiene un prefijo custom.googleapis.com o external.googleapis.com/prometheus, es una métrica personalizada. Estas últimas métricas suelen provenir del archivo adicional de Stackdriver Prometheus. Consulta Usa Prometheus para obtener más información.

Por ejemplo, si deseas realizar un seguimiento de la cantidad de widgets que venden tus tiendas, debes usar una métrica personalizada. Para obtener más información, consulta Usa métricas personalizadas.

Labels

Las definiciones de tipos de métricas y de recursos supervisados incluyen etiquetas. Las etiquetas son clasificadores para los datos que se recopilan. ayudan a clasificar los datos para realizar un análisis más detallado. Por ejemplo:

  • El tipo de métrica de Cloud Storage storage.googleapis.com/api/request_count tiene dos etiquetas, response_code y method.
  • El tipo de recurso supervisado gcs_bucket de Cloud Storage tiene tres etiquetas, project_id, bucket_name y location. Las etiquetas identifican instancias específicas del tipo de recurso.

Por lo tanto, todos los datos recopilados para las solicitudes a la API desde un depósito de Cloud Storage se clasifican con el método que se llamó, el código de respuesta de la llamada, el nombre, la ubicación y el proyecto del depósito involucrado. El conjunto de etiquetas varía con las métricas o el tipo de recurso supervisado. Las etiquetas disponibles se documentan en las páginas Lista de métricas y Lista de recursos supervisados.

Si realizas un seguimiento del código de respuesta, el nombre del método y la ubicación cuando se cuentan las llamadas a la API, puedes recuperar la cantidad de llamadas a un método de API en particular, la cantidad de llamadas fallidas a cualquier método o la cantidad de llamadas a un método específico en una ubicación específica.

La cantidad de etiquetas y el número de valores que puede suponer cada uno se denominan cardinalidad. La cardinalidad es la cantidad de series temporales posibles que se pueden recopilar para un par de métricas y tipos de recursos supervisados: hay una serie temporal para cada combinación de valores de sus etiquetas. Esto se analiza con más detalle en cardinalidad: series temporales y etiquetas.

Etiquetas de metadatos de recursos

Además de las etiquetas definidas en los tipos de recursos supervisados y métricas, Monitoring recopila de manera interna información adicional sobre recursos supervisados y almacena esta información en etiquetas de metadatos del sistema. Estas etiquetas de metadatos del sistema están disponibles para los usuarios como valores de solo lectura. Algunos recursos también permiten a los usuarios crear sus propias etiquetas de metadatos de recursos cuando configuran recursos como instancias de VM en Google Cloud Console.

Las etiquetas de metadatos del sistema y del usuario se denominan etiquetas de metadatos de recursos de forma colectiva. Puedes usar estas etiquetas como las etiquetas definidas en la métrica y los tipos de recursos supervisados en los filtros de series temporales. Para obtener más información sobre el filtrado, consulta Filtros de supervisión.

Series temporales: datos de un recurso supervisado

En esta sección, se explica qué son los datos de supervisión y cómo están organizados en series temporales. Aquí es donde los componentes conceptuales del modelo de métrica se convierten en artefactos concretos.

Cloud Monitoring almacena mediciones regulares en el tiempo para pares de tipos de métricas y recursos supervisados. Las mediciones se recopilan en series temporales y cada una de ellas contiene los siguientes elementos:

  • El nombre del tipo de métrica al que pertenece la serie temporal y una combinación de valores para las etiquetas de la métrica.

  • Una serie de pares (marca de tiempo, valor). El valor es la medición y la marca de tiempo es la hora en la que se realizó la medición.

  • El recurso supervisado que es la fuente de los datos de la serie temporal y una combinación de valores para las etiquetas del recurso.

Se crea una serie temporal para cada combinación de etiquetas de métricas y recursos que genera datos.

Ejemplo de estilo: El tipo de métrica storage.googleapis.com/api/request_count descrito antes podría tener muchas series temporales para los depósitos de Cloud Storage de tu proyecto. En la siguiente ilustración, se muestran algunas series temporales posibles.

En la ilustración, el valor bucket: xxxx representa el valor de la etiqueta bucket_name en el tipo de recurso supervisado, mientras que response_code y method son etiquetas en el tipo de métrica. Hay una serie temporal para cada combinación de valores en las etiquetas de recursos y métricas. Las ilustraciones muestran algunos casos:

Imágenes que muestran varias series temporales en una métrica

Cloud Monitoring no graba las series temporales "vacías". En el ejemplo de los depósitos de Cloud Storage, si no usas un depósito en particular o nunca llamas a un método de la API en particular, no se recopilan datos para esa etiqueta y ninguna serie temporal lo menciona. Esto significa que, si tu proyecto no tiene datos para una métrica específica, nunca verás el tipo de métrica.

Los tipos de métricas no indican qué tipos de recursos supervisados se encuentran en las series temporales de las métricas. Para Cloud Storage, solo hay un tipo de recurso supervisado: gcs_bucket. Algunos tipos de métricas se vinculan con más de un recurso supervisado.

Ejemplo en vivo: Si tienes un proyecto de Google Cloud, puedes probar el widget del Explorador de API ubicado en la página de referencia de timeSeries.list. de la API de Monitoring. El botón TRY IT que se encuentra a continuación proporciona los siguientes parámetros predeterminados al método timeSeries.list:

  • name: projects/[PROJECT_ID]
  • filter: metric.type="logging.googleapis.com/log_entry_count" resource.type="gce_instance"
  • interval.start_time: 2019-11-11T00:00:00Z
  • interval.end_time: 2019-11-11T00:20:00Z
  • fields: timeSeries.metric

Cuando intentas ejecutar este ejemplo, debes cambiar [PROJECT_ID] en el campo name al ID de tu proyecto.

En este ejemplo, se supone que tienes una instancia de Compute Engine que ejecuta el agente de Cloud Logging. El tipo de recurso supervisado es gce_instance y el tipo de métrica es logging.googleapis.com/log_entry_count. Puedes cambiar estos valores si no se aplican a ti.

Para recuperar datos de una serie temporal, debes especificar las horas de inicio y finalización. En este ejemplo, se usa un período el 11 de noviembre de 2019. Sin embargo, los datos de serie temporal se almacenan por 6 semanas, por lo que probablemente tengas que ajustar la fecha también antes de ejecutar la solicitud.

Para ejecutar la solicitud, haz clic en el botón a continuación, ajusta los parámetros según sea necesario y haz clic en el botón Ejecutar en la parte inferior del panel del widget.

Probar

Si la solicitud se realiza correctamente, se mostrarán los datos de series temporales que coincidan con la solicitud. Se verán como el siguiente fragmento:

{
  "timeSeries": [
    {
      "metric": {
        "labels": {
          "severity": "INFO",
          "log": "compute.googleapis.com/activity_log"
        },
        "type": "logging.googleapis.com/log_entry_count"
      },
      "resource": {
        "type": "gce_instance",
        "labels": {
          "instance_id": "0",
          "zone": "us-central1",
          "project_id": "your-project-id"
        }
      },
      "metricKind": "DELTA",
      "valueType": "INT64",
      "points": [
        {
        "interval": {
            "startTime": "2019-10-29T13:53:00Z",
            "endTime": "2019-10-29T13:54:00Z"
          },
          "value": {
            "int64Value": "0"
          }
        },
        ...
      ]
    },
    ...
  ]
}

Para obtener más información sobre cómo usar este widget, incluida la solución de problemas, consulta Explorador de API.

Cardinalidad: series temporales y etiquetas

Cada serie temporal está asociada con un par específico de métricas y tipos de recursos supervisados, pero cada par puede tener muchas series temporales. La cantidad posible de series temporales se determina por la cardinalidad del par: la cantidad de etiquetas y la cantidad de valores que puede tomar cada etiqueta.

Por ejemplo, supón que tienes un tipo de métrica trivial que especifica una etiqueta, color, y un tipo de recurso supervisado con otra etiqueta, zone. Obtienes una serie temporal para cada combinación de valores zone y color.

La cantidad de valores que puede suponer una etiqueta es importante:

  • Si solo hay dos zonas posibles, “east” y “west”, la etiqueta zone puede tener hasta dos valores distintos.
  • Si solo hay tres colores posibles, “red”, “green” y “blue”, la etiqueta color puede tener hasta tres valores distintos.

La cardinalidad depende de las etiquetas y sus valores.

La cardinalidad de esta métrica es 6 (3×2), aunque la métrica podría producir menos series temporales. Por ejemplo, si nunca obtienes datos de la zona "west", nunca tendrás más de tres series temporales.

La cardinalidad de la métrica es un factor crítico del rendimiento cuando se solicitan métricas para un gráfico o para otros usos. Una cardinalidad más alta puede hacer que los tiempos de respuesta de las consultas sean más lentos.

La cardinalidad también es una preocupación cuando se diseñan métricas personalizadas, en las que se determina el conjunto de etiquetas y sus valores posibles. Tienes un límite de 10 etiquetas en un tipo de métrica, pero también debes asegurarte de que el conjunto de valores posibles para cualquier etiqueta esté restringido. El enfoque preferido es el pequeño conjunto de valores discretos (como “rojo”, “verde” y “azul”. No se deben usar valores detallados, como marcas de tiempo. También hay otros límites sobre las métricas personalizadas Consulta Métricas personalizadas para obtener más información.