【发布时间】:2020-12-17 04:17:22
【问题描述】:
我的 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",
但是如何在查询字段中实现这一点呢?
【问题讨论】:
-
是什么让您认为它不再起作用了?您可以分享任何错误吗?底层查询的外观如何(从 Inspect 获取)?
-
@Val 感谢您的提示,检查提供了更多信息。我相应地更新了我的问题。
-
为什么同一个字段有两个不同的约束?第二个来自时间选择器,第一个是自定义的?你是怎么指定的?通过过滤器?
-
Kibana 正在创建这些约束。第一个是我的过滤器,用于获取访客计数器最后 5 分钟的结果,第二个是来自 Kibana Dashboard 的过滤器,用于显示当天所有可视化的结果。
-
我在 Kibana 中使用“发现”查询。请参阅我更新的问题中的屏幕截图。
标签: elasticsearch kibana