grafana 面板中使用模板表达式的自定义图例不起作用

问题描述 投票:0回答:1

我有一个 grafana v10.2.2 仪表板时间序列面板,我正在努力自定义其上的图例。

根据文档,我可以使用如下模板来自定义显示的值,但我得到的是展位结果。

所用表达:

{{ if eq "1" "2" }} true {{ else }} false {{ end }}

结果:

我的实际用例是显示标签值

app
(如果已定义)或固定值“未知”(如果不存在)。

我用

if
unless
块进行了尝试,但似乎没有一个功能起作用,功能块被忽略了。

感谢您分享对此的任何想法。

grafana go-templates grafana-loki
1个回答
1
投票

让我们尝试实现真实案例:

My practical use case is to show a label value app if it is defined or the fixed value "Unknown" when it's absent.

让我们将其转换为:

app
标签应具有原始应用程序标签值,或者如果
app
标签不存在,则
app
标签应具有值
Unknown

参见链接文档:

|中使用的文本模板格式行格式和 | label_format 支持函数的使用。

所以这不是Grafana功能(不是Grafana的时间序列

Legend
字段,看起来你已经使用过),而是Loki查询功能并且必须在LogQL查询中应用。

例如:

{
  selector=~".+"
}
| json
| label_format app="{{ if .app }}{{ .app }}{{ else }}Unknown{{ end }}"

示例查询可能需要一些调整(如果有任何语法问题,...)

当然,真正的查询取决于您真实日志的格式。只需查看如何在

label_format
中使用上述模板的示例即可。只需使用 Grafana 时间序列
app
字段中的
Legend
标签(如
{{app}}
)。

© www.soinside.com 2019 - 2024. All rights reserved.