为何Promtail与Grafana无需多行处理即可正常显示堆栈跟踪日志?
原因分析
日志本身是完整的JSON单条目:你的日志以JSON格式存储,每条
event="Unhandled exception"的日志是一个独立的JSON对象,其中exception字段的多行堆栈内容是JSON字符串的一部分(即使包含换行符)。Promtail在采集时,会按完整的JSON对象来识别单条日志,不会因为字段内的换行将其拆分为多条。Promtail默认适配JSON日志:Promtail对JSON格式的日志有原生支持,默认会把整个JSON结构当作一条日志条目处理,无需额外配置多行合并——多行合并规则仅针对行式纯文本日志(即每行原本属于同一条日志的内容被拆分成了多行文件行)的场景。
Grafana保留字段内的换行格式:Grafana在解析并展示JSON日志的字段内容时,会保留字符串中的换行符,因此
exception字段里的堆栈跟踪会以多行形式完整展示,不会被拆分成独立的日志条目。
内容的提问来源于stack exchange,提问作者ArkanSaaS
相关产品推荐
相关产品推荐

