You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Kibana(Elastic)中过滤夜间时段统计工作时间异常数

在Kibana中过滤多日数据的工作时段(05:00-21:00)

针对多日场景下过滤夜间时段(00:00-05:00)、仅保留工作时段数据的需求,有两种高效实现方式:

方法一:创建脚本字段后过滤

  1. 进入Discover页面,打开对应索引模式的字段管理
  2. 新增脚本字段,命名为is_work_hour
  3. 填入Painless脚本(替换@timestamp为你的实际时间字段):
LocalDateTime dt = doc['@timestamp'].value.toLocalDateTime();
int hour = dt.getHour();
return hour >= 5 && hour <= 21;
  1. 保存字段后,回到Discover添加过滤器:is_work_hour: true,即可过滤所有日期的工作时段数据

方法二:直接使用脚本过滤器(无需预创建字段)

在Discover的搜索栏中直接输入以下Lucene脚本查询,执行后即可生效:

{
  "script": {
    "script": {
      "source": "doc['@timestamp'].value.toLocalDateTime().getHour() >=5 && doc['@timestamp'].value.toLocalDateTime().getHour() <=21",
      "lang": "painless"
    }
  }
}

时区适配提示

如果需要基于本地时区而非UTC判断时段,修改脚本为(以北京时间为例):

ZonedDateTime zdt = doc['@timestamp'].value.atZone(ZoneId.of('Asia/Shanghai'));
int hour = zdt.getHour();
return hour >=5 && hour <=21;

替换Asia/Shanghai为你的目标时区ID即可。

内容的提问来源于stack exchange,提问作者Nux

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.30 01:09:55