Kibana: Agregação de script de intervalo de suporte

Criado em 19 ago. 2015  ·  29Comentários  ·  Fonte: elastic/kibana

Dada a nova Agregação de Script de Bucket, podemos implementar fórmulas a partir de valores métricos agregados (por exemplo, metric1 / metric2 * 100 ). Isso permitiria o cálculo da razão, por exemplo, entre dois resultados métricos.

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

Cenário de uso:
Links para: https://github.com/elastic/kibana/issues/3505

Aggregations KibanaApp enhancement

Comentários muito úteis

Apenas adicione "Bucket Script Aggregation" ou "Custom Aggregation" como uma opção nas visualizações normais. Deve ser fácil, assim como a outra agregação, mas sem adicionar qualquer conteúdo no corpo da agregação (apenas o json fornecido pelo usuário)

Todos 29 comentários

@rashidkpc Não vejo como isso é um truque dos pipelines. Os pipelines estão em 5.4, mas não vejo agregações de script de balde lá. Podemos reabrir isso?

Estou interessado neste recurso a fim de fazer visualizações de valores em documentos que representam campos de agricultores onde preciso ponderar os valores maiores para campos grandes e menores para campos pequenos, após a consulta de pesquisa ter selecionado os documentos de campo a serem incluídos em a média ponderada .

O recurso bucket_script parece ser a resposta (eu o tenho funcionando em elasticsearch), mas não consigo reproduzir essa consulta ao usar uma visualização Kibana.

Existem planos para apoiar isso em breve?

Ou existe alguma solução alternativa?

(por exemplo, eu estava tentando ver se posso dizer diretamente a Kibana a consulta elasticsearch que desejo usar para uma visualização em vez de Kibana criar a consulta para mim com base em minhas escolhas de IU - mas isso não parece ser possível? Correto? )

+1

Eu estaria interessado nesta funcionalidade. Em nosso caso de uso, permitiria contornar as taxas de sucesso / falha.

+1 gostaria de ver isso também! Deve ser muito simples de implementar. Apenas uma "Métrica personalizada" no menu suspenso que apresenta uma caixa onde você pode inserir seu JSON de agregação.

A partir do Kibana 5.4, o script de bucket agg agora é compatível com o Time Series Visual Builder, embora seja chamado de "Cálculo" (cc @simianhacker, gostaria de saber se deveríamos deixar mais explícito que esta opção depende do "Script de Bucket"?)

O pessoal deste tíquete (por exemplo, @Kazark) poderia tentar e nos informar se ajuda em seus casos de uso?
screen shot 2017-08-30 at 6 51 54 am

Acho que @simianhacker concordou que faz sentido renomear esta agregação. Abri https://github.com/elastic/kibana/issues/13796 para fins de rastreamento.

@tbragin Ter a agregação de script de balde no TSVB é um recurso muito bom, imo - muito obrigado por implementá-lo. As coisas que experimentei funcionaram muito bem.

No entanto, seria ótimo se o TSVB suportasse agregações de script adicionais (por exemplo, agregação de soma de script), já que a agregação de script de balde só pode aproveitar totalmente seu potencial, se todos os tipos de subagregações forem suportados. Mas, como este não é o lugar para discutir isso com mais detalhes, abri outra edição.

Existe um cronograma para este recurso?

O recurso 'Calcular' só pode fazer um script de intervalo como um nível superior, não pode ser aplicado em uma agregação de intervalo pai ... :(

E isso é apenas na visualização de série temporal, não há script de balde nas visualizações padrão.

Nossos casos de uso específicos requerem ambos, e parece que nenhum é compatível - nem mesmo no 6.x (rc)
Existem planos para isso?

Em nossos casos de uso, cada documento tem campos de tipo de data de hora de início e hora de término, e precisamos gerar uma duração geral entre os baldes desses, agrupados em algum campo de categoria.
Isso envolve primeiro o bucketing nessa categoria, então dentro disso fazendo 2 métricas: min (start-time) e nax (end-time) dos documentos em cada bucket, então aplicando um pipeline-script-bucket agg que usa essas 2 metric- aggs para calcular a duração entre eles (max_end_time - min_start_time). Isso nos dá uma métrica de 'duração' como a saída de cada intervalo. Em seguida, queremos aplicar alguns aggs de pipeline de métrica neles.

Uma estrutura quase idêntica foi detalhada aqui: https://discuss.elastic.co/t/kibana-5-4-bucket-script-visualization/86475

Consegui expressar isso na consulta-DSL, e já estamos usando em produção - mas não podemos visualizar isso em Kibana - o que REALMENTE é uma merda, pois nossos clientes vêm solicitando essas visualizações há anos, e nós ' sempre disse a eles 'precisamos de suporte de versões posteriores, para agregações de pipeline' ...
Bem, agora temos aqueles - mas na verdade, não ...
No construtor de série temporal, temos agregação de pipeline de script de balde que pode ser expressa, mas não pode consumir / ser aplicada em uma agregação de termo de balde pai e, na outra visualização, temos a agregação de termo de balde. agregações, e algumas agregações pipeline-metric, mas não a agregação de pipeline de script de balde necessária para expressar isso ...

Existe uma solução alternativa usando algum "JSON avançado" que eu possa colocar minha DSL de consulta lá?

Apenas adicionando meu caso de uso conforme solicitado nesta pergunta :

Meu índice contém o seguinte tipo de documento (que representa execuções de teste):

  • id do teste (string)
  • sucesso (booleano)
  • versão do software

Quero construir o seguinte histograma:

  • No eixo X: versões
  • No eixo Y: número de testes exclusivos, empilhados em sucesso / falha

O mesmo id de teste pode ser executado várias vezes na mesma versão com resultados diferentes: deve ser contado como sucesso se for bem sucedido uma vez.

Eu realmente espero que isso seja implementado, pois este é um obstáculo definitivo para nós.

Apenas adicione "Bucket Script Aggregation" ou "Custom Aggregation" como uma opção nas visualizações normais. Deve ser fácil, assim como a outra agregação, mas sem adicionar qualquer conteúdo no corpo da agregação (apenas o json fornecido pelo usuário)

Para qualquer pessoa interessada em um exemplo de uso desse recurso no TSVB, aqui está uma postagem relevante no fórum: https://discuss.elastic.co/t/weighted-average-in-a-datatable-of-kibana/185909/2.

O recurso solicitado NÃO está pronto (!) NÃO se tratava de TSVB, mas para os outros tipos de visualização regulares (!) (Gráficos de barras e similares). Estamos agora no 6.4 e AINDA NÃO PODEMOS FAZER O QUE PRECISAMOS. Também não está no 7.x ASAIK.
Novamente, trata-se de poder escolher "Script de intervalo" em gráficos de barras (NÃO está disponível lá) e fazer isso em QUALQUER nível aninhado da agregação geral.
Também precisaríamos de um "Filtro de Bucket" BTW, para poder filtrar os buckets que saem dessa agregação por meio de um script curto.

CC @ elastic / kibana-app

O recurso 'Calcular' só pode fazer um script de intervalo como um nível superior, não pode ser aplicado em uma agregação de intervalo pai ... :(

E isso é apenas na visualização de série temporal, não há script de balde nas visualizações padrão.

Nossos casos de uso específicos requerem ambos, e parece que nenhum é compatível - nem mesmo no 6.x (rc)
Existem planos para isso?

Em nossos casos de uso, cada documento tem campos de tipo de data de hora de início e hora de término, e precisamos gerar uma duração geral entre os baldes desses, agrupados em algum campo de categoria.
Isso envolve primeiro o bucketing nessa categoria, então dentro disso fazendo 2 métricas: min (start-time) e nax (end-time) dos documentos em cada bucket, então aplicando um pipeline-script-bucket agg que usa essas 2 metric- aggs para calcular a duração entre eles (max_end_time - min_start_time). Isso nos dá uma métrica de 'duração' como a saída de cada intervalo. Em seguida, queremos aplicar alguns aggs de pipeline de métrica neles.

Uma estrutura quase idêntica foi detalhada aqui: https://discuss.elastic.co/t/kibana-5-4-bucket-script-visualization/86475

Consegui expressar isso na consulta-DSL, e já estamos usando em produção - mas não podemos visualizar isso em Kibana - o que REALMENTE é uma merda, pois nossos clientes vêm solicitando essas visualizações há anos, e nós ' sempre disse a eles 'precisamos de suporte de versões posteriores, para agregações de pipeline' ...
Bem, agora temos aqueles - mas na verdade, não ...
No construtor de série temporal, temos agregação de pipeline de script de balde que pode ser expressa, mas não pode consumir / ser aplicada em uma agregação de termo de balde pai e, na outra visualização, temos a agregação de termo de balde. agregações, e algumas agregações pipeline-metric, mas não a agregação de pipeline de script de balde necessária para expressar isso ...

Existe uma solução alternativa usando algum "JSON avançado" que eu possa colocar minha DSL de consulta lá?

@ArnonMarcus você foi capaz de fazer isso. Tenho requisitos semelhantes, mas não consegui descobrir como implementar no Kibana. Atualmente estou na versão 6.7.1

Não ... Ainda é um problema em aberto.

Da minha perspectiva como cientista de dados, a habilidade de fazer matemática básica, por exemplo, proporções em consultas de agregação, (isso é chamado de Agregação de Script de Bucket em Elastic speak) em Visualizações e Mapas é uma grande limitação de toda a plataforma Kibana

No lado positivo, você pode obter essa funcionalidade criando visualizações e mapas personalizados do Vega. O único problema com esse método é que você está limitado a exibir 10.000 valores em suas visualizações, o que é bastante limitante para a criação de uma espécie de gráfico de dispersão ou mapa com muitos dados.

+1

+1

Um caso de uso para esse recurso é contornar o Elasticsearch por não ter uma opção não negativa para agregação derivada, de modo que os gráficos possam acabar mostrando valores derivados negativos (após reinicializações intencionais do servidor): https://github.com/elastic/elasticsearch/issues / 15542

+1

Este é um recurso muito solicitado pelos usuários, semelhante a https://github.com/elastic/kibana/issues/17544.

Existem planos para implementar isso?

Seria bom !

+1

+1

Estou atrasado para esta festa, então minha decepção é recente.

Há alguns dias, criei o tópico do fórum de discussão Elastic " Visualize um valor calculado a partir da soma por intervalo de um campo dividido pela soma por intervalo de outro? " (Desculpe o título prolixo).

Logo depois, descobri esse problema e, tardiamente, percebi por que não conseguia descobrir como fazer isso nas visualizações Kibana "padrão" ☹️.

Respondi ao meu próprio tópico do fórum, citando esse problema e mostrando exemplos básicos de como usar scripts de bucket em TSVB e - acho que é por isso que estou postando este comentário, caso seja útil para alguém - Vega-Lite.

Esperando este recurso desejado, uma alternativa para a visualização da tabela de dados é usar o plugin da comunidade «tabela aprimorada» e seu recurso de «colunas computadas»:
https://github.com/fbaligand/kibana-enhanced-table

Esta página foi útil?
0 / 5 - 0 avaliações

Questões relacionadas

Ginja picture Ginja  ·  3Comentários

cafuego picture cafuego  ·  3Comentários

MaartenUreel picture MaartenUreel  ·  3Comentários

ctindel picture ctindel  ·  3Comentários

mark54g picture mark54g  ·  3Comentários