Kibana: Prise en charge de l'agrégation de scripts de compartiment

CrĂ©Ă© le 19 aoĂ»t 2015  Â·  29Commentaires  Â·  Source: elastic/kibana

Compte tenu du nouveau Bucket Script Aggregation, nous pouvons implémenter des formules à partir de valeurs métriques agrégées (par exemple metric1 / metric2 * 100 ). Cela permettrait de calculer, par exemple, le rapport entre deux résultats métriques.

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

Scénario d'utilisation :
Liens vers : https://github.com/elastic/kibana/issues/3505

Aggregations KibanaApp enhancement

Commentaire le plus utile

Veuillez simplement ajouter "Bucket Script Aggregation" ou "Custom Aggregation" en option dans les visualisations normales. Cela devrait ĂȘtre facile, tout comme l'autre agrĂ©gation mais sans ajouter de contenu dans le corps de l'agrĂ©gation (juste le json fourni par l'utilisateur)

Tous les 29 commentaires

@rashidkpc Je ne vois pas en quoi c'est une dupe des pipelines. Les pipelines dans 5.4 mais je n'y vois pas d'agrégations de scripts de compartiment. Pouvons-nous rouvrir cela?

Je suis intĂ©ressĂ© par cette fonctionnalitĂ© afin de faire des visualisations de valeurs sur des documents qui reprĂ©sentent des champs d'agriculteurs oĂč je dois pondĂ©rer les valeurs plus grandes pour les grands champs et plus petites pour les petits champs, une fois que la requĂȘte de recherche a sĂ©lectionnĂ© les documents de terrain Ă  inclure dans la moyenne pondĂ©rĂ©e .

La fonctionnalitĂ© bucket_script semble ĂȘtre la rĂ©ponse (je l'ai fait fonctionner dans elasticsearch) mais je n'arrive pas Ă  reproduire une telle requĂȘte lors de l'utilisation d'une visualisation Kibana.

Y a-t-il des plans pour soutenir cela bientĂŽt?

Ou existe-t-il une solution de contournement ?

(par exemple, j'essayais de voir si je peux dire directement Ă  Kibana la requĂȘte Elasticsearch que je veux utiliser pour une visualisation au lieu que Kibana crĂ©e la requĂȘte pour moi en fonction de mes choix d'interface utilisateur - mais cela ne semble pas ĂȘtre possible ? Est-ce correct ? )

+1

Je serais intéressé par cette fonctionnalité. Dans notre cas d'utilisation, cela permettrait de contourner les ratios réussite/échec.

+1 aimerait voir ça aussi ! Devrait ĂȘtre assez simple Ă  mettre en Ɠuvre. Juste une "Metrique personnalisĂ©e" dans le menu dĂ©roulant qui prĂ©sente une boĂźte dans laquelle vous pouvez saisir votre agrĂ©gation JSON..

À partir de Kibana 5.4, bucket script agg est dĂ©sormais pris en charge dans Time Series Visual Builder, bien qu'il s'appelle "Calculation" (cc @simianhacker, je me demande si nous devrions prĂ©ciser que cette option repose sur "Bucket Script" ?)

Les personnes sur ce ticket (par exemple @Kazark) pourraient-elles l'essayer et nous faire savoir si cela vous aide dans vos cas d'utilisation ?
screen shot 2017-08-30 at 6 51 54 am

Je pense que @simianhacker a convenu qu'il était logique de renommer cette agrégation. J'ai ouvert https://github.com/elastic/kibana/issues/13796 à des fins de suivi.

@tbragin Avoir l'agrégation de scripts de compartiment dans le TSVB est une fonctionnalité trÚs intéressante, imo - merci beaucoup de l'avoir implémentée. Les choses que j'ai essayées ont trÚs bien fonctionné.

Néanmoins, ce serait formidable si le TSVB prenait en charge des agrégations de scripts supplémentaires (par exemple, l'agrégation de sommes scriptées), car l'agrégation de scripts de compartiment ne peut exploiter pleinement son potentiel que si toutes sortes de sous-agrégations sont prises en charge. Mais comme ce n'est pas un endroit pour en discuter plus en détail, j'ai ouvert un autre numéro.

Existe-t-il un calendrier pour cette fonctionnalité ?

La fonctionnalitĂ© 'Calculer' ne peut faire qu'un script de seau en tant que niveau supĂ©rieur, elle ne peut pas ĂȘtre appliquĂ©e dans une agrĂ©gation de seau parent... :(

Et ce n'est que dans la visualisation de séries chronologiques, il n'y a pas de script de seau dans les visualisations standard.

Nos cas d'utilisation particuliers nĂ©cessitent les deux, et il semble qu'aucun ne soit pris en charge - mĂȘme pas dans 6.x(rc)
Y a-t-il des plans pour cela?

Dans nos cas d'utilisation, chaque document a des champs de type date d'heure de début et d'heure de fin, et nous devons générer une durée globale à travers des buckets de ceux-ci, regroupés sur un champ de catégorie.
Cela implique d'abord de compartimenter cette catégorie, puis de faire 2 métriques: min(start-time) et nax(end-time) des documents dans chaque seau, puis d'appliquer un pipeline-script-bucket agg qui utilise ces 2 métriques- aggs pour calculer la durée entre eux (max_end_time - min_start_time). Cela nous donne une métrique de « durée » en tant que sortie de chaque seau. Nous voulons ensuite leur appliquer quelques metric-pipeline-aggs.

Une structure presque identique a été détaillée ici : https://discuss.elastic.co/t/kibana-5-4-bucket-script-visualization/86475

J'ai pu l'exprimer dans la requĂȘte-DSL, et nous l'utilisons dĂ©jĂ  en production - mais nous ne pouvons pas les visualiser dans Kibana - ce qui est VRAIMENT nul, car nos clients demandent de telles visualisations depuis des annĂ©es, et nous ' Je leur ai toujours dit "nous avons besoin du support des versions ultĂ©rieures, pour les agrĂ©gations de pipelines"...
Eh bien, maintenant nous les avons - mais en fait, ne...
Dans le gĂ©nĂ©rateur de sĂ©ries temporelles, nous avons une agrĂ©gation de pipeline de script de seau qui peut ĂȘtre exprimĂ©e, mais elle ne peut pas consommer/ĂȘtre appliquĂ©e sur une agrĂ©gation de seau-terme parent, et dans l'autre visualisation, nous avons seau-term- agrĂ©gations et certaines agrĂ©gations de mĂ©triques de pipeline, mais pas l'agrĂ©gation de pipeline de script de compartiment nĂ©cessaire pour exprimer cela...

Existe-t-il une solution de contournement Ă  l'aide d'un Ă©lĂ©ment "JSON avancĂ©" dans lequel je peux y mettre ma requĂȘte-DSL ?

Je viens d'ajouter mon cas d'utilisation comme demandé dans cette question :

Mon index contient le type de document suivant (qui représente les exécutions de test) :

  • id de test (chaĂźne)
  • succĂšs (boolĂ©en)
  • version du logiciel

Je veux construire l'histogramme suivant :

  • Sur l'axe X : versions
  • Sur l'axe Y : nombre de tests uniques, empilĂ©s sur succĂšs/Ă©chec

Le mĂȘme identifiant de test peut ĂȘtre exĂ©cutĂ© plusieurs fois sur la mĂȘme version avec des rĂ©sultats diffĂ©rents : il devrait ĂȘtre comptĂ© comme un succĂšs s'il rĂ©ussit une fois.

J'espĂšre vraiment que cela sera mis en Ɠuvre, car c'est un Ă©cueil dĂ©finitif pour nous.

Veuillez simplement ajouter "Bucket Script Aggregation" ou "Custom Aggregation" en option dans les visualisations normales. Cela devrait ĂȘtre facile, tout comme l'autre agrĂ©gation mais sans ajouter de contenu dans le corps de l'agrĂ©gation (juste le json fourni par l'utilisateur)

Pour toute personne intéressée par un exemple d'utilisation de cette fonctionnalité dans TSVB, voici un article de forum pertinent : https://discuss.elastic.co/t/weighted-average-in-a-datatable-of-kibana/185909/2.

La fonctionnalité demandée n'est PAS effectuée (!) Il ne s'agissait PAS de TSVB, mais des autres types de visualisation normaux (!) Nous sommes maintenant sur 6.4 et nous NE POUVONS TOUJOURS PAS FAIRE CE DONT NOUS AVONS BESOIN. Ce n'est pas non plus dans 7.x ASAIK.
Encore une fois, il s'agit de pouvoir choisir "Bucket Script" dans les graphiques à barres (il n'y est PAS disponible) et de le faire à N'IMPORTE QUEL niveau imbriqué de l'agrégation globale.
Nous aurions également besoin d'un "Bucket Filter" BTW, pour pouvoir filtrer les buckets sortant de cette agrégation via un court script.

CC @elastic/kibana-app

La fonctionnalitĂ© 'Calculer' ne peut faire qu'un script de seau en tant que niveau supĂ©rieur, elle ne peut pas ĂȘtre appliquĂ©e dans une agrĂ©gation de seau parent... :(

Et ce n'est que dans la visualisation de séries chronologiques, il n'y a pas de script de seau dans les visualisations standard.

Nos cas d'utilisation particuliers nĂ©cessitent les deux, et il semble qu'aucun ne soit pris en charge - mĂȘme pas dans 6.x(rc)
Y a-t-il des plans pour cela?

Dans nos cas d'utilisation, chaque document a des champs de type date d'heure de début et d'heure de fin, et nous devons générer une durée globale à travers des buckets de ceux-ci, regroupés sur un champ de catégorie.
Cela implique d'abord de compartimenter cette catégorie, puis de faire 2 métriques: min(start-time) et nax(end-time) des documents dans chaque seau, puis d'appliquer un pipeline-script-bucket agg qui utilise ces 2 métriques- aggs pour calculer la durée entre eux (max_end_time - min_start_time). Cela nous donne une métrique de « durée » en tant que sortie de chaque seau. Nous voulons ensuite leur appliquer quelques metric-pipeline-aggs.

Une structure presque identique a été détaillée ici : https://discuss.elastic.co/t/kibana-5-4-bucket-script-visualization/86475

J'ai pu l'exprimer dans la requĂȘte-DSL, et nous l'utilisons dĂ©jĂ  en production - mais nous ne pouvons pas les visualiser dans Kibana - ce qui est VRAIMENT nul, car nos clients demandent de telles visualisations depuis des annĂ©es, et nous ' Je leur ai toujours dit "nous avons besoin du support des versions ultĂ©rieures, pour les agrĂ©gations de pipelines"...
Eh bien, maintenant nous les avons - mais en fait, ne...
Dans le gĂ©nĂ©rateur de sĂ©ries temporelles, nous avons une agrĂ©gation de pipeline de script de seau qui peut ĂȘtre exprimĂ©e, mais elle ne peut pas consommer/ĂȘtre appliquĂ©e sur une agrĂ©gation de seau-terme parent, et dans l'autre visualisation, nous avons seau-term- agrĂ©gations et certaines agrĂ©gations de mĂ©triques de pipeline, mais pas l'agrĂ©gation de pipeline de script de compartiment nĂ©cessaire pour exprimer cela...

Existe-t-il une solution de contournement Ă  l'aide d'un Ă©lĂ©ment "JSON avancĂ©" dans lequel je peux y mettre ma requĂȘte-DSL ?

@ArnonMarcus Avez-vous pu y parvenir. J'ai une exigence similaire mais je n'arrive pas à comprendre comment mettre en Ɠuvre dans Kibana. Je suis actuellement sur la version 6.7.1

Non... C'est toujours un problĂšme ouvert.

De mon point de vue en tant que scientifique des donnĂ©es, l'incapacitĂ© de faire des mathĂ©matiques de base, par exemple des ratios sur les requĂȘtes d'agrĂ©gation, (c'est ce qu'on appelle une agrĂ©gation de scripts de seau en langage Elastic) dans les visualisations et les cartes est une limitation massive de l'ensemble de la plate-forme Kibana

Du cĂŽtĂ© positif, vous pouvez obtenir cette fonctionnalitĂ© en crĂ©ant des visualisations et des cartes Vega personnalisĂ©es. Le seul problĂšme avec cette mĂ©thode est que vous ĂȘtes limitĂ© Ă  afficher 10 000 valeurs sur vos visualisations, ce qui est assez limitatif pour crĂ©er une sorte de nuage de points ou de carte avec beaucoup de donnĂ©es.

+1

+1

Un cas d'utilisation de cette fonctionnalité consiste à contourner Elasticsearch ne pas avoir d'option non négative pour l'agrégation de dérivés afin que les graphiques puissent finir par afficher des valeurs dérivées négatives (lors du redémarrage intentionnel du serveur) : https://github.com/elastic/elasticsearch/issues /15542

+1

Il s'agit d'une fonctionnalité trÚs demandée par les utilisateurs, similaire à https://github.com/elastic/kibana/issues/17544.

Y a-t-il des plans pour mettre en Ɠuvre cela?

Ce serait sympa !

+1

+1

Je suis en retard Ă  cette fĂȘte, donc ma dĂ©ception est fraĂźche.

Il y a quelques jours, j'ai créé le sujet du forum de discussion Elastic " Visualiser une valeur calculée à partir de la somme par bucket d'un champ divisée par la somme par bucket d'un autre ? " (désolé pour le titre verbeux).

Peu de temps aprĂšs, j'ai trouvĂ© ce problĂšme et j'ai rĂ©alisĂ© tardivement pourquoi je ne pouvais pas comprendre comment le faire dans les visualisations "standard" de Kibana â˜č.

J'ai rĂ©pondu Ă  mon propre sujet de forum, citant ce problĂšme et montrant des exemples de base d'utilisation de scripts de compartiment dans TSVB et - je suppose que c'est pourquoi je publie ce commentaire, au cas oĂč cela serait utile Ă  quelqu'un - Vega-Lite.

En attendant cette fonctionnalité recherchée, une alternative à la visualisation des tables de données est d'utiliser le plugin communautaire « table améliorée », et sa fonctionnalité « colonnes calculées » :
https://github.com/fbaligand/kibana-enhanced-table

Cette page vous a été utile?
0 / 5 - 0 notes