En este documento, se describe cómo puedes crear e interpretar un gráfico que muestra datos de métricas del tipo de valor Distribution
.
Los servicios usan este tipo de valor cuando las mediciones individuales son demasiadas para recopilar, pero la información estadística, como promedios o percentiles, sobre esas mediciones es valiosa.
Por ejemplo, cuando una aplicación depende del tráfico HTTP, puedes usar una métrica con valor de distribución que capture la latencia de respuesta HTTP para evaluar la rapidez con la que se completan las solicitudes HTTP.
Para ilustrar cómo se crea un histograma, considera un servicio que mide la latencia HTTP de las solicitudes y que informa estos datos mediante una métrica con un tipo de valor de distribución. Los datos se informan cada minuto. El servicio define rangos de valores para la métrica, llamados depósitos, y registra el recuento de valores medidos que corresponden a cada bucket. Por ejemplo, cuando se completa una solicitud HTTP, el servicio incrementa el recuento en el bucket cuyo rango incluye el valor de latencia de la solicitud. Estos recuentos crean un histograma de valores para ese minuto.
Supongamos que las latencias medidas en un intervalo de un minuto son 5, 1, 3, 5, 6, 10 y 14. Si los depósitos son [0, 4), [4, 8), [8, 12] y [12, 16], entonces el histograma de estos datos es [2, 3, 1, 1]. En la siguiente tabla, se muestra cómo las mediciones individuales afectan el recuento para cada bucket:
Propiedades | Mediciones de latencia | Cantidad de valores en el bucket |
---|---|---|
[12,16] | 14 | 1 |
[8,12) | 10 | 1 |
[4,8) | 5, 5, 6 | 3 |
[0,4) | 1, 3 | 2 |
Cuando estos datos se escriben en la serie temporal, se crea un objeto Point
. Para las métricas con un valor de distribución, ese objeto incluye el histograma de valores. Para este período de muestreo, el Point
contiene [2, 3, 1, 1]. Las mediciones individuales no se escriben en la serie temporal.
Supongamos que la tabla anterior registra el histograma para los datos de latencia que se miden en el momento 1:00. Esa tabla ilustra cómo tomar una serie de mediciones y convertirlas en recuentos de depósitos. Supongamos que el bucket cuenta con las horas 1:01, 1:02 y 1:03 como se muestra en la siguiente tabla:
Propiedades | Histograma para 1:00 |
Histograma para 1:01 |
Histograma para 1:02 |
Histograma para 1:03 |
---|---|---|---|---|
[12,16] | 1 | 6 | 0 | 1 |
[8,12) | 1 | 0 | 2 | 2 |
[4,8) | 3 | 1 | 1 | 8 |
[0,4) | 2 | 6 | 10 | 3 |
En la tabla anterior, se muestra una secuencia de histogramas indexados por tiempo. Cada columna de la tabla representa los datos de latencia de un período de un minuto. Para obtener la cantidad de mediciones en un momento específico, suma los recuentos de depósitos. Sin embargo, las mediciones reales no se muestran, ya que no están disponibles en las métricas con valor de distribución.
Gráficos de mapas de calor
Los gráficos de mapas de calor están diseñados para mostrar una sola serie temporal con valores de distribución. En estos gráficos, el eje X representa el tiempo, el eje Y representa los depósitos y el color representa el valor. Cuanto más brillantes son los colores, más alto es el valor. Por ejemplo, las áreas oscuras del mapa de calor indican recuentos de depósitos más bajos que las áreas amarillas o blancas.
La siguiente figura es una representación de un mapa de calor para ilustrar el ejemplo anterior:
En la figura anterior, el mapa de calor usa negro para representar el conteo de depósitos más pequeño, 0, y amarillo para representar el recuento de depósitos más grande, 10. Los rojos y naranjas representan valores entre estos dos extremos.
Debido a que los gráficos de mapa de calor pueden mostrar solo una serie temporal, cuando tienes varias series temporales, debes configurar las opciones de agregación para combinarlas en una sola serie temporal. Por ejemplo, para usar el Explorador de métricas a fin de crear un gráfico de mapa de calor que muestre la suma de las series temporales, haz lo siguiente:
Si deseas usar el Explorador de métricas para mostrar las latencias de RTT de una instancia de VM, haz lo siguiente:- En la consola de Google Cloud, ve a la página Explorador de métricas en Monitoring.
- Selecciona la pestaña Configuración.
- Expande el menú Seleccionar una métrica, ingresa
RTT Latencies
en la barra de filtros y, luego, usa los submenús para seleccionar una métrica y un tipo de recurso específicos:- En el menú Recursos activos, selecciona Instancia de VM.
- En el menú Categorías de métricas activas, selecciona Flujo de VM.
- En el menú Métricas activas, selecciona Latencias de RTT.
- Haz clic en Aplicar.
- En la barra de herramientas del Explorador de métricas, haz clic en Gráfico de líneas y, luego, selecciona Mapa de calor.
- Usa el panel de configuración para combinar las series temporales en una sola:
- Asegúrate de que el campo Agrupar por esté vacío.
- Selecciona suma como Agregador.
En el ejemplo anterior, el gráfico de mapa de calor se configura mediante la selección de valores de los menús. Sin embargo, también puedes usar el lenguaje de consulta de Monitoring (MQL) para graficar métricas con valores de distribución. Por ejemplo, puedes seleccionar la pestaña MQL en el Explorador de métricas y, luego, ingresar la siguiente consulta:
fetch gce_instance
| metric 'networking.googleapis.com/vm_flow/rtt'
| align delta(1m)
| every 1m
| group_by [], [aggregate(value.rtt)]
En la expresión anterior, los datos de series temporales se recuperan, se alinean y, luego, se agrupan. El proceso de alineación usa un alineador delta
con un período de alineación de un minuto. Debido a que el primer argumento para group_by
es []
, se combinan todas las series temporales.
El segundo argumento, [aggregate(value.rtt)]
, define cómo se combinan las series temporales. En este ejemplo, para cada marca de tiempo, los valores del campo rtt
de las diferentes series temporales se combinan con la función aggregate
, que MQL selecciona.
Si usas menús para seleccionar la métrica y, luego, la pestaña MQL, tus selecciones se convierten en una consulta de MQL que tiene el formato estricto:
fetch gce_instance
| metric 'networking.googleapis.com/vm_flow/rtt'
| align delta(1m)
| every 1m
| group_by [], [value_rtt_aggregate: aggregate(value.rtt)]
La expresión anterior es funcionalmente equivalente al ejemplo de MQL original.
Para obtener más información sobre MQL, consulta Introducción al lenguaje de consulta de Monitoring.
Gráficos de barras y líneas
Los gráficos de líneas, los gráficos de barras apiladas y los gráficos de líneas apilados, que están diseñados para mostrar datos escalares, no pueden mostrar valores de distribución. Para mostrar una métrica con un valor de distribución con uno de estos tipos de gráfico, debes convertir los valores de histogramas en valores escalares. Por ejemplo, podrías calcular la suma de los valores en el histograma o seleccionar un percentil.
Por ejemplo, cada fila de la siguiente tabla incluye una marca de tiempo, un histograma y una suma de valores de histogramas:
Hora | Histograma | Suma de valores de histogramas |
---|---|---|
1:00 | [2, 3, 1, 1] | 7 |
1:01 | [6, 1, 0, 6] | 13 |
1:02 | [10, 1, 2, 0] | 13 |
1:03 | [3, 8, 2, 1] | 14 |
En la tabla anterior, puedes mostrar la suma de los valores de histogramas con un trazado X-Y.
Para una métrica que almacena información sobre la latencia HTTP, la suma es una medida significativa, ya que representa de manera indirecta la cantidad de solicitudes HTTP completadas. Los datos de la tabla anterior muestran que la tasa de finalización de la solicitud HTTP es baja, pero relativamente constante:
Los gráficos de líneas solo muestran series temporales con valores escalares. Para mostrar una métrica con valor de distribución en un gráfico de líneas, usa los campos de agregación a fin de convertir los valores de distribución en valores escalares. Por ejemplo, a fin de usar el Explorador de métricas para mostrar el percentil 99 de una métrica con valor de distribución, haz lo siguiente:
- En Google Cloud Console, selecciona Monitoring o haz clic en el siguiente botón:
Ir a Monitoring - En el panel de navegación, selecciona
Explorador de métricas.
- Selecciona una métrica con valor de distribución y un recurso. Por ejemplo, selecciona la métrica de latencias de RTT y el recurso de instancia de VM.
- Asegúrate de que la barra de herramientas del Explorador de métricas muestre el Gráfico de líneas arrow_drop_down.
- En el panel de configuración, selecciona el Percentil 99 para el Agregador.
Métricas de agregado y distribución
El agregado es el proceso de regularizar puntos dentro de una serie temporal y de combinar varias series temporales. El agregado es el mismo para las métricas del tipo de distribución que para las métricas que tienen un tipo de valor de número entero o doble. Sin embargo, el tipo de gráfico aplica algunos requisitos sobre las opciones que se usan para alinear y agrupar series temporales.
Gráficos de mapas de calor
Los gráficos de mapa de calor muestran una serie temporal con valor de distribución. Cuando tienes varias series temporales, debes usar alineadores y funciones de agrupación para crear una sola serie temporal.
Selecciona una suma o alineador delta cuando un gráfico muestra un mapa de calor. Estas funciones combinan a nivel del bucket todas las muestras para una sola serie temporal que se encuentran en el mismo período de alineación y el resultado es un valor de distribución. Por ejemplo, si dos muestras adyacentes de una serie temporal son [2, 3, 1, 1] y [2, 5, 4, 1], entonces el alineador de suma produce [4, 8, 5, 2].
La función de agrupación define cómo se combinan las diferentes series temporales. A veces, esta función se denomina agregador o reductor. Para los mapas de calor, establece la función de agrupación en la función de suma. La función suma suma los valores de los mismos depósitos en todos los histogramas, lo que da como resultado un histograma nuevo. Por ejemplo, la suma del valor [2, 3, 1, 1] de la serie temporal A y el valor [1, 5, 2, 2] de la serie temporal B es [3, 8, 3, 3].
Gráficos de líneas
Los gráficos de líneas solo muestran series temporales con valores escalares. Para mostrar una métrica con valor de distribución en un gráfico de líneas, usa el alineador o la función de agrupación a fin de convertir los valores de distribución en valores escalares:
Los alineadores percentiles convierten un valor de distribución en un valor escalar. Con estos alineadores, la agrupación temporal es opcional.
Los alineadores delta y de suma no convierten un valor de distribución en un valor escalar. Cuando uses estos alineadores, selecciona una función de agrupación que convierta los valores de distribución en valores escalares.
Por ejemplo, a fin de configurar un gráfico de líneas en un panel para mostrar el percentil 99 de cada serie temporal de una métrica con valor de distribución, haz lo siguiente:
- En Google Cloud Console, selecciona Monitoring o haz clic en el siguiente botón:
Ir a Monitoring - En el panel de navegación, selecciona
Paneles y, luego, selecciona el panel que deseas ver o editar.
- Si se muestra el botón edit Editar panel, haz clic en él.
- Para agregar un gráfico de líneas al panel, selecciona el widget de gráfico de líneas de la Biblioteca de gráficos.
- Modifica la configuración del gráfico de líneas para mostrar una métrica con valor de distribución de un recurso específico. Por ejemplo, selecciona la métrica RTT Latencies y el recurso de la instancia de VM.
Configura el gráfico para usar un alineador de percentil:
- Pestaña Básico: Borre Agrupado y seleccione Percentil 99.
- Pestaña Avanzado: Selecciona Percentil en el paso de procesamiento previo y usa el menú para seleccionar el percentil 99. Además, asegúrate de que el campo group-by esté vacío y la función group-by esté configurada en none.
El gráfico resultante puede mostrar varias líneas, una para cada serie temporal.
Para otro ejemplo, supongamos que deseas mostrar una sola serie temporal que sea el percentil 99 de la serie temporal para una métrica con valor de distribución. Para configurar este gráfico, reemplaza el paso final en la secuencia anterior por los siguientes pasos, que especifican un alineador de suma y configura una función de agrupación:
- Selecciona la pestaña Avanzada.
- Selecciona Sin paso de procesamiento previo en el paso de procesamiento previo.
- Establece la Función de alineación en suma.
- Asegúrate de que el campo group-by esté vacío y configura Group by function (Agrupar por función) en Percentil 99.
El gráfico resultante muestra una sola línea.
¿Qué sigue?
Para obtener información sobre cómo determinar el modelo de bucket de una métrica y cómo interpretar los percentiles, consulta Percentiles y métricas con valores de distribución.