Ingeniería

Cómo mostrar datos como un porcentaje en visualizaciones de Kibana

El uso de porcentajes al realizar analíticas de datos es un enfoque esencial para la comparación numérica efectiva, en especial cuando los datos en cuestión demuestran totales o tamaños de muestra drásticamente diferentes. Los porcentajes permiten comprender de forma rápida y precisa cuánto han cambiado las sumas de datos en una categoría dimensional como un rango de tiempo, regiones geográficas, líneas de productos, etc.

Visualización de líneas por región

Visualización de líneas por porcentajes de región

En este blog, repasaremos algunos ejemplos de cómo calcular porcentajes en Kibana con visualizaciones de uso común que incluyen un gráfico circular, una métrica de número único, una tabla y una serie temporal con TSVB (el visualizador de datos temporales).

En este blog, usaremos los sets de datos de muestra flights y ecommerce disponibles con Kibana. Con esos datos, aprenderás a responder estas preguntas:

  • ¿Cuál es el porcentaje de vuelos a tiempo?
  • ¿Cuál es la proporción de cada tipo de retraso en el tiempo?
  • ¿Cuál es el cambio en el total de ventas semana tras semana?

Sin embargo, antes de comenzar, deberás instalar los datos de muestra flights y ecommerce. Puedes instalar los datos de muestra en tu propio cluster (6.5 o posterior) o activar una prueba gratis de 14 días de nuestro Elasticsearch Service.

¿Cuál es el porcentaje de vuelos a tiempo?

Tu cliente aerolínea desea poner un número grande en un dashboard que muestre su rendimiento en comparación con los objetivos de puntualidad. Cada documento en el índice de muestra kibana_sample_data_flights representa un solo vuelo, así que para calcular un porcentaje debes dividir el número de documentos que representan los "vuelos a tiempo" por el número de vuelos.

Vuelos a tiempo divididos por el total de vuelos

Debido a esta división, deberías usar la visualización de métricas TSVB que tiene el cálculo Filter ratio. Filter ratio divide la misma métrica en dos sets de documentos y devuelve un número. El único requisito para usar TSVB es un campo de tiempo en el índice, que se encuentra disponible en el índice kibana_sample_data_flights.

Porcentaje de puntualidad

Para configurar esto en TSVB en Kibana 7.4 y posteriores, primero seleccionarás tu tipo de visualización y set de datos, y después configurarás las agregaciones usadas para mostrar el porcentaje de arriba.

Para elegir el tipo de visualización y el set de datos:

  1. Ve a TSVB y elige la pestaña Metric:Elige la pestaña Metric
  2. Selecciona la pestaña Panel options:
  3. Pestaña Panel options
  1. Configura Data timerange mode en Entire time range en lugar de usar solo el último intervalo. Nota: Esta configuración solo está disponible en Kibana 7.4 y posteriores. En versiones anteriores, puedes configurar el intervalo de fecha en un valor mayor.
  2. Escribe kibana_sample_data_flights como índice. Configura time field en timestamp.Configura Time field en timestamp

Ahora que seleccionaste el índice y el intervalo de tiempo, puedes configurar los datos que se muestran.

  1. Regresa a la pestaña Data y usa Filter Ratio para calcular el porcentaje de un valor específico, como FlightDelayType: "No Delay".Usa Filter Ratio
  1. Ve a la pestaña Options y selecciona el formateador Percent.
    • Si los cuatro dígitos predeterminados de precisión son demasiados para ti, usa un texto de formato personalizado para truncar los dígitos.Uso de un texto de formato personalizado

Para comparar varios valores en lugar de uno solo, hay dos visualizaciones más en Kibana que puedes usar. Si usas una bucket aggregation para seleccionar los valores de comparación, puedes usar un gráfico circular o una tabla para convertir cada valor a un porcentaje.

Gráfico circular para convertir cada valor a porcentaje

Visualización de tabla para convertir cada valor a porcentaje

Estas visualizaciones usan una agregación de cubeta Terms en el campo FlightDelayType y muestran el conteo por cubeta convertido a un porcentaje del total. En los datos de muestra flights, hay solo 6 valores para FlightDelayType, por lo que estos porcentajes son precisos cuando el tamaño de Terms está configurado en 6 o más. Si tus datos tienen más valores únicos, deberás habilitar la cubeta "Other" para abarcar el 100 % de los datos:

Habilitación de la cubeta Other

¿Cuál es la proporción de cada tipo de retraso en el tiempo?

La misma aerolínea desea dos visualizaciones en paralelo en un dashboard: el resumen anterior en comparación con una serie de datos. Esto les permitirá explorar un intervalo de tiempo en especial y ver tanto el resumen como los detalles al mismo tiempo.

Como los documentos de vuelo tienen un campo de tiempo, TSVB es la opción más poderosa para crear la visualización. Con la misma configuración anterior, puedes usar Filter Ratio para dividir los vuelos "No Delay" por la cantidad total de vuelos por intervalo:

Visualización de vuelos a tiempo

Para comparar más de una serie, puedes crear proporciones con varios filtros o usar una agregación para seleccionar los grupos. TSVB tiene un modo para mostrar varias series en escala del 100 %.

Visualización de varias series

Para configurar la visualización de porcentajes apilados en TSVB, primero deberás seleccionar los datos correctos y después configurar tus agregaciones. Para seleccionar los datos correctos:

  1. Ve a TSVB y selecciona Panel options, luego introduce kibana_sample_data_flights como índice.
  2. Configura Time field en timestamp.Configura Time field en timestamp

Para configurar tus agregaciones:

  1. Regresa a la pestaña Data.
  2. En Group by, selecciona Terms de FlightDelayType.
  3. Ve a la pestaña Options.Selecciones en la pestaña Options
  4. Selecciona Data Formatter > Percent.
  5. Selecciona Stacked > Percent.
  6. Selección de datos stacked-percent
  7. Selecciona Split color theme > Rainbow.

¿Cuál es el cambio en las ventas semana tras semana?

Tienes un cliente de comercio electrónico que almacena cada transacción en el índice kibana_sample_data_ecommerce. Desea una visualización que muestre un cambio en el porcentaje en las ventas semana tras semana, un número fundamental para sus negocios. Como esta pregunta involucra un componente de tiempo, usarás TSVB para crear esta visualización. También es posible crear gráficos de semana tras semana con Timelion, pero no lo veremos aquí.

Como viste anteriormente, TSVB puede crear tanto una visualización métrica como una de series temporales usando las mismas agregaciones. A diferencia del ejemplo anterior en el que configuraste Data timerange mode en Entire time range, en esta visualización mostrarás solo el día de datos más reciente en comparación con el mismo día de la semana anterior. Como puedes ver, estas dos visualizaciones muestran que hay una disminución del 5.2 % en las ventas en el día de datos más reciente:

Disminución en las ventas

Visualización que muestra la disminución

Para crear esto necesitas sumar las ventas totales de cada día y comparar eso con el total de hace siete días. La forma más sencilla de hacer esta comparación es la agregación Serial Difference, que toma cada valor y lo resta de un intervalo específico anterior.

Configura TSVB de la misma manera que en los ejemplos anteriores, asegúrate de seleccionar el índice kibana_sample_data_ecommerce y de configurar Time field en order_date. Además, configura el intervalo exactamente en 1d. El intervalo predeterminado para TSVB cambiará según el intervalo de tiempo general, mientras que este cálculo espera que el intervalo siempre sea el mismo.

Selección de la muestra de datos

Regresa a la pestaña Data y selecciona la agregación Sum para el campo taxful_total_price.

Agregación Sum

Después, incorpora una agregación Serial Difference en Sum of taxful_total_price con un retraso de 7 cubetas, porque ya configuraste el intervalo de tiempo en 1 día. Serial Difference restará el valor de hace 7 cubetas de cada día, lo que nos da la diferencia total en ventas semana tras semana. Debido a la forma en que se calcula la métrica de diferencia serial, siempre dejará los 7 días a la izquierda en blanco, por lo que debes elegir un intervalo de tiempo mayor:

Agregación Serial difference

Por último, realizarás la conversión de la diferencia semana tras semana a un porcentaje mediante cálculos matemáticos. Suma las ventas actuales y la diferencia, y después divide el total por el valor actual:

Uso de una fórmula para calcular el porcentaje

El valor de Painless script que se usa es ((params.total + params.diff) / params.total) - 1

Esto da como resultado la visualización anterior. Para mayor claridad, también podrías crear una serie nueva usando un valor estático de 0 para destacar el punto de partida de diferencia 0.

Ahora puedes cambiar entre las pestañas Time Series y Metric para decidir cuál presentación tiene sentido en tu caso de uso.

Conclusión

Estos son solo algunos ejemplos de cómo calcular y usar los porcentajes de forma efectiva dentro de Kibana. Más allá de lo que describimos en este blog, si deseas explorar más opciones para cálculos relacionadas con porcentajes, intenta usar Canvas dentro de Kibana y su capacidad para controlar tanto las búsquedas como la visualización de datos.

Recursos adicionales