在 Grafana 中,如何将标签从 Prometheus 映射到一组不同的(更用户友好的)值?

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

我在 Grafana 中有一个表格/图表,是根据 Prometheus 数据构建的。看起来像这样:

instance_id
是Prometheus中的一个标签,可以看到标签中的值都是整数,例如
10569
8891

我想将这些整数映射到用户友好的值,以便我们的非技术用户可以更好地理解仪表板。例如我希望结局是这样的:

因此,当标签的值为

10569
时,它会显示
Paul
,当标签的值为
8891
时,它会显示
Keith
,等等等等。其他整数值。

有没有办法可以在 Grafana 中进行此映射?我没有能力更改标签,但是我可以轻松地例如设置 XML 或 JSON 端点或提供类似地图的内容:

10569: Paul
8891: Keith
etc. etc. etc. 

甚至可能每晚通过 CI/CD 将该列表推送到 Grafana。

看起来 Grafana 插件

Field lookup
几乎是我所需要的......只不过它只支持国家和货币。

有没有办法进行这种映射?

prometheus grafana
1个回答
0
投票

按指标源级别对其进行排序:

a.) 将

name
标签推送到该指标中,以便您可以直接从 Grafana 查询和使用它

b.)有时会使用额外的

_info
指标,该指标仅具有“元数据”(例如您案例中的名称)。然后可以在 PromQL 查询级别上使用它,将数据指标查询与元数据指标查询结合起来,例如:

aws_ec2_cpuutilization_average 
+ 
on (name) group_left(tag_Name) aws_ec2_info

在 Grafana 级别对其进行排序:

可以有多种选择,但恕我直言,加入转型是最好的选择。您需要 2 个查询(指标和元数据),它们将具有公共字段(例如

instance_id
),用于在 Grafana 级别连接它们。 该元数据查询可以通过多种方式实现。恕我直言,最简单的方法是使用TestData类型数据源,您可以直接在查询级别定义
CSV content
(以正确的格式,例如
instance_id,name
)=您不需要将任何内容保存到真正的TSDB中,并且您可以随时在仪表板级别编辑它的元数据(当然,您可能有不同的用例,其中instance_ids非常动态,然后这个“硬编码”选项不是最好的选择 - 这只是如何对其进行排序的一般想法 - 实际的实现取决于关于您的要求,这些要求未在问题中发布)。

请阅读适用于您的特定 Grafana 版本的 Grafana 文档以了解更多详细信息。提供的链接适用于最新的 Grafana 版本,但您可能有不同的版本,其中可以有不同的实现/名称/...

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