我一直在努力获得正确的格式来处理promtail配置中的时间戳。
日志的格式:
2022-08-02 16:46:02.141 content
我的promtail配置:
pipeline_stages:
- multiline:
firstline: '^\d{4}-\d{2}-\d{2}'
max_wait_time: 10s
- regex:
expression: '(?P<time>\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2},\d{3})(.*)$'
- labels:
time:
- timestamp:
source: time
format: 2006-01-02 15:04:05,999
使用这个conf,我仍然会在Grafana中得到值不正确的"ts“字段(该值与来自日志的值不匹配)。我不知道这种格式是否正确,我尝试了许多组合,但都没有像预期的那样工作。在go操场上,这个值被解析为"2022-08-02 16:46:02.141 +0000 UTC“,没有错误--可以吗?如何使grafana中的ts值与日志中的值相同?
昨天我尝试了调试模式,在promtail日志中出现了错误,如下所示:
level=error ts=2022-08-03T12:37:14.977444831Z caller=client.go:380 component=client host=localhost:3100 msg="final error sending batch" status=400 error="server returned HTTP status 400 Bad Request (400): entry for stream '{filename=\"/opt/loki/my.log\", job=\"varlogs\", stream=\"stdout\", time=\"2022-08-03 14:38:49,150\"}' has timestamp too new: 2022-08-03T14:38:49Z"
我认为loki可以处理这个问题(默认情况下是unordered_writes),这是我的格式问题还是loki问题?
任何帮助都将不胜感激。
发布于 2022-08-03 13:49:40
我想出来了,这个https://github.com/grafana/loki/issues/2639帮了我很多忙。这一切都是关于在时间戳阶段的位置。
- timestamp:
source: time
format: 2006-01-02 15:04:05,999
location: "Europe/Berlin"
https://stackoverflow.com/questions/73211167
复制相似问题