Make summary quantiles non-const

This change removes an unnecessary API constraint that makes it
harder to dynamically construct quantile configurations for summaries.

Fixes #425
This commit is contained in:
Jupp Mueller
2021-05-13 20:41:19 -07:00
parent 722d8d0936
commit a287e45018
3 changed files with 19 additions and 9 deletions
+2 -1
View File
@@ -1,4 +1,5 @@
[
{ include: [ "@<gmock/.*>", private, "<gmock/gmock.h>", public ] },
{ include: [ "@<gtest/.*>", private, "<gtest/gtest.h>", public ] }
{ include: [ "@<gtest/.*>", private, "<gtest/gtest.h>", public ] },
{ include: [ "@<bits/this_thread_sleep.h>", private, "<thread>", public ]}
]
@@ -15,21 +15,21 @@ namespace detail {
class PROMETHEUS_CPP_CORE_EXPORT CKMSQuantiles {
public:
struct PROMETHEUS_CPP_CORE_EXPORT Quantile {
const double quantile;
const double error;
const double u;
const double v;
Quantile(double quantile, double error);
double quantile;
double error;
double u;
double v;
};
private:
struct Item {
/*const*/ double value;
double value;
int g;
/*const*/ int delta;
int delta;
explicit Item(double value, int lower_delta, int delta);
Item(double value, int lower_delta, int delta);
};
public:
+9
View File
@@ -2,6 +2,7 @@
#include <gtest/gtest.h>
#include <chrono>
#include <cmath>
#include <limits>
#include <memory>
@@ -92,5 +93,13 @@ TEST(SummaryTest, max_age) {
test_value(std::numeric_limits<double>::quiet_NaN());
}
TEST(SummaryTest, construction_with_dynamic_quantile_vector) {
auto quantiles = Summary::Quantiles{{0.99, 0.001}};
quantiles.push_back({0.5, 0.05});
Summary summary{quantiles, std::chrono::seconds(1), 2};
summary.Observe(8.0);
}
} // namespace
} // namespace prometheus