@@ -1291,6 +1291,14 @@ def _build_custom_plot_modal(self) -> dbc.Modal:
12911291 {"label" : "Model" , "value" : "model" },
12921292 {"label" : "Concurrency" , "value" : "concurrency" },
12931293 ]
1294+
1295+ # Add experiment group if experimental classification is enabled
1296+ exp_class_config = self .plot_config .get_experiment_classification_config ()
1297+ if exp_class_config is not None :
1298+ group_by_options .append (
1299+ {"label" : "Experiment Group" , "value" : "experiment_group" }
1300+ )
1301+
12941302 group_by_options .extend (metadata_options )
12951303
12961304 # Add swept parameters (exclude already listed options)
@@ -1299,6 +1307,7 @@ def _build_custom_plot_modal(self) -> dbc.Modal:
12991307 "endpoint_type" ,
13001308 "request_count" ,
13011309 "duration_seconds" ,
1310+ "experiment_group" ,
13021311 ]:
13031312 display_name = param .replace ("_" , " " ).replace ("." , " " ).title ()
13041313 group_by_options .append ({"label" : display_name , "value" : param })
@@ -1339,6 +1348,13 @@ def _build_custom_plot_modal(self) -> dbc.Modal:
13391348 ),
13401349 dbc .ModalBody (
13411350 [
1351+ create_label ("Plot Type" , self .theme ),
1352+ dcc .Dropdown (
1353+ id = "custom-plot-type" ,
1354+ options = MULTI_RUN_PLOT_TYPES ,
1355+ placeholder = "Select plot type" ,
1356+ style = {"font-size" : "12px" , "margin-bottom" : "12px" },
1357+ ),
13421358 create_label ("X-Axis Metric" , self .theme ),
13431359 dcc .Dropdown (
13441360 id = "custom-x-metric" ,
@@ -1385,13 +1401,6 @@ def _build_custom_plot_modal(self) -> dbc.Modal:
13851401 "margin-bottom" : "16px" ,
13861402 },
13871403 ),
1388- create_label ("Plot Type" , self .theme ),
1389- dcc .Dropdown (
1390- id = "custom-plot-type" ,
1391- options = MULTI_RUN_PLOT_TYPES ,
1392- placeholder = "Select plot type" ,
1393- style = {"font-size" : "12px" , "margin-bottom" : "12px" },
1394- ),
13951404 create_label ("Label Points By" , self .theme ),
13961405 dcc .Dropdown (
13971406 id = "custom-label-by" ,
0 commit comments