Kibana: Unterstützung der Bucket-Skript-Aggregation

Erstellt am 19. Aug. 2015  ·  29Kommentare  ·  Quelle: elastic/kibana

Mit der neuen Bucket Script Aggregation können wir Formeln aus aggregierten Metrikwerten implementieren (zB metric1 / metric2 * 100 ). Dies würde die Berechnung zB des Verhältnisses zwischen zwei metrischen Ergebnissen ermöglichen.

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

Nutzungsszenario:
Links zu: https://github.com/elastic/kibana/issues/3505

Aggregations KibanaApp enhancement

Hilfreichster Kommentar

Bitte fügen Sie einfach "Bucket Script Aggregation" oder "Custom Aggregation" als Option in den normalen Visualisierungen hinzu.. Sollte einfach sein, genau wie die andere Aggregation, aber ohne Inhalt im Aggregationskörper hinzuzufügen (nur das vom Benutzer bereitgestellte JSON)

Alle 29 Kommentare

@rashidkpc Ich sehe nicht, wie dies ein Dupe des Pipeline-Zeugs ist. Die Pipelines in 5.4, aber ich sehe dort keine Bucket-Skript-Aggregationen. Können wir das wieder öffnen?

Ich interessiere mich für diese Funktion, um Visualisierungen von Werten in Dokumenten zu erstellen , die Bauernfelder darstellen, wobei ich die Werte für große Felder größer und für kleine Felder kleiner gewichten muss,

Die Bucket_script-Funktion scheint die Antwort zu sein (ich habe sie in Elasticsearch), aber ich kann eine solche Abfrage nicht reproduzieren, wenn ich eine Kibana-Visualisierung verwende.

Gibt es Pläne, dies bald zu unterstützen?

Oder gibt es einen Workaround?

(z. B. habe ich versucht zu sehen, ob ich Kibana die Elasticsearch-Abfrage, die ich für eine Visualisierung verwenden möchte, direkt mitteilen kann, anstatt dass Kibana die Abfrage basierend auf meiner UI-Auswahl für mich erstellt - aber das scheint nicht möglich zu sein? Ist das richtig? )

+1

Mich würde diese Funktion interessieren. In unserem Anwendungsfall wäre es möglich, mit Erfolgs-/Fehler-Verhältnissen umzugehen.

+1 würde das auch gerne sehen! Sollte ziemlich einfach zu implementieren sein. Nur eine "Benutzerdefinierte Metrik" im Dropdown, die ein Feld anzeigt, in das Sie Ihre Aggregations-JSON eingeben können.

Ab Kibana 5.4 wird Bucket script agg jetzt in Time Series Visual Builder unterstützt, obwohl es "Calculation" heißt (cc @simianhacker Ich frage mich, ob wir expliziter machen sollten, dass diese Option auf "Bucket Script"

Könnten die Leute mit diesem Ticket (zB @Kazark) es ausprobieren und uns mitteilen, ob es in Ihren Anwendungsfällen hilft?
screen shot 2017-08-30 at 6 51 54 am

Ich denke, @simianhacker hat zugestimmt, dass es sinnvoll ist, diese Aggregation umzubenennen. Ich habe https://github.com/elastic/kibana/issues/13796 zu Tracking-Zwecken geöffnet.

@tbragin Die Bucket-Skript-Aggregation in der TSVB ist ein sehr nettes Feature, imo - vielen Dank für die Implementierung. Die Dinge, die ich ausprobiert habe, haben sehr gut funktioniert.

Trotzdem wäre es toll, wenn die TSVB zusätzliche Script-Aggregationen (zB Scripted Sum Aggregation) unterstützen würde, da die Bucket-Script-Aggregation ihr Potenzial nur dann voll ausschöpfen kann, wenn alle Arten von Sub-Aggregationen unterstützt werden. Da dies jedoch nicht der Ort ist, um näher darauf einzugehen, habe ich ein anderes Thema eröffnet.

Gibt es eine Zeitleiste für diese Funktion?

Die Funktion 'Berechnen' kann nur ein Bucket-Skript als oberste Ebene ausführen, es kann nicht innerhalb einer übergeordneten Bucket-Aggregation angewendet werden... :(

Und das nur in der Zeitreihen-Visualisierung, es gibt kein Bucket-Skript in den Standard-Visualisierungen.

Unsere speziellen Anwendungsfälle erfordern beides, und es scheint, als würden keine unterstützt - nicht einmal in 6.x(rc)
Gibt es hierzu Pläne?

In unseren Anwendungsfällen hat jedes Dokument ein Startzeit- und ein Endzeit-Datumstyp-Feld, und wir müssen eine Gesamtdauer für alle Buckets davon generieren, gruppiert nach einem Kategoriefeld.
Dies beinhaltet zuerst Bucketing für diese Kategorie, dann innerhalb dieser 2 Metriken: min (Startzeit) und nax (Endzeit) der Dokumente in jedem Bucket, dann Anwenden einer Pipeline-Script-Bucket-Agg, die diese 2 Metriken verwendet. aggs, um die Dauer zwischen ihnen zu berechnen (max_end_time - min_start_time). Das gibt uns eine „Dauer“-Metrik als Ausgabe jedes Buckets. Wir wollen dann einige Metrik-Pipeline-Aggs darauf anwenden.

Eine fast identische Struktur wurde hier detailliert beschrieben: https://discuss.elastic.co/t/kibana-5-4-bucket-script-visualization/86475

Ich konnte das in der Query-DSL ausdrücken, und wir verwenden es bereits in der Produktion - aber wir können diese in Kibana nicht visualisieren - was WIRKLICH scheiße ist, da unsere Kunden seit Jahren solche Visualisierungen anfordern, und wir Ich habe ihnen immer gesagt 'wir brauchen Unterstützung von späteren Versionen für Pipeline-Aggregationen'...
Nun, die haben wir jetzt - aber eigentlich nicht...
Im Zeitreihen-Generator haben wir eine Bucket-Script-Pipeline-Aggregation, die ausgedrückt werden kann, aber nicht auf eine übergeordnete Bucket-Term-Aggregation angewendet/auf diese angewendet werden kann, und in der anderen Visualisierung haben wir Bucket-Term- Aggregationen und einige Pipeline-Metrik-Aggregationen, aber nicht die erforderliche Bucket-Script-Pipeline-Aggregation, die benötigt wird, um dies auszudrücken...

Gibt es eine Problemumgehung mit einem "erweiterten JSON" -Ding, in das ich meine Abfrage-DSL einfügen kann?

Fügen Sie einfach meinen Anwendungsfall hinzu, wie in dieser Frage angefordert :

Mein Index enthält den folgenden Dokumenttyp (der Testausführungen darstellt):

  • ID des Tests (Zeichenfolge)
  • Erfolg (boolesch)
  • Softwareversion

Ich möchte folgendes Histogramm erstellen:

  • Auf der X-Achse: Versionen
  • Auf der Y-Achse: Anzahl der einzelnen Tests, gestapelt nach Erfolg/Misserfolg

Dieselbe Test-ID kann mehrmals auf derselben Version mit unterschiedlichen Ergebnissen ausgeführt werden: Es sollte als erfolgreich gewertet werden, wenn es einmal erfolgreich war.

Ich hoffe wirklich, dass dies umgesetzt wird, da dies ein definitiver Showstopper für uns ist.

Bitte fügen Sie einfach "Bucket Script Aggregation" oder "Custom Aggregation" als Option in den normalen Visualisierungen hinzu.. Sollte einfach sein, genau wie die andere Aggregation, aber ohne Inhalt im Aggregationskörper hinzuzufügen (nur das vom Benutzer bereitgestellte JSON)

Für alle, die an einem Beispiel für die Verwendung dieser Funktion in TSVB interessiert sind, hier ein relevanter Forumsbeitrag: https://discuss.elastic.co/t/weighted-average-in-a-datatable-of-kibana/185909/2.

Das angeforderte Feature wird NICHT gemacht(!) Es ging NICHT um TSVB, sondern um die anderen regulären Visualisierungstypen(!) (Balkendiagramme und ähnliches). Wir sind jetzt am 6.4 und KÖNNEN NOCH NICHT MACHEN, WAS WIR BRAUCHEN. Es ist auch nicht in 7.x ASAIK.
Auch hier geht es darum, "Bucket Script" in Balkendiagrammen auswählen zu können (es ist dort NICHT verfügbar) und dies auf JEDER verschachtelten Ebene der Gesamtaggregation.
Wir bräuchten übrigens auch einen "Bucket-Filter", um Buckets, die aus dieser Aggregation kommen, über ein kurzes Skript filtern zu können.

CC @elastic/kibana-app

Die Funktion 'Berechnen' kann nur ein Bucket-Skript als oberste Ebene ausführen, es kann nicht innerhalb einer übergeordneten Bucket-Aggregation angewendet werden... :(

Und das nur in der Zeitreihen-Visualisierung, es gibt kein Bucket-Skript in den Standard-Visualisierungen.

Unsere speziellen Anwendungsfälle erfordern beides, und es scheint, als würden keine unterstützt - nicht einmal in 6.x(rc)
Gibt es hierzu Pläne?

In unseren Anwendungsfällen hat jedes Dokument ein Startzeit- und ein Endzeit-Datumstyp-Feld, und wir müssen eine Gesamtdauer für alle Buckets davon generieren, gruppiert nach einem Kategoriefeld.
Dies beinhaltet zuerst Bucketing für diese Kategorie, dann innerhalb dieser 2 Metriken: min (Startzeit) und nax (Endzeit) der Dokumente in jedem Bucket, dann Anwenden einer Pipeline-Script-Bucket-Agg, die diese 2 Metriken verwendet. aggs, um die Dauer zwischen ihnen zu berechnen (max_end_time - min_start_time). Das gibt uns eine „Dauer“-Metrik als Ausgabe jedes Buckets. Wir wollen dann einige Metrik-Pipeline-Aggs darauf anwenden.

Eine fast identische Struktur wurde hier detailliert beschrieben: https://discuss.elastic.co/t/kibana-5-4-bucket-script-visualization/86475

Ich konnte das in der Query-DSL ausdrücken, und wir verwenden es bereits in der Produktion - aber wir können diese in Kibana nicht visualisieren - was WIRKLICH scheiße ist, da unsere Kunden seit Jahren solche Visualisierungen anfordern, und wir Ich habe ihnen immer gesagt 'wir brauchen Unterstützung von späteren Versionen für Pipeline-Aggregationen'...
Nun, die haben wir jetzt - aber eigentlich nicht...
Im Zeitreihen-Generator haben wir eine Bucket-Script-Pipeline-Aggregation, die ausgedrückt werden kann, aber nicht auf eine übergeordnete Bucket-Term-Aggregation angewendet/auf diese angewendet werden kann, und in der anderen Visualisierung haben wir Bucket-Term- Aggregationen und einige Pipeline-Metrik-Aggregationen, aber nicht die erforderliche Bucket-Script-Pipeline-Aggregation, die benötigt wird, um dies auszudrücken...

Gibt es eine Problemumgehung mit einem "erweiterten JSON" -Ding, in das ich meine Abfrage-DSL einfügen kann?

@ArnonMarcus Konntest du das erreichen

Nein... Es ist immer noch ein offenes Thema.

Aus meiner Sicht als Datenwissenschaftler ist die Unfähigkeit, grundlegende Mathematik, z. B. Verhältnisse bei Aggregationsabfragen, (dies wird in Elastic eine Bucket-Skript-Aggregation genannt) innerhalb von Visualisierungen und Karten zu machen, eine massive Einschränkung der gesamten Kibana-Plattform

Auf der positiven Seite können Sie diese Funktionalität erreichen, indem Sie benutzerdefinierte Vega-Visualisierungen und -Karten erstellen. Das einzige Problem bei dieser Methode besteht darin, dass Sie in Ihren Visualisierungen nur 10000 Werte anzeigen können, was für die Erstellung einer Art Streudiagramm oder einer Karte mit vielen Daten ziemlich einschränkend ist

+1

+1

Ein Anwendungsfall für diese Funktion besteht darin, zu umgehen, dass Elasticsearch keine nicht-negative Option für die Aggregation von Derivaten hat, sodass Diagramme negative Derivatewerte anzeigen können (bei absichtlichen Neustarts des Servers): https://github.com/elastic/elasticsearch/issues /15542

+1

Dies ist eine von Benutzern viel nachgefragte Funktion, ähnlich wie https://github.com/elastic/kibana/issues/17544.

Gibt es Pläne, dies umzusetzen?

Wäre nett !

+1

+1

Ich bin zu spät zu dieser Party, also ist meine Enttäuschung frisch.

Vor ein paar Tagen habe ich das Thema des Elastic-Diskussionsforums " Visualisieren eines Wertes, der aus der Summe pro Bucket eines Felds geteilt durch die Summe pro Bucket eines anderen berechnet wird? " (Entschuldigung für den ausführlichen Titel) erstellt.

Kurz darauf fand ich dieses Problem und erkannte mit Verspätung, warum ich in "Standard"-Kibana-Visualisierungen nicht herausfinden konnte, wie das geht ☹️.

Ich habe auf mein eigenes Forumsthema geantwortet, dieses Problem zitiert und grundlegende Beispiele für die Verwendung von Bucket-Skripten in TSVB gezeigt und – ich denke, deshalb poste ich diesen Kommentar, falls er für irgendjemanden hilfreich ist – Vega-Lite.

In Erwartung dieser gewünschten Funktion besteht eine Alternative für die Visualisierung von Datentabellen darin, das Community-Plugin „Erweiterte Tabelle“ und seine Funktion „berechnete Spalten“ zu verwenden:
https://github.com/fbaligand/kibana-enhanced-table

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen

Verwandte Themen

MaartenUreel picture MaartenUreel  ·  3Kommentare

spalger picture spalger  ·  3Kommentare

cafuego picture cafuego  ·  3Kommentare

bhavyarm picture bhavyarm  ·  3Kommentare

treussart picture treussart  ·  3Kommentare