首页 > 解决方案 > Kibana Dashboard 上的趋势指标,这可能吗?

问题描述

我想在 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

标签: elasticsearchkibanadashboardmetrics

解决方案


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

映射:

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

聚合

我使用了以下类型的聚合:

另外我假设日期格式将是yyyy-MM-dd并且budgetfloat数据类型。

以下是您的聚合查询的方式。

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零件中。

希望这可以帮助!


推荐阅读