@@ -578,6 +578,13 @@ async def finalize(self, report: GenerativeBenchmarksReport) -> Path:
578578 benchmark_headers : list [str ] = []
579579 benchmark_values : list [str | float | list [float ]] = []
580580
581+ # Add basic run description info
582+ desc_headers , desc_values = (
583+ self ._get_benchmark_desc_headers_and_values (benchmark )
584+ )
585+ benchmark_headers .extend (desc_headers )
586+ benchmark_values .extend (desc_values )
587+
581588 # Add status-based metrics
582589 for status in StatusDistributionSummary .model_fields :
583590 status_headers , status_values = (
@@ -680,6 +687,21 @@ def _get_benchmark_status_metrics_stats(
680687 ]
681688 return headers , values
682689
690+ def _get_benchmark_extras_headers_and_values (
691+ self , benchmark : GenerativeBenchmark ,
692+ ) -> tuple [list [str ], list [str ]]:
693+ headers = ["Profile" , "Backend" , "Generator Data" ]
694+ values : list [str ] = [
695+ benchmark .benchmarker .profile .model_dump_json (),
696+ json .dumps (benchmark .benchmarker .backend ),
697+ json .dumps (benchmark .benchmarker .requests ["attributes" ]["data" ]),
698+ ]
699+
700+ if len (headers ) != len (values ):
701+ raise ValueError ("Headers and values length mismatch." )
702+
703+ return headers , values
704+
683705
684706@GenerativeBenchmarkerOutput .register ("html" )
685707class GenerativeBenchmarkerHTML (GenerativeBenchmarkerOutput ):
0 commit comments