从 logstash 中的时间戳中提取特定时间字段
Extract specific time field from timestamp in logstash
我有一个自动生成的默认格式的@timestamp。我想要的是提取时间戳的 hour/month/weekday 并将其放在另一个字段中。
例如,现在我的时间戳如下所示:
@timestamp: "2015-08-26T09:04:42.284Z"
有什么办法可以得到以下字段吗?
- 小时: 09(或 9)?采用数字格式。
- 月: 08(or 8, or Aug, August...) 数字或字符串格式。
- 工作日:周一、周二、周三……
我希望它根据 hour/day 连接制作一个 kibana4 直方图,使用平均指标。如果有其他方法可以实现,请告诉我!
我已经在网上搜索了所有的问题,但找不到任何解决方案。如果对此有任何帮助,我将不胜感激。
终于想通了。
您可以使用符号 %{}
来做到这一点。只需输入:
add_field => {"[hour]" => "%{+HH}"}
add_field => {"[weekday]" => "%{+EEE}"}
Here 是要使用的符号参考。
就是这样!
%{+HH} 值取自@timestamp。
使用 UTC 的时间戳。
如果您想要本地时间的小时数,则需要使用 ruby 过滤器。
ruby {
code => "tstamp = event.get('logdatetime').to_i
event.set('logdatetime', Time.at(tstamp).strftime('%Y-%m-%d %H:%M:%S'))
event.set('logdate', Time.at(tstamp).strftime('%Y-%m-%d'))"
}
来自:
https://altinity.com/blog/2017/12/18/logstash-with-clickhouse
我有一个自动生成的默认格式的@timestamp。我想要的是提取时间戳的 hour/month/weekday 并将其放在另一个字段中。
例如,现在我的时间戳如下所示:
@timestamp: "2015-08-26T09:04:42.284Z"
有什么办法可以得到以下字段吗?
- 小时: 09(或 9)?采用数字格式。
- 月: 08(or 8, or Aug, August...) 数字或字符串格式。
- 工作日:周一、周二、周三……
我希望它根据 hour/day 连接制作一个 kibana4 直方图,使用平均指标。如果有其他方法可以实现,请告诉我!
我已经在网上搜索了所有的问题,但找不到任何解决方案。如果对此有任何帮助,我将不胜感激。
终于想通了。
您可以使用符号 %{}
来做到这一点。只需输入:
add_field => {"[hour]" => "%{+HH}"}
add_field => {"[weekday]" => "%{+EEE}"}
Here 是要使用的符号参考。
就是这样!
%{+HH} 值取自@timestamp。 使用 UTC 的时间戳。
如果您想要本地时间的小时数,则需要使用 ruby 过滤器。
ruby { code => "tstamp = event.get('logdatetime').to_i event.set('logdatetime', Time.at(tstamp).strftime('%Y-%m-%d %H:%M:%S')) event.set('logdate', Time.at(tstamp).strftime('%Y-%m-%d'))" }
来自: https://altinity.com/blog/2017/12/18/logstash-with-clickhouse