Kibana Dashboard 上的趋势指标,这可能吗?

Trends metric on Kibana Dashboard, it’s possible?

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

如果我 select 时间范围在 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

请检查下面的示例映射,我根据您在查询和聚合解决方案中提供的数据构建了您想要查看的数据。

映射:

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

聚合

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

此外,我假设日期格式为 yyyy-MM-ddbudgetfloat 数据类型。

下面是您的聚合查询。

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

希望对您有所帮助!