El modelo de Cloud Monitoring para supervisar los datos consta de tres conceptos principales:
- Tipos de recursos supervisados
- Tipos de métricas
- Series temporales
En el documento El modelo de métricas, se describen estos conceptos de Cloud Monitoring en términos generales. Si estos conceptos son nuevos para ti, lee primero esa página.
En esta página, se describen con más detalle los tipos de métricas, los recursos supervisados y las series temporales, junto con algunos conceptos relacionados. Estos conceptos son la base de todas las métricas de Monitoring.
Debes comprender la información de esta página si deseas realizar alguna de las siguientes acciones:Inspecciona los datos de métricas con el Explorador de métricas.
Crea políticas de alertas para notificarte cuando un valor se sale de sus límites normales, como se describe en Usa políticas de alertas.
Recupera datos de supervisión sin procesar o agregados con la API de Monitoring, como se describe en Cómo recuperar datos de series temporales.
Crea tus propios tipos de métricas, como se describe en la descripción general de las métricas definidas por el usuario.
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 ella. Cuando se registra información sobre el recurso supervisado, esta incluye 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 desde el que se capturan los datos de las métricas. Cloud Monitoring admite aproximadamente 270 tipos de recursos supervisados.
Entre los tipos de recursos supervisados, se incluyen nodos y tareas genéricos, componentes arquitectónicos en Google Kubernetes Engine, tablas en Bigtable, 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 admitidos 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 que se captura en un descriptor de recursos supervisados y se muestra cómo se presenta en la lista.
Un muestra de tipo de recurso supervisado
En la siguiente imagen, se muestra la entrada en la lista de un 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: Es un conjunto de dimensiones para clasificar los datos. Para obtener más información, consulta Etiquetas.
Tipos de métricas
Un tipo de métrica describe las mediciones 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. Cloud Monitoring admite aproximadamente 6,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 mucho más.
Cada tipo de métrica se describe formalmente 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 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 captura 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 para un tipo de métrica de 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
).Tipo: 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 escribió el dato anterior. Para obtener más información sobre los tipos, consulta Tipos de valores y clases 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 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: Son los recursos supervisados para los que está disponible este tipo de métrica. Los valores aquí son los mismos que se describen 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: Es un conjunto de dimensiones para clasificar los 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, debes incluir un proyecto de Google Cloud en la llamada a la API. Solo puedes recuperar los datos que
son 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 recuentos de API solo para los buckets de Cloud Storage en tu proyecto.
Si tu proyecto no usa ningún buckets de Cloud Storage, no se mostrarán datos de métricas.
Tipos de métricas integradas
Los servicios de Google Cloud, incluido Cloud Monitoring, definen los tipos de métricas integradas. Estos tipos de métricas describen las mediciones estándar para una amplia gama de infraestructuras comunes y están disponibles para que todos las usen.
En la lista de métricas, se muestra todo el conjunto de tipos de métricas integradas. Las métricas que se enumeran en la página Lista de métricas externas son un subconjunto especial de métricas integradas que define Cloud Monitoring en asociación con proyectos de código abierto o proveedores externos. Por lo general, estas métricas tienen un prefijo deexternal.googleapis.com
.
Métricas personalizadas
Cuando compilas tu aplicación, es posible que tengas ciertas propiedades que
deseas medir, para las que no hay métricas integradas en
Cloud Monitoring. Con Cloud Monitoring, puedes definir tus propios tipos de métricas o importar tipos de métricas desde fuentes externas. Estos tipos de métricas se llaman métricas personalizadas. Si una métrica tiene un prefijo de custom.googleapis.com
o prometheus.googleapis.com
, es una métrica personalizada.
Por lo general, las métricas de este último provienen de Google Cloud Managed Service para Prometheus.
Por ejemplo, si deseas hacer un seguimiento de la cantidad de widgets que venden tus tiendas, debes usar una métrica personalizada. Para obtener más información, consulta Descripción general de 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 supervisados
Las definiciones de los tipos de métricas y de recursos supervisados incluyen etiquetas. Las etiquetas son clasificadores de los datos que se recopilan; ayudan a categorizar los datos para 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
ymethod
. - El tipo de recurso supervisado de Cloud Storage
gcs_bucket
tiene tres etiquetas:project_id
,bucket_name
ylocation
. Las etiquetas identifican instancias específicas del tipo de recurso.
Por lo tanto, todos los datos recopilados para las solicitudes a la API de un bucket de Cloud Storage se clasifican según el método al que se llamó, el código de respuesta de la llamada, el nombre, la ubicación y el proyecto del bucket en cuestión. El conjunto de etiquetas varía según la métrica 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 la cantidad de valores que puede asumir cada una se conoce como cardinalidad. La cardinalidad es la cantidad de series temporales posibles que se pueden recopilar para un par de tipos de métricas y recursos supervisados: 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 recursos supervisados, la supervisión recopila información adicional de forma interna sobre los recursos supervisados y la almacena 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 que los usuarios creen sus propias etiquetas de metadatos de recursos cuando configuran recursos, como instancias de VM, en la consola de Google Cloud.
Las etiquetas de metadatos del sistema y del usuario se denominan, en conjunto, etiquetas de metadatos de recursos. Puedes usar estas etiquetas como las definidas en los tipos de recursos supervisados y métricas 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 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 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 las series temporales 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 con diseño: El tipo de métrica storage.googleapis.com/api/request_count
podría tener muchas series temporales para los buckets 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:
Cloud Monitoring no registra series temporales “vacías”. En el ejemplo de los buckets de Cloud Storage, si no usas un bucket en particular o nunca llamas a un método de API en particular, no se recopilan datos para esa etiqueta y ninguna serie temporal la menciona. Esto significa que, si tu proyecto no tiene datos para una métrica en particular, 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. En el caso de 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 APIs, ubicado en la página de referencia del método timeSeries.list
en la API de Monitoring.
Abre la página de referencia de
timeSeries.list
.En el panel etiquetado Probar este método, ingresa lo siguiente:
- name:
projects/PROJECT_ID
ReemplazaPROJECT_ID
por el ID de tu proyecto de Google Cloud. - filter:
metric.type="logging.googleapis.com/log_entry_count" resource.type="gce_instance"
- interval.start_time: Ingresa la hora de inicio y asegúrate de que sea 20 minutos antes de la hora de finalización.
- interval.end_time: Ingresa la hora de finalización.
- name:
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": "2024-03-29T13:53:00Z", "endTime": "2024-03-29T13:54:00Z" }, "value": { "int64Value": "0" } }, ... ] }, ... ] }
Para obtener más información sobre el uso del widget del Explorador de APIs, incluida la solución de problemas, consulta Explorador de APIs.
Cardinalidad: series temporales y etiquetas
Cada serie temporal está asociada con un par específico de tipos de métrica y de recurso supervisado. Los tipos de métricas y de recursos supervisados proporcionan una cantidad determinada de etiquetas. En Cloud Monitoring, la cantidad de combinaciones únicas de valores para el conjunto de etiquetas es la cardinalidad del tipo de métrica o del tipo de recurso supervisado. Estos valores se denominan cardinalidad de la métrica y cardinalidad del recurso, y determinan cuántas series temporales posibles, la cardinalidad total, se podrían generar.
Cardinalidad total, de recursos y de métricas
Supongamos que tienes un tipo de métrica que especifica dos etiquetas, color
y zone
. La cardinalidad de la métrica depende de la cantidad de valores posibles que tengan esas etiquetas:
- Si solo hay tres colores posibles, “red”, “green” y “blue”, 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 1,000 valores posibles para la etiqueta color
y si cada color puede aparecer en cada zona, la cardinalidad de la métrica es 2,000 (1,000 × 2). Se aplica el mismo cálculo si se trata de etiquetas en un tipo de recurso supervisado en lugar de un tipo de métrica.
Este valor de cardinalidad es un máximo, según la cantidad de combinaciones posibles de valores de etiqueta. El valor real y eficaz puede ser significativamente más bajo cuando no se producen todas las combinaciones de valores de etiqueta. Por ejemplo, si cada color aparece en una sola zona, no en ambas, la cantidad máxima de series temporales que ves en el sistema en ejecución es de 1,000. Sin embargo, la utilidad de la cardinalidad efectiva depende de los motivos por los que no aparecen ciertas combinaciones y si es posible que aparezcan en el futuro.
Cuando se escriben los datos de las series temporales, se clasifican por métrica y tipos de recursos supervisados. Para cualquier par de tipos de métricas y recursos, 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 1,000 y un recurso con una cardinalidad de 100, y si aparece cada valor de etiqueta, tienes 100,000 series temporales (1,000 × 100).
Cuando diseñes tus propias métricas, asegúrate de que el conjunto de valores posibles para cualquier etiqueta esté restringido. El enfoque preferido es un pequeño conjunto de valores discretos (como “rojo”, “verde” y “azul”). Por ejemplo, si usas valores RGB de 8 bits para una etiquetacolor
, puedes tener más de 16 millones de valores diferentes. No uses valores de alta resolución, como marcas de tiempo,
cualquier tipo de identificador único, IDs de usuario, direcciones IP, URLs sin parámetros,
etcétera, para las etiquetas de métricas.
Rendimiento y cardinalidad de las consultas
Cuando emites una consulta de datos, el volumen de datos que solicitas 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 que muestra una solicitud también depende de la cantidad de series temporales en una solicitud. Es probable que una consulta que recupere dos meses de datos para una métrica de baja cardinalidad sea más rápida que otra que recupere dos meses de datos para una métrica de alta cardinalidad debido a la cantidad de datos que se recuperan.
La cardinalidad depende principalmente de la cantidad de valores que pueden tener tus etiquetas, no de la cantidad de etiquetas. En general, no tienes control sobre la cardinalidad de los recursos, como cuando cambia la cantidad de pods o VMs según las necesidades comerciales. Sin embargo, cuando transfieres métricas a Cloud Monitoring, en lugar de usar métricas del sistema, a menudo tienes cierto control sobre la cardinalidad de las métricas. Por ejemplo, con las métricas personalizadas definidas por el usuario, determinas las etiquetas y los valores posibles para ellas. Si transfieres métricas de Prometheus, puedes usar el reetiquetado para modificar el conjunto de etiquetas y descartar las series temporales que no deseas transferir.
Puedes usar la página Administración de métricas de Cloud Monitoring para identificar las métricas que podrían tener problemas de cardinalidad. Para ver la página Administración de métricas, haz lo siguiente:
-
En la consola de Google Cloud, ve a la página
Administración de métricas:Ir a Administración de métricas
Si usas la barra de búsqueda para encontrar esta página, selecciona el resultado cuyo subtítulo es Monitoring.
- En la barra de herramientas, selecciona tu período. De forma predeterminada, la página Administración de métricas muestra información sobre las métricas recopiladas en el día anterior.
Para obtener más información sobre la página Administración de métricas, consulta Visualiza y administra el uso de métricas.
Si deseas obtener información técnica sobre la forma en que Cloud Monitoring almacena y recupera datos de series temporales, consulta 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.