How can I sort the legend by series name in Prometheus/Grafana

15,377

As far as I know, You can only use the function sort() to sort metrics by value.

  • According to this PR, Prometheus does not intend to provide the function sort_by_label().
  • According to this Issue, Grafana displays the query results from Prometheus without sorting.
  • According to this Issue, Grafana supports sorting by value when displaying legend.

In Grafana 7, Prometheus metrics can be transformed from time series format to table format using the Transform module, so that you can sort the metrics by any label or value.

Share:
15,377
MidnightJava
Author by

MidnightJava

Updated on July 19, 2022

Comments

  • MidnightJava
    MidnightJava about 3 hours

    I have a Grafana dashboard panel configured to render the results of a Prometheus query. There are a large number of series returned by the query, with the legend displayed to the right. If the user is looking for a specific series, they have to potentially scroll through all of them, and it's easy to miss the one they're looking for. So I'd like to sort the legend by series name, but I can't find any way to do that.

    My series name is a concatenation of two labels, so if I could sort the instant vector returned from the PromQL query by label value, I think Grafana would use that order in the legend. But I don't see any way to do that in Prometheus. There is a sort() function, but it sorts by sample value. And I don't see any way to sort the legend in Grafana.

  • Patrick Szalapski
    Patrick Szalapski over 1 year
    So after I have used a Transform to get a table, how do I choose which columns of the table I want to sort on?
  • Admin
    Admin over 1 year
    Just like a regular table, you can click on the column name of the table and it will be sorted in ascending or descending order. In addition, Transform supports changing column names, filtering, and calculating statistics.