Kibana: Agregación de secuencias de comandos de depósito de soporte

Creado en 19 ago. 2015  ·  29Comentarios  ·  Fuente: elastic/kibana

Dada la nueva agregación de secuencias de comandos de depósito, podemos implementar fórmulas a partir de valores métricos agregados (por ejemplo, metric1 / metric2 * 100 ). Esto permitiría calcular, por ejemplo, la relación entre dos resultados métricos.

https://www.elastic.co/guide/en/elasticsearch/reference/master/search-aggregation-pipeline-bucket-script-aggregation.html

Escenario de uso:
Enlaces a: https://github.com/elastic/kibana/issues/3505

Aggregations KibanaApp enhancement

Comentario más útil

Simplemente agregue "Bucket Script Aggregation" o "Custom Aggregation" como una opción en las visualizaciones normales. Debería ser fácil, al igual que la otra agregación, pero sin agregar ningún contenido en el cuerpo de agregación (solo el json proporcionado por el usuario)

Todos 29 comentarios

@rashidkpc No veo cómo esto es un engaño de las cosas de las tuberías. Las canalizaciones en 5.4 pero no veo agregaciones de scripts de depósito allí. ¿Podemos volver a abrir esto?

Estoy interesado en esta función para hacer visualizaciones de valores en documentos que representan campos de agricultores donde necesito ponderar los valores más grandes para campos grandes y más pequeños para campos pequeños, después de que la consulta de búsqueda haya seleccionado los documentos de campo que se incluirán en el promedio ponderado .

La función bucket_script parece ser la respuesta (la tengo funcionando en elasticsearch) pero parece que no puedo reproducir dicha consulta cuando uso una visualización de Kibana.

¿Hay planes para apoyar esto pronto?

¿O hay alguna solución?

(Por ejemplo, estaba tratando de ver si puedo decirle directamente a Kibana la consulta de búsqueda elástica que quiero que se use para una visualización en lugar de que Kibana cree la consulta por mí en función de mis opciones de interfaz de usuario, pero eso no parece ser posible, ¿es correcto? )

+1

Me interesaría esta funcionalidad. En nuestro caso de uso, permitiría trabajar con ratios de éxito / fracaso.

¡A +1 también le gustaría ver esto! Debería ser bastante simple de implementar. Solo una "Métrica personalizada" en el menú desplegable que presenta un cuadro donde puede ingresar su JSON de agregación ..

A partir de Kibana 5.4, el script de depósito agg ahora es compatible con Time Series Visual Builder, aunque se llama "Cálculo" (cc @simianhacker, me pregunto si deberíamos hacer más explícito que esta opción se basa en "Script de depósito").

¿Podrían los usuarios de este ticket (por ejemplo, @Kazark) intentarlo y hacernos saber si ayuda en sus casos de uso?
screen shot 2017-08-30 at 6 51 54 am

Creo que @simianhacker ha acordado que tiene sentido cambiar el nombre de esta agregación. Abrí https://github.com/elastic/kibana/issues/13796 con fines de seguimiento.

@tbragin Tener la agregación de scripts de depósito en TSVB es una característica muy buena, en mi opinión, muchas gracias por implementarla. Las cosas que probé funcionaron muy bien.

No obstante, sería estupendo si TSVB admitiera agregaciones de scripts adicionales (por ejemplo, agregación de sumas con scripts), ya que la agregación de scripts de depósito solo puede aprovechar al máximo su potencial, si se admiten todos los tipos de subagregaciones. Pero como este no es un lugar para discutir esto con más detalle, he abierto otro número.

¿Existe una línea de tiempo para esta función?

La función 'Calcular' solo puede hacer un script de depósito como nivel superior, no se puede aplicar dentro de una agregación de depósito principal ... :(

Y eso es solo en la visualización de series de tiempo, no hay un script de depósito en las visualizaciones estándar.

Nuestros casos de uso particulares requieren ambos, y parece que ninguno es compatible, ni siquiera en 6.x (rc)
¿Hay planes para esto?

En nuestros casos de uso, cada documento tiene campos de tipo de fecha de hora de inicio y hora de finalización, y necesitamos generar una duración general en grupos de esos, agrupados en algún campo de categoría.
Esto implica primero agrupar en esa categoría, luego dentro de eso hacer 2 métricas: min (hora de inicio) y nax (hora de finalización) de los documentos en cada depósito, luego aplicar un agg pipeline-script-bucket que usa estas 2 métricas- aggs para calcular la duración entre ellos (max_end_time - min_start_time). Eso nos da una métrica de 'duración' como la salida de cada segmento. Luego, queremos aplicarles algunos agregados de canalización de métricas.

Aquí se ha detallado una estructura casi idéntica: https://discuss.elastic.co/t/kibana-5-4-bucket-script-visualization/86475

Pude expresar eso en la consulta-DSL, y ya lo estamos usando en producción, pero no podemos visualizarlos en Kibana, lo que REALMENTE apesta, ya que nuestros clientes han estado solicitando tales visualizaciones durante años, y nosotros ' siempre les he dicho 'necesitamos soporte de versiones posteriores, para agregaciones de canalizaciones' ...
Bueno, ahora tenemos esos, pero en realidad, no ...
En el generador de series de tiempo, tenemos agregación de canalización de secuencia de comandos de depósito que se puede expresar, pero no se puede consumir / aplicar en una agregación de término de depósito principal, y en la otra visualización, tenemos término de depósito agregaciones, y algunas agregaciones de métricas de canalización, pero no la agregación de canalización de secuencia de comandos de depósito necesaria para expresar eso ...

¿Hay alguna solución que utilice algún "JSON avanzado" en el que pueda poner mi consulta-DSL?

Solo agrego mi caso de uso como se solicita en esta pregunta :

Mi índice contiene el siguiente tipo de documento (que representa ejecuciones de prueba):

  • id de prueba (cadena)
  • éxito (booleano)
  • versión de software

Quiero construir el siguiente histograma:

  • En el eje X: versiones
  • En el eje Y: número de pruebas únicas, apiladas según el éxito o el fracaso

El mismo ID de prueba se puede ejecutar varias veces en la misma versión con diferentes resultados: debe contarse como éxito si tiene éxito una vez.

Realmente espero que esto se implemente, ya que es un éxito definitivo para nosotros.

Simplemente agregue "Bucket Script Aggregation" o "Custom Aggregation" como una opción en las visualizaciones normales. Debería ser fácil, al igual que la otra agregación, pero sin agregar ningún contenido en el cuerpo de agregación (solo el json proporcionado por el usuario)

Para cualquiera que esté interesado en un ejemplo del uso de esta función en TSVB, aquí hay una publicación relevante en el foro: https://discuss.elastic.co/t/weighted-average-in-a-datatable-of-kibana/185909/2.

La función solicitada NO está lista (!). No se trataba de TSVB, sino de los otros tipos de visualización regulares (!) (Gráficos de barras y similares). Ahora estamos en 6.4 y TODAVÍA NO PODEMOS HACER LO QUE NECESITAMOS. Tampoco está en 7.x ASAIK.
Nuevamente, se trata de poder elegir "Bucket Script" en los gráficos de barras (NO está disponible allí) y hacerlo en CUALQUIER nivel anidado de la agregación general.
También necesitaríamos un "Filtro de depósito", por cierto, para poder filtrar los depósitos que salen de esa agregación a través de un breve script.

CC @ elastic / kibana-app

La función 'Calcular' solo puede hacer un script de depósito como nivel superior, no se puede aplicar dentro de una agregación de depósito principal ... :(

Y eso es solo en la visualización de series de tiempo, no hay un script de depósito en las visualizaciones estándar.

Nuestros casos de uso particulares requieren ambos, y parece que ninguno es compatible, ni siquiera en 6.x (rc)
¿Hay planes para esto?

En nuestros casos de uso, cada documento tiene campos de tipo de fecha de hora de inicio y hora de finalización, y necesitamos generar una duración general en grupos de esos, agrupados en algún campo de categoría.
Esto implica primero agrupar en esa categoría, luego dentro de eso hacer 2 métricas: min (hora de inicio) y nax (hora de finalización) de los documentos en cada depósito, luego aplicar un agg pipeline-script-bucket que usa estas 2 métricas- aggs para calcular la duración entre ellos (max_end_time - min_start_time). Eso nos da una métrica de 'duración' como la salida de cada segmento. Luego, queremos aplicarles algunos agregados de canalización de métricas.

Aquí se ha detallado una estructura casi idéntica: https://discuss.elastic.co/t/kibana-5-4-bucket-script-visualization/86475

Pude expresar eso en la consulta-DSL, y ya lo estamos usando en producción, pero no podemos visualizarlos en Kibana, lo que REALMENTE apesta, ya que nuestros clientes han estado solicitando tales visualizaciones durante años, y nosotros ' siempre les he dicho 'necesitamos soporte de versiones posteriores, para agregaciones de canalizaciones' ...
Bueno, ahora tenemos esos, pero en realidad, no ...
En el generador de series de tiempo, tenemos agregación de canalización de secuencia de comandos de depósito que se puede expresar, pero no se puede consumir / aplicar en una agregación de término de depósito principal, y en la otra visualización, tenemos término de depósito agregaciones, y algunas agregaciones de métricas de canalización, pero no la agregación de canalización de secuencia de comandos de depósito necesaria para expresar eso ...

¿Hay alguna solución que utilice algún "JSON avanzado" en el que pueda poner mi consulta-DSL?

@ArnonMarcus ¿

No ... sigue siendo un tema abierto.

Desde mi perspectiva como científico de datos, la capacidad para hacer cálculos matemáticos básicos, por ejemplo, proporciones en consultas de agregación (esto se llama agregación de script de cubo en lenguaje elástico) dentro de visualizaciones y mapas es una limitación masiva de toda la plataforma Kibana

En el lado positivo, puede lograr esta funcionalidad haciendo visualizaciones y mapas personalizados de Vega. El único problema con ese método es que está limitado a mostrar 10000 valores en sus visualizaciones, lo cual es bastante limitante para crear una especie de diagrama de dispersión o mapa con muchos datos en él.

+1

+1

Un caso de uso de esta función es solucionar Elasticsearch que no tiene una opción no negativa para la agregación de derivados, de modo que los gráficos puedan terminar mostrando valores de derivados negativos (al reiniciarse intencionalmente el servidor): https://github.com/elastic/elasticsearch/issues / 15542

+1

Esta es una función muy solicitada por los usuarios, similar a https://github.com/elastic/kibana/issues/17544.

¿Hay planes para implementar esto?

Sería bueno !

+1

+1

Llego tarde a esta fiesta, así que mi decepción es reciente.

Hace unos días, creé el tema del foro de discusión de Elastic "¿ Visualizar un valor calculado a partir de la suma por cubo de un campo dividida por la suma por cubo de otro? " (Perdón por el título detallado).

Poco después, encontré este problema y tardíamente me di cuenta de por qué no podía averiguar cómo hacerlo en las visualizaciones "estándar" de Kibana ☹️.

Respondí al tema de mi propio foro, citando este problema y mostrando ejemplos básicos del uso de scripts de depósito en TSVB y, supongo que es por eso que estoy publicando este comentario, en caso de que sea útil para alguien, Vega-Lite.

A la espera de esta característica deseada, una alternativa para la visualización de la tabla de datos es utilizar el complemento de comunidad de «tabla mejorada» y su característica de «columnas calculadas»:
https://github.com/fbaligand/kibana-enhanced-table

¿Fue útil esta página
0 / 5 - 0 calificaciones