Kibana信息中心上的趋势指标,可以吗?

时间:2019-02-12 16:20:22

标签: elasticsearch kibana dashboard metrics

我想在kibana仪表板中创建一个指标,该指标使用多个指标的比率和偏移时间。

示例:

日期预算

YYYY-MM-DD $

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的比率。

要恢复:(sum(10 + 12 + 4)-sum(15 + 10 + 5))/ sum(10 + 12 + 4)= -0.15 我的预算演变为-15%(这就是我要在信息中心中打印的内容)

但是,对于度量标准,这是不可能的(无偏移),对于可视化构建器:不同的度量标准聚合不会具有不同的偏移量(太糟糕了,因为存储区脚本允许计算比率),而对于vega:我也找不到解决方案。

有什么主意吗?非常感谢

奥瑞莲

注意:我使用的是kibana版本> 6.X

1 个答案:

答案 0 :(得分:0)

请检查以下示例映射,该示例映射是根据您想在查询和聚合解决方案中提供的数据构建的。

映射:

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部分中。

希望这会有所帮助!