如何在 Prometheus/Grafana 中按系列名称对图例进行排序
How can I sort the legend by series name in Prometheus/Grafana
我有一个配置为呈现 Prometheus 查询结果的 Grafana 仪表板面板。查询返回大量series,图例显示在右侧。如果用户正在寻找一个特定的系列,他们可能不得不滚动浏览所有系列,并且很容易错过他们正在寻找的系列。所以我想按系列名称对图例进行排序,但找不到任何方法。
我的系列名称是两个标签的串联,因此如果我可以按标签值对从 PromQL 查询返回的即时向量进行排序,我认为 Grafana 会在图例中使用该顺序。但我看不到在 Prometheus 中有任何方法可以做到这一点。有一个 sort() 函数,但它按样本值排序。而且我看不出有任何方法可以对 Grafana 中的图例进行排序。
据我所知,您只能使用函数 sort()
按值对指标进行排序。
在 Grafana 7 中,可以使用 Transform 模块将 Prometheus 指标从时间序列格式转换为 table 格式,以便您可以按任何标签或值对指标进行排序。
Prometheus 不支持按 . If you still need sorting results by metric name or by arbitrary set of labels, then take a look at VictoriaMetrics. It provides sort_by_label and sort_by_label_desc 函数中提到的系列名称对结果进行排序。例如,以下查询按指标名称对 query
返回的时间序列进行排序:
sort_by_label(query, "__name__")
__name__
指的是指标名称。有关详细信息,请参阅 these docs。
我有一个配置为呈现 Prometheus 查询结果的 Grafana 仪表板面板。查询返回大量series,图例显示在右侧。如果用户正在寻找一个特定的系列,他们可能不得不滚动浏览所有系列,并且很容易错过他们正在寻找的系列。所以我想按系列名称对图例进行排序,但找不到任何方法。
我的系列名称是两个标签的串联,因此如果我可以按标签值对从 PromQL 查询返回的即时向量进行排序,我认为 Grafana 会在图例中使用该顺序。但我看不到在 Prometheus 中有任何方法可以做到这一点。有一个 sort() 函数,但它按样本值排序。而且我看不出有任何方法可以对 Grafana 中的图例进行排序。
据我所知,您只能使用函数 sort()
按值对指标进行排序。
在 Grafana 7 中,可以使用 Transform 模块将 Prometheus 指标从时间序列格式转换为 table 格式,以便您可以按任何标签或值对指标进行排序。
Prometheus 不支持按 query
返回的时间序列进行排序:
sort_by_label(query, "__name__")
__name__
指的是指标名称。有关详细信息,请参阅 these docs。