elasticsearch - 为两天之间字段的百分位数差异创建一个 Elastic Watcher
问题描述
我无法在特定日期范围内执行嵌套聚合。
理想情况下,我想获得前一天和当天的两个字段的 % 值。这是 JSON(这是弹性观察器的一部分,而不是整个配置):
{
"metadata":{
"threshold":5,
"interval":"2m",
"window":"2d"
},
"trigger":{
"schedule":{
"interval":"2m"
}
},
"input":{
"search":{
"request":{
"indices":[
"filebeat-*"
],
"types":[
"doc"
],
"body": {
"aggs": {
"aggs1": {
"range": {
"date_range": {
"ranges": [
{
"from": "now-2d/d"
},
{
"to": "now-2d/d"
}
]
},
"aggs": {
"max": {
"script": {
"source": "(doc['upstream'].value\/100)"
}
}
}
}
},
"aggs2": {
"range": {
"date_range": {
"ranges": [
{
"from": "now-2d/d"
},
{
"to": "now-2d/d"
}
]
}
},
"aggs": {
"max": {
"script": {
"source": "(doc['downstream'].value\/100)"
}
}
}
},
"aggs3": {
"range": {
"date_range": {
"ranges": [
{
"from": "now-1d/d"
},
{
"to": "now/d"
}
]
}
},
"aggs": {
"max": {
"script": {
"source": "(doc['upstream'].value\/100)"
}
}
}
},
"aggs4": {
"range": {
"date_range": {
"ranges": [
{
"from": "now-1d/d"
},
{
"to": "now/d"
}
]
}
},
"aggs": {
"max": {
"script": {
"source": "(doc['downstream'].value\/100)"
}
}
}
}
},
"query": {
"bool": {
"filter": {
"range": {
"@timestamp": {
"lte": "now",
"gte": "now-{{ctx.metadata.window}}"
}
}
}
}
}
}
}
}
}
}
我想要的只是为当天和前一天的两个字段设置 4 个值,以便我可以获得这些值之间的差异以进行进一步处理。
谢谢。
解决方案
推荐阅读
- c# - 处理泛型方法时无法进行适当的抽象(C#)
- airflow - 气流在每个批次的循环中运行任务
- javascript - 你能同时运行 Transcrypt 和 JavaScript 吗?
- python - 如何使用 inverse_transform 缩减目标变量
- .net - 某个版本(2012、2016 等)的 SQL Server Feature Pack 能否与较低版本的 SQL Server 一起使用?
- oracle - Oracle:在非引用表上按引用创建分区(partition by reference(fk))
- bazel - 基于 --config 有条件地创建一个 Bazel 规则
- dbt - dbt 无法创建具有相同数据库表示的两个资源
- c++ - 在不重载的情况下确定 Visual Studio 2008 中模板参数的类型
- python - 从熊猫中的列的数组类型中提取值