Loki 分别显示日志消息和额外字段

Dm3*_*3Ch 14 grafana grafana-loki

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

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

我搜索了文档,但没有找到如何实现这一目标。老实说,我正在 ELK 中寻找类似“短信”的东西,让开发人员仅在真正需要时才能看到元数据。您能否指出文档如何实现这一目标?

Dm3*_*3Ch 24

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

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

长答案:

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

设置消息视图格式 但是如果您打开消息详细信息,您无论如何都会看到所有 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 }}"
Run Code Online (Sandbox Code Playgroud)

日志视图,字段预览在单独的行上

  • 让我们通过更改字体选项来提高消息的可读性。

为了实现这一点,我们将使用 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 }}"
Run Code Online (Sandbox Code Playgroud)

为日志消息和额外字段预览着色 您可以看到|= "HornetQ"最后一个查询中缺少该部分,因为它破坏了最后一个查询(带有着色),所以我跳过它。

PS 所以目前我的解决方案不适用于全文搜索:(