找到自己的promtail.yaml中job_name段落,增加multiline段落,下面文件只是部分内容,只需要修改firstline后面的正则表达式匹配日志行首,如果堆栈换行后不是此格式行首,将自动把堆栈的行合并到上一行中,并替换掉两个换行符为一个换行符,让内容显示更紧凑。
# 日志格式样例
2023-10-10 18:31:28.877 INFO 43812 --- [nio-8080-exec-5] .....
- job_name: kubernetes-pods-app
pipeline_stages:
- docker: {}
- multiline:
firstline: '^\d{4}-\d{2}-\d{2}'
max_lines: 128
max_wait_time: 3s
- replace:
expression: (\n\n)
replace: "\n"
最终样式如下
https://stackoverflow.com/questions/70392351/promtail-multiline-does-not-merge-stacktrace