4

https://github.com/grafana/loki/issues/4249我发现了有趣的截图。 在此处输入图像描述

在此屏幕截图中,我看到日志级别和消息以粗体显示,白色文本和其他元数据(从日志消息中收集)以灰色显示在单独的行上。

我搜索了文档,但没有找到如何实现这一点。老实说,我正在 ELK 中寻找类似“短消息”的东西,以使开发人员仅在真正需要元数据时才能看到元数据。你能指点我如何实现这一点吗?

4

1 回答 1

3

简短回答:我发现 Grafana UI 中没有这样的 UI 功能。但是有两个功能可以帮助您实现这样的结果:

  1. 行格式 - 允许您仅显示消息的选定部分
  2. ANSI 转义序列渲染 - 允许您更改字体设置(粗体/斜体/颜色)

长答案:

  • 这是我的初始测试查询(仅显示具有“HornetQ”的消息){appname=~".+"} |= "HornetQ"它产生以下输出。 初始日志视图
  • 我在查询中添加了行格式,默认情况下只显示消息字段
{appname=~".+"} |= "HornetQ"
  | json
  | line_format "{{ .message }}"

格式化消息视图 但是,如果您打开消息详细信息,无论如何您都会看到所有 json 字段 格式化消息详情视图

  • 让我们添加修改行格式以在单独的行上显示额外字段的预览。

我们将使用pattern '<_entry>'保存初始 json 以供进一步处理。我们也将使用 gotpl 循环line_formatif这将跳过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所以现在我的解决方案不适用于全文搜索:(

于 2021-11-17T08:23:33.443 回答