Метрика трендов на Kibana Dashboard, это возможно? - PullRequest
0 голосов
/ 12 февраля 2019

Я хочу создать метрику в информационной панели kibana, в которой используется соотношение нескольких метрик и периода смещения.

Пример:

Дата Бюджет

ГГГГ-ММ-ДД$

2019-01-01 15

2019-01-02 10

2019-01-03 5

2019-01-04 10

2019-01-05 12

2019-01-06 4

Если я выберу временной интервал между 2019-01-04 и 2019-01-06, я хочувычислить коэффициент с периодом смещения: с 2019-01-01 по 2019-01-03.

для возобновления: (сумма (10 + 12 + 4) - сумма (15 + 10 + 5)) / сумма (10+ 12 + 4) = -0,15 эволюции моего бюджета, равного -15% (и это то, что я хочу напечатать на панели инструментов)

Но с метрикой это невозможно (без смещения), с визуальнымстроитель: разные агрегации метрик не имеют разного смещения (очень плохо, потому что скрипт ведра позволяет вычислять соотношение), и с vega: я тоже не нашел решения.

Есть идеи?Большое спасибо

Aurélien

Примечание: я использую версию kibana> 6.X

1 Ответ

0 голосов
/ 13 февраля 2019

Пожалуйста, ознакомьтесь с приведенным ниже примером сопоставления, которое я построил на основе данных, предоставленных вами в решении для запросов и агрегирования, которое вы хотели посмотреть.

Отображение:

PUT <your_index_name>
{
  "mappings": {
    "mydocs": {
      "properties": {
        "date": {
          "type": "date",
          "format": "yyyy-MM-dd"
        },
        "budget": {
          "type": "float"
        }
      }
    }
  }
}

Агрегация

Я использовал следующие типы агрегации:

Также я предполагаю, что формат даты будет yyyy-MM-dd, а budget будет иметь тип данных float.

Ниже приведен запрос агрегации.

POST <your_index_name>/_search
{
  "size": 0,
  "query": {
    "range": {
      "date": {
        "gte": "2019-01-01",
        "lte": "2019-01-06"
      }
    }
  },
  "aggs": {
    "my_date": {
      "date_histogram": {
        "field": "date",
        "interval": "4d",
        "format": "yyyy-MM-dd"
      },
      "aggs": {
        "sum_budget": {
          "sum": {
            "field": "budget"
          }
        },
        "budget_derivative": {
          "derivative": {
            "buckets_path": "sum_budget"
          }
        },
        "budget_evolution": {
          "bucket_script": {
            "buckets_path": {
              "input_1": "sum_budget",
              "input_2": "budget_derivative"
            },
            "script": "(params.input_2/params.input_1)*(100)"
          }
        }
      }
    }
  }
}

Обратите внимание, что искомый результат будет в части budget_evolution.

Надеюсь, это поможет!

...