Kibana: Поддержка агрегирования сценариев сегмента

Созданный на 19 авг. 2015  ·  29Комментарии  ·  Источник: elastic/kibana

С помощью новой функции Bucket Script Aggregation мы можем реализовать формулы на основе агрегированных значений показателей (например, metric1 / metric2 * 100 ). Это позволит рассчитать, например, соотношение между двумя метрическими результатами.

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

Сценарий использования:
Ссылки на: https://github.com/elastic/kibana/issues/3505

Aggregations KibanaApp enhancement

Самый полезный комментарий

Пожалуйста, просто добавьте "Bucket Script Aggregation" или "Custom Aggregation" в качестве опции в обычных визуализациях. Это должно быть легко, как и другие агрегации, но без добавления какого-либо контента в тело агрегации (только json, предоставленный пользователем)

Все 29 Комментарий

@rashidkpc Я не понимаю, как это обман трубопровода. Конвейеры в 5.4, но я не вижу там агрегации сценариев корзины. Можем ли мы снова открыть это?

Меня интересует эта функция для визуализации значений в документах, которые представляют поля фермеров, где мне нужно взвесить значения, большие для больших полей и меньшие для небольших полей, после того, как поисковый запрос выбрал полевые документы, которые будут включены в средневзвешенная .

Функция bucket_script кажется ответом (у меня она работает в elasticsearch), но я не могу воспроизвести такой запрос при использовании визуализации Kibana.

Есть ли какие-нибудь планы поддержать это в ближайшее время?

Или есть обходной путь?

(например, я пытался увидеть, могу ли я напрямую сообщить Kibana запрос elasticsearch, который я хочу использовать для визуализации, вместо того, чтобы Kibana создавал запрос для меня на основе моего выбора пользовательского интерфейса, но это кажется невозможным? Это правильно? )

+1

Меня бы заинтересовал этот функционал. В нашем случае это позволило бы обойтись без соотношения успехов / неудач.

+1 тоже хотел бы это увидеть! Должно быть довольно просто реализовать .. Просто «Пользовательский показатель» в раскрывающемся списке, который представляет собой поле, в которое вы можете ввести свой агрегированный JSON.

Начиная с Kibana 5.4, в Visual Builder временных рядов поддерживается аггирование сценариев корзины, хотя это называется «Расчет» (cc @simianhacker, интересно, следует ли нам сделать более явным, что этот параметр полагается на «Сценарий ведра»?)

Могут ли участники этого билета (например, @Kazark) попробовать и сообщить нам, поможет ли он в ваших случаях использования?
screen shot 2017-08-30 at 6 51 54 am

Я думаю, что @simianhacker согласился с тем, что имеет смысл переименовать эту агрегацию. Я открыл https://github.com/elastic/kibana/issues/13796 для отслеживания.

@tbragin Наличие агрегации сценариев корзины в TSVB - очень хорошая функция, имо - большое спасибо за ее реализацию. То, что я пробовал, сработало очень хорошо.

Тем не менее было бы замечательно, если бы TSVB поддерживал дополнительные агрегации скриптов (например, агрегацию сумм по скрипту), поскольку агрегация сегментов скриптов может полностью использовать свой потенциал только в том случае, если поддерживаются все виды субагрегаций. Но поскольку здесь не место для более подробного обсуждения, я открыл другой вопрос.

Есть ли график для этой функции?

Функция «Вычислить» может выполнять только bucket-скрипт как верхний уровень, его нельзя применять в родительской bucket-aggregation ... :(

И это только в визуализации временных рядов, в стандартных визуализациях нет bucket-скрипта.

Наши конкретные варианты использования требуют обоих, и похоже, что ни один из них не поддерживается - даже в 6.x (rc)
Есть ли на это какие-то планы?

В наших сценариях использования каждый документ имеет поля типа даты начала и окончания, и нам нужно сгенерировать общую продолжительность для их сегментов, сгруппированных по некоторому полю категории.
Это включает в себя сначала сегментирование этой категории, а затем выполнение двух метрик: min (время начала) и nax (время окончания) документов в каждом сегменте, а затем применение агрегирования конвейера-скрипта-ведра, которое использует эти 2 метрики: aggs, чтобы вычислить продолжительность между ними (max_end_time - min_start_time). Это дает нам метрику «длительности» на выходе каждой корзины. Затем мы хотим применить к ним несколько метрик-конвейер-агг.

Здесь подробно описана почти идентичная структура: https://discuss.elastic.co/t/kibana-5-4-bucket-script-visualization/86475

Я смог выразить это в запросе-DSL, и мы уже используем его в продакшене, но мы не можем визуализировать это в Kibana - что ДЕЙСТВИТЕЛЬНО отстой, поскольку наши клиенты запрашивали такие визуализации в течение многих лет, и мы ' Я всегда говорил им: «Нам нужна поддержка более поздних версий для конвейерных агрегатов» ...
Что ж, теперь они у нас есть - но на самом деле их нет ...
В построителе временных рядов у нас есть конвейерная агрегация bucket-script, которая может быть выражена, но не может потреблять / применяться-на родительской bucket-term-aggregation, а в другой визуализации у нас есть bucket-term- агрегации и некоторые агрегации конвейерных метрик, но не нужная агрегация конвейера bucket-script, необходимая для выражения этого ...

Есть ли обходной путь с использованием некоторой "продвинутой" штуки JSON, в которую я могу поместить свой запрос-DSL?

Просто добавляю мой вариант использования, как указано в этом вопросе :

Мой индекс содержит следующий тип документа (который представляет выполнение тестов):

  • идентификатор теста (строка)
  • успех (логический)
  • версия программного обеспечения

Я хочу построить следующую гистограмму:

  • По оси X: версии
  • По оси Y: количество уникальных тестов, сложенных по успеху / неудаче.

Один и тот же идентификатор теста может быть выполнен несколько раз для одной и той же версии с разными результатами: он должен считаться успешным, если он был успешным один раз.

Я действительно надеюсь, что это будет реализовано, так как это окончательный показательный момент для нас.

Пожалуйста, просто добавьте "Bucket Script Aggregation" или "Custom Aggregation" в качестве опции в обычных визуализациях. Это должно быть легко, как и другие агрегации, но без добавления какого-либо контента в тело агрегации (только json, предоставленный пользователем)

Для всех, кто интересуется примером использования этой функции в TSVB, вот соответствующее сообщение на форуме: https://discuss.elastic.co/t/weighted-average-in-a-datatable-of-kibana/185909/2.

Запрошенная функция НЕ реализована (!). Это было НЕ о TSVB, а о других обычных типах визуализации (!) (Гистограммы и тому подобное). У нас теперь версия 6.4, и мы ВСЕ ЕЩЕ НЕ МОЖЕМ ДЕЛАТЬ НАМ НУЖНО. Этого тоже нет в 7.x ASAIK.
Опять же, речь идет о возможности выбирать «Bucket Script» на гистограммах (там он НЕ доступен) и делать это на ЛЮБОМ вложенном уровне общей агрегации.
Нам также понадобится «Bucket Filter» BTW, чтобы иметь возможность фильтровать сегменты, исходящие из этой агрегации, с помощью короткого скрипта.

CC @ elastic / kibana-app

Функция «Вычислить» может выполнять только bucket-скрипт как верхний уровень, его нельзя применять в родительской bucket-aggregation ... :(

И это только в визуализации временных рядов, в стандартных визуализациях нет bucket-скрипта.

Наши конкретные варианты использования требуют обоих, и похоже, что ни один из них не поддерживается - даже в 6.x (rc)
Есть ли на это какие-то планы?

В наших сценариях использования каждый документ имеет поля типа даты начала и окончания, и нам нужно сгенерировать общую продолжительность для их сегментов, сгруппированных по некоторому полю категории.
Это включает в себя сначала сегментирование этой категории, а затем выполнение двух метрик: min (время начала) и nax (время окончания) документов в каждом сегменте, а затем применение агрегирования конвейера-скрипта-ведра, которое использует эти 2 метрики: aggs, чтобы вычислить продолжительность между ними (max_end_time - min_start_time). Это дает нам метрику «длительности» на выходе каждой корзины. Затем мы хотим применить к ним несколько метрик-конвейер-агг.

Здесь подробно описана почти идентичная структура: https://discuss.elastic.co/t/kibana-5-4-bucket-script-visualization/86475

Я смог выразить это в запросе-DSL, и мы уже используем его в продакшене, но мы не можем визуализировать это в Kibana - что ДЕЙСТВИТЕЛЬНО отстой, поскольку наши клиенты запрашивали такие визуализации в течение многих лет, и мы ' Я всегда говорил им: «Нам нужна поддержка более поздних версий для конвейерных агрегатов» ...
Что ж, теперь они у нас есть - но на самом деле их нет ...
В построителе временных рядов у нас есть конвейерная агрегация bucket-script, которая может быть выражена, но не может потреблять / применяться-на родительской bucket-term-aggregation, а в другой визуализации у нас есть bucket-term- агрегации и некоторые агрегации конвейерных метрик, но не нужная агрегация конвейера bucket-script, необходимая для выражения этого ...

Есть ли обходной путь с использованием некоторой "продвинутой" штуки JSON, в которую я могу поместить свой запрос-DSL?

@ArnonMarcus Удалось ли вам этого добиться. У меня есть подобное требование, но я не мог понять, как реализовать в Kibana. Сейчас я использую версию 6.7.1

Нет ... Это все еще нерешенный вопрос.

С моей точки зрения как специалиста по данным, способность выполнять базовую математику, например, соотношения в запросах агрегирования (это называется агрегацией Bucket Script на языке Elastic) в рамках визуализаций и карт, является серьезным ограничением всей платформы Kibana.

С другой стороны, вы можете добиться этой функциональности, создав пользовательские визуализации и карты Vega. Единственная проблема с этим методом заключается в том, что вы ограничены отображением 10000 значений в своих визуализациях, что довольно ограничивает для создания своего рода точечной диаграммы или карты с большим количеством данных в ней.

+1

+1

Одним из вариантов использования этой функции является обходной путь Elasticsearch, не имеющий неотрицательной опции для производной агрегации, чтобы диаграммы могли в конечном итоге показывать отрицательные производные значения (при преднамеренном перезапуске сервера): https://github.com/elastic/elasticsearch/issues / 15542

+1

Это очень востребованная функция от пользователей, аналогичная https://github.com/elastic/kibana/issues/17544.

Планируется ли это реализовать?

Было бы здорово !

+1

+1

Я опаздываю на эту вечеринку, поэтому мое разочарование свежо.

Несколько дней назад я создал тему дискуссионного форума Elastic « Визуализировать значение, вычисленное из суммы для каждого сегмента одного поля, деленной на сумму для каждого сегмента другого? » (Извините за подробный заголовок).

Вскоре после этого я обнаружил эту проблему и с опозданием понял, почему я не мог понять, как это сделать в «стандартных» визуализациях Кибаны ☹️.

Я ответил в своей теме на форуме, процитировав эту проблему и показав основные примеры использования сценариев корзины в TSVB и - я думаю, поэтому я публикую этот комментарий, если он кому-то поможет - Vega-Lite.

В ожидании этой желаемой функции альтернативой для визуализации таблиц данных является использование плагина сообщества «расширенная таблица» и его функции «вычисляемые столбцы»:
https://github.com/fbaligand/kibana-enhanced-table

Была ли эта страница полезной?
0 / 5 - 0 рейтинги