@@ -579,6 +579,13 @@ async def finalize(self, report: GenerativeBenchmarksReport) -> Path:
579579 benchmark_headers : list [str ] = []
580580 benchmark_values : list [str | float | list [float ]] = []
581581
582+ # Add basic run description info
583+ desc_headers , desc_values = (
584+ self ._get_benchmark_desc_headers_and_values (benchmark )
585+ )
586+ benchmark_headers .extend (desc_headers )
587+ benchmark_values .extend (desc_values )
588+
582589 # Add status-based metrics
583590 for status in StatusDistributionSummary .model_fields :
584591 status_headers , status_values = (
@@ -684,6 +691,21 @@ def _get_benchmark_status_metrics_stats(
684691 ]
685692 return headers , values
686693
694+ def _get_benchmark_extras_headers_and_values (
695+ self , benchmark : GenerativeBenchmark ,
696+ ) -> tuple [list [str ], list [str ]]:
697+ headers = ["Profile" , "Backend" , "Generator Data" ]
698+ values : list [str ] = [
699+ benchmark .benchmarker .profile .model_dump_json (),
700+ json .dumps (benchmark .benchmarker .backend ),
701+ json .dumps (benchmark .benchmarker .requests ["attributes" ]["data" ]),
702+ ]
703+
704+ if len (headers ) != len (values ):
705+ raise ValueError ("Headers and values length mismatch." )
706+
707+ return headers , values
708+
687709
688710@GenerativeBenchmarkerOutput .register ("html" )
689711class GenerativeBenchmarkerHTML (GenerativeBenchmarkerOutput ):
0 commit comments