PRS - Dynamically load graphs in generated reports

Updates the full report generation to optionally embed a url to the csvtosvg end point to create and display graphs on demand rather than generating them offline. This reduces the size of the reports by about 250x.

+ Updated GetCsvToSvgArgs to have different output formats (command line, url).
+ Added -useEmbeddedGraphUrl arg to specify inserting the url instead of fully inlining the graph. This is accompanied by -embeddedGraphUrlRoot to specify the base url to target.
+ Removed the concept and handling of external graphs as the code path wasn't used and didn't work.
+ Refactored GenerateReport to create a list of CsvSvgInfo objects to better handle the different formats (url, inline).
+ Updated command line handling to decoded − into '-' to fix an issue where negative numbers were treated as arguments.
+ Remove giant graphs from ReportTypes.xml as they're unused.

#rnx

#rb ben.woodhouse
#tests prt compare tests, manual testing

[CL 30677752 by tyler staples in ue5-main branch]
This commit is contained in:
tyler staples
2024-01-17 22:10:33 -05:00
parent bd10bcf0e2
commit a718fe697a
5 changed files with 266 additions and 154 deletions

View File

@@ -124,6 +124,9 @@ namespace CSVStats
i++;
}
// Decode negative values. This is necessary otherwise negative values are interpreted as separate args.
val = val.Replace("−", "-");
string argKey = arg.Substring(1).ToLower();
if (CommandLineArgs.ContainsKey(argKey))
{

View File

@@ -96,7 +96,6 @@ namespace PerfReportTool
title = element.GetRequiredAttribute<string>(vars, "title");
budget = new Optional<double>(element, "budget", vars);
inSummary = element.GetSafeAttribute<bool>(vars, "inSummary", false);
isExternal = element.GetSafeAttribute<bool>(vars, "external", false);
isInline = element.GetSafeAttribute<bool>(vars, "inline", false);
parent = element.GetSafeAttribute<string>(vars, "parent");
minFilterStatValue = new Optional<double>(element, "minFilterStatValue", vars);
@@ -115,7 +114,6 @@ namespace PerfReportTool
public string title;
public Optional<double> budget;
public bool inSummary;
public bool isExternal;
public Optional<double> minFilterStatValue;
public GraphSettings settings;