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