@@ -85,14 +85,35 @@ local homedirSharedUsage =
8585 prometheus.new(
8686 '$PROMETHEUS_DS' ,
8787 |||
88- max(
89- dirsize_total_size_bytes{namespace=~"$hub_name"}
90- * on (namespace, directory) group_left(username)
88+ sum(
89+
90+ # max is used to de-duplicate data from multiple sources
91+ max(
92+ dirsize_total_size_bytes{namespace=~"$hub_name"}
93+ ) by (namespace, directory)
94+
95+ # make namespace/directory combinations become more namespace/directory/username combinations
96+ * on (namespace, directory) group_right()
9197 group(
92- label_replace(
93- jupyterhub_user_group_info{namespace=~"$hub_name", username_escaped=~".*"},
94- "directory", "$1", "username_escaped", "(.+)")
95- ) by (directory, namespace, username)
98+ # match using username_safe (kubespawner's modern "safe" scheme)
99+ (
100+ # duplicate jupyterhub_user_group_info's username_safe label as directory
101+ label_replace(
102+ jupyterhub_user_group_info{namespace=~"$hub_name", username_safe=~".*"},
103+ "directory", "$1", "username_safe", "(.+)"
104+ )
105+ )
106+ or
107+ # match using username_escaped (kubespawner's legacy "escape" scheme)
108+ (
109+ # duplicate jupyterhub_user_group_info's username_escaped label as directory
110+ label_replace(
111+ jupyterhub_user_group_info{namespace=~"$hub_name", username_escaped=~".*"},
112+ "directory", "$1", "username_escaped", "(.+)"
113+ )
114+ )
115+ ) by (namespace, directory, username)
116+
96117 ) by (namespace, username)
97118 |||
98119 )
0 commit comments