@@ -3026,11 +3026,29 @@ def validateStdoutWithDimensions(self, out, benchmarks, bmSuiteArgs, retcode=Non
3026
3026
def computeDerivedDatapoints (self , datapoints : DataPoints ) -> DataPoints :
3027
3027
"""Adds derived datapoints to the list of datapoints captured from the benchmark stdout or generated files.
3028
3028
Adds datapoints such as:
3029
+ * rss-distribution: copies of rss datapoints, naming more clearly indicates that the metric comprises the
3030
+ distribution represented by percentile values
3031
+ * latency-distribution: copies of latency datapoints, naming more clearly indicates that the metric comprises
3032
+ the distribution represented by percentile values
3029
3033
* max-rss: copied from specific rss percentile values
3030
3034
* time-to-first-response: copied from response_time with iteration 0
3031
3035
* max-time: copied from response_time with the highest value
3032
3036
* ops-per-GB-second: computed as throughput divided by max-rss
3033
3037
"""
3038
+ # rss-distribution
3039
+ rss_dps = filter (lambda dp : dp ["metric.name" ] == "rss" , datapoints )
3040
+ for rss_dp in rss_dps :
3041
+ rss_dp_copy = rss_dp .copy ()
3042
+ rss_dp_copy ["metric.name" ] = "rss-distribution"
3043
+ datapoints .append (rss_dp_copy )
3044
+
3045
+ # latency-distribution
3046
+ latency_dps = filter (lambda dp : dp ["metric.name" ] == "latency" , datapoints )
3047
+ for latency_dp in latency_dps :
3048
+ latency_dp_copy = latency_dp .copy ()
3049
+ latency_dp_copy ["metric.name" ] = "latency-distribution"
3050
+ datapoints .append (latency_dp_copy )
3051
+
3034
3052
# max-rss
3035
3053
percentile_to_copy_into_max_rss = float (mx_benchmark .RssPercentilesTracker .MaxRssCopyRule .percentile_to_copy_into_max_rss )
3036
3054
rss_dp_to_copy_from = next (filter (lambda dp : dp ["metric.name" ] == "rss" and dp ["metric.percentile" ] == percentile_to_copy_into_max_rss , datapoints ), None )
0 commit comments