Skip to content

Commit 4ff0499

Browse files
RakeshwarKRakeshwar Reddy KambaiahgariCopilot
authored
Standardized support for filtering metrics using verbosity levels, inclusion and exclusion regex. (#636)
* Commit changes * update 0 * Update 1 * Commit changes * Reverted changes * Apply suggestion from @Copilot Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> Signed-off-by: Rakesh <153008248+RakeshwarK@users.noreply.github.com> * Apply suggestion from @Copilot Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> Signed-off-by: Rakesh <153008248+RakeshwarK@users.noreply.github.com> * Apply suggestion from @Copilot Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> Signed-off-by: Rakesh <153008248+RakeshwarK@users.noreply.github.com> * Update src/VirtualClient/VirtualClient.Contracts/Extensibility/MetricDataPoint.cs Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> Signed-off-by: Rakesh <153008248+RakeshwarK@users.noreply.github.com> * commit changes * commit changes * Update src/VirtualClient/VirtualClient.Contracts/Extensions/MetricExtensions.cs Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> Signed-off-by: Rakesh <153008248+RakeshwarK@users.noreply.github.com> * Update Doc * Resolve comments * Update Tests. --------- Signed-off-by: Rakesh <153008248+RakeshwarK@users.noreply.github.com> Co-authored-by: Rakeshwar Reddy Kambaiahgari <rkambaiahgar@microsoft.com> Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
1 parent 4b76bdd commit 4ff0499

27 files changed

Lines changed: 537 additions & 267 deletions

src/VirtualClient/VirtualClient.Actions/3DMark/ThreeDMarkMetricsParser.cs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -41,15 +41,15 @@ public override IList<Metric> Parse()
4141
{
4242
if (this.Defintion == "custom_TSGT1.3dmdef")
4343
{
44-
metrics.Add(new Metric("timespy.graphics.1 [fps]", this.ParseXMLTag("TimeSpyPerformanceGraphicsTest1"), "fps", MetricRelativity.HigherIsBetter, verbosity: 0));
44+
metrics.Add(new Metric("timespy.graphics.1 [fps]", this.ParseXMLTag("TimeSpyPerformanceGraphicsTest1"), "fps", MetricRelativity.HigherIsBetter, verbosity: 1));
4545
}
4646
else if (this.Defintion == "custom_TSGT2.3dmdef")
4747
{
48-
metrics.Add(new Metric("timespy.graphics.2 [fps]", this.ParseXMLTag("TimeSpyPerformanceGraphicsTest2"), "fps", MetricRelativity.HigherIsBetter, verbosity: 0));
48+
metrics.Add(new Metric("timespy.graphics.2 [fps]", this.ParseXMLTag("TimeSpyPerformanceGraphicsTest2"), "fps", MetricRelativity.HigherIsBetter, verbosity: 1));
4949
}
5050
else if (this.Defintion == "custom_TSCT.3dmdef")
5151
{
52-
metrics.Add(new Metric("timespy.cpu [fps]", this.ParseXMLTag("TimeSpyPerformanceCpuSection2"), "fps", MetricRelativity.HigherIsBetter, verbosity: 0));
52+
metrics.Add(new Metric("timespy.cpu [fps]", this.ParseXMLTag("TimeSpyPerformanceCpuSection2"), "fps", MetricRelativity.HigherIsBetter, verbosity: 1));
5353
}
5454
}
5555
catch (Exception exc)

src/VirtualClient/VirtualClient.Actions/7zip/Compression7zipMetricsParser.cs

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -62,11 +62,11 @@ public override IList<Metric> Parse()
6262
int rows = this.SizeAndTime.Rows.Count;
6363

6464
metrics.Add(new Metric(
65-
"Compression_Ratio",
66-
(Convert.ToDouble(this.SizeAndTime.Rows[2].ItemArray[2]) / Convert.ToDouble(this.SizeAndTime.Rows[0].ItemArray[2])) * 100,
65+
"Compression_Ratio",
66+
(Convert.ToDouble(this.SizeAndTime.Rows[2].ItemArray[2]) / Convert.ToDouble(this.SizeAndTime.Rows[0].ItemArray[2])) * 100,
6767
"precentage",
68-
relativity: MetricRelativity.LowerIsBetter,
69-
verbosity: 2));
68+
relativity: MetricRelativity.LowerIsBetter,
69+
verbosity: 5));
7070

7171
double compressionTime = 0;
7272

@@ -75,7 +75,7 @@ public override IList<Metric> Parse()
7575
compressionTime += Convert.ToDouble(this.SizeAndTime.Rows[i].ItemArray[2]);
7676
}
7777

78-
metrics.Add(new Metric("Compression_Time", compressionTime, MetricUnit.Seconds, MetricRelativity.LowerIsBetter, verbosity: 0));
78+
metrics.Add(new Metric("Compression_Time", compressionTime, MetricUnit.Seconds, MetricRelativity.LowerIsBetter, verbosity: 1));
7979

8080
return metrics;
8181
}

src/VirtualClient/VirtualClient.Actions/ASPNET/BombardierMetricsParser.cs

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -32,18 +32,18 @@ public override IList<Metric> Parse()
3232
this.metrics = new List<Metric>();
3333

3434
Root root = JsonSerializer.Deserialize<Root>(this.PreprocessedText);
35-
this.metrics.Add(new Metric("Latency Max", root.Result.Latency.Max, MetricUnit.Microseconds, MetricRelativity.LowerIsBetter, verbosity: 2));
35+
this.metrics.Add(new Metric("Latency Max", root.Result.Latency.Max, MetricUnit.Microseconds, MetricRelativity.LowerIsBetter, verbosity: 5));
3636
this.metrics.Add(new Metric("Latency Average", root.Result.Latency.Mean, MetricUnit.Microseconds, MetricRelativity.LowerIsBetter));
37-
this.metrics.Add(new Metric("Latency Stddev", root.Result.Latency.Stddev, MetricUnit.Microseconds, MetricRelativity.LowerIsBetter, verbosity: 2));
38-
this.metrics.Add(new Metric("Latency P50", root.Result.Latency.Percentiles.P50, MetricUnit.Microseconds, MetricRelativity.LowerIsBetter, verbosity: 0));
37+
this.metrics.Add(new Metric("Latency Stddev", root.Result.Latency.Stddev, MetricUnit.Microseconds, MetricRelativity.LowerIsBetter, verbosity: 5));
38+
this.metrics.Add(new Metric("Latency P50", root.Result.Latency.Percentiles.P50, MetricUnit.Microseconds, MetricRelativity.LowerIsBetter, verbosity: 1));
3939
this.metrics.Add(new Metric("Latency P75", root.Result.Latency.Percentiles.P75, MetricUnit.Microseconds, MetricRelativity.LowerIsBetter));
4040
this.metrics.Add(new Metric("Latency P90", root.Result.Latency.Percentiles.P90, MetricUnit.Microseconds, MetricRelativity.LowerIsBetter));
4141
this.metrics.Add(new Metric("Latency P95", root.Result.Latency.Percentiles.P95, MetricUnit.Microseconds, MetricRelativity.LowerIsBetter));
42-
this.metrics.Add(new Metric("Latency P99", root.Result.Latency.Percentiles.P99, MetricUnit.Microseconds, MetricRelativity.LowerIsBetter, verbosity: 0));
42+
this.metrics.Add(new Metric("Latency P99", root.Result.Latency.Percentiles.P99, MetricUnit.Microseconds, MetricRelativity.LowerIsBetter, verbosity: 1));
4343

44-
this.metrics.Add(new Metric("RequestPerSecond Max", root.Result.Rps.Max, MetricUnit.RequestsPerSec, MetricRelativity.HigherIsBetter, verbosity: 2));
45-
this.metrics.Add(new Metric("RequestPerSecond Average", root.Result.Rps.Mean, MetricUnit.RequestsPerSec, MetricRelativity.HigherIsBetter, verbosity: 0));
46-
this.metrics.Add(new Metric("RequestPerSecond Stddev", root.Result.Rps.Stddev, MetricUnit.RequestsPerSec, MetricRelativity.HigherIsBetter, verbosity: 2));
44+
this.metrics.Add(new Metric("RequestPerSecond Max", root.Result.Rps.Max, MetricUnit.RequestsPerSec, MetricRelativity.HigherIsBetter, verbosity: 5));
45+
this.metrics.Add(new Metric("RequestPerSecond Average", root.Result.Rps.Mean, MetricUnit.RequestsPerSec, MetricRelativity.HigherIsBetter, verbosity: 1));
46+
this.metrics.Add(new Metric("RequestPerSecond Stddev", root.Result.Rps.Stddev, MetricUnit.RequestsPerSec, MetricRelativity.HigherIsBetter, verbosity: 5));
4747
this.metrics.Add(new Metric("RequestPerSecond P50", root.Result.Rps.Percentiles.P50, MetricUnit.RequestsPerSec, MetricRelativity.HigherIsBetter));
4848
this.metrics.Add(new Metric("RequestPerSecond P75", root.Result.Rps.Percentiles.P75, MetricUnit.RequestsPerSec, MetricRelativity.HigherIsBetter));
4949
this.metrics.Add(new Metric("RequestPerSecond P90", root.Result.Rps.Percentiles.P90, MetricUnit.RequestsPerSec, MetricRelativity.HigherIsBetter));

src/VirtualClient/VirtualClient.Actions/CoreMark/CoreMarkMetricsParser.cs

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -46,23 +46,23 @@ public override IList<Metric> Parse()
4646
metrics.AddRange(this.CoreMarkResult.GetMetrics(nameIndex: 0, valueIndex: 1, unit: "NA", namePrefix: string.Empty, ignoreFormatError: true));
4747
// CoreMark result doesn't define the unit so needs manually assign units.
4848
metrics.Where(m => m.Name == "CoreMark Size").FirstOrDefault().Unit = "bytes";
49-
metrics.Where(m => m.Name == "CoreMark Size").FirstOrDefault().Verbosity = 2;
49+
metrics.Where(m => m.Name == "CoreMark Size").FirstOrDefault().Verbosity = 5;
5050
metrics.Where(m => m.Name == "Total ticks").FirstOrDefault().Unit = "ticks";
51-
metrics.Where(m => m.Name == "Total ticks").FirstOrDefault().Verbosity = 2;
51+
metrics.Where(m => m.Name == "Total ticks").FirstOrDefault().Verbosity = 5;
5252
metrics.Where(m => m.Name == "Total time (secs)").FirstOrDefault().Unit = "secs";
53-
metrics.Where(m => m.Name == "Total time (secs)").FirstOrDefault().Verbosity = 2;
53+
metrics.Where(m => m.Name == "Total time (secs)").FirstOrDefault().Verbosity = 5;
5454
metrics.Where(m => m.Name == "Iterations/Sec").FirstOrDefault().Unit = "iterations/sec";
5555
metrics.Where(m => m.Name == "Iterations/Sec").FirstOrDefault().Relativity = MetricRelativity.HigherIsBetter;
56-
metrics.Where(m => m.Name == "Iterations/Sec").FirstOrDefault().Verbosity = 0;
56+
metrics.Where(m => m.Name == "Iterations/Sec").FirstOrDefault().Verbosity = 1;
5757
metrics.Where(m => m.Name == "Iterations").FirstOrDefault().Unit = "iterations";
5858
metrics.Where(m => m.Name == "Iterations").FirstOrDefault().Relativity = MetricRelativity.Undefined;
59-
metrics.Where(m => m.Name == "Iterations").FirstOrDefault().Verbosity = 2;
59+
metrics.Where(m => m.Name == "Iterations").FirstOrDefault().Verbosity = 5;
6060

6161
// This line won't be there if it's running single thread.
6262
if (metrics.Any(m => m.Name == "Parallel PThreads"))
6363
{
6464
metrics.Where(m => m.Name == "Parallel PThreads").FirstOrDefault().Unit = "threads";
65-
metrics.Where(m => m.Name == "Parallel PThreads").FirstOrDefault().Verbosity = 2;
65+
metrics.Where(m => m.Name == "Parallel PThreads").FirstOrDefault().Verbosity = 5;
6666
}
6767

6868
return metrics;

0 commit comments

Comments
 (0)