我在 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
几乎是我所需要的......只不过它只支持国家和货币。
有没有办法进行这种映射?
按指标源级别对其进行排序:
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 版本,但您可能有不同的版本,其中可以有不同的实现/名称/...