在https://github.com/grafana/loki/issues/4249我发现了有趣的截图。
在此屏幕截图中,我看到日志级别和消息以粗体显示,白色文本和其他元数据(从日志消息中收集)以灰色显示在单独的行上。
我搜索了文档,但没有找到如何实现这一点。老实说,我正在 ELK 中寻找类似“短消息”的东西,以使开发人员仅在真正需要元数据时才能看到元数据。你能指点我如何实现这一点吗?
在https://github.com/grafana/loki/issues/4249我发现了有趣的截图。
在此屏幕截图中,我看到日志级别和消息以粗体显示,白色文本和其他元数据(从日志消息中收集)以灰色显示在单独的行上。
我搜索了文档,但没有找到如何实现这一点。老实说,我正在 ELK 中寻找类似“短消息”的东西,以使开发人员仅在真正需要元数据时才能看到元数据。你能指点我如何实现这一点吗?
简短回答:我发现 Grafana UI 中没有这样的 UI 功能。但是有两个功能可以帮助您实现这样的结果:
长答案:
{appname=~".+"} |= "HornetQ"
| json
| line_format "{{ .message }}"
但是,如果您打开消息详细信息,无论如何您都会看到所有 json 字段
我们将使用pattern '<_entry>'
保存初始 json 以供进一步处理。我们也将使用 gotpl 循环line_format
,if
这将跳过message field
{appname=~".+"} |= "HornetQ"
| pattern `<_entry>`
| json
| line_format "{{ .message }}\n{{ range $k, $v := (fromJson ._entry)}}{{if ne $k \"message\"}}{{$k}}: {{$v}} {{ end }}{{ end }}"
为此,我们将使用 ANSI 转义序列(附加信息)
{appname=~".+"}
| pattern `<_entry>`
| json
| line_format "\033[1;37m{{ .message }}\033[0m\n{{ range $k, $v := (fromJson ._entry)}}{{if ne $k \"message\"}}\033[1;30m{{$k}}: \033[0m\033[2;37m{{$v}}\033[0m {{ end }}{{ end }}"
您可以看到|= "HornetQ"
最后一个查询中缺少该部分,因为它破坏了最后一个查询(带有着色),所以我跳过它。
PS所以现在我的解决方案不适用于全文搜索:(