You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@mesos.apache.org by al...@apache.org on 2018/08/30 20:40:29 UTC
[mesos] 02/02: Added 25th and 75th percentiles to `Statistics`.
This is an automated email from the ASF dual-hosted git repository.
alexr pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/mesos.git
commit 9513916f55249c00f188e902f1d40e5483ae47fb
Author: Alexander Rukletsov <al...@apache.org>
AuthorDate: Thu Aug 2 15:03:19 2018 +0200
Added 25th and 75th percentiles to `Statistics`.
Review: https://reviews.apache.org/r/68225
---
3rdparty/libprocess/include/process/statistics.hpp | 4 ++++
3rdparty/libprocess/src/metrics/metrics.cpp | 1 +
3rdparty/libprocess/src/tests/statistics_tests.cpp | 4 ++++
3 files changed, 9 insertions(+)
diff --git a/3rdparty/libprocess/include/process/statistics.hpp b/3rdparty/libprocess/include/process/statistics.hpp
index 7d787c4..aac736c 100644
--- a/3rdparty/libprocess/include/process/statistics.hpp
+++ b/3rdparty/libprocess/include/process/statistics.hpp
@@ -86,7 +86,9 @@ struct Statistics
T max;
// TODO(dhamon): Consider making the percentiles we store dynamic.
+ T p25;
T p50;
+ T p75;
T p90;
T p95;
T p99;
@@ -111,7 +113,9 @@ private:
statistics.min = values.front();
statistics.max = values.back();
+ statistics.p25 = percentile(values, 0.25);
statistics.p50 = percentile(values, 0.5);
+ statistics.p75 = percentile(values, 0.75);
statistics.p90 = percentile(values, 0.90);
statistics.p95 = percentile(values, 0.95);
statistics.p99 = percentile(values, 0.99);
diff --git a/3rdparty/libprocess/src/metrics/metrics.cpp b/3rdparty/libprocess/src/metrics/metrics.cpp
index ba1962f..623d44a 100644
--- a/3rdparty/libprocess/src/metrics/metrics.cpp
+++ b/3rdparty/libprocess/src/metrics/metrics.cpp
@@ -250,6 +250,7 @@ Future<map<string, double>> MetricsProcess::__snapshot(
snapshot.end(),
key + "/count",
static_cast<double>(statistics_.count));
+ // TODO(alexr): Consider exposing p25 and p75 percentiles.
snapshot.emplace_hint(snapshot.end(), key + "/max", statistics_.max);
snapshot.emplace_hint(snapshot.end(), key + "/min", statistics_.min);
snapshot.emplace_hint(snapshot.end(), key + "/p50", statistics_.p50);
diff --git a/3rdparty/libprocess/src/tests/statistics_tests.cpp b/3rdparty/libprocess/src/tests/statistics_tests.cpp
index 96f5fd3..b348830 100644
--- a/3rdparty/libprocess/src/tests/statistics_tests.cpp
+++ b/3rdparty/libprocess/src/tests/statistics_tests.cpp
@@ -66,7 +66,9 @@ TEST(StatisticsTest, StatisticsFromTimeSeries)
EXPECT_DOUBLE_EQ(-5.0, statistics->min);
EXPECT_DOUBLE_EQ(5.0, statistics->max);
+ EXPECT_DOUBLE_EQ(-2.5, statistics->p25);
EXPECT_DOUBLE_EQ(0.0, statistics->p50);
+ EXPECT_DOUBLE_EQ(2.5, statistics->p75);
EXPECT_DOUBLE_EQ(4.0, statistics->p90);
EXPECT_DOUBLE_EQ(4.5, statistics->p95);
EXPECT_DOUBLE_EQ(4.9, statistics->p99);
@@ -91,6 +93,8 @@ TEST(StatisticsTest, StatisticsFromDurationList)
EXPECT_EQ(Seconds(0), statistics->min);
EXPECT_EQ(Seconds(100), statistics->max);
+ EXPECT_EQ(Seconds(25), statistics->p25);
EXPECT_EQ(Seconds(50), statistics->p50);
+ EXPECT_EQ(Seconds(75), statistics->p75);
EXPECT_EQ(Seconds(90), statistics->p90);
}