Componentes del modelo de métricas

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

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

En el documento Modelo de métricas se describen estos conceptos de Cloud Monitoring en términos generales. Si no conoces estos conceptos, lee primero esa página.

En esta página se describen con más detalle los tipos de métricas, los recursos monitorizados y las series temporales, así como algunos conceptos relacionados. Estos conceptos son la base de todas las métricas de monitorización.

Debe comprender la información de esta página si quiere hacer lo siguiente:

Para obtener más información sobre estos conceptos y cómo se asignan a la API Cloud Monitoring, consulta Estructura de las series temporales, sobre todo si tienes previsto usar la API Monitoring o métricas personalizadas.

Información sobre las etiquetas

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

  • Un tipo de recurso monitorizado de una máquina virtual puede incluir etiquetas para la ubicación de la máquina y el ID de proyecto asociado a la máquina. Cuando se registra información sobre el recurso monitorizado, esta incluye los valores de las etiquetas. Un recurso monitorizado también puede tener etiquetas de metadatos proporcionadas por el sistema o por el usuario, además de las etiquetas definidas para el tipo de recurso monitorizado.
  • Un tipo de métrica que cuenta las solicitudes de la API puede tener etiquetas para registrar el nombre del método invocado y el estado de la solicitud.

El uso de etiquetas se explica con más detalle en el artículo Etiquetas.

Tipos de recursos monitorizados

Un recurso monitorizado es un recurso del que se obtienen datos de métricas. Cloud Monitoring admite aproximadamente 270 tipos de recursos monitorizados.

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

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

Cada uno de los tipos de recursos monitorizados admitidos tiene una entrada en la lista de recursos monitorizados. Las entradas de la lista se crean a partir de los descriptores de recursos monitorizados. En esta sección se describe la información que se registra en un descriptor de recurso monitorizado y se muestra cómo se presenta en la lista.

Un tipo de recurso monitorizado de ejemplo

En la siguiente imagen se muestra la entrada de la lista de un segmento de Cloud Storage:

Listado del segmento de Cloud Storage.

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

  • Tipo: el encabezado de la entrada indica el tipo de recurso monitorizado. En el ejemplo, es gcs_bucket.
  • Nombre visible: una breve descripción del recurso monitorizado.
  • Descripción: descripción más larga del recurso monitorizado.
  • Etiquetas: conjunto de dimensiones para clasificar los datos. Para obtener más información, consulta el artículo sobre etiquetas.

Tipos de métricas

Un tipo de métrica describe las mediciones que se pueden recoger de un recurso monitorizado. Un tipo de métrica incluye una descripción de lo que se está midiendo y de cómo se interpretan las mediciones. Cloud Monitoring admite aproximadamente 6500 tipos de métricas y te permite definir nuevos tipos.

Entre los tipos de métricas se incluyen los recuentos de llamadas a APIs, las estadísticas de uso del disco y el consumo de almacenamiento, entre otros.

Cada tipo de métrica se describe formalmente en una estructura de datos denominada 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 las páginas de 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 que se registra en un tipo de métrica y se muestra cómo se presenta en el material de referencia.

Un tipo de métrica de ejemplo

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

Un fragmento de la lista de métricas de Cloud Storage.

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

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

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

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

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

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

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

  • Nombre visible: una cadena breve que describe el tipo de métrica. En el ejemplo, es "Número de solicitudes".

  • Tipo, unidad y clase: esta línea proporciona información para interpretar los valores de los datos. En el ejemplo, se muestra una métrica delta registrada como un entero de 64 bits sin unidad (es el valor 1).

    • Tipo: este ejemplo es una métrica delta, que registra un cambio a lo largo de un periodo. Es decir, cada punto de datos registra el número de llamadas a la API desde que se escribió el punto de datos anterior. Para obtener más información sobre los tipos, consulta Tipos de valores y tipos de métricas.

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

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

  • Recursos monitorizados: los recursos monitorizados para los que está disponible este tipo de métrica. Los valores que se indican aquí son los mismos que los que se describen en Tipos de recursos monitorizados.

  • Descripción: información más detallada sobre lo que se graba y cómo. Se muestra en cursiva para distinguirlo de las etiquetas.

  • Etiquetas: conjunto de dimensiones para clasificar los datos. Para obtener más información, consulta el artículo sobre etiquetas.

Cuando accedes a los datos de monitorización a través de la API Cloud Monitoring, incluyes un Google Cloud proyecto en la llamada a la API. Solo puedes recuperar los datos que sean visibles para 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 para los segmentos de Cloud Storage de tu proyecto. Si tu proyecto no usa ningún segmento de Cloud Storage, no se devolverán datos de métricas.

Tipos de métricas integradas

Los tipos de métricas integradas se definen mediante Google Cloud servicios, incluido Cloud Monitoring. Estos tipos de métricas describen mediciones estándar de una amplia gama de infraestructuras comunes y están disponibles para cualquier usuario.

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

Métricas personalizadas

Cuando creas una aplicación, es posible que quieras medir determinadas propiedades para las que no haya métricas integradas en Cloud Monitoring. Con Cloud Monitoring, puedes definir tus propios tipos de métricas o importar tipos de métricas de fuentes externas. Estos tipos de métricas se denominan métricas personalizadas. Si una métrica tiene el prefijo custom.googleapis.com o prometheus.googleapis.com, significa que es una métrica personalizada. Estas últimas métricas suelen proceder de Google Cloud Managed Service para Prometheus.

Por ejemplo, si quiere hacer un seguimiento del número de widgets vendidos en sus tiendas, debe usar una métrica personalizada. Para obtener más información, consulta el artículo Introducción a las métricas definidas por el usuario.

Etiquetas

Una etiqueta es un par clave-valor que se puede usar para proporcionar información sobre un valor de datos.

Etiquetas de métricas y recursos monitorizados

Las definiciones de los tipos de métricas y de recursos monitorizados incluyen etiquetas. Las etiquetas son clasificadores de los datos que se recogen. Ayudan a categorizar los datos para analizarlos en profundidad. 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 monitorizado de Cloud Storage gcs_bucket 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 recogidos para las solicitudes de API de un segmento de Cloud Storage se clasifican según el método que se haya llamado, el código de respuesta de la llamada, el nombre, la ubicación y el proyecto del segmento en cuestión. El conjunto de etiquetas varía en función del tipo de métrica o de recurso monitorizado. Las etiquetas disponibles se documentan en las páginas Lista de métricas y Lista de recursos monitorizados.

Si monitorizas el código de respuesta, el nombre del método y la ubicación al contabilizar las llamadas a la API, puedes obtener el número de llamadas a un método de la API concreto, el número de llamadas fallidas a cualquier método o el número de llamadas fallidas a un método específico en una ubicación concreta.

El número de etiquetas y el número de valores que puede adoptar cada una se denomina cardinalidad. La cardinalidad es el número de series temporales que se pueden recoger para un par de tipos de métricas y de recursos monitorizados. Hay una serie temporal para cada combinación de valores de sus etiquetas. Para obtener más información, consulta Cardinalidad: series temporales y etiquetas.

Etiquetas de metadatos de recursos

Además de las etiquetas definidas en los tipos de métricas y de recursos monitorizados, Monitoring recoge internamente información adicional sobre los recursos monitorizados y la almacena en etiquetas de metadatos del sistema. Los usuarios pueden acceder a estas etiquetas de metadatos del sistema como valores de solo lectura. Algunos recursos también permiten a los usuarios crear sus propias etiquetas de metadatos de recursos al configurar recursos como instancias de VM en la consola. Google Cloud

Las etiquetas de metadatos del sistema y de los usuarios se denominan en conjunto etiquetas de metadatos de recursos. Puede usar estas etiquetas como las definidas en los tipos de métrica y de recurso monitorizado en los filtros de serie temporal.

Las etiquetas de metadatos de recursos solo aparecen en el resultado de la consulta si las agregas de forma explícita.

Para obtener más información sobre los filtros, consulta Filtros de Monitoring.

Serie temporal: los datos de un recurso monitorizado

En esta sección se explica qué son los datos de monitorización y cómo se organizan en series temporales. Aquí es donde los componentes conceptuales del modelo de métricas se convierten en artefactos concretos.

Cloud Monitoring almacena mediciones periódicas a lo largo del tiempo de pares de métricas y tipos de recursos monitorizados. Las mediciones se recogen en series temporales y cada serie temporal 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 ha tomado la medición.

  • El recurso monitorizado 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 por cada combinación de etiquetas de métrica y de recurso que genere datos.

Ejemplo estilizado: el tipo de métrica storage.googleapis.com/api/request_count podría tener muchas series temporales para los segmentos 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 monitorizado, mientras que response_code y method son etiquetas del tipo de métrica. Hay una serie temporal por cada combinación de valores de las etiquetas de recursos y de métricas. En las ilustraciones se muestran algunas de ellas:

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

Cloud Monitoring no registra series temporales "vacías". En el ejemplo de los contenedores de Cloud Storage, si no usas un contenedor concreto o nunca llamas a un método de API concreto, no se recogerán datos de esa etiqueta y no se mencionará en ninguna serie temporal. Esto significa que, si tu proyecto no tiene ningún dato de una métrica concreta, nunca verás el tipo de métrica.

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

Ejemplo real: si tienes un Google Cloud proyecto, puedes probar el widget Explorador de APIs, que se encuentra en la página de referencia del método timeSeries.list de la API Monitoring.

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

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

    • name: projects/PROJECT_ID sustituye PROJECT_ID por el ID de tu proyecto. Google Cloud
    • filter: metric.type="logging.googleapis.com/log_entry_count" resource.type="gce_instance"
    • interval.start_time introduce la hora de inicio y asegúrate de que sea 20 minutos anterior a la hora de finalización.
    • interval.end_time introduce la hora de finalización.

Si la solicitud se realiza correctamente, se devolverán los datos de serie temporal que coincidan con la solicitud. Tendrá el siguiente aspecto:

{
  "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": "2024-03-29T13:53:00Z",
            "endTime": "2024-03-29T13:54:00Z"
          },
          "value": {
            "int64Value": "0"
          }
        },
        ...
      ]
    },
    ...
  ]
}

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

Cardinalidad: series temporales y etiquetas

Cada serie temporal se asocia a un par específico de métrica y tipos de recursos monitorizados. Los tipos de métrica y de recurso monitorizado proporcionan un número de etiquetas. En Cloud Monitoring, el número de combinaciones únicas de valores del conjunto de etiquetas es la cardinalidad del tipo de métrica o del tipo de recurso monitorizado. Estos valores se denominan cardinalidad de la métrica y cardinalidad del recurso, y determinan cuántas series temporales posibles, la cardinalidad total, se pueden generar.

Cardinalidad de métricas, recursos y totales

Supongamos que tiene un tipo de métrica que especifica dos etiquetas: color y zone. La cardinalidad de la métrica depende del número de valores posibles que tengan esas etiquetas:

  • Si solo hay tres colores posibles ("rojo", "verde" y "azul"), la etiqueta color puede tener hasta tres valores distintos.
  • Si solo hay dos zonas posibles, "este" y "oeste", la etiqueta zone puede tener hasta dos valores distintos.

La cardinalidad de esta métrica es 6 (3×2). Si hay 1000 valores posibles para la etiqueta color y cada color puede aparecer en cada zona, la cardinalidad de la métrica es 2000 (1000×2). El cálculo es el mismo si se trata de etiquetas de un tipo de recurso monitorizado en lugar de un tipo de métrica.

Este valor de cardinalidad es un máximo basado en el número de combinaciones de valores de etiqueta posibles. El valor real efectivo puede ser significativamente inferior si no se dan todas las combinaciones de valores de etiqueta. Por ejemplo, si cada color aparece en una sola zona, no en ambas, el número máximo de series temporales que verás en el sistema en ejecución es de 1000. Sin embargo, la utilidad de la cardinalidad efectiva depende de los motivos por los que no aparecen determinadas combinaciones y de si podrían aparecer en el futuro.

La cardinalidad depende de los valores que pueden tener las etiquetas.

Cuando se escriben datos de series temporales, se clasifican por métrica y por tipos de recursos monitorizados. En cualquier par de tipos de métrica y de recurso, la cardinalidad total es el producto de la cardinalidad de la métrica y la cardinalidad del recurso. Si tienes una métrica con una cardinalidad de 1000 y un recurso con una cardinalidad de 100, y si aparece cada valor de etiqueta, tendrás 100.000 series temporales (1000 × 100).

Cuando diseñes tus propias métricas, asegúrate de que el conjunto de valores posibles de cada etiqueta esté limitado. Es preferible usar un pequeño conjunto de valores discretos (como "rojo", "verde" y "azul"). Por ejemplo, si usas valores RGB de 8 bits para una etiqueta color, puedes tener más de 16 millones de valores diferentes. No use valores de alta resolución, como marcas de tiempo, ningún tipo de identificador único, IDs de usuario, direcciones IP, URLs sin parámetros, etc., para las etiquetas de métricas.

Rendimiento y cardinalidad de las consultas

Cuando envía una consulta de datos, el volumen de datos que solicita es el factor más importante en el rendimiento de la consulta: una consulta de una hora de datos suele ser más rápida que la misma consulta que abarca seis meses. Sin embargo, el volumen de datos devuelto por una solicitud también depende del número de series temporales que incluya. Es probable que una consulta que recupere dos meses de datos de una métrica de baja cardinalidad sea más rápida que otra que recupere dos meses de datos de una métrica de cardinalidad muy alta, debido a la cantidad de datos que se recuperan.

La cardinalidad depende principalmente del número de valores que pueden tener las etiquetas, no del número de etiquetas. Por lo general, no tienes control sobre la cardinalidad de los recursos, ya que el número de pods o máquinas virtuales cambia en función de las necesidades de la empresa. Sin embargo, al ingerir métricas en Cloud Monitoring, a menudo tiene cierto control sobre la cardinalidad de las métricas en lugar de usar métricas del sistema. Por ejemplo, con las métricas personalizadas definidas por el usuario, usted determina las etiquetas y los posibles valores de estas. Si ingieres métricas de Prometheus, puedes usar el reetiquetado para modificar el conjunto de etiquetas y eliminar las series temporales que no quieras ingerir.

Puedes usar la página Gestión de métricas de Cloud Monitoring para identificar las métricas que pueden tener problemas de cardinalidad. Para ver la página Gestión de métricas, haz lo siguiente:

  1. En la Google Cloud consola, ve a la página  Gestión de métricas:

    Ve a Gestión de métricas.

    Si usas la barra de búsqueda para encontrar esta página, selecciona el resultado cuya sección sea Monitorización.

  2. En la barra de herramientas, selecciona el periodo que quieras. De forma predeterminada, la página Gestión de métricas muestra información sobre las métricas recogidas en el día anterior.

Para obtener más información sobre la página Gestión de métricas, consulta el artículo Ver y gestionar el uso de métricas.

Para obtener información técnica sobre la forma en que Cloud Monitoring almacena y recupera datos de series temporales, consulte Monarch: Google's Planet-Scale In-Memory Time Series Database (Monarch: la base de datos de series temporales en memoria a escala planetaria de Google).

Para obtener información sobre los límites de las métricas definidas por el usuario en Cloud Monitoring, consulta Métricas definidas por el usuario.