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