Kibana: バケットスクリプトの集約をサポートする

作成日 2015年08月19日  ·  29コメント  ·  ソース: elastic/kibana

新しいバケットスクリプト集約が与えられると、集約されたメトリック値から数式を実装できます(例: metric1 / metric2 * 100 )。 これにより、たとえば2つのメトリック結果間の比率を計算できます。

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

使用シナリオ:
リンク先: https

Aggregations KibanaApp enhancement

最も参考になるコメント

通常のビジュアライゼーションのオプションとして「バケットスクリプトアグリゲーション」または「カスタムアグリゲーション」を追加してください。他のアグリゲーションと同じように簡単ですが、アグリゲーション本文にコンテンツを追加する必要はありません(ユーザーが指定したjsonのみ)。

全てのコメント29件

@rashidkpcこれがパイプラインのものの

検索クエリで含めるフィールドドキュメントを選択した後、大きなフィールドでは値を大きく、小さなフィールドでは値を小さくする必要がある、農家のフィールドを表すドキュメントの値を視覚化するために、この機能に興味があります。

Bucket_script機能が答えのようです(elasticsearchで機能しています)が、Kibanaビジュアライゼーションを使用するとそのようなクエリを再現できないようです。

これをすぐにサポートする計画はありますか?

または、回避策はありますか?

(たとえば、KibanaがUIの選択に基づいてクエリを作成するのではなく、視覚化に使用するelasticsearchクエリをKibanaに直接伝えることができるかどうかを確認しようとしていましたが、それは不可能のようです?それは正しいですか? )

+1

この機能に興味があります。 私たちのユースケースでは、成功/失敗の比率を回避することができます。

+1もこれを見たいです! 実装は非常に簡単なはずです。ドロップダウンの「カスタムメトリック」だけで、集計JSONを入力できるボックスが表示されます。

Kibana 5.4以降、Time Series Visual Builderでバケットスクリプトaggがサポートされるようになりましたが、これは「計算」と呼ばれます(cc @simianhackerこのオプションが「バケットスクリプト」に依存することをより明示的にする必要があるかどうか疑問に思います)。

このチケットを使用している人(@Kazarkなど)が試してみて、ユースケースに役立つかどうかをお知らせください。
screen shot 2017-08-30 at 6 51 54 am

@simianhackerは、この集計の名前を変更することが理にhttps://github.com/elastic/kibana/issues/13796を開きました。

@tbragin TSVBにバケットスクリプトの集約があることは非常に優れた機能です、imo-それを実装してくれてありがとう。 私が試したことは非常にうまくいきました。

それでも、すべての種類のサブアグリゲーションがサポートされている場合、バケットスクリプトアグリゲーションはその可能性を十分に活用できるため、TSVBが追加のスクリプトアグリゲーション(スクリプト合計アグリゲーションなど)をサポートしていれば素晴らしいと思います。 しかし、これはこれをより詳細に議論する場所ではないので、私は別の問題を開きました。

この機能のタイムラインはありますか?

「計算」機能は、トップレベルとしてバケットスクリプトのみを実行でき、親バケット集約内には適用できません... :(

そして、それは時系列の視覚化にのみあり、標準の視覚化にはバケットスクリプトはありません。

私たちの特定のユースケースでは両方が必要であり、6.x(rc)でもサポートされていないようです。
これについて何か計画はありますか?

私たちのユースケースでは、各ドキュメントに開始時刻と終了時刻の日付タイプフィールドがあり、それらのバケット全体で、いくつかのカテゴリフィールドにグループ化された全体的な期間を生成する必要があります。
これには、最初にそのカテゴリでバケット化を行い、次に2つのメトリックを実行することが含まれます:各バケット内のドキュメントのmin(start-time)とnax(end-time)、次にこれら2つのメトリックを使用するpipeline-script-bucket agg-それらの間の期間を計算するためにaggs(max_end_time-min_start_time)。 これにより、各バケットの出力として「期間」メトリックが得られます。 次に、それらにいくつかのmetric-pipeline-aggsを適用します。

ほぼ同じ構造がここで詳しく説明されています: https

私はクエリDSLでそれを表現することができました、そして私たちはすでにそれを本番環境で使用しています-しかし、私たちはキバナでこれらを視覚化することはできません-私たちのクライアントが何年もの間そのような視覚化を要求してきたので、それは本当にひどいです、そして私たちは常に彼らに「パイプライン集約のために、後のバージョンからのサポートが必要だ」と言ってきました。
さて、今私たちはそれらを持っています-しかし実際には、そうではありません...
時系列ビルダーには、表現できるバケットスクリプトパイプライン集約がありますが、親バケット用語集約で消費/適用することはできません。他の視覚化では、バケット用語集約があります。集計、およびいくつかのパイプラインメトリック集計ですが、それを表現するために必要なバケットスクリプトパイプライン集計ではありません...

クエリDSLをそこに入れることができる「高度なJSON」を使用した回避策はありますか?

この質問で要求されたように私のユースケース

私のインデックスには、次のドキュメントタイプ(テストの実行を表す)が含まれています。

  • テストのID(文字列)
  • 成功(ブール値)
  • ソフトウェアのバージョン

次のヒストグラムを作成したいと思います。

  • X軸上:バージョン
  • Y軸上:成功/失敗に積み重ねられた一意のテストの数

同じテストIDを同じバージョンで複数回実行すると、結果が異なります。1回成功した場合は、成功としてカウントする必要があります。

これは私たちにとって決定的なショートッパーであるため、これが実装されることを本当に望んでいます。

通常のビジュアライゼーションのオプションとして「バケットスクリプトアグリゲーション」または「カスタムアグリゲーション」を追加してください。他のアグリゲーションと同じように簡単ですが、アグリゲーション本文にコンテンツを追加する必要はありません(ユーザーが指定したjsonのみ)。

TSVBでこの機能を使用する例に興味がある人は、関連するフォーラム投稿をご覧ください

要求された機能は実行されません(!)これはTSVBに関するものではなく、他の通常の視覚化タイプ(!)(棒グラフなど)に関するものです。 現在6.4を使用していますが、まだ必要なことを実行できません。 7.xASAIKにも含まれていません。
繰り返しになりますが、これは棒グラフで「バケットスクリプト」を選択できるようにすることであり(そこでは利用できません)、集計全体のネストされたレベルで選択できます。
短いスクリプトを介してその集計から出てくるバケットをフィルタリングできるようにするには、「バケットフィルター」BTWも必要です。

CC @ elastic / kibana-app

「計算」機能は、トップレベルとしてバケットスクリプトのみを実行でき、親バケット集約内には適用できません... :(

そして、それは時系列の視覚化にのみあり、標準の視覚化にはバケットスクリプトはありません。

私たちの特定のユースケースでは両方が必要であり、6.x(rc)でもサポートされていないようです。
これについて何か計画はありますか?

私たちのユースケースでは、各ドキュメントに開始時刻と終了時刻の日付タイプフィールドがあり、それらのバケット全体で、いくつかのカテゴリフィールドにグループ化された全体的な期間を生成する必要があります。
これには、最初にそのカテゴリでバケット化を行い、次に2つのメトリックを実行することが含まれます:各バケット内のドキュメントのmin(start-time)とnax(end-time)、次にこれら2つのメトリックを使用するpipeline-script-bucket agg-それらの間の期間を計算するためにaggs(max_end_time-min_start_time)。 これにより、各バケットの出力として「期間」メトリックが得られます。 次に、それらにいくつかのmetric-pipeline-aggsを適用します。

ほぼ同じ構造がここで詳しく説明されています: https

私はクエリDSLでそれを表現することができました、そして私たちはすでにそれを本番環境で使用しています-しかし、私たちはキバナでこれらを視覚化することはできません-私たちのクライアントが何年もの間そのような視覚化を要求してきたので、それは本当にひどいです、そして私たちは常に彼らに「パイプライン集約のために、後のバージョンからのサポートが必要だ」と言ってきました。
さて、今私たちはそれらを持っています-しかし実際には、そうではありません...
時系列ビルダーには、表現できるバケットスクリプトパイプライン集約がありますが、親バケット用語集約で消費/適用することはできません。他の視覚化では、バケット用語集約があります。集計、およびいくつかのパイプラインメトリック集計ですが、それを表現するために必要なバケットスクリプトパイプライン集計ではありません...

クエリDSLをそこに入れることができる「高度なJSON」を使用した回避策はありますか?

@ArnonMarcusこれを達成できましたか。 同様の要件がありますが、Kibanaでの実装方法がわかりませんでした。 私は現在6.7.1バージョンを使用しています

いいえ...それはまだ未解決の問題です。

データサイエンティストとしての私の観点からは、視覚化とマップ内で基本的な計算、たとえば集計クエリの比率(これはElasticの場合はバケットスクリプト集計と呼ばれます)を実行する能力は、Kibanaプラットフォーム全体の大きな制限です。

プラス面では、カスタムVegaの視覚化とマップを作成することで、この機能を実現できます。 この方法の唯一の問題は、ビジュアライゼーションに表示できる値が10000に制限されていることです。これは、大量のデータを含む一種の散布図またはマップを作成するにはかなり制限があります。

+1

+1

この機能の使用例の1つは、Elasticsearchに微分集計の非負のオプションがないことを回避して、グラフに負の微分値が表示されるようにすることです(サーバーを意図的に再起動した場合): https

+1

これは、 https://github.com/elastic/kibana/issues/17544と同様に、ユーザーから要望の多かった機能です

これを実装する予定はありますか?

いいだろう !

+1

+1

私はこのパーティーに遅れているので、私の失望は新鮮です。

数日前、Elasticディスカッションフォーラムのトピック「あるフィールドのバケットごとの合計を別のフィールドのバケットごとの合計で割って計算された値を視覚化しますか? 」(冗長なタイトルについては申し訳ありません)を作成しました。

その後すぐに、この問題を発見し、「標準の」Kibanaビジュアライゼーションでそれを行う方法を理解できなかった理由を遅ればせながら理解しました☹️。

私は自分のフォーラムトピックに返信し、この問題を引用し、TSVBでバケットスクリプトを使用する基本的な例を示しました。これが、誰かに役立つ場合に備えて、このコメントを投稿する理由だと思います。Vega-Lite。

この必要な機能を待って、データテーブルの視覚化の代替手段は、«拡張テーブル»コミュニティプラグインとその«計算列»機能を使用することです。
https://github.com/fbaligand/kibana-enhanced-table

このページは役に立ちましたか?
0 / 5 - 0 評価