elasticsearch Kibana:将结果限制在最后5分钟,elasticsearch,kibana,elasticsearch,Kibana" /> elasticsearch Kibana:将结果限制在最后5分钟,elasticsearch,kibana,elasticsearch,Kibana" />

elasticsearch Kibana:将结果限制在最后5分钟

elasticsearch Kibana:将结果限制在最后5分钟,elasticsearch,kibana,elasticsearch,Kibana,我的Kibana仪表板上有一个实时访客计数器。为了实现这一点,我在IP地址上创建了一个唯一的计数,并将查询结果限制在最后5分钟内: @timestamp:now-5m 这是从几个月前开始的。我不知道Kibana中是否发生了变化,至少@timestamp字段仍然存在,但“now-5m”语法似乎不再有效。结果集始终为空 有人能为我提供关于如何使用Kibana可视化创建实时访客计数器的正确查询或替代解决方案吗 下面是基本查询: "query": { "bool&qu

我的Kibana仪表板上有一个实时访客计数器。为了实现这一点,我在IP地址上创建了一个唯一的计数,并将查询结果限制在最后5分钟内:

@timestamp:now-5m
这是从几个月前开始的。我不知道Kibana中是否发生了变化,至少@timestamp字段仍然存在,但“now-5m”语法似乎不再有效。结果集始终为空

有人能为我提供关于如何使用Kibana可视化创建实时访客计数器的正确查询或替代解决方案吗

下面是基本查询:

"query": {
  "bool": {
    "must": [],
    "filter": [
      {
        "bool": {
          "should": [
            {
              "range": {
                "@timestamp": {
                  "gte": "now-5m",
                  "lte": "now-5m",
                  "time_zone": "Europe/Berlin"
                }
              }
            }
          ],
          "minimum_should_match": 1
        }
      },
      {
        "range": {
          "@timestamp": {
            "format": "strict_date_optional_time",
            "gte": "2020-08-27T22:00:00.000Z",
            "lte": "2020-08-28T21:59:59.999Z"
          }
        }
      }
    ],
    "should": [],
    "must_not": []
  }
},

我认为问题在于:

"gte": "now-5m",
"lte": "now-5m",
这可能是:

"gte": "now-5m",
"lte": "now", 

但是如何在查询字段中实现这一点呢?

好的,您需要切换到Lucene表达式语言,然后只需编写以下代码:

@timestamp:[now-5m TO now]
它定义了一个
范围
查询


另一个(更好的)解决方案是使用“is-between”操作符创建一个过滤器(添加过滤器),而不是将查询写入搜索栏。它将更好地工作,您可以在搜索栏中使用KQL。

好的,您需要切换到Lucene表达式语言,然后只需编写以下代码:

@timestamp:[now-5m TO now]
它定义了一个
范围
查询


另一个(更好的)解决方案是使用“is-between”操作符创建一个过滤器(添加过滤器),而不是将查询写入搜索栏。它会工作得更好,您可以在搜索栏中使用KQL。

是什么让您认为它不再工作了?您可以分享任何错误吗?底层查询看起来如何(从Inspect获取)?@Val感谢您的提示,Inspect提供了更多信息。我相应地更新了我的问题。为什么在同一个领域有两个不同的限制?第二个来自时间选择器,第一个是自定义的?你是怎么指定的?通过过滤器?Kibana正在创建这些约束。第一个是我的过滤器,用于获取访客计数器最后5分钟的结果,第二个是来自Kibana仪表板,用于显示所有可视化的当天结果。我在Kibana中使用“发现”查询。请看我更新的问题中的屏幕截图。是什么让你认为它不再有效?您可以分享任何错误吗?底层查询看起来如何(从Inspect获取)?@Val感谢您的提示,Inspect提供了更多信息。我相应地更新了我的问题。为什么在同一个领域有两个不同的限制?第二个来自时间选择器,第一个是自定义的?你是怎么指定的?通过过滤器?Kibana正在创建这些约束。第一个是我的过滤器,用于获取访客计数器最后5分钟的结果,第二个是来自Kibana仪表板,用于显示所有可视化的当天结果。我在Kibana中使用“发现”查询。请参阅我更新的问题中的屏幕截图。我得到了KQL查询的错误:[esaggs]>应为“(”,值,空格,但“>”找到。timestamp:>=now-5m和timestamp:Hmmm,是的,对了,你能试着切换到Lucene查询语言而不是KQL吗?成功了,非常感谢!所以解决方案是切换到Lucene查询语言并使用“[now-5m to now]”表达式。奇怪的是之前的语法突然停止工作。另一个(更好)解决方案是使用“is-between”操作符创建一个过滤器(添加过滤器),而不是将查询写入搜索栏。这样会更好,您可以在搜索栏中使用KQL。我得到了KQL查询的错误:[esaggs]>预期“(”,值,空白,但“>”找到。timestamp:>=now-5m和timestamp:Hmmm,是的,对了,你能试着切换到Lucene查询语言而不是KQL吗?成功了,非常感谢!所以解决方案是切换到Lucene查询语言并使用“[now-5m to now]”表达式。奇怪的是之前的语法突然停止工作。另一个(更好)解决方案是用“is-between”操作符创建一个过滤器(Add-filter),而不是将查询写入搜索栏。这样效果更好,您可以在搜索栏中使用KQL。