Vega и Kibana - динамическая метка времени и отфильтрованные запросы - PullRequest
6 голосов
/ 07 марта 2019

Я работаю с моей первой визуализацией Vega с Kibana.

{
  $schema: https://vega.github.io/schema/vega-lite/v2.json
  title: Event counts from all indexes

  data: {
    url: {

      %context%: true
      %timefield%: last_submission

      index: test_info

      body: {
        aggs: {
          time_buckets: {
            date_histogram: {

              field: last_submission
              interval: {%autointerval%: true}
              extended_bounds: {
                min: {%timefilter%: "min"}
                max: {%timefilter%: "max"}
              }

              min_doc_count: 0
            }
          }
        }
        size: 0
      }
    }
    format: {property: "aggregations.time_buckets.buckets"}
  }

  mark: line

  encoding: {
    x: {
      field: key
      type: temporal
      axis: {title: false} 
    }
    y: {
      field: doc_count
      type: quantitative
      axis: {title: "Document count"}
    }
  }
}

visualization result

У меня здесь два вопроса.

1 - Поскольку визуализация связана с приборной панелью Kibana, пользователь может выбирать различные временные окна из главной приборной панели.Как видите, этикетки всегда имеют полный формат.Мне нужно динамически установить метку на основе временных окон.То есть показывать только часы, если пользователь выбирает данные дня, показывать дни, если пользователь выбирает данные за неделю, и так далее.Что мне нужно сделать?

2 - мне нужно отфильтровать события по определенному значению поля и использовать временные окна главной панели.Это возможно?Я попытался добавить фильтр запросов здесь, в коде Vega, но если у меня также установлены контекст и временное поле, у меня появляется эта ошибка:

url.% Context% и url.% Timefield% не должныиспользоваться, когда задан url.body.query

...