swarm-grafana: sort multi-series bargauge panels by value

Bargauge panels display series in the order the datasource returns them —
Grafana has no native sort for that (long-standing upstream gap, grafana#17245).
The reliable fix is sorting at the PromQL level with sort_desc() on an
instant vector, which forge.json's 'Issues by label' panel already does.
Applies the same pattern to the other 14 multi-series bargauge panels across
agents.json, claude-usage.json, and authelia.json (the latter two also
needed instant: true added, since sort_desc only works on instant vectors).

logstore.json's two VictoriaLogs-backed bargauge panels use LogsQL, not
PromQL, and are left out of this pass — LogsQL's sort-after-stats has a
documented ordering bug in some versions; needs its own verification.
This commit is contained in:
iris 2026-09-18 01:25:29 +02:00 • committed by mara
commit c7f6c33321
3 changed files with 16 additions and 14 deletions

View file

@ -644,7 +644,7 @@
"name": "@datasourceUid@" "name": "@datasourceUid@"
}, },
"spec": { "spec": {
"expr": "sum by (agent) ({__name__=\"hyperhive.container.storage.usage\", hive=~\"$hive\", agent=~\"$agent\"})", "expr": "sort_desc(sum by (agent) ({__name__=\"hyperhive.container.storage.usage\", hive=~\"$hive\", agent=~\"$agent\"}))",
"instant": true, "instant": true,
"legendFormat": "{{agent}}" "legendFormat": "{{agent}}"
} }
@ -795,7 +795,7 @@
"name": "@datasourceUid@" "name": "@datasourceUid@"
}, },
"spec": { "spec": {
"expr": "sum by (agent) (increase({__name__=\"claude_code.active_time.total\", hive=~\"$hive\", agent=~\"$agent\"}[$__range]))", "expr": "sort_desc(sum by (agent) (increase({__name__=\"claude_code.active_time.total\", hive=~\"$hive\", agent=~\"$agent\"}[$__range])))",
"instant": true, "instant": true,
"legendFormat": "{{agent}}" "legendFormat": "{{agent}}"
} }
@ -1209,7 +1209,7 @@
"name": "@datasourceUid@" "name": "@datasourceUid@"
}, },
"spec": { "spec": {
"expr": "sum by (subagent) (increase({__name__=\"claude_code.cost.usage\", hive=~\"$hive\", agent=~\"$agent\", subagent!=\"\"}[$__range]))", "expr": "sort_desc(sum by (subagent) (increase({__name__=\"claude_code.cost.usage\", hive=~\"$hive\", agent=~\"$agent\", subagent!=\"\"}[$__range])))",
"instant": true, "instant": true,
"legendFormat": "{{subagent}}" "legendFormat": "{{subagent}}"
} }
@ -1285,7 +1285,7 @@
"name": "@datasourceUid@" "name": "@datasourceUid@"
}, },
"spec": { "spec": {
"expr": "sum by (agent) (increase({__name__=\"claude_code.cost.usage\", hive=~\"$hive\", agent=~\"$agent\", subagent!=\"\"}[$__range]))", "expr": "sort_desc(sum by (agent) (increase({__name__=\"claude_code.cost.usage\", hive=~\"$hive\", agent=~\"$agent\", subagent!=\"\"}[$__range])))",
"instant": true, "instant": true,
"legendFormat": "{{agent}}" "legendFormat": "{{agent}}"
} }

View file

@ -255,7 +255,8 @@
"type": "prometheus", "type": "prometheus",
"uid": "@datasourceUid@" "uid": "@datasourceUid@"
}, },
"expr": "sum by (code) (increase(authelia_request[$__range]))", "expr": "sort_desc(sum by (code) (increase(authelia_request[$__range])))",
"instant": true,
"legendFormat": "{{code}}" "legendFormat": "{{code}}"
} }
], ],
@ -302,7 +303,8 @@
"type": "prometheus", "type": "prometheus",
"uid": "@datasourceUid@" "uid": "@datasourceUid@"
}, },
"expr": "sum by (code) (increase(authelia_authz[$__range]))", "expr": "sort_desc(sum by (code) (increase(authelia_authz[$__range])))",
"instant": true,
"legendFormat": "{{code}}" "legendFormat": "{{code}}"
} }
], ],

View file

@ -331,7 +331,7 @@
"type": "prometheus", "type": "prometheus",
"uid": "@datasourceUid@" "uid": "@datasourceUid@"
}, },
"expr": "sum by (model) (increase({__name__=\"claude_code.token.usage\", hive=~\"$hive\", agent=~\"$agent\"}[$__range]))", "expr": "sort_desc(sum by (model) (increase({__name__=\"claude_code.token.usage\", hive=~\"$hive\", agent=~\"$agent\"}[$__range])))",
"instant": true, "instant": true,
"legendFormat": "{{model}}" "legendFormat": "{{model}}"
} }
@ -448,7 +448,7 @@
"type": "prometheus", "type": "prometheus",
"uid": "@datasourceUid@" "uid": "@datasourceUid@"
}, },
"expr": "sum by (effort) (increase({__name__=\"claude_code.cost.usage\", hive=~\"$hive\", agent=~\"$agent\"}[$__range]))", "expr": "sort_desc(sum by (effort) (increase({__name__=\"claude_code.cost.usage\", hive=~\"$hive\", agent=~\"$agent\"}[$__range])))",
"instant": true, "instant": true,
"legendFormat": "{{effort}}" "legendFormat": "{{effort}}"
} }
@ -507,7 +507,7 @@
"type": "prometheus", "type": "prometheus",
"uid": "@datasourceUid@" "uid": "@datasourceUid@"
}, },
"expr": "sum by (query_source) (increase({__name__=\"claude_code.cost.usage\", hive=~\"$hive\", agent=~\"$agent\"}[$__range]))", "expr": "sort_desc(sum by (query_source) (increase({__name__=\"claude_code.cost.usage\", hive=~\"$hive\", agent=~\"$agent\"}[$__range])))",
"instant": true, "instant": true,
"legendFormat": "{{query_source}}" "legendFormat": "{{query_source}}"
} }
@ -566,7 +566,7 @@
"type": "prometheus", "type": "prometheus",
"uid": "@datasourceUid@" "uid": "@datasourceUid@"
}, },
"expr": "sum by (language, decision) (increase({__name__=\"claude_code.code_edit_tool.decision\", hive=~\"$hive\", agent=~\"$agent\"}[$__range]))", "expr": "sort_desc(sum by (language, decision) (increase({__name__=\"claude_code.code_edit_tool.decision\", hive=~\"$hive\", agent=~\"$agent\"}[$__range])))",
"instant": true, "instant": true,
"legendFormat": "{{language}} · {{decision}}" "legendFormat": "{{language}} · {{decision}}"
} }
@ -625,7 +625,7 @@
"type": "prometheus", "type": "prometheus",
"uid": "@datasourceUid@" "uid": "@datasourceUid@"
}, },
"expr": "sum by (tool_name, decision) (increase({__name__=\"claude_code.code_edit_tool.decision\", hive=~\"$hive\", agent=~\"$agent\"}[$__range]))", "expr": "sort_desc(sum by (tool_name, decision) (increase({__name__=\"claude_code.code_edit_tool.decision\", hive=~\"$hive\", agent=~\"$agent\"}[$__range])))",
"instant": true, "instant": true,
"legendFormat": "{{tool_name}} · {{decision}}" "legendFormat": "{{tool_name}} · {{decision}}"
} }
@ -838,7 +838,7 @@
"type": "prometheus", "type": "prometheus",
"uid": "@datasourceUid@" "uid": "@datasourceUid@"
}, },
"expr": "sum by (agent) (increase({__name__=\"claude_code.active_time.total\", hive=~\"$hive\", agent=~\"$agent\"}[$__range])) / sum by (agent) (increase({__name__=\"claude_code.session.count\", hive=~\"$hive\", agent=~\"$agent\"}[$__range]))", "expr": "sort_desc(sum by (agent) (increase({__name__=\"claude_code.active_time.total\", hive=~\"$hive\", agent=~\"$agent\"}[$__range])) / sum by (agent) (increase({__name__=\"claude_code.session.count\", hive=~\"$hive\", agent=~\"$agent\"}[$__range])))",
"instant": true, "instant": true,
"legendFormat": "{{agent}}" "legendFormat": "{{agent}}"
} }
@ -897,7 +897,7 @@
"type": "prometheus", "type": "prometheus",
"uid": "@datasourceUid@" "uid": "@datasourceUid@"
}, },
"expr": "sum by (agent) (increase({__name__=\"claude_code.cost.usage\", hive=~\"$hive\", agent=~\"$agent\"}[$__range]))", "expr": "sort_desc(sum by (agent) (increase({__name__=\"claude_code.cost.usage\", hive=~\"$hive\", agent=~\"$agent\"}[$__range])))",
"instant": true, "instant": true,
"legendFormat": "{{agent}}" "legendFormat": "{{agent}}"
} }
@ -956,7 +956,7 @@
"type": "prometheus", "type": "prometheus",
"uid": "@datasourceUid@" "uid": "@datasourceUid@"
}, },
"expr": "sum by (agent) (increase({__name__=\"claude_code.token.usage\", hive=~\"$hive\", agent=~\"$agent\"}[$__range]))", "expr": "sort_desc(sum by (agent) (increase({__name__=\"claude_code.token.usage\", hive=~\"$hive\", agent=~\"$agent\"}[$__range])))",
"instant": true, "instant": true,
"legendFormat": "{{agent}}" "legendFormat": "{{agent}}"
} }